1 #ifndef DDMD_PAIR_POTENTIAL_H 2 #define DDMD_PAIR_POTENTIAL_H 4 #include <ddMd/potentials/Potential.h> 5 #include <ddMd/neighbor/CellList.h> 6 #include <ddMd/neighbor/PairList.h> 7 #include <ddMd/misc/DdTimer.h> 8 #include <simp/boundary/Boundary.h> 13 #define DDMD_PAIR_POTENTIAL_TIMER 96 virtual void setNAtomType(
int nAtomType) = 0;
110 initialize(
const Boundary& maxBoundary,
double skin,
int pairCapacity);
117 void readParameters(std::istream& in);
143 void setMethodId(
int methodId);
158 double pairEnergy(
double rsq,
int iAtomType,
int jAtomType)
const = 0;
169 double pairForceOverR(
double rsq,
int iAtomType,
int jAtomType)
const = 0;
179 virtual void set(std::string name,
int i,
int j,
double value) = 0;
188 virtual double get(std::string name,
int i,
int j)
const = 0;
193 virtual double maxPairCutoff()
const = 0;
198 virtual std::string interactionClassName()
const = 0;
213 void buildCellList();
222 void buildPairList();
232 virtual void computePairEnergies(MPI::Intracomm& communicator) = 0;
234 virtual void computePairEnergies() = 0;
248 void unsetPairEnergies();
260 void computeNPair(MPI::Intracomm& communicator);
293 double cutoff()
const;
298 int methodId()
const;
364 int nPairList(
double cutoffSq);
365 int nPairCell(
double cutoffSq);
366 int nPairNSq(
double cutoffSq);
376 {
return cellList_; }
379 {
return pairList_; }
381 inline double PairPotential::skin()
const 384 inline double PairPotential::cutoff()
const 388 {
return *boundaryPtr_; }
391 {
return *domainPtr_; }
394 {
return *storagePtr_; }
396 inline void PairPotential::setMethodId(
int methodId)
397 { methodId_ = methodId; }
399 inline int PairPotential::methodId()
const 400 {
return methodId_; }
A cell list used only to identify nearby atom pairs.
A Verlet nonbonded pair list.
int nCellCut_
Approximate number of cells per cutoff distance in each direction.
An orthorhombic periodic unit cell.
double skin_
Difference between pairlist cutoff and pair potential cutoff.
Template for a value that can be set or declared null (i.e., unknown).
double cutoff_
Minimum cell size = pair potential cutoff + skin.
File containing preprocessor macros for error handling.
Parallel domain decomposition (DD) MD simulation.
Classes used by all simpatico molecular simulations.
Main object for a domain-decomposition MD simulation.
int pairCapacity_
Maximum number of nonbonded pairs in pair list.
A Potential represents a potential energy contribution.
Saving / output archive for binary ostream.
CellList cellList_
CellList to construct PairList or calculate nonbonded pair forces.
Utility classes for scientific computation.
A container for all the atoms and ghost atoms on this processor.
PairList pairList_
Verlet pair list, to calculate nonbonded pair forces.
Decomposition of the system into domains associated with processors.
Saving archive for binary istream.
Boundary maxBoundary_
Boundary used to allocate space for the cell list.
Abstract base class for computing nonbonded pair forces and energies.