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

Comparing trunk/OOPSE/libmdtools/SimInfo.cpp (file contents):
Revision 690 by mmeineke, Tue Aug 12 21:44:06 2003 UTC vs.
Revision 767 by tim, Tue Sep 16 20:02:11 2003 UTC

# Line 26 | Line 26 | SimInfo::SimInfo(){
26   SimInfo::SimInfo(){
27    excludes = NULL;
28    n_constraints = 0;
29 +  nZconstraints = 0;
30    n_oriented = 0;
31    n_dipoles = 0;
32    ndf = 0;
# Line 384 | Line 385 | int SimInfo::getNDFraw() {
385  
386    return ndfRaw;
387   }
388 <
388 >
389 > int SimInfo::getNDFtranslational() {
390 >  int ndfTrans_local, ndfTrans;
391 >
392 >  ndfTrans_local = 3 * n_atoms - n_constraints;
393 >
394 > #ifdef IS_MPI
395 >  MPI_Allreduce(&ndfTrans_local,&ndfTrans,1,MPI_INT,MPI_SUM, MPI_COMM_WORLD);
396 > #else
397 >  ndfTrans = ndfTrans_local;
398 > #endif
399 >
400 >  ndfTrans = ndfTrans - 3 - nZconstraints;
401 >
402 >  return ndfTrans;
403 > }
404 >
405   void SimInfo::refreshSim(){
406  
407    simtype fInfo;
# Line 440 | Line 457 | void SimInfo::refreshSim(){
457  
458    this->ndf = this->getNDF();
459    this->ndfRaw = this->getNDFraw();
460 <
460 >  this->ndfTrans = this->getNDFtranslational();
461   }
462  
463  
# Line 499 | Line 516 | void SimInfo::checkCutOffs( void ){
516  
517      if( maxCutoff > ecr ){
518        if( ecr < origEcr ){
519 <        rCut = origEcr;
519 >        ecr = origEcr;
520          if (ecr > maxCutoff) ecr = maxCutoff;
521          
522          sprintf( painCave.errMsg,
# Line 532 | Line 549 | void SimInfo::checkCutOffs( void ){
549        ecr = maxCutoff;
550      }
551  
552 <    
553 <  }
537 <  
552 >
553 >    if( (oldEcr != ecr) || ( oldRcut != rCut ) ) cutChanged = 1;
554  
555 <  if( (oldEcr != ecr) || ( oldRcut != rCut ) ) cutChanged = 1;
556 <
557 <  // rlist is the 1.0 plus max( rcut, ecr )
542 <  
543 <  ( rCut > ecr )? rList = rCut + 1.0: rList = ecr + 1.0;
544 <
545 <  if( cutChanged ){
555 >    // rlist is the 1.0 plus max( rcut, ecr )
556 >    
557 >    ( rCut > ecr )? rList = rCut + 1.0: rList = ecr + 1.0;
558      
559 <    notifyFortranCutOffs( &rCut, &rList, &ecr, &est );
559 >    if( cutChanged ){
560 >      
561 >      notifyFortranCutOffs( &rCut, &rList, &ecr, &est );
562 >    }
563 >    
564 >    oldEcr = ecr;
565 >    oldRcut = rCut;
566 >
567 >  } else {
568 >    // initialize this stuff before using it, OK?
569 >      sprintf( painCave.errMsg,
570 >               "Trying to check cutoffs without a box. Be smarter.\n" );
571 >      painCave.isFatal = 1;
572 >      simError();      
573    }
574  
550  oldEcr = ecr;
551  oldRcut = rCut;
575   }
576  
577   void SimInfo::addProperty(GenericData* prop){
# Line 598 | Line 621 | vector<GenericData*> SimInfo::getProperties(){
621    return result;
622   }
623  
624 + double SimInfo::matTrace3(double m[3][3]){
625 +  double trace;
626 +  trace = m[0][0] + m[1][1] + m[2][2];
627  
628 +  return trace;
629 + }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines