MaMiCo 1.2
Loading...
Searching...
No Matches
Molecule.h
1// Copyright (C) 2015 Technische Universitaet Muenchen
2// This file is part of the Mamico project. For conditions of distribution
3// and use, please see the copyright notice in Mamico's main folder, or at
4// www5.in.tum.de/mamico
5#ifndef _MOLECULARDYNAMICS_COUPLING_INTERFACE_MOLECULE_H_
6#define _MOLECULARDYNAMICS_COUPLING_INTERFACE_MOLECULE_H_
7
8#include "tarch/la/Vector.h"
9
10namespace coupling {
11namespace interface {
12template <unsigned int dim> class Molecule;
13}
14} // namespace coupling
15
23template <unsigned int dim> class coupling::interface::Molecule {
24public:
26 virtual ~Molecule() {}
27
30
34 virtual void setVelocity(const tarch::la::Vector<dim, double>& velocity) = 0;
35
38
42 virtual void setPosition(const tarch::la::Vector<dim, double>& position) = 0;
43
49 virtual void setForce(const tarch::la::Vector<dim, double>& force) = 0;
50
55
57 virtual double getPotentialEnergy() const = 0;
58
62 virtual void setPotentialEnergy(const double& potentialEnergy) = 0;
63};
64#endif // _MOLECULARDYNAMICS_COUPLING_INTERFACE_MOLECULE_H_
interface to access a single molecule in the MD simulation.
Definition Molecule.h:23
virtual void setForce(const tarch::la::Vector< dim, double > &force)=0
virtual void setPosition(const tarch::la::Vector< dim, double > &position)=0
virtual void setPotentialEnergy(const double &potentialEnergy)=0
virtual void setVelocity(const tarch::la::Vector< dim, double > &velocity)=0
virtual ~Molecule()
Definition Molecule.h:26
virtual double getPotentialEnergy() const =0
virtual tarch::la::Vector< dim, double > getVelocity() const =0
virtual tarch::la::Vector< dim, double > getForce() const =0
virtual tarch::la::Vector< dim, double > getPosition() const =0
Definition Vector.h:24
everything necessary for coupling operations, is defined in here
Definition AdditiveMomentumInsertion.h:15