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 711 by mmeineke, Fri Aug 22 20:04:39 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);
187 <  
186 >  calcForce(1, 1);
187 >  // myFF->doForces(1,1);
188 >        
189    if( info->setTemp ){
190      
191 <    tStats->velocitize();
191 >    thermalize();
192    }
193    
194  dumpOut->writeDump( 0.0 );
195  statOut->writeStat( 0.0 );
196  
194    calcPot     = 0;
195    calcStress  = 0;
196 <  currSample  = sampleTime;
197 <  currThermal = thermalTime;
198 <  currStatus  = statusTime;
202 <  currTime    = 0.0;;
196 >  currSample  = sampleTime + info->getTime();
197 >  currThermal = thermalTime+ info->getTime();
198 >  currStatus  = statusTime + info->getTime();
199  
200 +  dumpOut->writeDump( info->getTime() );
201 +  statOut->writeStat( info->getTime() );
202  
203    readyCheck();
204  
# Line 210 | Line 208 | void Integrator::integrate( void ){
208    MPIcheckPoint();
209   #endif // is_mpi
210  
211 <  while( currTime < runTime ){
211 >  while( info->getTime() < runTime ){
212  
213 <    if( (currTime+dt) >= currStatus ){
213 >    if( (info->getTime()+dt) >= currStatus ){
214        calcPot = 1;
215        calcStress = 1;
216      }
217  
218      integrateStep( calcPot, calcStress );
219        
220 <    currTime += dt;
223 <    info->setTime(currTime);
220 >    info->incrTime(dt);
221  
222      if( info->setTemp ){
223 <      if( currTime >= currThermal ){
224 <        tStats->velocitize();
223 >      if( info->getTime() >= currThermal ){
224 >        thermalize();
225          currThermal += thermalTime;
226        }
227      }
228  
229 <    if( currTime >= currSample ){
230 <      dumpOut->writeDump( currTime );
229 >    if( info->getTime() >= currSample ){
230 >      dumpOut->writeDump( info->getTime() );
231        currSample += sampleTime;
232      }
233  
234 <    if( currTime >= currStatus ){
235 <      statOut->writeStat( currTime );
234 >    if( info->getTime() >= currStatus ){
235 >      statOut->writeStat( info->getTime() );
236        calcPot = 0;
237        calcStress = 0;
238        currStatus += statusTime;
# Line 249 | Line 246 | void Integrator::integrate( void ){
246  
247    }
248  
249 <  dumpOut->writeFinal(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 274 | 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 296 | Line 293 | void Integrator::moveA( void ){
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 375 | Line 372 | void Integrator::moveB( 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 417 | Line 414 | void Integrator::preMove( 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 435 | Line 432 | void Integrator::constrainA(){
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 586 | Line 583 | void Integrator::constrainB( void ){
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 695 | Line 692 | void Integrator::rotate( int axes1, int axes2, double
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 776 | 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 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines