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 621 by gezelter, Wed Jul 16 02:11:02 2003 UTC vs.
Revision 653 by chuckv, Fri Jul 25 20:00:17 2003 UTC

# Line 24 | Line 24
24  
25   #define FF_DUFF 0
26   #define FF_LJ   1
27 <
27 > #define FF_EAM  2
28  
29   SimSetup::SimSetup(){
30    stamps = new MakeStamps();
# Line 586 | Line 586 | void SimSetup::gatherInfo( void ){
586  
587    if( !strcasecmp( force_field, "DUFF" )) ffCase = FF_DUFF;
588    else if( !strcasecmp( force_field, "LJ" )) ffCase = FF_LJ;
589 +  else if( !strcasecmp( force_field, "EAM" )) ffCase = FF_EAM;
590    else{
591      sprintf( painCave.errMsg,
592               "SimSetup Error. Unrecognized force field -> %s\n",
# Line 762 | Line 763 | void SimSetup::finalInfoCheck( void ){
763    MPI_Allreduce( &myUse, &usesDipoles, 1, MPI_INT, MPI_LOR, MPI_COMM_WORLD );
764   #endif //is_mpi
765  
766 +  double theEcr, theEst;
767  
768    if (globals->getUseRF() ) {
769      info->useReactionField = 1;
# Line 777 | Line 779 | void SimSetup::finalInfoCheck( void ){
779        smallest = info->boxL[0];
780        if (info->boxL[1] <= smallest) smallest = info->boxL[1];
781        if (info->boxL[2] <= smallest) smallest = info->boxL[2];
782 <      info->ecr = 0.5 * smallest;
782 >      theEcr = 0.5 * smallest;
783      } else {
784 <      info->ecr        = globals->getECR();
784 >      theEcr = globals->getECR();
785      }
786  
787      if( !globals->haveEST() ){
# Line 789 | Line 791 | void SimSetup::finalInfoCheck( void ){
791                 );
792        painCave.isFatal = 0;
793        simError();
794 <      info->est = 0.05 * info->ecr;
794 >      theEst = 0.05 * theEcr;
795      } else {
796 <      info->est        = globals->getEST();
796 >      theEst= globals->getEST();
797      }
798 +
799 +    info->setEcr( theEcr, theEst );
800      
801      if(!globals->haveDielectric() ){
802        sprintf( painCave.errMsg,
# Line 808 | Line 812 | void SimSetup::finalInfoCheck( void ){
812      if (usesDipoles) {
813        
814        if( !globals->haveECR() ){
815 <        sprintf( painCave.errMsg,
816 <                 "SimSetup Warning: using default value of 1/2 the smallest "
817 <                 "box length for the electrostaticCutoffRadius.\n"
818 <                 "I hope you have a very fast processor!\n");
819 <        painCave.isFatal = 0;
820 <        simError();
821 <        double smallest;
822 <        smallest = info->boxL[0];
823 <        if (info->boxL[1] <= smallest) smallest = info->boxL[1];
824 <        if (info->boxL[2] <= smallest) smallest = info->boxL[2];
825 <        info->ecr = 0.5 * smallest;
815 >        sprintf( painCave.errMsg,
816 >                 "SimSetup Warning: using default value of 1/2 the smallest "
817 >                 "box length for the electrostaticCutoffRadius.\n"
818 >                 "I hope you have a very fast processor!\n");
819 >        painCave.isFatal = 0;
820 >        simError();
821 >        double smallest;
822 >        smallest = info->boxL[0];
823 >        if (info->boxL[1] <= smallest) smallest = info->boxL[1];
824 >        if (info->boxL[2] <= smallest) smallest = info->boxL[2];
825 >        theEcr = 0.5 * smallest;
826        } else {
827 <        info->ecr        = globals->getECR();
827 >        theEcr = globals->getECR();
828        }
829        
830        if( !globals->haveEST() ){
831 <        sprintf( painCave.errMsg,
832 <                 "SimSetup Warning: using default value of 5%% of the "
833 <                 "electrostaticCutoffRadius for the "
834 <                 "electrostaticSkinThickness\n"
835 <                 );
836 <        painCave.isFatal = 0;
837 <        simError();
838 <        info->est = 0.05 * info->ecr;
831 >        sprintf( painCave.errMsg,
832 >                 "SimSetup Warning: using default value of 0.05 * the "
833 >                 "electrostaticCutoffRadius for the "
834 >                 "electrostaticSkinThickness\n"
835 >                 );
836 >        painCave.isFatal = 0;
837 >        simError();
838 >        theEst = 0.05 * theEcr;
839        } else {
840 <        info->est        = globals->getEST();
840 >        theEst= globals->getEST();
841        }
842 +
843 +      info->setEcr( theEcr, theEst );
844      }
845    }  
846  
# Line 857 | Line 863 | void SimSetup::initSystemCoords( void ){
863   #ifdef IS_MPI
864       }else fileInit = new InitializeFromFile( NULL );
865   #endif
866 <   fileInit->read_xyz( info ); // default velocities on
866 >   fileInit->readInit( info ); // default velocities on
867  
868     delete fileInit;
869   }
# Line 1025 | Line 1031 | void SimSetup::createFF( void ){
1031  
1032    case FF_LJ:
1033      the_ff = new LJFF();
1034 +    break;
1035 +
1036 +  case FF_EAM:
1037 +    the_ff = new EAM_FF();
1038      break;
1039  
1040    default:
# Line 1276 | Line 1286 | void SimSetup::makeIntegrator( void ){
1286  
1287   void SimSetup::makeIntegrator( void ){
1288  
1289 <  NVT*  myNVT = NULL;
1290 <  NPTi* myNPTi = NULL;
1291 <  NPTf* myNPTf = NULL;
1292 <  NPTim* myNPTim = NULL;
1293 <  NPTfm* myNPTfm = NULL;
1289 >  NVT<RealIntegrator>*  myNVT = NULL;
1290 >  NPTi<RealIntegrator>* myNPTi = NULL;
1291 >  NPTf<RealIntegrator>* myNPTf = NULL;
1292 >  NPTim<RealIntegrator>* myNPTim = NULL;
1293 >  NPTfm<RealIntegrator>* myNPTfm = NULL;
1294  
1295    switch( ensembleCase ){
1296  
1297    case NVE_ENS:
1298 <    new NVE( info, the_ff );
1298 >    new NVE<RealIntegrator>( info, the_ff );
1299      break;
1300  
1301    case NVT_ENS:
1302 <    myNVT = new NVT( info, the_ff );
1302 >    myNVT = new NVT<RealIntegrator>( info, the_ff );
1303      myNVT->setTargetTemp(globals->getTargetTemp());
1304  
1305      if (globals->haveTauThermostat())
# Line 1305 | Line 1315 | void SimSetup::makeIntegrator( void ){
1315      break;
1316  
1317    case NPTi_ENS:
1318 <    myNPTi = new NPTi( info, the_ff );
1318 >    myNPTi = new NPTi<RealIntegrator>( info, the_ff );
1319      myNPTi->setTargetTemp( globals->getTargetTemp() );
1320  
1321      if (globals->haveTargetPressure())
# Line 1340 | Line 1350 | void SimSetup::makeIntegrator( void ){
1350      break;
1351  
1352    case NPTf_ENS:
1353 <    myNPTf = new NPTf( info, the_ff );
1353 >    myNPTf = new NPTf<RealIntegrator>( info, the_ff );
1354      myNPTf->setTargetTemp( globals->getTargetTemp());
1355  
1356      if (globals->haveTargetPressure())
# Line 1375 | Line 1385 | void SimSetup::makeIntegrator( void ){
1385      break;
1386      
1387    case NPTim_ENS:
1388 <    myNPTim = new NPTim( info, the_ff );
1388 >    myNPTim = new NPTim<RealIntegrator>( info, the_ff );
1389      myNPTim->setTargetTemp( globals->getTargetTemp());
1390  
1391      if (globals->haveTargetPressure())
# Line 1410 | Line 1420 | void SimSetup::makeIntegrator( void ){
1420      break;
1421  
1422    case NPTfm_ENS:
1423 <    myNPTfm = new NPTfm( info, the_ff );
1423 >    myNPTfm = new NPTfm<RealIntegrator>( info, the_ff );
1424      myNPTfm->setTargetTemp( globals->getTargetTemp());
1425  
1426      if (globals->haveTargetPressure())

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines