1 #ifndef MCMD_MC_PAIR_POTENTIAL_H 2 #define MCMD_MC_PAIR_POTENTIAL_H 11 #include <util/param/ParamComposite.h> 12 #include <mcMd/simulation/SystemInterface.h> 13 #include <mcMd/potentials/pair/PairPotential.h> 14 #include <mcMd/neighbor/CellList.h> 55 virtual double atomEnergy(
const Atom& atom)
const = 0;
69 virtual double moleculeEnergy(
const Molecule& molecule)
const = 0;
90 void addAtom(
Atom& atom);
97 void deleteAtom(
Atom& atom);
107 void updateAtomCell(
Atom &atom);
119 void moveAtom(
Atom& atom,
const Vector &position);
142 { cellList_.addAtom(atom); }
146 { cellList_.deleteAtom(atom); }
150 { cellList_.updateAtomCell(atom, atom.
position()); }
156 cellList_.updateAtomCell(atom, position);
161 {
return cellList_; }
A Vector is a Cartesian vector.
An interface to a System.
const CellList & cellList() const
Get the cellList by const reference.
void addAtom(Atom &atom)
Add an Atom to the CellList.
void moveAtom(Atom &atom, const Vector &position)
Move an Atom position, and update the CellList.
A PairPotential for MC simulations (abstract).
A set of interacting Molecules enclosed by a Boundary.
File containing preprocessor macros for error handling.
CellList::NeighborArray neighbors_
Array to hold neighbors returned by a CellList.
CellList cellList_
Cell list for atom positions.
A point particle within a Molecule.
Utility classes for scientific computation.
A cell list for Atom objects in a periodic system boundary.
Single-processor Monte Carlo (MC) and molecular dynamics (MD).
Interface for a Pair Potential.
A physical molecule (a set of covalently bonded Atoms).
const Vector & position() const
Get the position Vector by const reference.
An object that can read multiple parameters from file.
void deleteAtom(Atom &atom)
Remove an Atom from the CellList.
void updateAtomCell(Atom &atom)
Update the cell list to reflect a new position.