# | Line 36 | Line 36 | class SimInfo{ (public) | |
---|---|---|
36 | unsigned int setTemp; // boolean to set the temperature at each sampleTime | |
37 | ||
38 | unsigned int n_dipoles; // number of dipoles | |
39 | – | double ecr; // the electrostatic cutoff radius |
40 | – | double est; // the electrostatic skin thickness |
41 | – | double dielectric; // the dielectric of the medium for reaction field |
39 | ||
40 | + | |
41 | int n_exclude; // the # of pairs excluded from long range forces | |
42 | Exclude** excludes; // the pairs themselves | |
43 | ||
# | Line 56 | Line 54 | class SimInfo{ (public) | |
54 | ||
55 | double lrPot; // the potential energy from the long range calculations. | |
56 | ||
57 | < | double box_x, box_y, box_z; // the periodic boundry conditions |
58 | < | double rList, rCut; // variables for the neighborlist |
57 | > | double Hmat[3][3]; // the periodic boundry conditions. The Hmat is the |
58 | > | // column vectors of the x, y, and z box vectors. |
59 | > | // h1 h2 h3 |
60 | > | // [ Xx Yx Zx ] |
61 | > | // [ Xy Yy Zy ] |
62 | > | // [ Xz Yz Zz ] |
63 | > | // |
64 | > | double HmatInv[3][3]; |
65 | > | |
66 | > | double boxL[3]; // The Lengths of the 3 column vectors of Hmat |
67 | > | double boxVol; |
68 | > | int orthoRhombic; |
69 | ||
70 | + | |
71 | + | double dielectric; // the dielectric of the medium for reaction field |
72 | + | |
73 | + | |
74 | int usePBC; // whether we use periodic boundry conditions. | |
75 | int useLJ; | |
76 | int useSticky; | |
# | Line 72 | Line 84 | class SimInfo{ (public) | |
84 | double sampleTime, statusTime; // the position and energy dump frequencies | |
85 | double target_temp; // the target temperature of the system | |
86 | double thermalTime; // the temp kick interval | |
87 | + | double currentTime; // Used primarily for correlation Functions |
88 | ||
89 | int n_mol; // n_molecules; | |
90 | Molecule* molecules; // the array of molecules | |
# | Line 84 | Line 97 | class SimInfo{ (public) | |
97 | ||
98 | char ensemble[100]; // the enesemble of the simulation (NVT, NVE, etc. ) | |
99 | char mixingRule[100]; // the mixing rules for Lennard jones/van der walls | |
100 | < | Integrator *the_integrator; // the integrator of the simulation |
100 | > | BaseIntegrator *the_integrator; // the integrator of the simulation |
101 | ||
102 | char finalName[300]; // the name of the eor file to be written | |
103 | char sampleName[300]; // the name of the dump file to be written | |
# | Line 100 | Line 113 | class SimInfo{ (public) | |
113 | // sets the internal function pointer to fortran. | |
114 | ||
115 | void setInternal( void (*fSetup) setFortranSimList, | |
116 | < | void (*fBox) setFortranBoxList ){ |
116 | > | void (*fBox) setFortranBoxList, |
117 | > | void (*fCut) notifyFortranCutOffList ){ |
118 | setFsimulation = fSetup; | |
119 | setFortranBoxSize = fBox; | |
120 | + | notifyFortranCutOffs = fCut; |
121 | } | |
122 | ||
123 | int getNDF(); | |
124 | int getNDFraw(); | |
125 | ||
126 | void setBox( double newBox[3] ); | |
127 | < | void getBox( double theBox[3] ); |
127 | > | void setBoxM( double newBox[3][3] ); |
128 | > | void getBoxM( double theBox[3][3] ); |
129 | > | void scaleBox( double scale ); |
130 | > | |
131 | > | void setRcut( double theRcut ); |
132 | > | void setEcr( double theEcr ); |
133 | > | void setEcr( double theEcr, double theEst ); |
134 | ||
135 | + | double getRcut( void ) { return rCut; } |
136 | + | double getRlist( void ) { return rList; } |
137 | + | double getEcr( void ) { return ecr; } |
138 | + | double getEst( void ) { return est; } |
139 | + | |
140 | + | void setTime( double theTime ) { currentTime = theTime }; |
141 | + | void incrTime( double dt ) { currentTime += dt; } |
142 | + | void decrTime( double dt ) { currentTime -= dt; } |
143 | + | double getTime( void ) { return currentTime }; |
144 | + | |
145 | + | void wrapVector( double thePos[3] ); |
146 | + | |
147 | + | void matMul3(double a[3][3], double b[3][3], double out[3][3]); |
148 | + | void matVecMul3(double m[3][3], double inVec[3], double outVec[3]); |
149 | + | void invertMat3(double in[3][3], double out[3][3]); |
150 | + | void transposeMat3(double in[3][3], double out[3][3]); |
151 | + | void printMat3(double A[3][3]); |
152 | + | void printMat9(double A[9]); |
153 | + | double matDet3(double m[3][3]); |
154 | + | |
155 | private: | |
156 | + | |
157 | + | double origRcut, origEcr; |
158 | + | int boxIsInit, haveOrigRcut, haveOrigEcr; |
159 | + | |
160 | + | double oldEcr; |
161 | + | double oldRcut; |
162 | + | |
163 | + | double rList, rCut; // variables for the neighborlist |
164 | + | double ecr; // the electrostatic cutoff radius |
165 | + | double est; // the electrostatic skin thickness |
166 | + | double maxCutoff; |
167 | ||
168 | + | void calcHmatInv( void ); |
169 | + | void calcBoxL(); |
170 | + | void checkCutOffs( void ); |
171 | + | |
172 | // private function to initialize the fortran side of the simulation | |
173 | void (*setFsimulation) setFortranSimList; | |
174 | ||
175 | void (*setFortranBoxSize) setFortranBoxList; | |
176 | + | |
177 | + | void (*notifyFortranCutOffs) notifyFortranCutOffList; |
178 | + | |
179 | }; | |
180 | ||
181 |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |