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 1150 by gezelter, Fri May 7 21:35:05 2004 UTC vs.
Revision 1212 by chrisfen, Tue Jun 1 17:15:43 2004 UTC

# Line 32 | Line 32 | template<typename T> Integrator<T>::Integrator(SimInfo
32  
33    nAtoms = info->n_atoms;
34    integrableObjects = info->integrableObjects;
35 <
35 >
36    // check for constraints
37  
38    constrainedA = NULL;
# Line 45 | Line 45 | template<typename T> Integrator<T>::Integrator(SimInfo
45    nConstrained = 0;
46  
47    checkConstraints();
48 +
49   }
50  
51   template<typename T> Integrator<T>::~Integrator(){
# Line 160 | Line 161 | template<typename T> void Integrator<T>::integrate(voi
161    double thermalTime = info->thermalTime;
162    double resetTime = info->resetTime;
163  
164 <
164 >  double difference;
165    double currSample;
166    double currThermal;
167    double currStatus;
# Line 183 | Line 184 | template<typename T> void Integrator<T>::integrate(voi
184    // that was drifting
185    tStats->removeCOMdrift();
186  
187 +  // initialize the retraints if necessary
188 +  if (info->useSolidThermInt && !info->useLiquidThermInt) {
189 +    myFF->initRestraints();
190 +  }
191 +
192    // initialize the forces before the first step
193  
194    calcForce(1, 1);
# Line 215 | Line 221 | template<typename T> void Integrator<T>::integrate(voi
221   #endif // is_mpi
222  
223    while (info->getTime() < runTime && !stopIntegrator()){
224 <    if ((info->getTime() + dt) >= currStatus){
224 >    difference = info->getTime() + dt - currStatus;
225 >    if (difference > 0 || fabs(difference) < 1e-4 ){
226        calcPot = 1;
227        calcStress = 1;
228      }
# Line 248 | Line 255 | template<typename T> void Integrator<T>::integrate(voi
255  
256      if (info->getTime() >= currStatus){
257        statOut->writeStat(info->getTime());
258 +      if (info->useSolidThermInt || info->useLiquidThermInt)
259 +        statOut->writeRaw(info->getTime());
260        calcPot = 0;
261        calcStress = 0;
262        currStatus += statusTime;
# Line 270 | Line 279 | template<typename T> void Integrator<T>::integrate(voi
279   #endif // is_mpi
280    }
281  
282 +  // dump out a file containing the omega values for the final configuration
283 +  if (info->useSolidThermInt && !info->useLiquidThermInt)
284 +    myFF->dumpzAngle();
285 +  
286 +
287    delete dumpOut;
288    delete statOut;
289   }
# Line 304 | Line 318 | template<typename T> void Integrator<T>::integrateStep
318    MPIcheckPoint();
319   #endif // is_mpi
320  
307
321    // calc forces
309
322    calcForce(calcPot, calcStress);
323  
324   #ifdef IS_MPI
# Line 341 | Line 353 | template<typename T> void Integrator<T>::moveA(void){
353    double Tb[3], ji[3];
354    double vel[3], pos[3], frc[3];
355    double mass;
356 +  double omega;
357  
358    for (i = 0; i < integrableObjects.size() ; i++){
359      integrableObjects[i]->getVel(vel);
# Line 724 | Line 737 | template<typename T> void Integrator<T>::rotationPropa
737      
738      // rotate about the z-axis
739      angle = dt * ji[2] / I[2][2];
740 +    sd->addZangle(angle);
741      this->rotate( 0, 1, angle, ji, A);
742      
743      // rotate about the y-axis

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines