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

Comparing trunk/OOPSE/libmdtools/SimSetup.cpp (file contents):
Revision 557 by mmeineke, Thu Jun 19 19:11:53 2003 UTC vs.
Revision 572 by mmeineke, Wed Jul 2 21:26:55 2003 UTC

# Line 97 | Line 97 | void SimSetup::createSim( void ){
97    n_components = the_globals->getNComponents();
98    strcpy( force_field, the_globals->getForceField() );
99  
100 <  if( !strcasecmp( force_field, "DUFF" ))    ffCase = FF_DUFF;
100 >  if( !strcasecmp( force_field, "DUFF" )) ffCase = FF_DUFF;
101    else if( !strcasecmp( force_field, "LJ" )) ffCase = FF_LJ;
102    else{
103      sprintf( painCave.errMsg,
# Line 110 | Line 110 | void SimSetup::createSim( void ){
110    // get the ensemble:
111    strcpy( ensemble, the_globals->getEnsemble() );
112  
113 <  if( !strcasecmp( ensemble, "NVE" ))      ffCase = NVE_ENS;
114 <  else if( !strcasecmp( ensemble, "NVT" )) ffCase = NVT_ENS;
115 <  else if( !strcasecmp( ensemble, "NPT" )) ffCase = NPT_ENS;
113 >  if( !strcasecmp( ensemble, "NVE" ))      ensembleCase = NVE_ENS;
114 >  else if( !strcasecmp( ensemble, "NVT" )) ensembleCase = NVT_ENS;
115 >  else if( !strcasecmp( ensemble, "NPT" )) ensembleCase = NPT_ENS;
116    else{
117      sprintf( painCave.errMsg,
118               "SimSetup Warning. Unrecognized Ensemble -> %s, "
# Line 193 | Line 193 | void SimSetup::createSim( void ){
193      break;
194  
195    case FF_LJ:
196 <    the_ff = LJFF();
196 >    the_ff = new LJFF();
197      break;
198  
199    default:
# Line 479 | Line 479 | void SimSetup::createSim( void ){
479  
480    // get some of the tricky things that may still be in the globals
481  
482 <  
482 >  double boxVector[3];
483    if( the_globals->haveBox() ){
484 <    simnfo->box_x = the_globals->getBox();
485 <    simnfo->box_y = the_globals->getBox();
486 <    simnfo->box_z = the_globals->getBox();
484 >    boxVector[0] = the_globals->getBox();
485 >    boxVector[1] = the_globals->getBox();
486 >    boxVector[2] = the_globals->getBox();
487 >    
488 >    simnfo->setBox( boxVector );
489    }
490    else if( the_globals->haveDensity() ){
491  
492      double vol;
493      vol = (double)tot_nmol / the_globals->getDensity();
494 <    simnfo->box_x = pow( vol, ( 1.0 / 3.0 ) );
495 <    simnfo->box_y = simnfo->box_x;
496 <    simnfo->box_z = simnfo->box_x;
494 >     boxVector[0] = pow( vol, ( 1.0 / 3.0 ) );
495 >     boxVector[1] = boxVector[0];
496 >     boxVector[2] = boxVector[0];
497 >
498 >    simnfo->setBox( boxVector );
499    }
500    else{
501      if( !the_globals->haveBoxX() ){
# Line 500 | Line 504 | void SimSetup::createSim( void ){
504        painCave.isFatal = 1;
505        simError();
506      }
507 <    simnfo->box_x = the_globals->getBoxX();
507 >    boxVector[0] = the_globals->getBoxX();
508  
509      if( !the_globals->haveBoxY() ){
510        sprintf( painCave.errMsg,
# Line 508 | Line 512 | void SimSetup::createSim( void ){
512        painCave.isFatal = 1;
513        simError();
514      }
515 <    simnfo->box_y = the_globals->getBoxY();
515 >    boxVector[1] = the_globals->getBoxY();
516  
517      if( !the_globals->haveBoxZ() ){
518        sprintf( painCave.errMsg,
# Line 516 | Line 520 | void SimSetup::createSim( void ){
520        painCave.isFatal = 1;
521        simError();
522      }
523 <    simnfo->box_z = the_globals->getBoxZ();
523 >    boxVector[2] = the_globals->getBoxZ();
524 >
525 >    simnfo->setBox( boxVector );
526    }
527  
528   #ifdef IS_MPI
# Line 546 | Line 552 | void SimSetup::createSim( void ){
552        painCave.isFatal = 0;
553        simError();
554        double smallest;
555 <      smallest = simnfo->box_x;
556 <      if (simnfo->box_y <= smallest) smallest = simnfo->box_y;
557 <      if (simnfo->box_z <= smallest) smallest = simnfo->box_z;
555 >      smallest = simnfo->boxLx;
556 >      if (simnfo->boxLy <= smallest) smallest = simnfo->boxLy;
557 >      if (simnfo->boxLz <= smallest) smallest = simnfo->boxLz;
558        simnfo->ecr = 0.5 * smallest;
559      } else {
560        simnfo->ecr        = the_globals->getECR();
# Line 586 | Line 592 | void SimSetup::createSim( void ){
592          painCave.isFatal = 0;
593          simError();
594          double smallest;
595 <        smallest = simnfo->box_x;
596 <        if (simnfo->box_y <= smallest) smallest = simnfo->box_y;
597 <        if (simnfo->box_z <= smallest) smallest = simnfo->box_z;
595 >        smallest = simnfo->boxLx;
596 >        if (simnfo->boxLy <= smallest) smallest = simnfo->boxLy;
597 >        if (simnfo->boxLz <= smallest) smallest = simnfo->boxLz;
598          simnfo->ecr = 0.5 * smallest;
599        } else {
600          simnfo->ecr        = the_globals->getECR();
# Line 768 | Line 774 | void SimSetup::createSim( void ){
774  
775  
776    // make the integrator
777 +  
778 +  
779 +  NVT* myNVT = NULL;
780 +  switch( ensembleCase ){
781  
782 +  case NVE_ENS:
783 +    new NVE( simnfo, the_ff );
784 +    break;
785  
786 <  if( !strcmp( ensemble, "TraPPE_Ex" ) ){
787 <    new Symplectic(simnfo, the_ff, the_extendedsystem);
788 <  }
789 <  else if( !strcmp( force_field, "LJ" ) ){
790 <    new Verlet( *simnfo, the_ff, the_extendedsystem );
786 >  case NVT_ENS:
787 >    myNVT = new NVT( simnfo, the_ff );
788 >    myNVT->setTargetTemp(the_globals->getTargetTemp());
789 >
790 >    if (the_globals->haveTauThermostat())
791 >      myNVT->setTauThermostat(the_globals->getTauThermostat());
792 > //     else if (the_globals->haveQmass())
793 > //       myNVT->setQmass(the_globals->getQmass());
794 >    else {
795 >      sprintf( painCave.errMsg,
796 >               "SimSetup error: If you use the NVT\n"
797 >               "    ensemble, you must set either tauThermostat or qMass.\n"
798 >               "    Neither of these was found in the BASS file.\n");
799 >      painCave.isFatal = 1;
800 >      simError();
801 >    }
802 >    break;
803 >
804 >  default:
805 >    sprintf( painCave.errMsg,
806 >             "SimSetup Error. Unrecognized ensemble in case statement.\n");
807 >    painCave.isFatal = 1;
808 >    simError();
809    }
810  
811 +
812   #ifdef IS_MPI
813    mpiSim->mpiRefresh();
814   #endif
# Line 1089 | Line 1121 | void SimSetup::initFromBass( void ){
1121      have_extra =1;
1122  
1123      n_cells = (int)temp3 - 1;
1124 <    cellx = simnfo->box_x / temp3;
1125 <    celly = simnfo->box_y / temp3;
1126 <    cellz = simnfo->box_z / temp3;
1124 >    cellx = simnfo->boxLx / temp3;
1125 >    celly = simnfo->boxLy / temp3;
1126 >    cellz = simnfo->boxLz / temp3;
1127      n_extra = tot_nmol - ( 4 * n_cells * n_cells * n_cells );
1128      temp1 = ((double)n_extra) / ( pow( temp3, 3.0 ) - pow( n_cells, 3.0 ) );
1129      n_per_extra = (int)ceil( temp1 );
# Line 1106 | Line 1138 | void SimSetup::initFromBass( void ){
1138    }
1139    else{
1140      n_cells = (int)temp3;
1141 <    cellx = simnfo->box_x / temp3;
1142 <    celly = simnfo->box_y / temp3;
1143 <    cellz = simnfo->box_z / temp3;
1141 >    cellx = simnfo->boxLx / temp3;
1142 >    celly = simnfo->boxLy / temp3;
1143 >    cellz = simnfo->boxLz / temp3;
1144    }
1145  
1146    current_mol = 0;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines