# | Line 11 | Line 11 | |
---|---|---|
11 | #include "simError.h" | |
12 | ||
13 | ||
14 | < | Integrator::Integrator( SimInfo *theInfo, ForceFields* the_ff ){ |
14 | > | template<typename T> Integrator<T>::Integrator( SimInfo *theInfo, ForceFields* the_ff ) { |
15 | ||
16 | info = theInfo; | |
17 | myFF = the_ff; | |
# | Line 41 | Line 41 | Integrator::Integrator( SimInfo *theInfo, ForceFields* | |
41 | checkConstraints(); | |
42 | } | |
43 | ||
44 | < | Integrator::~Integrator() { |
44 | > | template<typename T> Integrator<T>::~Integrator() { |
45 | ||
46 | if( nConstrained ){ | |
47 | delete[] constrainedA; | |
# | Line 54 | Line 54 | Integrator::~Integrator() { | |
54 | ||
55 | } | |
56 | ||
57 | < | void Integrator::checkConstraints( void ){ |
57 | > | template<typename T> void Integrator<T>::checkConstraints( void ){ |
58 | ||
59 | ||
60 | isConstrained = 0; | |
# | Line 155 | Line 155 | void Integrator::checkConstraints( void ){ | |
155 | } | |
156 | ||
157 | ||
158 | < | void Integrator::integrate( void ){ |
158 | > | template<typename T> void Integrator<T>::integrate( void ){ |
159 | ||
160 | int i, j; // loop counters | |
161 | ||
# | Line 183 | Line 183 | void Integrator::integrate( void ){ | |
183 | ||
184 | // initialize the forces before the first step | |
185 | ||
186 | < | myFF->doForces(1,1); |
187 | < | |
186 | > | calcForce(1, 1); |
187 | > | // myFF->doForces(1,1); |
188 | > | |
189 | if( info->setTemp ){ | |
190 | ||
191 | < | tStats->velocitize(); |
191 | > | thermalize(); |
192 | } | |
193 | ||
194 | calcPot = 0; | |
# | Line 196 | Line 197 | void Integrator::integrate( void ){ | |
197 | currThermal = thermalTime; | |
198 | currStatus = statusTime; | |
199 | ||
200 | < | dumpOut->writeDump( info->currTime ); |
201 | < | statOut->writeStat( info->currTime ); |
200 | > | dumpOut->writeDump( info->getTime() ); |
201 | > | statOut->writeStat( info->getTime() ); |
202 | ||
203 | readyCheck(); | |
204 | ||
# | Line 207 | Line 208 | void Integrator::integrate( void ){ | |
208 | MPIcheckPoint(); | |
209 | #endif // is_mpi | |
210 | ||
211 | < | while( info->currTime < runTime ){ |
211 | > | while( info->getTime() < runTime ){ |
212 | ||
213 | < | if( (info->currTime+dt) >= currStatus ){ |
213 | > | if( (info->getTime()+dt) >= currStatus ){ |
214 | calcPot = 1; | |
215 | calcStress = 1; | |
216 | } | |
217 | ||
218 | integrateStep( calcPot, calcStress ); | |
219 | ||
220 | < | info->currTime += dt; |
220 | < | info->setTime(info->currTime); |
220 | > | info->incrTime(dt); |
221 | ||
222 | if( info->setTemp ){ | |
223 | < | if( info->currTime >= currThermal ){ |
224 | < | tStats->velocitize(); |
223 | > | if( info->getTime() >= currThermal ){ |
224 | > | thermalize(); |
225 | currThermal += thermalTime; | |
226 | } | |
227 | } | |
228 | ||
229 | < | if( info->currTime >= currSample ){ |
230 | < | dumpOut->writeDump( info->currTime ); |
229 | > | if( info->getTime() >= currSample ){ |
230 | > | dumpOut->writeDump( info->getTime() ); |
231 | currSample += sampleTime; | |
232 | } | |
233 | ||
234 | < | if( info->currTime >= currStatus ){ |
235 | < | statOut->writeStat( info->currTime ); |
234 | > | if( info->getTime() >= currStatus ){ |
235 | > | statOut->writeStat( info->getTime() ); |
236 | calcPot = 0; | |
237 | calcStress = 0; | |
238 | currStatus += statusTime; | |
# | Line 246 | Line 246 | void Integrator::integrate( void ){ | |
246 | ||
247 | } | |
248 | ||
249 | < | dumpOut->writeFinal(info->currTime); |
249 | > | dumpOut->writeFinal(info->getTime()); |
250 | ||
251 | delete dumpOut; | |
252 | delete statOut; | |
253 | } | |
254 | ||
255 | < | void Integrator::integrateStep( int calcPot, int calcStress ){ |
255 | > | template<typename T> void Integrator<T>::integrateStep( int calcPot, int calcStress ){ |
256 | ||
257 | ||
258 | ||
# | Line 271 | Line 271 | void Integrator::integrateStep( int calcPot, int calcS | |
271 | ||
272 | // calc forces | |
273 | ||
274 | < | myFF->doForces(calcPot,calcStress); |
274 | > | calcForce(calcPot,calcStress); |
275 | ||
276 | #ifdef IS_MPI | |
277 | strcpy( checkPointMsg, "Succesful doForces\n" ); | |
# | Line 293 | Line 293 | void Integrator::integrateStep( int calcPot, int calcS | |
293 | } | |
294 | ||
295 | ||
296 | < | void Integrator::moveA( void ){ |
296 | > | template<typename T> void Integrator<T>::moveA( void ){ |
297 | ||
298 | int i, j; | |
299 | DirectionalAtom* dAtom; | |
# | Line 372 | Line 372 | void Integrator::moveA( void ){ | |
372 | } | |
373 | ||
374 | ||
375 | < | void Integrator::moveB( void ){ |
375 | > | template<typename T> void Integrator<T>::moveB( void ){ |
376 | int i, j; | |
377 | DirectionalAtom* dAtom; | |
378 | double Tb[3], ji[3]; | |
# | Line 414 | Line 414 | void Integrator::moveB( void ){ | |
414 | } | |
415 | } | |
416 | ||
417 | < | void Integrator::preMove( void ){ |
417 | > | template<typename T> void Integrator<T>::preMove( void ){ |
418 | int i, j; | |
419 | double pos[3]; | |
420 | ||
# | Line 432 | Line 432 | void Integrator::preMove( void ){ | |
432 | } | |
433 | } | |
434 | ||
435 | < | void Integrator::constrainA(){ |
435 | > | template<typename T> void Integrator<T>::constrainA(){ |
436 | ||
437 | int i,j,k; | |
438 | int done; | |
# | Line 583 | Line 583 | void Integrator::constrainA(){ | |
583 | ||
584 | } | |
585 | ||
586 | < | void Integrator::constrainB( void ){ |
586 | > | template<typename T> void Integrator<T>::constrainB( void ){ |
587 | ||
588 | int i,j,k; | |
589 | int done; | |
# | Line 692 | Line 692 | void Integrator::constrainB( void ){ | |
692 | ||
693 | } | |
694 | ||
695 | < | void Integrator::rotate( int axes1, int axes2, double angle, double ji[3], |
695 | > | template<typename T> void Integrator<T>::rotate( int axes1, int axes2, double angle, double ji[3], |
696 | double A[3][3] ){ | |
697 | ||
698 | int i,j,k; | |
# | Line 773 | Line 773 | void Integrator::rotate( int axes1, int axes2, double | |
773 | } | |
774 | } | |
775 | } | |
776 | + | |
777 | + | template<typename T> void Integrator<T>::calcForce( int calcPot, int calcStress ){ |
778 | + | myFF->doForces(calcPot,calcStress); |
779 | + | |
780 | + | } |
781 | + | |
782 | + | template<typename T> void Integrator<T>::thermalize(){ |
783 | + | tStats->velocitize(); |
784 | + | } |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |