43 |
|
* Basic thermostating via Hoover, Phys.Rev.A, 1985, Vol. 31 (5) 1695-1697 |
44 |
|
* @todo document |
45 |
|
*/ |
46 |
< |
class NVT : public VerlocityVerletIntegrator{ |
46 |
> |
class NVT : public VelocityVerletIntegrator{ |
47 |
|
public: |
48 |
|
NVT(SimInfo* info); |
49 |
|
|
55 |
|
maxIterNum_ = maxIter; |
56 |
|
} |
57 |
|
|
58 |
< |
double getTauThermostat() { |
59 |
< |
return tauThermostat_; |
60 |
< |
} |
61 |
< |
|
62 |
< |
void setTauThermostat(double tt) { |
63 |
< |
tauThermostat_ = tt; |
64 |
< |
} |
58 |
> |
double getTauThermostat() { |
59 |
> |
return tauThermostat_; |
60 |
> |
} |
61 |
|
|
62 |
< |
double getTargetTemp() { |
63 |
< |
return targetTemp_; |
64 |
< |
} |
69 |
< |
|
70 |
< |
void setTargetTemp(double tt) { |
71 |
< |
targetTemp_ = tt; |
72 |
< |
} |
62 |
> |
void setTauThermostat(double tt) { |
63 |
> |
tauThermostat_ = tt; |
64 |
> |
} |
65 |
|
|
66 |
< |
double getChiTolerance() { |
67 |
< |
return chiTolerance_; |
68 |
< |
} |
69 |
< |
|
70 |
< |
void setChiTolerance(double tol) { |
71 |
< |
chiTolerance_ = tol; |
72 |
< |
} |
66 |
> |
double getTargetTemp() { |
67 |
> |
return targetTemp_; |
68 |
> |
} |
69 |
> |
|
70 |
> |
void setTargetTemp(double tt) { |
71 |
> |
targetTemp_ = tt; |
72 |
> |
} |
73 |
> |
|
74 |
> |
double getChiTolerance() { |
75 |
> |
return chiTolerance_; |
76 |
> |
} |
77 |
> |
|
78 |
> |
void setChiTolerance(double tol) { |
79 |
> |
chiTolerance_ = tol; |
80 |
> |
} |
81 |
> |
|
82 |
|
|
83 |
|
protected: |
84 |
|
virtual void moveA(); |
85 |
+ |
|
86 |
|
virtual void moveB(); |
87 |
|
|
88 |
+ |
virtual void doUpdate() ; |
89 |
+ |
|
90 |
|
private: |
91 |
+ |
virtual double calcConservedQuantity(); |
92 |
+ |
|
93 |
|
int maxIterNum_; |
94 |
|
double targetTemp_; |
95 |
|
double tauThermostat_; |
99 |
|
std::vector<Vector3d> oldJi_; |
100 |
|
}; |
101 |
|
|
96 |
– |
Integrator* createNVT(SimInfo* info); |
102 |
|
|
103 |
|
} //end namespace oopse |
104 |
|
|