MaMiCo
1.2
Toggle main menu visibility
Loading...
Searching...
No Matches
coupling
datastructures
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
11
namespace
coupling
{
12
namespace
datastructures {
13
template
<
unsigned
int
dim>
class
Molecule
;
14
}
15
}
// namespace coupling
16
23
24
template
<
unsigned
int
dim>
class
coupling::datastructures::Molecule
:
public
coupling::interface::Molecule
<dim> {
25
public
:
32
Molecule
(
const
tarch::la::Vector<dim, double>
& position,
const
tarch::la::Vector<dim, double>
& velocity,
const
tarch::la::Vector<dim, double>
& force,
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
44
tarch::la::Vector<dim, double>
getVelocity
()
const
{
return
_velocity
; }
47
void
setVelocity
(
const
tarch::la::Vector<dim, double>
& velocity) {
_velocity
= velocity; }
48
51
tarch::la::Vector<dim, double>
getPosition
()
const
{
return
_position
; }
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; }
66
tarch::la::Vector<dim, double>
getForce
()
const
{
return
_force
; }
67
70
double
getPotentialEnergy
()
const
{
return
_potentialEnergy
; }
73
void
setPotentialEnergy
(
const
double
& potentialEnergy) {
_potentialEnergy
= potentialEnergy; }
74
75
private
:
77
tarch::la::Vector<dim, double>
_position
;
79
tarch::la::Vector<dim, double>
_velocity
;
81
tarch::la::Vector<dim, double>
_force
;
83
double
_potentialEnergy
;
84
};
85
86
#endif
// _MOLECULARDYNAMICS_COUPLING_DATASTRUCTURES_MOLECULE_H_
coupling::datastructures::Molecule
molecule representation for coupling component. Dericed from the class coupling::interface::Molecule
Definition
Molecule.h:24
coupling::datastructures::Molecule::getPotentialEnergy
double getPotentialEnergy() const
Definition
Molecule.h:70
coupling::datastructures::Molecule::~Molecule
virtual ~Molecule()
Definition
Molecule.h:40
coupling::datastructures::Molecule::_position
tarch::la::Vector< dim, double > _position
Definition
Molecule.h:77
coupling::datastructures::Molecule::_velocity
tarch::la::Vector< dim, double > _velocity
Definition
Molecule.h:79
coupling::datastructures::Molecule::setPosition
void setPosition(const tarch::la::Vector< dim, double > &position)
Definition
Molecule.h:54
coupling::datastructures::Molecule::getForce
tarch::la::Vector< dim, double > getForce() const
Definition
Molecule.h:66
coupling::datastructures::Molecule::getPosition
tarch::la::Vector< dim, double > getPosition() const
Definition
Molecule.h:51
coupling::datastructures::Molecule::Molecule
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
coupling::datastructures::Molecule::_potentialEnergy
double _potentialEnergy
Definition
Molecule.h:83
coupling::datastructures::Molecule::_force
tarch::la::Vector< dim, double > _force
Definition
Molecule.h:81
coupling::datastructures::Molecule::setVelocity
void setVelocity(const tarch::la::Vector< dim, double > &velocity)
Definition
Molecule.h:47
coupling::datastructures::Molecule::getVelocity
tarch::la::Vector< dim, double > getVelocity() const
Definition
Molecule.h:44
coupling::datastructures::Molecule::setForce
void setForce(const tarch::la::Vector< dim, double > &force)
Definition
Molecule.h:63
coupling::datastructures::Molecule::setPotentialEnergy
void setPotentialEnergy(const double &potentialEnergy)
Definition
Molecule.h:73
coupling::interface::Molecule
interface to access a single molecule in the MD simulation.
Definition
Molecule.h:23
tarch::la::Vector
Definition
Vector.h:25
coupling
everything necessary for coupling operations, is defined in here
Definition
AdditiveMomentumInsertion.h:15
tarch
Definition
Configuration.h:11
Generated by
1.17.0