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, 8 months ago) by tim
File size: 2091 byte(s)
Log Message:
ForceFiled get compiled. Still a long way to go ......

File Contents

# Content
1 /* 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 #include "primitives/StuntDouble.hpp"
14 #include "primitives/Atom.hpp"
15 #include "brains/SimState.hpp"
16
17 //#include "brains/SimInfo.hpp"
18 //#include "io/ReadWrite.hpp"
19
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