NAMD
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ComputeHomeTuples< T, S, P > Class Template Reference

#include <ComputeHomeTuples.h>

Inheritance diagram for ComputeHomeTuples< T, S, P >:
Compute ComputeSelfTuples< T, S, P >

Public Member Functions

virtual ~ComputeHomeTuples ()
 
virtual void initialize (void)
 
void atomUpdate (void)
 
virtual void doWork (void)
 
- Public Member Functions inherited from Compute
 Compute (ComputeID)
 
int type ()
 
virtual ~Compute ()
 
void setNumPatches (int n)
 
int getNumPatches ()
 
virtual void patchReady (PatchID, int doneMigration, int seq)
 
virtual int noWork ()
 
virtual void finishPatch (int)
 
int sequence (void)
 
int priority (void)
 
int getGBISPhase (void)
 
virtual void gbisP2PatchReady (PatchID, int seq)
 
virtual void gbisP3PatchReady (PatchID, int seq)
 

Protected Member Functions

virtual void loadTuples (void)
 
 ComputeHomeTuples (ComputeID c)
 
 ComputeHomeTuples (ComputeID c, PatchIDList &pids)
 
- Protected Member Functions inherited from Compute
void enqueueWork ()
 

Protected Attributes

int doLoadTuples
 
ResizeArray< T > tupleList
 
TuplePatchList tuplePatchList
 
PatchMappatchMap
 
AtomMapatomMap
 
SubmitReductionreduction
 
int accelMDdoDihe
 
SubmitReductionpressureProfileReduction
 
BigRealpressureProfileData
 
int pressureProfileSlabs
 
char * isBasePatch
 
- Protected Attributes inherited from Compute
int computeType
 
int basePriority
 
int gbisPhase
 
int gbisPhasePriority [3]
 

Additional Inherited Members

- Public Attributes inherited from Compute
const ComputeID cid
 
LDObjHandle ldObjHandle
 
LocalWorkMsg *const localWorkMsg
 

Detailed Description

template<class T, class S, class P>
class ComputeHomeTuples< T, S, P >

Definition at line 375 of file ComputeHomeTuples.h.

Constructor & Destructor Documentation

◆ ComputeHomeTuples() [1/2]

template<class T, class S, class P>
ComputeHomeTuples< T, S, P >::ComputeHomeTuples ( ComputeID  c)
inlineprotected

Definition at line 567 of file ComputeHomeTuples.h.

567  : Compute(c) {
571 
573  accelMDdoDihe=false;
574  if (params->accelMDOn) {
575  if (params->accelMDdihe || params->accelMDdual) accelMDdoDihe=true;
576  }
577  if (params->pressureProfileOn) {
578  pressureProfileSlabs = T::pressureProfileSlabs =
579  params->pressureProfileSlabs;
580  int n = T::pressureProfileAtomTypes = params->pressureProfileAtomTypes;
583  int numAtomTypePairs = n*n;
584  pressureProfileData = new BigReal[3*pressureProfileSlabs*numAtomTypePairs];
585  } else {
587  pressureProfileData = NULL;
588  }
589  doLoadTuples = false;
590  isBasePatch = 0;
591 #ifdef USE_HOMETUPLES
592  tuples = NULL;
593 #endif
594  }
static Node * Object()
Definition: Node.h:86
static PatchMap * Object()
Definition: PatchMap.h:27
SimParameters * simParameters
Definition: Node.h:181
BigReal * pressureProfileData
SubmitReduction * pressureProfileReduction
SubmitReduction * willSubmit(int setID, int size=-1)
Definition: ReductionMgr.C:368
static ReductionMgr * Object(void)
Definition: ReductionMgr.h:290
int pressureProfileSlabs
static AtomMap * Object()
Definition: AtomMap.h:37
int pressureProfileAtomTypes
SubmitReduction * reduction
Bool pressureProfileOn
Compute(ComputeID)
Definition: Compute.C:37
double BigReal
Definition: common.h:123

◆ ComputeHomeTuples() [2/2]

template<class T, class S, class P>
ComputeHomeTuples< T, S, P >::ComputeHomeTuples ( ComputeID  c,
PatchIDList pids 
)
inlineprotected

Definition at line 596 of file ComputeHomeTuples.h.

596  : Compute(c) {
601  accelMDdoDihe=false;
602  if (params->accelMDOn) {
603  if (params->accelMDdihe || params->accelMDdual) accelMDdoDihe=true;
604  }
605  if (params->pressureProfileOn) {
606  pressureProfileSlabs = T::pressureProfileSlabs =
607  params->pressureProfileSlabs;
608  int n = T::pressureProfileAtomTypes = params->pressureProfileAtomTypes;
611  int numAtomTypePairs = n*n;
612  pressureProfileData = new BigReal[3*pressureProfileSlabs*numAtomTypePairs];
613  } else {
615  pressureProfileData = NULL;
616  }
617  doLoadTuples = false;
618  int nPatches = patchMap->numPatches();
619  isBasePatch = new char[nPatches];
620  int i;
621  for (i=0; i<nPatches; ++i) { isBasePatch[i] = 0; }
622  for (i=0; i<pids.size(); ++i) { isBasePatch[pids[i]] = 1; }
623 #ifdef USE_HOMETUPLES
624  tuples = NULL;
625 #endif
626  }
static Node * Object()
Definition: Node.h:86
int size(void) const
Definition: ResizeArray.h:131
static PatchMap * Object()
Definition: PatchMap.h:27
SimParameters * simParameters
Definition: Node.h:181
BigReal * pressureProfileData
SubmitReduction * pressureProfileReduction
SubmitReduction * willSubmit(int setID, int size=-1)
Definition: ReductionMgr.C:368
static ReductionMgr * Object(void)
Definition: ReductionMgr.h:290
int pressureProfileSlabs
int numPatches(void) const
Definition: PatchMap.h:59
static AtomMap * Object()
Definition: AtomMap.h:37
int pressureProfileAtomTypes
SubmitReduction * reduction
Bool pressureProfileOn
Compute(ComputeID)
Definition: Compute.C:37
double BigReal
Definition: common.h:123

◆ ~ComputeHomeTuples()

template<class T, class S, class P>
virtual ComputeHomeTuples< T, S, P >::~ComputeHomeTuples ( )
inlinevirtual

Definition at line 630 of file ComputeHomeTuples.h.

630  {
631  delete reduction;
632  delete [] isBasePatch;
634  delete pressureProfileData;
635 #ifdef USE_HOMETUPLES
636  if (tuples != NULL) delete tuples;
637 #endif
638  }
BigReal * pressureProfileData
SubmitReduction * pressureProfileReduction
SubmitReduction * reduction

Member Function Documentation

◆ atomUpdate()

template<class T, class S, class P>
void ComputeHomeTuples< T, S, P >::atomUpdate ( void  )
inlinevirtual

Reimplemented from Compute.

Definition at line 694 of file ComputeHomeTuples.h.

694  {
695  doLoadTuples = true;
696  }

◆ doWork()

template<class T, class S, class P>
virtual void ComputeHomeTuples< T, S, P >::doWork ( void  )
inlinevirtual

Reimplemented from Compute.

Reimplemented in ComputeSelfTuples< T, S, P >, ComputeSelfTuples< AnisoElem, Aniso, AnisoValue >, ComputeSelfTuples< AngleElem, Angle, AngleValue >, ComputeSelfTuples< GromacsPairElem, GromacsPair, GromacsPairValue >, ComputeSelfTuples< ExclElem, Exclusion, int >, ComputeSelfTuples< DihedralElem, Dihedral, DihedralValue >, ComputeSelfTuples< ImproperElem, Improper, ImproperValue >, ComputeSelfTuples< BondElem, Bond, BondValue >, ComputeSelfTuples< CrosstermElem, Crossterm, CrosstermValue >, ComputeSelfTuples< OneFourNbTholeElem, OneFourNbThole, OneFourNbTholeValue >, and ComputeSelfTuples< TholeElem, Thole, TholeValue >.

Definition at line 703 of file ComputeHomeTuples.h.

Referenced by ComputeSelfTuples< TholeElem, Thole, TholeValue >::doWork().

703  {
704 
706  // Open Boxes - register that we are using Positions
707  // and will be depositing Forces.
709  for (ap = ap.begin(); ap != ap.end(); ap++) {
710  ap->x = ap->positionBox->open();
711  ap->xExt = ap->p->getCompAtomExtInfo();
712  if ( ap->p->flags.doMolly ) ap->x_avg = ap->avgPositionBox->open();
713  ap->r = ap->forceBox->open();
714  ap->f = ap->r->f[Results::normal];
715  if (accelMDdoDihe) ap->af = ap->r->f[Results::amdf]; // for dihedral-only or dual-boost accelMD
716  }
717 
718  BigReal reductionData[T::reductionDataSize];
719  int tupleCount = 0;
720  int numAtomTypes = T::pressureProfileAtomTypes;
721  int numAtomTypePairs = numAtomTypes*numAtomTypes;
722 
723  for ( int i = 0; i < T::reductionDataSize; ++i ) reductionData[i] = 0;
724  if (pressureProfileData) {
725  memset(pressureProfileData, 0, 3*pressureProfileSlabs*numAtomTypePairs*sizeof(BigReal));
726  // Silly variable hiding of the previous iterator
728  newap = newap.begin();
729  const Lattice &lattice = newap->p->lattice;
730  T::pressureProfileThickness = lattice.c().z / pressureProfileSlabs;
731  T::pressureProfileMin = lattice.origin().z - 0.5*lattice.c().z;
732  }
733 
734  if ( ! Node::Object()->simParameters->commOnly ) {
735  if ( doLoadTuples ) {
736 #ifdef USE_HOMETUPLES
737  tuples->loadTuples(tuplePatchList, isBasePatch, AtomMap::Object());
738 #else
739  loadTuples();
740 #endif
741  doLoadTuples = false;
742  }
743  // take triplet and pass with tuple info to force eval
744 #ifdef USE_HOMETUPLES
745  T *al = (T *)tuples->getTupleList();
746  const int ntuple = tuples->getNumTuples();
747 #else
748  T *al = tupleList.begin();
749  const int ntuple = tupleList.size();
750 #endif
751  if ( ntuple ) T::computeForce(al, ntuple, reductionData, pressureProfileData);
752  tupleCount += ntuple;
753  }
754 
756 
757  T::submitReductionData(reductionData,reduction);
758  reduction->item(T::reductionChecksumLabel) += (BigReal)tupleCount;
759  reduction->submit();
760 
762  // For ease of calculation we stored interactions between types
763  // i and j in (ni+j). For efficiency now we coalesce the
764  // cross interactions so that just i<=j are stored.
765  const int arraysize = 3*pressureProfileSlabs;
766  const BigReal *data = pressureProfileData;
767  for (int i=0; i<numAtomTypes; i++) {
768  for (int j=0; j<numAtomTypes; j++) {
769  int ii=i;
770  int jj=j;
771  if (ii > jj) { int tmp=ii; ii=jj; jj=tmp; }
772  const int reductionOffset =
773  (ii*numAtomTypes - (ii*(ii+1))/2 + jj)*arraysize;
774  for (int k=0; k<arraysize; k++) {
775  pressureProfileReduction->item(reductionOffset+k) += data[k];
776  }
777  data += arraysize;
778  }
779  }
781  }
782 
783  // Close boxes - i.e. signal we are done with Positions and
784  // AtomProperties and that we are depositing Forces
785  for (ap = ap.begin(); ap != ap.end(); ap++) {
786  ap->positionBox->close(&(ap->x));
787  if ( ap->p->flags.doMolly ) ap->avgPositionBox->close(&(ap->x_avg));
788  ap->forceBox->close(&(ap->r));
789  }
790  }
static Node * Object()
Definition: Node.h:86
int size(void) const
Definition: ResizeArray.h:131
NAMD_HOST_DEVICE Vector c() const
Definition: Lattice.h:270
virtual void submit(void)=0
BigReal & item(int i)
Definition: ReductionMgr.h:336
BigReal * pressureProfileData
void startWork(const LDObjHandle &handle)
BigReal z
Definition: Vector.h:74
TuplePatchList tuplePatchList
SubmitReduction * pressureProfileReduction
LDObjHandle ldObjHandle
Definition: Compute.h:44
static LdbCoordinator * Object()
static AtomMap * Object()
Definition: AtomMap.h:37
void endWork(const LDObjHandle &handle)
ResizeArray< T > tupleList
iterator begin(void)
Definition: ResizeArray.h:36
SubmitReduction * reduction
virtual void loadTuples(void)
NAMD_HOST_DEVICE Vector origin() const
Definition: Lattice.h:278
double BigReal
Definition: common.h:123

◆ initialize()

template<class T, class S, class P>
virtual void ComputeHomeTuples< T, S, P >::initialize ( void  )
inlinevirtual

Reimplemented from Compute.

Reimplemented in ComputeSelfTuples< T, S, P >, ComputeSelfTuples< AnisoElem, Aniso, AnisoValue >, ComputeSelfTuples< AngleElem, Angle, AngleValue >, ComputeSelfTuples< GromacsPairElem, GromacsPair, GromacsPairValue >, ComputeSelfTuples< ExclElem, Exclusion, int >, ComputeSelfTuples< DihedralElem, Dihedral, DihedralValue >, ComputeSelfTuples< ImproperElem, Improper, ImproperValue >, ComputeSelfTuples< BondElem, Bond, BondValue >, ComputeSelfTuples< CrosstermElem, Crossterm, CrosstermValue >, ComputeSelfTuples< OneFourNbTholeElem, OneFourNbThole, OneFourNbTholeValue >, and ComputeSelfTuples< TholeElem, Thole, TholeValue >.

Definition at line 644 of file ComputeHomeTuples.h.

644  {
645 
646 #if defined(NAMD_CUDA) || defined(NAMD_HIP)
647  ProxyMgr *proxyMgr = ProxyMgr::Object();
648 #endif
649 
650 #ifdef USE_HOMETUPLES
651  tuples = new HomeTuples<T, S, P>();
652 #endif
653 
654  // Start with empty list
656 
657  int nPatches = patchMap->numPatches();
658  int pid;
659  for (pid=0; pid<nPatches; ++pid) {
660  if ( isBasePatch[pid] ) {
661 #if defined(NAMD_CUDA) || defined(NAMD_HIP)
662  proxyMgr->createProxy(pid);
663 #endif
664  Patch *patch = patchMap->patch(pid);
665  tuplePatchList.add(TuplePatchElem(patch, this));
666  }
667  }
668 
669  // Gather all proxy patches (neighbors, that is)
671 
672  for (pid=0; pid<nPatches; ++pid) if ( isBasePatch[pid] ) {
673  int numNeighbors = patchMap->upstreamNeighbors(pid,neighbors);
674  for ( int i = 0; i < numNeighbors; ++i ) {
675  if ( ! tuplePatchList.find(TuplePatchElem(neighbors[i])) ) {
676 #if defined(NAMD_CUDA) || defined(NAMD_HIP)
677  proxyMgr->createProxy(neighbors[i]);
678 #endif
679  Patch *patch = patchMap->patch(neighbors[i]);
680  tuplePatchList.add(TuplePatchElem(patch, this));
681  }
682  }
683  }
685  doLoadTuples = true;
686 
687  basePriority = COMPUTE_PROXY_PRIORITY; // no patch dependence
688  }
void setNumPatches(int n)
Definition: Compute.h:52
Elem * find(const Elem &elem)
Definition: UniqueSet.h:60
#define COMPUTE_PROXY_PRIORITY
Definition: Priorities.h:71
int size(void) const
Definition: UniqueSet.h:58
static ProxyMgr * Object()
Definition: ProxyMgr.h:394
void clear(void)
Definition: UniqueSet.h:62
int upstreamNeighbors(int pid, PatchID *neighbor_ids)
Definition: PatchMap.C:669
TuplePatchList tuplePatchList
int add(const Elem &elem)
Definition: UniqueSet.h:52
Patch * patch(PatchID pid)
Definition: PatchMap.h:244
Definition: Patch.h:35
int numPatches(void) const
Definition: PatchMap.h:59
void createProxy(PatchID pid)
Definition: ProxyMgr.C:492
int basePriority
Definition: Compute.h:37
int32 PatchID
Definition: NamdTypes.h:287

◆ loadTuples()

template<class T, class S, class P>
virtual void ComputeHomeTuples< T, S, P >::loadTuples ( void  )
inlineprotectedvirtual

Definition at line 380 of file ComputeHomeTuples.h.

380  {
381  int numTuples;
382 
383  #ifdef MEM_OPT_VERSION
384  typename ElemTraits<T>::signature *allSigs;
385  #else
386  int32 **tuplesByAtom;
387  /* const (need to propagate const) */ S *tupleStructs;
388  #endif
389 
390  const P *tupleValues;
391  Node *node = Node::Object();
392 
393  #ifdef MEM_OPT_VERSION
394  allSigs = ElemTraits<T>::get_sig_pointer(node->molecule);
395  #else
396  T::getMoleculePointers(node->molecule,
397  &numTuples, &tuplesByAtom, &tupleStructs);
398  #endif
399 
400  T::getParameterPointers(node->parameters, &tupleValues);
401 
402  tupleList.resize(0);
403 
404  LocalID aid[T::size];
405  int partition[T::size];
406 
407  const int lesOn = node->simParameters->lesOn;
408  const int soluteScalingOn = node->simParameters->soluteScalingOn;
409  const int fepOn = node->simParameters->singleTopology;
410  const int sdScaling = node->simParameters->sdScaling;
411  Real invLesFactor = lesOn ?
412  1.0/node->simParameters->lesFactor :
413  1.0;
414  const Real soluteScalingFactor = node->simParameters->soluteScalingFactor;
415  const Bool soluteScalingAll = node->simParameters->soluteScalingAll;
416  BigReal OneMinusLambda = 1.0 - node->simParameters->alchLambda;
417  BigReal Lambda = node->simParameters->alchLambda;
418  const int num_unpert_bonds = node->molecule->num_alch_unpert_Bonds;
419  const int num_unpert_angles = node->molecule->num_alch_unpert_Angles;
420  const int num_unpert_dihedrals = node->molecule->num_alch_unpert_Dihedrals;
421  Bond *unpert_bonds = node->molecule->alch_unpert_bonds;
422  Angle *unpert_angles = node->molecule->alch_unpert_angles;
423  Dihedral *unpert_dihedrals = node->molecule->alch_unpert_dihedrals;
424 
425  // cycle through each patch and gather all tuples
427 
428  for ( ai = ai.begin(); ai != ai.end(); ai++ )
429  {
430  // CompAtom *atom = (*ai).x;
431  Patch *patch = (*ai).p;
432  int numAtoms = patch->getNumAtoms();
433  CompAtomExt *atomExt = (*ai).xExt; //patch->getCompAtomExtInfo();
434 
435  // cycle through each atom in the patch and load up tuples
436  for (int j=0; j < numAtoms; j++)
437  {
438  /* cycle through each tuple */
439  #ifdef MEM_OPT_VERSION
440  typename ElemTraits<T>::signature *thisAtomSig =
441  &allSigs[ElemTraits<T>::get_sig_id(atomExt[j])];
442  TupleSignature *allTuples;
443  T::getTupleInfo(thisAtomSig, &numTuples, &allTuples);
444  for(int k=0; k<numTuples; k++) {
445  T t(atomExt[j].id, &allTuples[k], tupleValues);
446  #else
447  /* get list of all tuples for the atom */
448  int32 *curTuple = tuplesByAtom[atomExt[j].id];
449  for( ; *curTuple != -1; ++curTuple) {
450  T t(&tupleStructs[*curTuple],tupleValues);
451  #endif
452  register int i;
453  aid[0] = atomMap->localID(t.atomID[0]);
454  int homepatch = aid[0].pid;
455  int samepatch = 1;
456  partition[0] = fepOn ? node->molecule->get_fep_type(t.atomID[0]) : 0;
457  int has_les = lesOn ? node->molecule->get_fep_type(t.atomID[0]) : 0;
458  int has_ss = soluteScalingOn ? node->molecule->get_ss_type(t.atomID[0]) : 0;
459  int is_fep_ss = partition[0] > 2;
460  int is_fep_sd = 0;
461  int fep_tuple_type = 0;
462  for (i=1; i < T::size; i++) {
463  aid[i] = atomMap->localID(t.atomID[i]);
464  samepatch = samepatch && ( homepatch == aid[i].pid );
465  partition[i] = fepOn ? node->molecule->get_fep_type(t.atomID[i]) : 0;
466  has_les |= lesOn ? node->molecule->get_fep_type(t.atomID[i]) : 0;
467  has_ss |= soluteScalingOn ? node->molecule->get_ss_type(t.atomID[i]) : 0;
468  if (fepOn) {
469  is_fep_ss &= partition[i] > 2;
470  is_fep_sd |= (abs(partition[i] - partition[0]) == 2);
471  fep_tuple_type = partition[i];
472  }
473  }
474  if (sdScaling && is_fep_sd) {
475  for (i=0; i < num_unpert_bonds; i++) {
476  if (T::size == 2
477  && t.atomID[0]==unpert_bonds[i].atom1
478  && t.atomID[1]==unpert_bonds[i].atom2) is_fep_sd = 0;
479  }
480  for (i=0; i < num_unpert_angles; i++) {
481  if (T::size == 3
482  && t.atomID[0]==unpert_angles[i].atom1
483  && t.atomID[1]==unpert_angles[i].atom2
484  && t.atomID[2]==unpert_angles[i].atom3) is_fep_sd = 0;
485  }
486  for (i=0; i < num_unpert_dihedrals; i++) {
487  if (T::size == 4
488  && t.atomID[0]==unpert_dihedrals[i].atom1
489  && t.atomID[1]==unpert_dihedrals[i].atom2
490  && t.atomID[2]==unpert_dihedrals[i].atom3
491  && t.atomID[3]==unpert_dihedrals[i].atom4) is_fep_sd = 0;
492  }
493  }
494  if (T::size < 4 && !soluteScalingAll) has_ss = false;
495  if ( samepatch ) continue;
496  t.scale = (!has_les && !has_ss) ? 1.0 : ( has_les ? invLesFactor : soluteScalingFactor );
497  if (is_fep_ss) t.scale = (fep_tuple_type == 4) ? OneMinusLambda : Lambda;
498  if (is_fep_sd && sdScaling) t.scale = (fep_tuple_type == 4 || fep_tuple_type == 2) ? OneMinusLambda : Lambda;
499 
500  for (i=1; i < T::size; i++) {
501  homepatch = patchMap->downstream(homepatch,aid[i].pid);
502  }
503  if ( homepatch != notUsed && isBasePatch[homepatch] ) {
504  TuplePatchElem *p;
505  for (i=0; i < T::size; i++) {
506  t.p[i] = p = tuplePatchList.find(TuplePatchElem(aid[i].pid));
507  if ( ! p ) {
508  #ifdef MEM_OPT_VERSION
509  iout << iWARN << "Tuple with atoms ";
510  #else
511  iout << iWARN << "Tuple " << *curTuple << " with atoms ";
512  #endif
513  int erri;
514  for( erri = 0; erri < T::size; erri++ ) {
515  iout << t.atomID[erri] << "(" << aid[erri].pid << ") ";
516  }
517  iout << "missing patch " << aid[i].pid << "\n" << endi;
518  break;
519  }
520  t.localIndex[i] = aid[i].index;
521  }
522  if ( ! p ) continue;
523  #ifdef MEM_OPT_VERSION
524  //avoid adding Tuples whose atoms are all fixed
525  if(node->simParameters->fixedAtomsOn &&
527  int allfixed = 1;
528  for(i=0; i<T::size; i++){
529  CompAtomExt *one = &(t.p[i]->xExt[aid[i].index]);
530  allfixed = allfixed & one->atomFixed;
531  }
532  if(!allfixed) tupleList.add(t);
533  }else{
534  tupleList.add(t);
535  }
536  #else
537  tupleList.add(t);
538  #endif
539  }
540  }
541  }
542  }
543  }
static Node * Object()
Definition: Node.h:86
Elem * find(const Elem &elem)
Definition: UniqueSet.h:60
int num_alch_unpert_Dihedrals
Definition: Molecule.h:604
int getNumAtoms() const
Definition: Patch.h:105
Definition: Node.h:78
static void partition(int *order, const FullAtom *atoms, int begin, int end)
Definition: SortAtoms.C:45
Angle * alch_unpert_angles
Definition: Molecule.h:606
SimParameters * simParameters
Definition: Node.h:181
int num_alch_unpert_Bonds
Definition: Molecule.h:602
float Real
Definition: common.h:118
int32_t int32
Definition: common.h:38
std::ostream & endi(std::ostream &s)
Definition: InfoStream.C:54
int downstream(int pid1, int pid2)
Definition: PatchMap.inl:51
TuplePatchList tuplePatchList
std::ostream & iWARN(std::ostream &s)
Definition: InfoStream.C:82
int num_alch_unpert_Angles
Definition: Molecule.h:603
unsigned char get_ss_type(int anum) const
Definition: Molecule.h:1448
#define iout
Definition: InfoStream.h:51
int add(const Elem &elem)
Definition: ResizeArray.h:101
BigReal alchLambda
Dihedral * alch_unpert_dihedrals
Definition: Molecule.h:607
Definition: Patch.h:35
void resize(int i)
Definition: ResizeArray.h:84
int32 index
Definition: NamdTypes.h:300
uint32 id
Definition: NamdTypes.h:160
BigReal soluteScalingFactor
int Bool
Definition: common.h:142
CompAtomList p
Definition: Patch.h:153
LocalID localID(AtomID id)
Definition: AtomMap.h:78
Bond * alch_unpert_bonds
Definition: Molecule.h:605
PatchID pid
Definition: NamdTypes.h:299
unsigned char get_fep_type(int anum) const
Definition: Molecule.h:1437
Parameters * parameters
Definition: Node.h:180
ResizeArray< T > tupleList
uint32 atomFixed
Definition: NamdTypes.h:162
Molecule * molecule
Definition: Node.h:179
double BigReal
Definition: common.h:123

Member Data Documentation

◆ accelMDdoDihe

template<class T, class S, class P>
int ComputeHomeTuples< T, S, P >::accelMDdoDihe
protected

Definition at line 561 of file ComputeHomeTuples.h.

◆ atomMap

template<class T, class S, class P>
AtomMap* ComputeHomeTuples< T, S, P >::atomMap
protected

Definition at line 559 of file ComputeHomeTuples.h.

◆ doLoadTuples

template<class T, class S, class P>
int ComputeHomeTuples< T, S, P >::doLoadTuples
protected

Definition at line 546 of file ComputeHomeTuples.h.

◆ isBasePatch

template<class T, class S, class P>
char* ComputeHomeTuples< T, S, P >::isBasePatch
protected

Definition at line 565 of file ComputeHomeTuples.h.

◆ patchMap

template<class T, class S, class P>
PatchMap* ComputeHomeTuples< T, S, P >::patchMap
protected

Definition at line 558 of file ComputeHomeTuples.h.

◆ pressureProfileData

template<class T, class S, class P>
BigReal* ComputeHomeTuples< T, S, P >::pressureProfileData
protected

Definition at line 563 of file ComputeHomeTuples.h.

◆ pressureProfileReduction

template<class T, class S, class P>
SubmitReduction* ComputeHomeTuples< T, S, P >::pressureProfileReduction
protected

Definition at line 562 of file ComputeHomeTuples.h.

◆ pressureProfileSlabs

template<class T, class S, class P>
int ComputeHomeTuples< T, S, P >::pressureProfileSlabs
protected

Definition at line 564 of file ComputeHomeTuples.h.

◆ reduction

template<class T, class S, class P>
SubmitReduction* ComputeHomeTuples< T, S, P >::reduction
protected

Definition at line 560 of file ComputeHomeTuples.h.

◆ tupleList

template<class T, class S, class P>
ResizeArray<T> ComputeHomeTuples< T, S, P >::tupleList
protected

Definition at line 554 of file ComputeHomeTuples.h.

◆ tuplePatchList

template<class T, class S, class P>
TuplePatchList ComputeHomeTuples< T, S, P >::tuplePatchList
protected

Definition at line 555 of file ComputeHomeTuples.h.


The documentation for this class was generated from the following file: