OpenMD 3.0
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)
 
Vector3dgetGroupVelocityColumn (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)
 
Vector3dgetAtomVelocityColumn (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< Vector3icellOffsets_
 
Vector3i nCells_
 
vector< vector< int > > cellList_
 

Detailed Description

Definition at line 59 of file ForceMatrixDecomposition.hpp.

Constructor & Destructor Documentation

◆ ForceMatrixDecomposition()

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

Definition at line 54 of file ForceMatrixDecomposition.cpp.

◆ ~ForceMatrixDecomposition()

OpenMD::ForceMatrixDecomposition::~ForceMatrixDecomposition ( )

Definition at line 88 of file ForceMatrixDecomposition.cpp.

Member Function Documentation

◆ addForceToAtomColumn()

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

Implements OpenMD::ForceDecomposition.

Definition at line 979 of file ForceMatrixDecomposition.cpp.

◆ addForceToAtomRow()

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

Implements OpenMD::ForceDecomposition.

Definition at line 971 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 1333 of file ForceMatrixDecomposition.cpp.

◆ collectData()

void OpenMD::ForceMatrixDecomposition::collectData ( )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 576 of file ForceMatrixDecomposition.cpp.

◆ collectIntermediateData()

void OpenMD::ForceMatrixDecomposition::collectIntermediateData ( )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 520 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 783 of file ForceMatrixDecomposition.cpp.

◆ distributeData()

void OpenMD::ForceMatrixDecomposition::distributeData ( )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 456 of file ForceMatrixDecomposition.cpp.

◆ distributeInitialData()

◆ distributeIntermediateData()

void OpenMD::ForceMatrixDecomposition::distributeIntermediateData ( )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 555 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 959 of file ForceMatrixDecomposition.cpp.

◆ fillInteractionData()

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

Implements OpenMD::ForceDecomposition.

Definition at line 988 of file ForceMatrixDecomposition.cpp.

◆ getAtomsInGroupColumn()

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

Implements OpenMD::ForceDecomposition.

Definition at line 815 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 807 of file ForceMatrixDecomposition.cpp.

◆ getAtomToGroupVectorColumn()

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

Implements OpenMD::ForceDecomposition.

Definition at line 864 of file ForceMatrixDecomposition.cpp.

◆ getAtomToGroupVectorRow()

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

Implements OpenMD::ForceDecomposition.

Definition at line 851 of file ForceMatrixDecomposition.cpp.

◆ getAtomVelocityColumn()

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

Implements OpenMD::ForceDecomposition.

Definition at line 843 of file ForceMatrixDecomposition.cpp.

◆ getExcludesForAtom()

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

Implements OpenMD::ForceDecomposition.

Definition at line 906 of file ForceMatrixDecomposition.cpp.

◆ getGlobalID()

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

Implements OpenMD::ForceDecomposition.

Definition at line 1647 of file ForceMatrixDecomposition.cpp.

◆ getGlobalIDCol()

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

Implements OpenMD::ForceDecomposition.

Definition at line 1639 of file ForceMatrixDecomposition.cpp.

◆ getGlobalIDRow()

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

Implements OpenMD::ForceDecomposition.

Definition at line 1631 of file ForceMatrixDecomposition.cpp.

◆ getGroupVelocityColumn()

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

Implements OpenMD::ForceDecomposition.

Definition at line 835 of file ForceMatrixDecomposition.cpp.

◆ getInteratomicVector()

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

Implements OpenMD::ForceDecomposition.

Definition at line 893 of file ForceMatrixDecomposition.cpp.

◆ getIntergroupVector()

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

Implements OpenMD::ForceDecomposition.

Definition at line 823 of file ForceMatrixDecomposition.cpp.

◆ getMassFactorColumn()

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

Implements OpenMD::ForceDecomposition.

Definition at line 885 of file ForceMatrixDecomposition.cpp.

◆ getMassFactorRow()

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

Implements OpenMD::ForceDecomposition.

Definition at line 877 of file ForceMatrixDecomposition.cpp.

◆ getNAtomsInRow()

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

Implements OpenMD::ForceDecomposition.

Definition at line 796 of file ForceMatrixDecomposition.cpp.

◆ getTopologicalDistance()

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

Implements OpenMD::ForceDecomposition.

Definition at line 327 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 915 of file ForceMatrixDecomposition.cpp.

◆ unpackInteractionData()

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

Implements OpenMD::ForceDecomposition.

Definition at line 1220 of file ForceMatrixDecomposition.cpp.

◆ unpackPrePairData()

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

Implements OpenMD::ForceDecomposition.

Definition at line 1302 of file ForceMatrixDecomposition.cpp.

◆ zeroWorkArrays()

void OpenMD::ForceMatrixDecomposition::zeroWorkArrays ( )
virtual

Implements OpenMD::ForceDecomposition.

Definition at line 334 of file ForceMatrixDecomposition.cpp.

Member Data Documentation

◆ cgColToGlobal

vector<int> OpenMD::ForceMatrixDecomposition::cgColToGlobal

Definition at line 173 of file ForceMatrixDecomposition.hpp.

◆ cgRowToGlobal

vector<int> OpenMD::ForceMatrixDecomposition::cgRowToGlobal

Definition at line 172 of file ForceMatrixDecomposition.hpp.


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