| 1 | #ifndef __THERMO_H__ | 
| 2 | #define __THERMO_H__ | 
| 3 |  | 
| 4 | #include "Atom.hpp" | 
| 5 | #include "SRI.hpp" | 
| 6 | #include "Integrator.hpp" | 
| 7 | #include "SimInfo.hpp" | 
| 8 | #include "randomSPRNG.hpp" | 
| 9 |  | 
| 10 | class Thermo{ | 
| 11 |  | 
| 12 | public: | 
| 13 |  | 
| 14 | Thermo( SimInfo* the_entry_plug ); | 
| 15 | ~Thermo(); | 
| 16 |  | 
| 17 | // note: all the following energies are in kcal/mol | 
| 18 |  | 
| 19 | double getKinetic(); // the total kinetic energy | 
| 20 | double getPotential(); // the total potential energy | 
| 21 | double getTotalE(); // gets the total energy | 
| 22 |  | 
| 23 | double getTemperature(); // gives the instant temp. in K | 
| 24 | double getPressure(); // gives the instant pressure in Pa | 
| 25 |  | 
| 26 | void velocitize(); // set the temperature to the target temp in SimInfo | 
| 27 | // NOTE: srand48 should be seeded before calling. | 
| 28 | private: | 
| 29 | SimInfo* entry_plug; | 
| 30 | gaussianSPRNG *gaussStream; | 
| 31 |  | 
| 32 | }; | 
| 33 | #endif |