5#ifndef _MOLECULARDYNAMICS_COUPLING_MDSOLVERINTERFACE_H_
6#define _MOLECULARDYNAMICS_COUPLING_MDSOLVERINTERFACE_H_
14#include "coupling/indexing/IndexingService.h"
15#include "coupling/interface/Molecule.h"
16#include "coupling/interface/MoleculeIterator.h"
17#include "tarch/la/Vector.h"
27 using CellIndex_T = I11;
64 virtual double getKB()
const = 0;
interface to the MD simulation
Definition MDSolverInterface.h:25
virtual tarch::la::Vector< dim, double > getGlobalMDDomainSize() const =0
virtual ~MDSolverInterface()
Definition MDSolverInterface.h:30
virtual coupling::interface::MoleculeIterator< LinkedCell, dim > * getMoleculeIterator(LinkedCell &cell)=0
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 void synchronizeMoleculesAfterMomentumModification()=0
virtual double getMoleculeMass() 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 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 deleteMoleculeFromMDSimulation(const coupling::interface::Molecule< dim > &molecule, LinkedCell &cell)=0
virtual tarch::la::Vector< dim, double > getGlobalMDDomainOffset() const =0
virtual void calculateForceAndEnergy(coupling::interface::Molecule< dim > &molecule)=0
virtual void synchronizeMoleculesAfterMassModification()=0
virtual double getMoleculeSigma() const =0
virtual void addMoleculeToMDSimulation(const coupling::interface::Molecule< dim > &molecule)=0
virtual double getKB() const =0
virtual double getMoleculeEpsilon() const =0
some iterator scheme for traversing the molecules within a linked cell.
Definition MoleculeIterator.h:24
interface to access a single molecule in the MD simulation.
Definition Molecule.h:23
everything necessary for coupling operations, is defined in here
Definition AdditiveMomentumInsertion.h:15