ls1-MarDyn
ls1-MarDyn molecular dynamics code
LeapfrogRMM.h
1#ifndef SRC_INTEGRATORS_LEAPFROGRMM_H_
2#define SRC_INTEGRATORS_LEAPFROGRMM_H_
3
4#include "Integrator.h"
5
7
8class LeapfrogRMM : public Integrator {
9public:
11 LeapfrogRMM (double timestepLength);
12 ~~LeapfrogRMM();
13
14 void readXML(XMLfileUnits& xmlconfig);
15
16 void init() {}
17
18 void eventForcesCalculated(ParticleContainer* moleculeContainer, Domain* domain) {
19 computeVelocities(moleculeContainer, domain);
20 }
21
22 void eventNewTimestep(ParticleContainer* moleculeContainer, Domain* domain) {
23 computePositions(moleculeContainer, domain);
24 }
25
26private:
27
28 void computePositions(ParticleContainer* molCont, Domain* dom);
29 void computeVelocities(ParticleContainer* molCont, Domain* dom);
30
31 // unlike the PositionCellProcessor, the VelocityCellProcessor has dynamic data, so keep it.
32 VelocityCellProcessorRMM * _velocityCellProcessor;
33
34};
35
36#endif /* SRC_INTEGRATORS_LEAPFROGRMM_H_ */
37
This class is used to read in the phasespace and to handle macroscopic values.
Definition: Domain.h:47
Update velocities and positions.
Definition: Integrator.h:32
Definition: LeapfrogRMM.h:8
void eventNewTimestep(ParticleContainer *moleculeContainer, Domain *domain)
inform the integrator that the integration should continue
Definition: LeapfrogRMM.h:22
void init()
Definition: LeapfrogRMM.h:16
void eventForcesCalculated(ParticleContainer *moleculeContainer, Domain *domain)
informs the integrator about available forces, who then continues integration
Definition: LeapfrogRMM.h:18
This Interface is used to get access to particles and pairs of particles.
Definition: ParticleContainer.h:69
Definition: VelocityCellProcessorRMM.h:18
XML file with unit attributes abstraction.
Definition: xmlfileUnits.h:25