ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/restraints/Restraints.hpp
Revision: 1772
Committed: Tue Nov 23 22:48:31 2004 UTC (19 years, 7 months ago) by chrisfen
File size: 1564 byte(s)
Log Message:
Improvements to restraints

File Contents

# User Rev Content
1 gezelter 1490 /* This is a fun little patch to do molecular restraints for
2     thermodynamic integration of solids. Use only
3     if you really know what you are doing.
4     */
5    
6     #ifndef _RESTRAINTS_H_
7     #define _RESTRAINTS_H_
8    
9     #include <stdlib.h>
10     #include <iostream>
11     #include <vector>
12    
13 tim 1492 #include "primitives/Atom.hpp"
14     #include "brains/SimState.hpp"
15 gezelter 1490
16 tim 1492 //#include "brains/SimInfo.hpp"
17     //#include "io/ReadWrite.hpp"
18 gezelter 1490
19     class Restraints{
20    
21     public:
22     Restraints(double lambdaVal, double lambdaExp);
23     ~Restraints();
24    
25 chrisfen 1772 void Calc_rVal(double position[3], double refPosition[3]);
26     void Calc_body_thetaVal(double matrix[3][3], double refUnit[3]);
27 gezelter 1490 void Calc_body_omegaVal(double matrix[3][3], double zAngle);
28     double Calc_Restraint_Forces(vector<StuntDouble*> vecParticles);
29 chrisfen 1772 // void Store_Init_Info(vector<StuntDouble*> vecParticles);
30     void Write_zAngle_File(vector<StuntDouble*> vecParticles,
31     int currTime,
32     int nIntObj);
33 gezelter 1490 double getVharm();
34    
35     private:
36     char moleculeName[15];
37    
38     int i, j;
39    
40     double scaleLam;
41     double delRx, delRy, delRz;
42     double theta, omega;
43     double vProj0[3];
44     double vProjDist;
45     double uTx, uTy, uTz, vTx, vTy, vTz;
46     double ub0x, ub0y, ub0z, vb0x, vb0y, vb0z;
47     double kTheta, kOmega, kDist;
48     double restraintFrc[3];
49     double restraintTrq[3];
50     double normalize;
51     double dVdrx, dVdry, dVdrz;
52     double dVdux, dVduy, dVduz;
53     double dVdvx, dVdvy, dVdvz;
54     double harmPotent;
55     double lambdaValue;
56     double lambdaK;
57    
58     char *token;
59     char fileName[200];
60     char angleName[200];
61     char inLine[1000];
62     char inValue[200];
63     char springName[200];
64     };
65    
66     #endif