Simpatico
v1.10
|
Implementation template for a PairPotential.
This template provides a concrete implementation of the PairPotential base class for a specific nonbonded pair interaction class, representing a specific functional form for the pair potential (e.g., cutoff Lennard-Jones). The template argument Interaction represents the specified pair interaction class (e.g., LJPair for cutoff Lennard-Jones), which is normally a class in the Simp namespace from the src/simp/pair directory.
Definition at line 42 of file PairPotentialImpl.h.
#include <PairPotentialImpl.h>
Public Member Functions | |
PairPotentialImpl (Simulation &simulation) | |
Constructor. More... | |
PairPotentialImpl () | |
Default constructor (for unit testing). More... | |
virtual | ~PairPotentialImpl () |
Destructor. More... | |
virtual void | setNAtomType (int nAtomType) |
Set the maximum number of atom types. More... | |
virtual void | readParameters (std::istream &in) |
Read pair potential interaction and pair list blocks. More... | |
virtual void | loadParameters (Serializable::IArchive &ar) |
Load internal state from an archive. More... | |
virtual void | save (Serializable::OArchive &ar) |
Save internal state to an archive. More... | |
Interaction interface | |
virtual double | pairEnergy (double rsq, int iAtomType, int jAtomType) const |
Return energy for a single pair. More... | |
virtual double | pairForceOverR (double rsq, int iAtomType, int jAtomType) const |
Return force / separation for a single pair. More... | |
void | set (std::string name, int i, int j, double value) |
Modify a pair interaction parameter, identified by a string. More... | |
double | get (std::string name, int i, int j) const |
Get a parameter value, identified by a string. More... | |
virtual double | maxPairCutoff () const |
Return maximum cutoff. More... | |
virtual std::string | interactionClassName () const |
Return pair interaction class name (e.g., "LJPair"). More... | |
const Interaction & | interaction () const |
Return underlying pair interaction object by const reference. More... | |
Interaction & | interaction () |
Return underlying pair interaction object by reference. More... | |
Total Energy, Force and Stress | |
virtual void | computeForces () |
Compute non-bonded pair forces for all atoms in this Simulation. More... | |
virtual void | computeEnergy (MPI::Intracomm &communicator) |
Compute the total nonBonded pair energy for all processors. More... | |
virtual void | computeStress (MPI::Intracomm &communicator) |
Compute the total nonBonded stress for all processors. More... | |
virtual void | computePairEnergies (MPI::Intracomm &communicator) |
Compute total pair energies for all processors Compute nonbonded forces and sress for all processors. More... | |
virtual void | computeForcesAndStress (MPI::Intracomm &communicator) |
Compute nonbonded forces and sress for all processors. More... | |
![]() | |
PairPotential (Simulation &simulation) | |
Constructor. More... | |
PairPotential () | |
Default constructor. More... | |
virtual | ~PairPotential () |
Destructor. More... | |
double | skin () const |
Get value of the pair list skin. More... | |
double | cutoff () const |
Get value of the pair list cutoff (maxPairCutoff + skin). More... | |
int | methodId () const |
Return integer id for algorithm (0=PAIR, 1=CELL, 2=NSQ) More... | |
void | associate (Domain &domain, Boundary &boundary, AtomStorage &storage) |
Associate with related objects. More... | |
void | initialize (const Boundary &maxBoundary, double skin, int pairCapacity) |
Set parameters and allocate memory. More... | |
void | setMethodId (int methodId) |
Set id to specify algorithm for energy, force calculations. More... | |
void | buildCellList () |
Build a cell list. More... | |
void | buildPairList () |
Build the Verlet Pair list. More... | |
DMatrix< double > | pairEnergies () const |
Return total pair energies, from all processors. More... | |
void | unsetPairEnergies () |
Mark pair energy as unknown (nullify). More... | |
void | computeNPair (MPI::Intracomm &communicator) |
Compute twice the number of pairs within the force cutoff. More... | |
int | nPair () const |
Return twice the number of pairs within the specified force cutoff. More... | |
CellList & | cellList () |
Get the CellList by reference. More... | |
PairList & | pairList () |
Get the PairList by reference. More... | |
![]() | |
Potential () | |
Constructor. More... | |
virtual | ~Potential () |
Destructor. More... | |
void | setReverseUpdateFlag (bool reverseUpdateFlag) |
Set flag to identify if reverse communication is enabled. More... | |
bool | reverseUpdateFlag () const |
Get flag to identify if reverse communication is enabled. More... | |
double | energy () const |
Return the total potential, from all processors. More... | |
void | unsetEnergy () |
Mark the energy as unknown (nullify). More... | |
bool | isEnergySet () const |
Is the energy set (known)? More... | |
Tensor | stress () const |
Return the stress tensor. More... | |
double | pressure () const |
Return the pressure. More... | |
void | unsetStress () |
Mark the stress as unknown (nullify). More... | |
bool | isStressSet () const |
Is the stress set (known)? More... | |
virtual bool | isValid (MPI::Intracomm &communicator) const |
Is the potential in a valid internal state? More... | |
![]() | |
ParamComposite () | |
Constructor. More... | |
ParamComposite (const ParamComposite &other) | |
Copy constructor. More... | |
ParamComposite (int capacity) | |
Constructor. More... | |
virtual | ~ParamComposite () |
Virtual destructor. More... | |
void | resetParam () |
Resets ParamComposite to its empty state. More... | |
virtual void | readParam (std::istream &in) |
Read the parameter file block. More... | |
virtual void | readParamOptional (std::istream &in) |
Read optional parameter file block. More... | |
virtual void | writeParam (std::ostream &out) |
Write all parameters to an output stream. More... | |
virtual void | load (Serializable::IArchive &ar) |
Load all parameters from an input archive. More... | |
virtual void | loadOptional (Serializable::IArchive &ar) |
Load an optional ParamComposite. More... | |
void | saveOptional (Serializable::OArchive &ar) |
Saves isActive flag, and then calls save() iff isActive is true. More... | |
void | readParamComposite (std::istream &in, ParamComposite &child, bool next=true) |
Add and read a required child ParamComposite. More... | |
void | readParamCompositeOptional (std::istream &in, ParamComposite &child, bool next=true) |
Add and attempt to read an optional child ParamComposite. More... | |
template<typename Type > | |
ScalarParam< Type > & | read (std::istream &in, const char *label, Type &value) |
Add and read a new required ScalarParam < Type > object. More... | |
template<typename Type > | |
ScalarParam< Type > & | readOptional (std::istream &in, const char *label, Type &value) |
Add and read a new optional ScalarParam < Type > object. More... | |
template<typename Type > | |
CArrayParam< Type > & | readCArray (std::istream &in, const char *label, Type *value, int n) |
Add and read a required C array parameter. More... | |
template<typename Type > | |
CArrayParam< Type > & | readOptionalCArray (std::istream &in, const char *label, Type *value, int n) |
Add and read an optional C array parameter. More... | |
template<typename Type > | |
DArrayParam< Type > & | readDArray (std::istream &in, const char *label, DArray< Type > &array, int n) |
Add and read a required DArray < Type > parameter. More... | |
template<typename Type > | |
DArrayParam< Type > & | readOptionalDArray (std::istream &in, const char *label, DArray< Type > &array, int n) |
Add and read an optional DArray < Type > parameter. More... | |
template<typename Type , int N> | |
FArrayParam< Type, N > & | readFArray (std::istream &in, const char *label, FArray< Type, N > &array) |
Add and read a required FArray < Type, N > array parameter. More... | |
template<typename Type , int N> | |
FArrayParam< Type, N > & | readOptionalFArray (std::istream &in, const char *label, FArray< Type, N > &array) |
Add and read an optional FArray < Type, N > array parameter. More... | |
template<typename Type > | |
CArray2DParam< Type > & | readCArray2D (std::istream &in, const char *label, Type *value, int m, int n, int np) |
Add and read a required CArray2DParam < Type > 2D C-array. More... | |
template<typename Type > | |
CArray2DParam< Type > & | readOptionalCArray2D (std::istream &in, const char *label, Type *value, int m, int n, int np) |
Add and read an optional CArray2DParam < Type > 2D C-array parameter. More... | |
template<typename Type > | |
DMatrixParam< Type > & | readDMatrix (std::istream &in, const char *label, DMatrix< Type > &matrix, int m, int n) |
Add and read a required DMatrix < Type > matrix parameter. More... | |
template<typename Type > | |
DMatrixParam< Type > & | readOptionalDMatrix (std::istream &in, const char *label, DMatrix< Type > &matrix, int m, int n) |
Add and read an optional DMatrix < Type > matrix parameter. More... | |
template<typename Type > | |
DSymmMatrixParam< Type > & | readDSymmMatrix (std::istream &in, const char *label, DMatrix< Type > &matrix, int n) |
Add and read a required symmetrix DMatrix. More... | |
template<typename Type > | |
DSymmMatrixParam< Type > & | readOptionalDSymmMatrix (std::istream &in, const char *label, DMatrix< Type > &matrix, int n) |
Add and read an optional DMatrix matrix parameter. More... | |
Begin & | readBegin (std::istream &in, const char *label, bool isRequired=true) |
Add and read a class label and opening bracket. More... | |
End & | readEnd (std::istream &in) |
Add and read the closing bracket. More... | |
Blank & | readBlank (std::istream &in) |
Add and read a new Blank object, representing a blank line. More... | |
void | loadParamComposite (Serializable::IArchive &ar, ParamComposite &child, bool next=true) |
Add and load a required child ParamComposite. More... | |
void | loadParamCompositeOptional (Serializable::IArchive &ar, ParamComposite &child, bool next=true) |
Add and load an optional child ParamComposite if isActive. More... | |
template<typename Type > | |
ScalarParam< Type > & | loadParameter (Serializable::IArchive &ar, const char *label, Type &value, bool isRequired) |
Add and load a new ScalarParam < Type > object. More... | |
template<typename Type > | |
ScalarParam< Type > & | loadParameter (Serializable::IArchive &ar, const char *label, Type &value) |
Add and load new required ScalarParam < Type > object. More... | |
template<typename Type > | |
CArrayParam< Type > & | loadCArray (Serializable::IArchive &ar, const char *label, Type *value, int n, bool isRequired) |
Add a C array parameter and load its elements. More... | |
template<typename Type > | |
CArrayParam< Type > & | loadCArray (Serializable::IArchive &ar, const char *label, Type *value, int n) |
Add and load a required CArrayParam< Type > array parameter. More... | |
template<typename Type > | |
DArrayParam< Type > & | loadDArray (Serializable::IArchive &ar, const char *label, DArray< Type > &array, int n, bool isRequired) |
Add an load a DArray < Type > array parameter. More... | |
template<typename Type > | |
DArrayParam< Type > & | loadDArray (Serializable::IArchive &ar, const char *label, DArray< Type > &array, int n) |
Add and load a required DArray< Type > array parameter. More... | |
template<typename Type , int N> | |
FArrayParam< Type, N > & | loadFArray (Serializable::IArchive &ar, const char *label, FArray< Type, N > &array, bool isRequired) |
Add and load an FArray < Type, N > fixed-size array parameter. More... | |
template<typename Type , int N> | |
FArrayParam< Type, N > & | loadFArray (Serializable::IArchive &ar, const char *label, FArray< Type, N > &array) |
Add and load a required FArray < Type > array parameter. More... | |
template<typename Type > | |
CArray2DParam< Type > & | loadCArray2D (Serializable::IArchive &ar, const char *label, Type *value, int m, int n, int np, bool isRequired) |
Add and load a CArray2DParam < Type > C 2D array parameter. More... | |
template<typename Type > | |
CArray2DParam< Type > & | loadCArray2D (Serializable::IArchive &ar, const char *label, Type *value, int m, int n, int np) |
Add and load a required < Type > matrix parameter. More... | |
template<typename Type > | |
DMatrixParam< Type > & | loadDMatrix (Serializable::IArchive &ar, const char *label, DMatrix< Type > &matrix, int m, int n, bool isRequired) |
Add and load a DMatrixParam < Type > matrix parameter. More... | |
template<typename Type > | |
DMatrixParam< Type > & | loadDMatrix (Serializable::IArchive &ar, const char *label, DMatrix< Type > &matrix, int m, int n) |
Add and load a required DMatrixParam < Type > matrix parameter. More... | |
template<typename Type > | |
DSymmMatrixParam< Type > & | loadDSymmMatrix (Serializable::IArchive &ar, const char *label, DMatrix< Type > &matrix, int n, bool isRequired) |
Add and load a symmetric DSymmMatrixParam < Type > matrix parameter. More... | |
template<typename Type > | |
DSymmMatrixParam< Type > & | loadDSymmMatrix (Serializable::IArchive &ar, const char *label, DMatrix< Type > &matrix, int n) |
Add and load a required DSymmMatrixParam < Type > matrix parameter. More... | |
void | addParamComposite (ParamComposite &child, bool next=true) |
Add a child ParamComposite object to the format array. More... | |
Begin & | addBegin (const char *label) |
Add a Begin object representing a class name and bracket. More... | |
End & | addEnd () |
Add a closing bracket. More... | |
Blank & | addBlank () |
Create and add a new Blank object, representing a blank line. More... | |
std::string | className () const |
Get class name string. More... | |
bool | isRequired () const |
Is this ParamComposite required in the input file? More... | |
bool | isActive () const |
Is this parameter active? More... | |
![]() | |
virtual | ~ParamComponent () |
Destructor. More... | |
void | setIndent (const ParamComponent &parent, bool next=true) |
Set indent level. More... | |
std::string | indent () const |
Return indent string for this object (string of spaces). More... | |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int version) |
Serialize this ParamComponent as a string. More... | |
![]() | |
virtual | ~Serializable () |
Destructor. More... | |
![]() | |
MpiFileIo () | |
Constructor. More... | |
MpiFileIo (const MpiFileIo &other) | |
Copy constructor. More... | |
bool | isIoProcessor () const |
Can this processor do file I/O ? More... | |
void | setIoCommunicator (MPI::Intracomm &communicator) |
Set the communicator. More... | |
void | clearCommunicator () |
Clear (nullify) the communicator. More... | |
bool | hasIoCommunicator () const |
Does this object have an associated MPI communicator? More... | |
MPI::Intracomm & | ioCommunicator () const |
Get the MPI communicator by reference. More... | |
Additional Inherited Members | |
![]() | |
typedef BinaryFileOArchive | OArchive |
Type of output archive used by save method. More... | |
typedef BinaryFileIArchive | IArchive |
Type of input archive used by load method. More... | |
![]() | |
static void | initStatic () |
Initialize static echo member to false. More... | |
static void | setEcho (bool echo=true) |
Enable or disable echoing for all subclasses of ParamComponent. More... | |
static bool | echo () |
Get echo parameter. More... | |
![]() | |
Boundary & | boundary () |
Get the PairList by const reference. More... | |
Domain & | domain () |
Get the PairList by const reference. More... | |
AtomStorage & | storage () |
Get the AtomStorage by reference. More... | |
void | setPairEnergies (DMatrix< double > pairEnergies) |
Set values for pair energies. More... | |
![]() | |
void | setEnergy (double energy) |
Set a value for the total energy. More... | |
void | setStress (const Tensor &stress) |
Set a value for the total stress. More... | |
void | incrementPairStress (const Vector &f, const Vector &dr, Tensor &stress) const |
Add a pair contribution to the stress tensor. More... | |
void | reduceEnergy (double localEnergy, MPI::Intracomm &communicator) |
Add local energies from all processors, set energy on master. More... | |
void | reduceStress (Tensor &localStress, MPI::Intracomm &communicator) |
Add local stresses from all processors, set total on master. More... | |
![]() | |
void | setClassName (const char *className) |
Set class name string. More... | |
void | setIsRequired (bool isRequired) |
Set or unset the isActive flag. More... | |
void | setIsActive (bool isActive) |
Set or unset the isActive flag. More... | |
void | setParent (ParamComponent ¶m, bool next=true) |
Set this to the parent of a child component. More... | |
void | addComponent (ParamComponent ¶m, bool isLeaf=true) |
Add a new ParamComponent object to the format array. More... | |
template<typename Type > | |
ScalarParam< Type > & | add (std::istream &in, const char *label, Type &value, bool isRequired=true) |
Add a new required ScalarParam < Type > object. More... | |
template<typename Type > | |
CArrayParam< Type > & | addCArray (std::istream &in, const char *label, Type *value, int n, bool isRequired=true) |
Add (but do not read) a required C array parameter. More... | |
template<typename Type > | |
DArrayParam< Type > & | addDArray (std::istream &in, const char *label, DArray< Type > &array, int n, bool isRequired=true) |
Add (but do not read) a DArray < Type > parameter. More... | |
template<typename Type , int N> | |
FArrayParam< Type, N > & | addFArray (std::istream &in, const char *label, FArray< Type, N > &array, bool isRequired=true) |
Add (but do not read) a FArray < Type, N > array parameter. More... | |
template<typename Type > | |
CArray2DParam< Type > & | addCArray2D (std::istream &in, const char *label, Type *value, int m, int n, int np, bool isRequired=true) |
Add (but do not read) a CArray2DParam < Type > 2D C-array. More... | |
template<typename Type > | |
DMatrixParam< Type > & | addDMatrix (std::istream &in, const char *label, DMatrix< Type > &matrix, int m, int n, bool isRequired=true) |
Add and read a required DMatrix < Type > matrix parameter. More... | |
![]() | |
ParamComponent () | |
Constructor. More... | |
ParamComponent (const ParamComponent &other) | |
Copy constructor. More... | |
![]() | |
CellList | cellList_ |
CellList to construct PairList or calculate nonbonded pair forces. More... | |
PairList | pairList_ |
Verlet pair list, to calculate nonbonded pair forces. More... | |
Boundary | maxBoundary_ |
Boundary used to allocate space for the cell list. More... | |
double | skin_ |
Difference between pairlist cutoff and pair potential cutoff. More... | |
double | cutoff_ |
Minimum cell size = pair potential cutoff + skin. More... | |
int | nCellCut_ |
Approximate number of cells per cutoff distance in each direction. More... | |
int | pairCapacity_ |
Maximum number of nonbonded pairs in pair list. More... | |
DdMd::PairPotentialImpl< Interaction >::PairPotentialImpl | ( | Simulation & | simulation | ) |
Constructor.
Sets nNAtomType to simulation.nAtomType().
simulation | parent Simulation object. |
Definition at line 338 of file PairPotentialImpl.h.
References DdMd::Simulation::nAtomType(), and DdMd::PairPotentialImpl< Interaction >::setNAtomType().
DdMd::PairPotentialImpl< Interaction >::PairPotentialImpl | ( | ) |
Default constructor (for unit testing).
Definition at line 351 of file PairPotentialImpl.h.
|
virtual |
Destructor.
Definition at line 361 of file PairPotentialImpl.h.
|
virtual |
Set the maximum number of atom types.
This function is required iff the object is instantiated using the default constructor, which is intended for use only for unit testing. It is called internally by the constructor PairPotentialImpl(Simulation& ) that is used during a simulation.
Implements DdMd::PairPotential.
Definition at line 372 of file PairPotentialImpl.h.
References DdMd::PairPotentialImpl< Interaction >::interaction(), and UTIL_CHECK.
Referenced by DdMd::PairPotentialImpl< Interaction >::PairPotentialImpl().
|
virtual |
Read pair potential interaction and pair list blocks.
This method initializes the pair potential. It reads the the maxBoundary, PairList and pair potential Interaction parameter blocks, in that order, and initializes an internal PairList.
in | input parameter stream. |
Reimplemented from DdMd::PairPotential.
Definition at line 383 of file PairPotentialImpl.h.
References Util::ParamComposite::addParamComposite(), DdMd::PairPotentialImpl< Interaction >::interaction(), DdMd::PairPotential::readParameters(), and UTIL_CHECK.
|
virtual |
Load internal state from an archive.
This function initializes the pair potential during a restart.
ar | input/loading archive |
Reimplemented from DdMd::PairPotential.
Definition at line 403 of file PairPotentialImpl.h.
References Util::ParamComposite::addParamComposite(), DdMd::PairPotentialImpl< Interaction >::interaction(), DdMd::PairPotential::loadParameters(), and UTIL_CHECK.
|
virtual |
Save internal state to an archive.
Call only on master processor.
ar | output/saving archive |
Reimplemented from DdMd::PairPotential.
Definition at line 419 of file PairPotentialImpl.h.
References DdMd::PairPotentialImpl< Interaction >::interaction(), and DdMd::PairPotential::save().
|
virtual |
Return energy for a single pair.
rsq | square distance between atoms in pair |
iAtomType | atom type index of 1st atom |
jAtomType | atom type index of 2nd atom |
Implements DdMd::PairPotential.
Definition at line 429 of file PairPotentialImpl.h.
References DdMd::PairPotentialImpl< Interaction >::interaction().
|
virtual |
Return force / separation for a single pair.
rsq | square distance between atoms in pair |
iAtomType | atom type index of 1st atom |
jAtomType | atom type index of 2nd atom |
Implements DdMd::PairPotential.
Definition at line 437 of file PairPotentialImpl.h.
References DdMd::PairPotentialImpl< Interaction >::interaction().
|
inlinevirtual |
Modify a pair interaction parameter, identified by a string.
name | parameter name |
i | type index of first atom |
j | type index of first atom |
value | new value of parameter |
Implements DdMd::PairPotential.
Definition at line 147 of file PairPotentialImpl.h.
|
inlinevirtual |
Get a parameter value, identified by a string.
name | parameter name |
i | type index of first atom |
j | type index of first atom |
Implements DdMd::PairPotential.
Definition at line 157 of file PairPotentialImpl.h.
|
virtual |
Return maximum cutoff.
Implements DdMd::PairPotential.
Definition at line 451 of file PairPotentialImpl.h.
References DdMd::PairPotentialImpl< Interaction >::interaction().
|
virtual |
Return pair interaction class name (e.g., "LJPair").
Implements DdMd::PairPotential.
Definition at line 458 of file PairPotentialImpl.h.
References DdMd::PairPotentialImpl< Interaction >::interaction().
|
inline |
Return underlying pair interaction object by const reference.
Definition at line 173 of file PairPotentialImpl.h.
Referenced by DdMd::PairPotentialImpl< Interaction >::interactionClassName(), DdMd::PairPotentialImpl< Interaction >::loadParameters(), DdMd::PairPotentialImpl< Interaction >::maxPairCutoff(), DdMd::PairPotentialImpl< Interaction >::pairEnergy(), DdMd::PairPotentialImpl< Interaction >::pairForceOverR(), DdMd::PairPotentialImpl< Interaction >::readParameters(), DdMd::PairPotentialImpl< Interaction >::save(), and DdMd::PairPotentialImpl< Interaction >::setNAtomType().
|
inline |
Return underlying pair interaction object by reference.
Definition at line 179 of file PairPotentialImpl.h.
|
virtual |
Compute non-bonded pair forces for all atoms in this Simulation.
Adds non-bonded pair forces to the current values of the forces for all atoms in this simulation. Before calculating forces, the method checks if the pair list is current, and rebuilds it if necessary.
Implements DdMd::Potential.
Definition at line 465 of file PairPotentialImpl.h.
References DdMd::PairPotential::methodId().
Referenced by DdMd::PairPotentialImpl< Interaction >::computeForcesAndStress().
|
virtual |
Compute the total nonBonded pair energy for all processors.
Call on all processors.
Implements DdMd::Potential.
Definition at line 483 of file PairPotentialImpl.h.
References DdMd::PairList::begin(), DdMd::CellList::begin(), DdMd::AtomStorage::begin(), DdMd::PairPotential::cellList_, DdMd::Potential::energy(), DdMd::Atom::force(), DdMd::Cell::getNeighbors(), DdMd::PairIterator::getPair(), DdMd::Potential::isEnergySet(), DdMd::Atom::isGhost(), DdMd::PairPotential::methodId(), DdMd::Cell::nAtom(), DdMd::Cell::nextCellPtr(), DdMd::PairIterator::notEnd(), Util::PArrayIterator< Data >::notEnd(), DdMd::PairList::nPair(), DdMd::PairPotential::pairList_, DdMd::Atom::position(), DdMd::Potential::reduceEnergy(), DdMd::Potential::reverseUpdateFlag(), Util::FSArray< Data, Capacity >::size(), Util::Vector::square(), DdMd::PairPotential::storage(), Util::Vector::subtract(), DdMd::Atom::typeId(), and UTIL_THROW.
|
virtual |
Compute the total nonBonded stress for all processors.
Call on all processors.
Reimplemented from DdMd::Potential.
Definition at line 956 of file PairPotentialImpl.h.
References DdMd::PairList::begin(), DdMd::PairPotential::boundary(), DdMd::PairIterator::getPair(), DdMd::Potential::incrementPairStress(), DdMd::Atom::isGhost(), DdMd::Potential::isStressSet(), DdMd::PairIterator::notEnd(), DdMd::PairPotential::pairList_, DdMd::Atom::position(), DdMd::Potential::reduceStress(), DdMd::Potential::reverseUpdateFlag(), Util::Vector::square(), Util::Vector::subtract(), DdMd::Atom::typeId(), Simp::OrthorhombicBoundary::volume(), and Util::Tensor::zero().
|
virtual |
Compute total pair energies for all processors Compute nonbonded forces and sress for all processors.
Call on all processors.
Implements DdMd::PairPotential.
Definition at line 1098 of file PairPotentialImpl.h.
References Util::DMatrix< Data >::allocate(), DdMd::PairList::begin(), DdMd::PairIterator::getPair(), DdMd::Atom::isGhost(), DdMd::PairIterator::notEnd(), DdMd::PairPotential::pairList_, DdMd::Atom::position(), DdMd::Potential::reverseUpdateFlag(), DdMd::PairPotential::setPairEnergies(), Util::Vector::square(), Util::Vector::subtract(), DdMd::Atom::typeId(), and DdMd::PairPotential::unsetPairEnergies().
|
virtual |
Compute nonbonded forces and sress for all processors.
Call on all processors.
Reimplemented from DdMd::Potential.
Definition at line 1023 of file PairPotentialImpl.h.
References DdMd::PairList::begin(), DdMd::PairPotential::boundary(), DdMd::PairPotentialImpl< Interaction >::computeForces(), DdMd::Atom::force(), DdMd::PairIterator::getPair(), DdMd::Potential::incrementPairStress(), DdMd::Atom::isGhost(), DdMd::Potential::isStressSet(), DdMd::PairIterator::notEnd(), DdMd::PairPotential::pairList_, DdMd::Atom::position(), DdMd::Potential::reduceStress(), DdMd::Potential::reverseUpdateFlag(), Util::Vector::square(), Util::Vector::subtract(), DdMd::Atom::typeId(), Simp::OrthorhombicBoundary::volume(), and Util::Tensor::zero().