ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/Integrator.hpp
Revision: 541
Committed: Fri May 30 20:19:44 2003 UTC (21 years, 1 month ago) by mmeineke
File size: 1666 byte(s)
Log Message:
added some member variables for position, velocity, etc.

File Contents

# User Rev Content
1 mmeineke 377 #ifndef _INTEGRATOR_H_
2     #define _INTEGRATOR_H_
3    
4     #include "Atom.hpp"
5     #include "SRI.hpp"
6     #include "AbstractClasses.hpp"
7     #include "SimInfo.hpp"
8     #include "ForceFields.hpp"
9 mmeineke 540 #include "Thermo.hpp"
10     #include "ReadWrite.hpp"
11 mmeineke 377
12 mmeineke 540 class Integrator : public BaseIntegrator {
13 mmeineke 377
14     public:
15 mmeineke 540 Symplectic( SimInfo &theInfo, ForceFields* the_ff );
16     virtual ~Symplectic();
17 mmeineke 377 void integrate( void );
18    
19    
20 mmeineke 540 protected:
21 mmeineke 377
22    
23 mmeineke 540 virtual void integrateStep( int calcPot, int calcStress );
24     virtual void moveA( void );
25     virtual void moveB( void );
26     virtual void constrainA( void );
27     virtual void constrainB( void );
28 mmeineke 377
29 mmeineke 540
30     void checkConstraints( void );
31 mmeineke 377 void rotate( int axes1, int axes2, double angle, double j[3],
32     double A[3][3] );
33    
34 mmeineke 540
35 mmeineke 377 ForceFields* myFF;
36    
37 mmeineke 540 SimInfo *info; // all the info we'll ever need
38     int nAtoms; /* the number of atoms */
39     Atom **atoms; /* array of atom pointers */
40 mmeineke 423 Molecule* molecules;
41     int nMols;
42    
43 mmeineke 540 int isConstrained; /*boolean to know whether the systems contains
44     constraints. */
45     int nConstrained; /*counter for number of constraints */
46     int *constrainedI; /* the i of a constraint pair */
47     int *constrainedJ; /* the j of a constraint pair */
48     double *constrainedDsqr; /* the square of the constraint distance */
49     short isFirst; /*boolean for the first time integrate is called */
50    
51     double dt;
52 mmeineke 541 double dt2;
53     const double eConvert;
54 mmeineke 377
55 mmeineke 541
56     double* pos;
57     double* vel;
58     double* frc;
59     double* trq;
60     double* Amat;
61    
62 mmeineke 377
63 mmeineke 541
64 mmeineke 540 Thermo *tStats;
65     StatWriter* statOut;
66     DumpWriter* dumpOut;
67 mmeineke 377
68     };
69    
70 mmeineke 540
71     class NVT : public Integrator{
72    
73     NVT ( void );
74     virtual ~NVT();
75    
76     protected:
77     virtual moveA( void );
78     virtual moveB( void );
79    
80     };
81    
82    
83    
84    
85 mmeineke 377 #endif