ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/branches/new_design/OOPSE-3.0/src/restraints/Restraints.hpp
Revision: 1702
Committed: Wed Nov 3 18:00:36 2004 UTC (19 years, 9 months ago) by tim
File size: 2091 byte(s)
Log Message:
ForceFiled get compiled. Still a long way to go ......

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 1702 #include "primitives/StuntDouble.hpp"
14 tim 1492 #include "primitives/Atom.hpp"
15     #include "brains/SimState.hpp"
16 gezelter 1490
17 tim 1492 //#include "brains/SimInfo.hpp"
18     //#include "io/ReadWrite.hpp"
19 gezelter 1490
20     class Restraints{
21    
22     public:
23     Restraints(double lambdaVal, double lambdaExp);
24     ~Restraints();
25    
26     void Calc_rVal(double position[3], int currentMol);
27     void Calc_body_thetaVal(double matrix[3][3], int currentMol);
28     void Calc_body_omegaVal(double matrix[3][3], double zAngle);
29     double Calc_Restraint_Forces(vector<StuntDouble*> vecParticles);
30     void Store_Init_Info(vector<StuntDouble*> vecParticles);
31     void Write_zAngle_File(vector<StuntDouble*> vecParticles);
32     double getVharm();
33    
34     private:
35     char moleculeName[15];
36    
37     int i, j;
38    
39     double scaleLam;
40     double delRx, delRy, delRz;
41     double theta, omega;
42     double vProj0[3];
43     double vProjDist;
44     double uTx, uTy, uTz, vTx, vTy, vTz;
45     double ub0x, ub0y, ub0z, vb0x, vb0y, vb0z;
46     double kTheta, kOmega, kDist;
47     double restraintFrc[3];
48     double restraintTrq[3];
49     double normalize;
50     double dVdrx, dVdry, dVdrz;
51     double dVdux, dVduy, dVduz;
52     double dVdvx, dVdvy, dVdvz;
53     double harmPotent;
54     double lambdaValue;
55     double lambdaK;
56    
57     vector<double> cofmPosX;
58     vector<double> cofmPosY;
59     vector<double> cofmPosZ;
60     vector<double> ubX0;
61     vector<double> uX0;
62     vector<double> ubY0;
63     vector<double> uY0;
64     vector<double> ubZ0;
65     vector<double> uZ0;
66     vector<double> vbX0;
67     vector<double> vX0;
68     vector<double> vbY0;
69     vector<double> vY0;
70     vector<double> vbZ0;
71     vector<double> vZ0;
72    
73     // SimInfo *info; // all the info we'll ever need
74     // Atom **atoms; /* array of atom pointers */
75     // DirectionalAtom* dAtom;
76     // SimInfo *againInfo; // all the info we'll ever need
77    
78     char *token;
79     char fileName[200];
80     char angleName[200];
81     char inLine[1000];
82     char inValue[200];
83     char springName[200];
84     };
85    
86     #endif