ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/ExtendedSystem.hpp
Revision: 483
Committed: Wed Apr 9 04:06:43 2003 UTC (21 years, 3 months ago) by gezelter
File size: 1384 byte(s)
Log Message:
fixes for NPT and NVT

File Contents

# Content
1 #ifndef _EXTENDEDSYSTEM_H_
2 #define _EXTENDEDSYSTEM_H_
3
4 #include <math.h>
5
6 #include "Atom.hpp"
7 #include "Molecule.hpp"
8 #include "SimInfo.hpp"
9
10 class ExtendedSystem{
11 public:
12
13 ExtendedSystem(SimInfo* the_entry_plug);
14 virtual ~ExtendedSystem() {}
15
16 void setQmass(double q) {qmass = q; have_qmass = 1;}
17 void setTauThermostat(double tt) {tauThermostat = tt; have_tau_thermostat=1;}
18 void setTauBarostat(double tt) {tauBarostat = tt; have_tau_barostat = 1;}
19 void setTargetTemp(double tt) {targetTemp = tt; have_target_temp = 1;}
20 void setTargetPressure(double tp) {targetPressure=tp;have_target_pressure=1;}
21
22 void NoseHooverNVT(double dt, double ke);
23 void NoseHooverAndersonNPT(double dt, double ke, double p_tensor[9]);
24 void AffineTransform(double oldBox[3], double newBox[3]);
25
26 protected:
27
28 SimInfo* entry_plug;
29
30 short int NVTready();
31 short int NPTready();
32
33 //
34 int nAtoms;
35 int nMols;
36 int nOriented;
37 int ndf;
38
39 Molecule* molecules;
40 Atom** atoms;
41
42 // zeta and epsilonDot are propagated
43 double zeta;
44 double epsilonDot;
45
46 // qmass, tauRelax, targetTemp, and targetPressure are parameters that
47 // must be set
48 double qmass;
49 double targetTemp;
50 double targetPressure;
51 double tauThermostat;
52 double tauBarostat;
53
54 short int have_tau_thermostat, have_tau_barostat, have_target_temp;
55 short int have_target_pressure, have_qmass;
56
57 };
58 #endif