OpenMD 3.1
Molecular Dynamics in the Open
|
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 | |
SimInfo * | info_ {nullptr} |
SnapshotManager * | sman_ |
Snapshot * | snap_ |
ForceField * | ff_ |
InteractionManager * | interactionMan_ |
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_ |
Definition at line 59 of file ForceMatrixDecomposition.hpp.
OpenMD::ForceMatrixDecomposition::ForceMatrixDecomposition | ( | SimInfo * | info, |
InteractionManager * | iMan ) |
Definition at line 54 of file ForceMatrixDecomposition.cpp.
OpenMD::ForceMatrixDecomposition::~ForceMatrixDecomposition | ( | ) |
Definition at line 88 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 979 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 971 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 1333 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 576 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 520 of file ForceMatrixDecomposition.cpp.
|
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.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 456 of file ForceMatrixDecomposition.cpp.
|
virtual |
distributeInitialData is essentially a copy of the older fortran SimulationSetup
Implements OpenMD::ForceDecomposition.
Definition at line 111 of file ForceMatrixDecomposition.cpp.
References OpenMD::ForceField::getAtomType(), OpenMD::SnapshotManager::getCurrentSnapshot(), OpenMD::SimInfo::getForceField(), OpenMD::SimInfo::getGlobalAtomIndices(), OpenMD::SimInfo::getGlobalGroupIndices(), OpenMD::SimInfo::getNLocalCutoffGroups(), OpenMD::Snapshot::getNumberOfAtoms(), OpenMD::PairList::hasPair(), OpenMD::DataStorage::resize(), OpenMD::DataStorage::setStorageLayout(), and OpenMD::ForceDecomposition::toposForAtom.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 555 of file ForceMatrixDecomposition.cpp.
|
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.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 988 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 815 of file ForceMatrixDecomposition.cpp.
|
virtual |
returns the list of atoms belonging to this group.
Implements OpenMD::ForceDecomposition.
Definition at line 807 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 864 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 851 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 843 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 906 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 1647 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 1639 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 1631 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 835 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 893 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 823 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 885 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 877 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 796 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 327 of file ForceMatrixDecomposition.cpp.
|
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.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 1220 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 1302 of file ForceMatrixDecomposition.cpp.
|
virtual |
Implements OpenMD::ForceDecomposition.
Definition at line 334 of file ForceMatrixDecomposition.cpp.
vector<int> OpenMD::ForceMatrixDecomposition::cgColToGlobal |
Definition at line 173 of file ForceMatrixDecomposition.hpp.
vector<int> OpenMD::ForceMatrixDecomposition::cgRowToGlobal |
Definition at line 172 of file ForceMatrixDecomposition.hpp.