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_DATASTRUCTURES_MOLECULE_H_
6#define _MOLECULARDYNAMICS_COUPLING_DATASTRUCTURES_MOLECULE_H_
7
8#include "coupling/interface/Molecule.h"
9#include "tarch/la/Vector.h"
10
11namespace coupling {
12namespace datastructures {
13template <unsigned int dim> class Molecule;
14}
15} // namespace coupling
16
23
24template <unsigned int dim> class coupling::datastructures::Molecule : public coupling::interface::Molecule<dim> {
25public:
33 const double& potentialEnergy)
34 : coupling::interface::Molecule<dim>(), _position(position), _velocity(velocity), _force(force), _potentialEnergy(potentialEnergy) {}
35 Molecule()
36 : coupling::interface::Molecule<dim>(), _position(tarch::la::Vector<dim, double>(0.0)), _velocity(tarch::la::Vector<dim, double>(0.0)),
37 _force(tarch::la::Vector<dim, double>(0.0)), _potentialEnergy(0.0) {}
38
40 virtual ~Molecule() {}
41
47 void setVelocity(const tarch::la::Vector<dim, double>& velocity) { _velocity = velocity; }
48
54 void setPosition(const tarch::la::Vector<dim, double>& position) { _position = position; }
55
63 void setForce(const tarch::la::Vector<dim, double>& force) { _force = force; }
67
70 double getPotentialEnergy() const { return _potentialEnergy; }
73 void setPotentialEnergy(const double& potentialEnergy) { _potentialEnergy = potentialEnergy; }
74
75private:
84};
85
86#endif // _MOLECULARDYNAMICS_COUPLING_DATASTRUCTURES_MOLECULE_H_
molecule representation for coupling component. Dericed from the class coupling::interface::Molecule
Definition Molecule.h:24
double getPotentialEnergy() const
Definition Molecule.h:70
virtual ~Molecule()
Definition Molecule.h:40
tarch::la::Vector< dim, double > _position
Definition Molecule.h:77
tarch::la::Vector< dim, double > _velocity
Definition Molecule.h:79
void setPosition(const tarch::la::Vector< dim, double > &position)
Definition Molecule.h:54
tarch::la::Vector< dim, double > getForce() const
Definition Molecule.h:66
tarch::la::Vector< dim, double > getPosition() const
Definition Molecule.h:51
Molecule(const tarch::la::Vector< dim, double > &position, const tarch::la::Vector< dim, double > &velocity, const tarch::la::Vector< dim, double > &force, const double &potentialEnergy)
Definition Molecule.h:32
double _potentialEnergy
Definition Molecule.h:83
tarch::la::Vector< dim, double > _force
Definition Molecule.h:81
void setVelocity(const tarch::la::Vector< dim, double > &velocity)
Definition Molecule.h:47
tarch::la::Vector< dim, double > getVelocity() const
Definition Molecule.h:44
void setForce(const tarch::la::Vector< dim, double > &force)
Definition Molecule.h:63
void setPotentialEnergy(const double &potentialEnergy)
Definition Molecule.h:73
interface to access a single molecule in the MD simulation.
Definition Molecule.h:23
Definition Vector.h:24
everything necessary for coupling operations, is defined in here
Definition AdditiveMomentumInsertion.h:15
Definition Configuration.h:11