ls1-MarDyn
ls1-MarDyn molecular dynamics code
VelocityScalingThermostat.h
1#ifndef VELOCITY_SCALING_THERMOSTAT_H
2#define VELOCITY_SCALING_THERMOSTAT_H
3
4#include "particleContainer/ParticleContainer.h"
5
6#include <map>
7
8
10public:
13 void setGlobalBetaTrans(double beta) { _globalBetaTrans = beta; }
14 double getGlobalBetaTrans() { return _globalBetaTrans; }
15 void setGlobalBetaRot(double beta) { _globalBetaRot = beta; }
16 double getGlobalBetaRot() { return _globalBetaRot; }
17 void setGlobalVelocity(double v[3]);
18
19 void enableComponentwise() { _componentwise = true; }
20 void disableComponentwise() { _componentwise = false; }
21
22 void setBetaTrans(int componentId, double beta);
23 double getBetaTrans(int componentId) { return _componentBetaTrans[componentId]; }
24 void setBetaRot(int componentId, double beta);
25 double getBetaRot(int componentId) { return _componentBetaRot[componentId]; }
26 void setVelocity(int componentId, double v[3]);
27 void apply(ParticleContainer *moleculeContainer);
28
29private:
30 double _globalBetaTrans;
31 double _globalBetaRot;
32 double _globalVelocity[3];
33
34 bool _componentwise;
35 bool _useGlobalVelocity;
36 std::map<int, double> _componentBetaTrans;
37 std::map<int, double> _componentBetaRot;
38 std::map<int, double*> _componentVelocity;
39};
40
41#endif /* VELOCITY_SCALING_THERMOSTAT_H */
42
This Interface is used to get access to particles and pairs of particles.
Definition: ParticleContainer.h:69
Definition: VelocityScalingThermostat.h:9