| 24 | 
  | 
 | 
| 25 | 
  | 
#define FF_DUFF 0 | 
| 26 | 
  | 
#define FF_LJ   1 | 
| 27 | 
+ | 
#define FF_EAM  2 | 
| 28 | 
  | 
 | 
| 28 | 
– | 
 | 
| 29 | 
  | 
SimSetup::SimSetup(){ | 
| 30 | 
  | 
  stamps = new MakeStamps(); | 
| 31 | 
  | 
  globals = new Globals(); | 
| 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", | 
| 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: | 
| 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())  | 
| 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()) | 
| 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()) | 
| 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()) | 
| 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()) |