| 24 | 
  | 
 | 
| 25 | 
  | 
#define FF_DUFF 0 | 
| 26 | 
  | 
#define FF_LJ   1 | 
| 27 | 
+ | 
#define FF_EAM  2 | 
| 28 | 
  | 
 | 
| 28 | 
– | 
 | 
| 29 | 
  | 
SimSetup::SimSetup(){ | 
| 30 | 
+ | 
   | 
| 31 | 
+ | 
  isInfoArray = 0; | 
| 32 | 
+ | 
  nInfo = 1; | 
| 33 | 
+ | 
   | 
| 34 | 
  | 
  stamps = new MakeStamps(); | 
| 35 | 
  | 
  globals = new Globals(); | 
| 36 | 
  | 
   | 
| 37 | 
+ | 
   | 
| 38 | 
  | 
#ifdef IS_MPI | 
| 39 | 
  | 
  strcpy( checkPointMsg, "SimSetup creation successful" ); | 
| 40 | 
  | 
  MPIcheckPoint(); | 
| 45 | 
  | 
  delete stamps; | 
| 46 | 
  | 
  delete globals; | 
| 47 | 
  | 
} | 
| 48 | 
+ | 
 | 
| 49 | 
+ | 
void SimSetup::setSimInfo( SimInfo* the_info, int theNinfo ) { | 
| 50 | 
+ | 
    info = the_info; | 
| 51 | 
+ | 
    nInfo = theNinfo; | 
| 52 | 
+ | 
    isInfoArray = 1; | 
| 53 | 
+ | 
  } | 
| 54 | 
+ | 
 | 
| 55 | 
  | 
 | 
| 56 | 
  | 
void SimSetup::parseFile( char* fileName ){ | 
| 57 | 
  | 
 | 
| 598 | 
  | 
 | 
| 599 | 
  | 
  if( !strcasecmp( force_field, "DUFF" )) ffCase = FF_DUFF; | 
| 600 | 
  | 
  else if( !strcasecmp( force_field, "LJ" )) ffCase = FF_LJ; | 
| 601 | 
+ | 
  else if( !strcasecmp( force_field, "EAM" )) ffCase = FF_EAM; | 
| 602 | 
  | 
  else{ | 
| 603 | 
  | 
    sprintf( painCave.errMsg, | 
| 604 | 
  | 
             "SimSetup Error. Unrecognized force field -> %s\n", | 
| 1045 | 
  | 
    the_ff = new LJFF(); | 
| 1046 | 
  | 
    break; | 
| 1047 | 
  | 
 | 
| 1048 | 
+ | 
  case FF_EAM: | 
| 1049 | 
+ | 
    the_ff = new EAM_FF(); | 
| 1050 | 
+ | 
    break; | 
| 1051 | 
+ | 
 | 
| 1052 | 
  | 
  default: | 
| 1053 | 
  | 
    sprintf( painCave.errMsg, | 
| 1054 | 
  | 
             "SimSetup Error. Unrecognized force field in case statement.\n"); | 
| 1298 | 
  | 
 | 
| 1299 | 
  | 
void SimSetup::makeIntegrator( void ){ | 
| 1300 | 
  | 
 | 
| 1301 | 
< | 
  NVT*  myNVT = NULL; | 
| 1302 | 
< | 
  NPTi* myNPTi = NULL; | 
| 1303 | 
< | 
  NPTf* myNPTf = NULL; | 
| 1304 | 
< | 
  NPTim* myNPTim = NULL; | 
| 1305 | 
< | 
  NPTfm* myNPTfm = NULL; | 
| 1301 | 
> | 
  NVT<RealIntegrator>*  myNVT = NULL; | 
| 1302 | 
> | 
  NPTi<RealIntegrator>* myNPTi = NULL; | 
| 1303 | 
> | 
  NPTf<RealIntegrator>* myNPTf = NULL; | 
| 1304 | 
> | 
  NPTim<RealIntegrator>* myNPTim = NULL; | 
| 1305 | 
> | 
  NPTfm<RealIntegrator>* myNPTfm = NULL; | 
| 1306 | 
  | 
 | 
| 1307 | 
  | 
  switch( ensembleCase ){ | 
| 1308 | 
  | 
 | 
| 1309 | 
  | 
  case NVE_ENS: | 
| 1310 | 
< | 
    new NVE( info, the_ff ); | 
| 1310 | 
> | 
    new NVE<RealIntegrator>( info, the_ff ); | 
| 1311 | 
  | 
    break; | 
| 1312 | 
  | 
 | 
| 1313 | 
  | 
  case NVT_ENS: | 
| 1314 | 
< | 
    myNVT = new NVT( info, the_ff ); | 
| 1314 | 
> | 
    myNVT = new NVT<RealIntegrator>( info, the_ff ); | 
| 1315 | 
  | 
    myNVT->setTargetTemp(globals->getTargetTemp()); | 
| 1316 | 
  | 
 | 
| 1317 | 
  | 
    if (globals->haveTauThermostat())  | 
| 1327 | 
  | 
    break; | 
| 1328 | 
  | 
 | 
| 1329 | 
  | 
  case NPTi_ENS: | 
| 1330 | 
< | 
    myNPTi = new NPTi( info, the_ff ); | 
| 1330 | 
> | 
    myNPTi = new NPTi<RealIntegrator>( info, the_ff ); | 
| 1331 | 
  | 
    myNPTi->setTargetTemp( globals->getTargetTemp() ); | 
| 1332 | 
  | 
 | 
| 1333 | 
  | 
    if (globals->haveTargetPressure()) | 
| 1362 | 
  | 
    break; | 
| 1363 | 
  | 
 | 
| 1364 | 
  | 
  case NPTf_ENS: | 
| 1365 | 
< | 
    myNPTf = new NPTf( info, the_ff ); | 
| 1365 | 
> | 
    myNPTf = new NPTf<RealIntegrator>( info, the_ff ); | 
| 1366 | 
  | 
    myNPTf->setTargetTemp( globals->getTargetTemp()); | 
| 1367 | 
  | 
 | 
| 1368 | 
  | 
    if (globals->haveTargetPressure()) | 
| 1397 | 
  | 
    break; | 
| 1398 | 
  | 
     | 
| 1399 | 
  | 
  case NPTim_ENS: | 
| 1400 | 
< | 
    myNPTim = new NPTim( info, the_ff ); | 
| 1400 | 
> | 
    myNPTim = new NPTim<RealIntegrator>( info, the_ff ); | 
| 1401 | 
  | 
    myNPTim->setTargetTemp( globals->getTargetTemp()); | 
| 1402 | 
  | 
 | 
| 1403 | 
  | 
    if (globals->haveTargetPressure()) | 
| 1432 | 
  | 
    break; | 
| 1433 | 
  | 
 | 
| 1434 | 
  | 
  case NPTfm_ENS: | 
| 1435 | 
< | 
    myNPTfm = new NPTfm( info, the_ff ); | 
| 1435 | 
> | 
    myNPTfm = new NPTfm<RealIntegrator>( info, the_ff ); | 
| 1436 | 
  | 
    myNPTfm->setTargetTemp( globals->getTargetTemp()); | 
| 1437 | 
  | 
 | 
| 1438 | 
  | 
    if (globals->haveTargetPressure()) |