ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/Integrator.cpp
(Generate patch)

Comparing trunk/OOPSE/libmdtools/Integrator.cpp (file contents):
Revision 637 by gezelter, Thu Jul 17 21:50:01 2003 UTC vs.
Revision 677 by tim, Mon Aug 11 19:41:36 2003 UTC

# Line 11 | Line 11 | Integrator::Integrator( SimInfo *theInfo, ForceFields*
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() {
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 | void Integrator::checkConstraints( void ){
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::integrate( 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 167 | Line 167 | void Integrator::integrate( void ){
167    double currSample;
168    double currThermal;
169    double currStatus;
170  double currTime;
170  
171    int calcPot, calcStress;
172    int isError;
# Line 184 | Line 183 | void Integrator::integrate( void ){
183  
184    // initialize the forces before the first step
185  
186 <  myFF->doForces(1,1);
186 >  calcForce(1, 1);
187    
188    if( info->setTemp ){
189      
190 <    tStats->velocitize();
190 >    thermalize();
191    }
192    
194  dumpOut->writeDump( 0.0 );
195  statOut->writeStat( 0.0 );
196  
193    calcPot     = 0;
194    calcStress  = 0;
195    currSample  = sampleTime;
196    currThermal = thermalTime;
197    currStatus  = statusTime;
202  currTime    = 0.0;;
198  
199 +  dumpOut->writeDump( info->getTime() );
200 +  statOut->writeStat( info->getTime() );
201  
202    readyCheck();
203  
# Line 210 | Line 207 | void Integrator::integrate( void ){
207    MPIcheckPoint();
208   #endif // is_mpi
209  
210 <  while( currTime < runTime ){
210 >  while( info->getTime() < runTime ){
211  
212 <    if( (currTime+dt) >= currStatus ){
212 >    if( (info->getTime()+dt) >= currStatus ){
213        calcPot = 1;
214        calcStress = 1;
215      }
216  
217      integrateStep( calcPot, calcStress );
218        
219 <    currTime += dt;
223 <    info->setTime(currTime);
219 >    info->incrTime(dt);
220  
221      if( info->setTemp ){
222 <      if( currTime >= currThermal ){
223 <        tStats->velocitize();
222 >      if( info->getTime() >= currThermal ){
223 >        thermalize();
224          currThermal += thermalTime;
225        }
226      }
227  
228 <    if( currTime >= currSample ){
229 <      dumpOut->writeDump( currTime );
228 >    if( info->getTime() >= currSample ){
229 >      dumpOut->writeDump( info->getTime() );
230        currSample += sampleTime;
231      }
232  
233 <    if( currTime >= currStatus ){
234 <      statOut->writeStat( currTime );
233 >    if( info->getTime() >= currStatus ){
234 >      statOut->writeStat( info->getTime() );
235        calcPot = 0;
236        calcStress = 0;
237        currStatus += statusTime;
# Line 249 | Line 245 | void Integrator::integrate( void ){
245  
246    }
247  
248 <  dumpOut->writeFinal(currTime);
248 >  dumpOut->writeFinal(info->getTime());
249  
250    delete dumpOut;
251    delete statOut;
252   }
253  
254 < void Integrator::integrateStep( int calcPot, int calcStress ){
254 > template<typename T> void Integrator<T>::integrateStep( int calcPot, int calcStress ){
255  
256  
257        
# Line 274 | Line 270 | void Integrator::integrateStep( int calcPot, int calcS
270  
271    // calc forces
272  
273 <  myFF->doForces(calcPot,calcStress);
273 >  calcForce(calcPot,calcStress);
274  
275   #ifdef IS_MPI
276    strcpy( checkPointMsg, "Succesful doForces\n" );
# Line 296 | Line 292 | void Integrator::moveA( void ){
292   }
293  
294  
295 < void Integrator::moveA( void ){
295 > template<typename T> void Integrator<T>::moveA( void ){
296    
297    int i, j;
298    DirectionalAtom* dAtom;
# Line 375 | Line 371 | void Integrator::moveB( void ){
371   }
372  
373  
374 < void Integrator::moveB( void ){
374 > template<typename T> void Integrator<T>::moveB( void ){
375    int i, j;
376    DirectionalAtom* dAtom;
377    double Tb[3], ji[3];
# Line 417 | Line 413 | void Integrator::preMove( void ){
413    }
414   }
415  
416 < void Integrator::preMove( void ){
416 > template<typename T> void Integrator<T>::preMove( void ){
417    int i, j;
418    double pos[3];
419  
# Line 435 | Line 431 | void Integrator::constrainA(){
431    }  
432   }
433  
434 < void Integrator::constrainA(){
434 > template<typename T> void Integrator<T>::constrainA(){
435  
436    int i,j,k;
437    int done;
# Line 586 | Line 582 | void Integrator::constrainB( void ){
582  
583   }
584  
585 < void Integrator::constrainB( void ){
585 > template<typename T> void Integrator<T>::constrainB( void ){
586    
587    int i,j,k;
588    int done;
# Line 695 | Line 691 | void Integrator::rotate( int axes1, int axes2, double
691  
692   }
693  
694 < void Integrator::rotate( int axes1, int axes2, double angle, double ji[3],
694 > template<typename T> void Integrator<T>::rotate( int axes1, int axes2, double angle, double ji[3],
695                           double A[3][3] ){
696  
697    int i,j,k;
# Line 776 | Line 772 | void Integrator::rotate( int axes1, int axes2, double
772      }
773    }
774   }
775 +
776 + template<typename T> void Integrator<T>::calcForce( int calcPot, int calcStress ){
777 +   myFF->doForces(calcPot,calcStress);
778 +  
779 + }
780 +
781 + template<typename T> void Integrator<T>::thermalize(){
782 +  tStats->velocitize();  
783 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines