OpenMD 3.2
Molecular Dynamics in the Open
Loading...
Searching...
No Matches
OpenMD::ForceMatrixDecomposition Class Reference
Inheritance diagram for OpenMD::ForceMatrixDecomposition:

Public Member Functions

 ForceMatrixDecomposition (SimInfo *info, InteractionManager *iMan)
void distributeInitialData ()
 distributeInitialData is essentially a copy of the older fortran SimulationSetup
void zeroWorkArrays ()
void distributeData ()
void collectIntermediateData ()
void distributeIntermediateData ()
void collectSelfData ()
 Collects information obtained during the post-pair (and embedding functional) loops onto local data structures.
void collectData ()
void buildNeighborList (vector< int > &neighborList, vector< int > &point, vector< Vector3d > &savedPositions)
Vector3d & getGroupVelocityColumn (int cg2)
vector< int > & getAtomsInGroupRow (int cg1)
 returns the list of atoms belonging to this group.
vector< int > & getAtomsInGroupColumn (int cg2)
Vector3d getAtomToGroupVectorRow (int atom1, int cg1)
Vector3d getAtomToGroupVectorColumn (int atom2, int cg2)
RealType & getMassFactorRow (int atom1)
RealType & getMassFactorColumn (int atom2)
Vector3d getIntergroupVector (int cg1, int cg2)
Vector3d getInteratomicVector (int atom1, int atom2)
int & getNAtomsInRow ()
int getTopologicalDistance (int atom1, int atom2)
vector< int > & getExcludesForAtom (int atom1)
bool skipAtomPair (int atom1, int atom2, int cg1, int cg2)
 We need to exclude some overcounted interactions that result from the parallel decomposition.
bool excludeAtomPair (int atom1, int atom2)
 We need to handle the interactions for atoms who are involved in the same rigid body as well as some short range interactions (bonds, bends, torsions) differently from other interactions.
int getGlobalIDRow (int atom1)
int getGlobalIDCol (int atom1)
int getGlobalID (int atom1)
void addForceToAtomRow (int atom1, Vector3d fg)
void addForceToAtomColumn (int atom2, Vector3d fg)
Vector3d & getAtomVelocityColumn (int atom2)
void fillInteractionData (InteractionData &idat, int atom1, int atom2, bool newAtom1=true)
void unpackInteractionData (InteractionData &idat, int atom1, int atom2)
void unpackPrePairData (InteractionData &idat, int atom1, int atom2)
Public Member Functions inherited from OpenMD::ForceDecomposition
 ForceDecomposition (SimInfo *info, InteractionManager *iMan)
virtual void setSnapshot (Snapshot *snap)
virtual potVec getSelfPotential ()
virtual potVec getPairwisePotential ()
virtual potVec getExcludedPotential ()
virtual potVec getSelectedPotential ()
virtual potVec getExcludedSelfPotential ()
virtual potVec getSelectedSelfPotential ()
virtual bool checkNeighborList (vector< Vector3d > savedPositions)
void setCutoffRadius (RealType rCut)
virtual void fillSelfData (SelfData &sdat, int atom)
virtual void unpackSelfData (SelfData &sdat, int atom)
virtual void fillPreForceData (SelfData &sdat, int atom)
virtual void unpackPreForceData (SelfData &sdat, int atom)
virtual void addToHeatFlux (Vector3d hf)
virtual void setHeatFlux (Vector3d hf)

Public Attributes

vector< int > cgRowToGlobal
vector< int > cgColToGlobal

Additional Inherited Members

Protected Attributes inherited from OpenMD::ForceDecomposition
SimInfoinfo_ {nullptr}
SnapshotManagersman_
Snapshotsnap_
ForceFieldff_
InteractionManagerinteractionMan_
int atomStorageLayout_
int rigidBodyStorageLayout_
int cutoffGroupStorageLayout_
bool needVelocities_
bool usePeriodicBoundaryConditions_
RealType skinThickness_
 Verlet neighbor list skin thickness.
RealType rCut_
RealType rList_
RealType rListSq_
vector< int > idents
vector< int > regions
potVec pairwisePot
potVec selfPot
potVec excludedPot
potVec excludedSelfPot
potVec selectedPot
potVec selectedSelfPot
vector< vector< int > > toposForAtom
 The topological distance between two atomic sites is handled via two vector structures for speed.
vector< vector< int > > topoDist
vector< vector< int > > excludesForAtom
vector< vector< int > > groupList_
vector< RealType > massFactors
vector< AtomType * > atypesLocal
vector< Vector3i > cellOffsets_
Vector3i nCells_
vector< vector< int > > cellList_

Detailed Description

Definition at line 62 of file ForceMatrixDecomposition.hpp.

Constructor & Destructor Documentation

◆ ForceMatrixDecomposition()

OpenMD::ForceMatrixDecomposition::ForceMatrixDecomposition ( SimInfo * info,
InteractionManager * iMan )

Definition at line 57 of file ForceMatrixDecomposition.cpp.

◆ ~ForceMatrixDecomposition()

OpenMD::ForceMatrixDecomposition::~ForceMatrixDecomposition ( )

Definition at line 91 of file ForceMatrixDecomposition.cpp.

Member Function Documentation

◆ addForceToAtomColumn()

void OpenMD::ForceMatrixDecomposition::addForceToAtomColumn ( int atom2,
Vector3d fg )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 982 of file ForceMatrixDecomposition.cpp.

◆ addForceToAtomRow()

void OpenMD::ForceMatrixDecomposition::addForceToAtomRow ( int atom1,
Vector3d fg )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 974 of file ForceMatrixDecomposition.cpp.

◆ buildNeighborList()

void OpenMD::ForceMatrixDecomposition::buildNeighborList ( vector< int > & neighborList,
vector< int > & point,
vector< Vector3d > & savedPositions )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 1336 of file ForceMatrixDecomposition.cpp.

◆ collectData()

void OpenMD::ForceMatrixDecomposition::collectData ( )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 579 of file ForceMatrixDecomposition.cpp.

◆ collectIntermediateData()

void OpenMD::ForceMatrixDecomposition::collectIntermediateData ( )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 523 of file ForceMatrixDecomposition.cpp.

◆ collectSelfData()

void OpenMD::ForceMatrixDecomposition::collectSelfData ( )
virtual

Collects information obtained during the post-pair (and embedding functional) loops onto local data structures.

Implements OpenMD::ForceDecomposition.

Definition at line 786 of file ForceMatrixDecomposition.cpp.

References collectSelfData().

Referenced by collectSelfData().

◆ distributeData()

void OpenMD::ForceMatrixDecomposition::distributeData ( )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 459 of file ForceMatrixDecomposition.cpp.

◆ distributeInitialData()

void OpenMD::ForceMatrixDecomposition::distributeInitialData ( )
virtual

distributeInitialData is essentially a copy of the older fortran SimulationSetup

Implements OpenMD::ForceDecomposition.

Definition at line 114 of file ForceMatrixDecomposition.cpp.

References distributeInitialData(), OpenMD::PairList::hasPair(), and OpenMD::ForceDecomposition::toposForAtom.

Referenced by distributeInitialData().

◆ distributeIntermediateData()

void OpenMD::ForceMatrixDecomposition::distributeIntermediateData ( )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 558 of file ForceMatrixDecomposition.cpp.

◆ excludeAtomPair()

bool OpenMD::ForceMatrixDecomposition::excludeAtomPair ( int atom1,
int atom2 )
virtual

We need to handle the interactions for atoms who are involved in the same rigid body as well as some short range interactions (bonds, bends, torsions) differently from other interactions.

We'll still visit the pairwise routines, but with a flag that tells those routines to exclude the pair from direct long range interactions. Some indirect interactions (notably reaction field) must still be handled for these pairs.

Implements OpenMD::ForceDecomposition.

Definition at line 962 of file ForceMatrixDecomposition.cpp.

References excludeAtomPair().

Referenced by excludeAtomPair().

◆ fillInteractionData()

void OpenMD::ForceMatrixDecomposition::fillInteractionData ( InteractionData & idat,
int atom1,
int atom2,
bool newAtom1 = true )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 991 of file ForceMatrixDecomposition.cpp.

◆ getAtomsInGroupColumn()

vector< int > & OpenMD::ForceMatrixDecomposition::getAtomsInGroupColumn ( int cg2)
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 818 of file ForceMatrixDecomposition.cpp.

◆ getAtomsInGroupRow()

vector< int > & OpenMD::ForceMatrixDecomposition::getAtomsInGroupRow ( int cg1)
virtual

returns the list of atoms belonging to this group.

Implements OpenMD::ForceDecomposition.

Definition at line 810 of file ForceMatrixDecomposition.cpp.

References getAtomsInGroupRow().

Referenced by getAtomsInGroupRow().

◆ getAtomToGroupVectorColumn()

Vector3d OpenMD::ForceMatrixDecomposition::getAtomToGroupVectorColumn ( int atom2,
int cg2 )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 867 of file ForceMatrixDecomposition.cpp.

◆ getAtomToGroupVectorRow()

Vector3d OpenMD::ForceMatrixDecomposition::getAtomToGroupVectorRow ( int atom1,
int cg1 )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 854 of file ForceMatrixDecomposition.cpp.

◆ getAtomVelocityColumn()

Vector3d & OpenMD::ForceMatrixDecomposition::getAtomVelocityColumn ( int atom2)
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 846 of file ForceMatrixDecomposition.cpp.

◆ getExcludesForAtom()

vector< int > & OpenMD::ForceMatrixDecomposition::getExcludesForAtom ( int atom1)
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 909 of file ForceMatrixDecomposition.cpp.

◆ getGlobalID()

int OpenMD::ForceMatrixDecomposition::getGlobalID ( int atom1)
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 1650 of file ForceMatrixDecomposition.cpp.

◆ getGlobalIDCol()

int OpenMD::ForceMatrixDecomposition::getGlobalIDCol ( int atom1)
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 1642 of file ForceMatrixDecomposition.cpp.

◆ getGlobalIDRow()

int OpenMD::ForceMatrixDecomposition::getGlobalIDRow ( int atom1)
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 1634 of file ForceMatrixDecomposition.cpp.

◆ getGroupVelocityColumn()

Vector3d & OpenMD::ForceMatrixDecomposition::getGroupVelocityColumn ( int cg2)
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 838 of file ForceMatrixDecomposition.cpp.

◆ getInteratomicVector()

Vector3d OpenMD::ForceMatrixDecomposition::getInteratomicVector ( int atom1,
int atom2 )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 896 of file ForceMatrixDecomposition.cpp.

◆ getIntergroupVector()

Vector3d OpenMD::ForceMatrixDecomposition::getIntergroupVector ( int cg1,
int cg2 )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 826 of file ForceMatrixDecomposition.cpp.

◆ getMassFactorColumn()

RealType & OpenMD::ForceMatrixDecomposition::getMassFactorColumn ( int atom2)
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 888 of file ForceMatrixDecomposition.cpp.

◆ getMassFactorRow()

RealType & OpenMD::ForceMatrixDecomposition::getMassFactorRow ( int atom1)
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 880 of file ForceMatrixDecomposition.cpp.

◆ getNAtomsInRow()

int & OpenMD::ForceMatrixDecomposition::getNAtomsInRow ( )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 799 of file ForceMatrixDecomposition.cpp.

◆ getTopologicalDistance()

int OpenMD::ForceMatrixDecomposition::getTopologicalDistance ( int atom1,
int atom2 )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 330 of file ForceMatrixDecomposition.cpp.

◆ skipAtomPair()

bool OpenMD::ForceMatrixDecomposition::skipAtomPair ( int atom1,
int atom2,
int cg1,
int cg2 )
virtual

We need to exclude some overcounted interactions that result from the parallel decomposition.

Implements OpenMD::ForceDecomposition.

Definition at line 918 of file ForceMatrixDecomposition.cpp.

References skipAtomPair().

Referenced by skipAtomPair().

◆ unpackInteractionData()

void OpenMD::ForceMatrixDecomposition::unpackInteractionData ( InteractionData & idat,
int atom1,
int atom2 )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 1223 of file ForceMatrixDecomposition.cpp.

◆ unpackPrePairData()

void OpenMD::ForceMatrixDecomposition::unpackPrePairData ( InteractionData & idat,
int atom1,
int atom2 )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 1305 of file ForceMatrixDecomposition.cpp.

◆ zeroWorkArrays()

void OpenMD::ForceMatrixDecomposition::zeroWorkArrays ( )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 337 of file ForceMatrixDecomposition.cpp.

Member Data Documentation

◆ cgColToGlobal

vector<int> OpenMD::ForceMatrixDecomposition::cgColToGlobal

Definition at line 176 of file ForceMatrixDecomposition.hpp.

◆ cgRowToGlobal

vector<int> OpenMD::ForceMatrixDecomposition::cgRowToGlobal

Definition at line 175 of file ForceMatrixDecomposition.hpp.


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