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

Comparing trunk/OOPSE/libmdtools/Verlet.cpp (file contents):
Revision 475 by gezelter, Tue Apr 8 12:44:18 2003 UTC vs.
Revision 483 by gezelter, Wed Apr 9 04:06:43 2003 UTC

# Line 185 | Line 185 | void Verlet::integrate( void ){
185    
186    int time;
187  
188 +  double press[9];
189 +
190    double dt = entry_plug->dt;
191    double runTime = entry_plug->run_time;
192    double sampleTime = entry_plug->sampleTime;
# Line 202 | Line 204 | void Verlet::integrate( void ){
204    DumpWriter*  dump_out = new DumpWriter( entry_plug );
205  
206    // the first time integrate is called, the forces need to be initialized
205
207    
208    myFF->doForces(1,1);
209    
# Line 226 | Line 227 | void Verlet::integrate( void ){
227      for(i = 0; i < n_loops; i++){
228        
229        if (!strcasecmp( entry_plug->ensemble, "NVT"))
230 <        myES->NoseHooverNVT( dt , tStats->getKinetic() );
231 <
232 <      // fill R, V, and F arrays and RATTLE in fortran
233 <
230 >        myES->NoseHooverNVT( dt / 2.0 , tStats->getKinetic() );
231 >      
232 >      // fill R, V, and F arrays and RATTLE in fortran
233 >      
234        for( j=0; j<c_natoms; j++ ){
235 <
235 >        
236          Rx[j] = c_atoms[j]->getX();
237          Ry[j] = c_atoms[j]->getY();
238          Rz[j] = c_atoms[j]->getZ();
# Line 303 | Line 304 | void Verlet::integrate( void ){
304        }
305        
306        if (!strcasecmp( entry_plug->ensemble, "NVT"))
307 <        myES->NoseHooverNVT( dt , tStats->getKinetic() );
308 <
309 <      if (!strcasecmp( entry_plug->ensemble, "NPT") )
307 >        myES->NoseHooverNVT( dt / 2.0, tStats->getKinetic() );
308 >      
309 >      if (!strcasecmp( entry_plug->ensemble, "NPT") ) {        
310 >        tStats->getPressureTensor(press);
311          myES->NoseHooverAndersonNPT( dt,
312                                       tStats->getKinetic(),
313 <                                     tStats->getPressure());
313 >                                     press);
314 >      }
315  
316        time = i + 1;
317        
# Line 316 | Line 319 | void Verlet::integrate( void ){
319          if( !(time % vel_n) ) tStats->velocitize();
320        }
321        if( !(time % sample_n) ) dump_out->writeDump( time * dt );
322 +
323        if( !((time+1) % status_n) ) {
324          calcPot = 1;
325 <        // bitwise masking in case we need it for NPT
322 <        calcStress = (!strcasecmp(entry_plug->ensemble,"NPT")) && 1;
325 >        calcStress = 1;
326        }
327        if( !(time % status_n) ){
328          e_out->writeStat( time * dt );
329          calcPot = 0;
330 <        // bitwise masking in case we need it for NPT
331 <        calcStress = (!strcasecmp(entry_plug->ensemble,"NPT")) && 0;
330 >        if (!strcasecmp(entry_plug->ensemble, "NPT")) calcStress = 1;
331 >        else calcStress = 0;
332        }
333      }
334    }
# Line 333 | Line 336 | void Verlet::integrate( void ){
336      for(i = 0; i < n_loops; i++){
337  
338        if (!strcasecmp( entry_plug->ensemble, "NVT"))
339 <        myES->NoseHooverNVT( dt , tStats->getKinetic() );
339 >        myES->NoseHooverNVT( dt / 2.0, tStats->getKinetic() );
340      
341        move_a( dt );
342        
# Line 346 | Line 349 | void Verlet::integrate( void ){
349        move_b( dt );
350  
351        if (!strcasecmp( entry_plug->ensemble, "NVT"))
352 <        myES->NoseHooverNVT( dt , tStats->getKinetic() );
352 >        myES->NoseHooverNVT( dt / 2.0 , tStats->getKinetic() );
353  
354 <      if (!strcasecmp( entry_plug->ensemble, "NPT") )
354 >      if (!strcasecmp( entry_plug->ensemble, "NPT") ) {
355 >        tStats->getPressureTensor(press);
356          myES->NoseHooverAndersonNPT( dt,
357                                       tStats->getKinetic(),
358 <                                     tStats->getPressure());
358 >                                     press);
359 >      }
360  
361        time = i + 1;
362        
# Line 361 | Line 366 | void Verlet::integrate( void ){
366        if( !(time % sample_n) )  dump_out->writeDump( time * dt );
367        if( !((time+1) % status_n) ) {
368          calcPot = 1;
369 <        // bitwise masking in case we need it for NPT
365 <        calcStress = (!strcasecmp(entry_plug->ensemble,"NPT")) && 1;
369 >        calcStress = 1;
370        }
371        if( !(time % status_n) ){
372          e_out->writeStat( time * dt );
373          calcPot = 0;
374 <        // bitwise masking in case we need it for NPT
375 <        calcStress = (!strcasecmp(entry_plug->ensemble,"NPT")) && 0;
374 >        if (!strcasecmp(entry_plug->ensemble, "NPT")) calcStress = 1;
375 >        else calcStress = 0;
376        }
377      }
378    }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines