|
virtual | ~MDSolverInterface () |
|
virtual LinkedCell & | getLinkedCell (const CellIndex_T &couplingCellIndex, const tarch::la::Vector< dim, unsigned int > &linkedCellInCouplingCell, const tarch::la::Vector< dim, unsigned int > &linkedCellsPerCouplingCell)=0 |
|
virtual tarch::la::Vector< dim, double > | getGlobalMDDomainSize () const =0 |
|
virtual tarch::la::Vector< dim, double > | getGlobalMDDomainOffset () const =0 |
|
virtual double | getMoleculeMass () const =0 |
|
virtual double | getKB () const =0 |
|
virtual double | getMoleculeSigma () const =0 |
|
virtual double | getMoleculeEpsilon () const =0 |
|
virtual void | getInitialVelocity (const tarch::la::Vector< dim, double > &meanVelocity, const double &kB, const double &temperature, tarch::la::Vector< dim, double > &initialVelocity) const =0 |
|
virtual void | deleteMoleculeFromMDSimulation (const coupling::interface::Molecule< dim > &molecule, LinkedCell &cell)=0 |
|
virtual void | addMoleculeToMDSimulation (const coupling::interface::Molecule< dim > &molecule)=0 |
|
virtual void | setupPotentialEnergyLandscape (const tarch::la::Vector< dim, unsigned int > &indexOfFirstCouplingCell, const tarch::la::Vector< dim, unsigned int > &rangeCouplingCells, const tarch::la::Vector< dim, unsigned int > &linkedCellsPerCouplingCell)=0 |
|
virtual tarch::la::Vector< dim, unsigned int > | getLinkedCellIndexForMoleculePosition (const tarch::la::Vector< dim, double > &position)=0 |
|
virtual void | calculateForceAndEnergy (coupling::interface::Molecule< dim > &molecule)=0 |
|
virtual void | synchronizeMoleculesAfterMassModification ()=0 |
|
virtual void | synchronizeMoleculesAfterMomentumModification ()=0 |
|
virtual double | getDt ()=0 |
|
virtual coupling::interface::MoleculeIterator< LinkedCell, dim > * | getMoleculeIterator (LinkedCell &cell)=0 |
|
template<class LinkedCell, unsigned int dim>
class coupling::interface::MDSolverInterface< LinkedCell, dim >
interface to the MD simulation
This class provides
- Template Parameters
-
dim | Number of dimensions; it can be 1, 2 or 3 |
- Author
- Philipp Neumann
template<class LinkedCell, unsigned int dim>
This function specifies a particular linked cell inside a coupling cell. The coupling cells are currently located on the same process as the respective linked cells. However, several linked cells may be part of a coupling cell. The coupling cells also contain a ghost layer which surrounds each local domain; the very first coupling cell inside the global MD domain (or local MD domain) is thus given by coordinates (1,1,1) (or (1,1) in 2D, respectively). The index linkedCellInCouplingCell corresponds to the coordinates of the linked cell inside the given coupling cell. These coordinates thus lie in a range (0,linkedCellsPerCouplingCell-1).
- Parameters
-
couplingCellIndex | |
linkedCellInCouplingCell | |
linkedCellsPerCouplingCell | |
- Returns
- a particular linked cell inside a coupling cell.
template<class LinkedCell, unsigned int dim>
This function is called each time when MaMiCo tried to insert/ delete molecules from the MD simulation. As a consequence, a synchronization between processes or with local boundary data might be necessary. Example: If in the lower left cell of a 2D MD simulation a molecule was inserted and we use periodic boundary conditions, we need to provide the inserted molecule (amongst others) to the upper right cell by adding this molecule to the ghost boundary layer (when using the builtin MD simulation). For the builtin MD simulation, the implementation of this method clears all molecules from the ghost layers and re-fills the ghost layers again.