| 538 | 
  | 
 | 
| 539 | 
  | 
  // clean up the forcefield | 
| 540 | 
  | 
 | 
| 541 | 
< | 
  if (!globals->haveLJrcut()){ | 
| 541 | 
> | 
  if (!globals->haveRcut()){ | 
| 542 | 
  | 
 | 
| 543 | 
  | 
    the_ff->calcRcut(); | 
| 544 | 
  | 
 | 
| 545 | 
  | 
  } else { | 
| 546 | 
  | 
     | 
| 547 | 
< | 
    the_ff->setRcut( globals->getLJrcut() ); | 
| 547 | 
> | 
    the_ff->setRcut( globals->getRcut() ); | 
| 548 | 
  | 
  } | 
| 549 | 
  | 
 | 
| 550 | 
  | 
  the_ff->cleanMe(); | 
| 834 | 
  | 
  } | 
| 835 | 
  | 
 | 
| 836 | 
  | 
  //check whether sample time, status time, thermal time and reset time are divisble by dt | 
| 837 | 
< | 
  if (!isDivisible(globals->getSampleTime(), globals->getDt())){ | 
| 837 | 
> | 
  if (globals->haveSampleTime() && !isDivisible(globals->getSampleTime(), globals->getDt())){ | 
| 838 | 
  | 
    sprintf(painCave.errMsg, | 
| 839 | 
  | 
            "Sample time is not divisible by dt.\n" | 
| 840 | 
  | 
            "\tThis will result in samples that are not uniformly\n" | 
| 844 | 
  | 
    simError();     | 
| 845 | 
  | 
  } | 
| 846 | 
  | 
 | 
| 847 | 
< | 
  if (globals->haveStatusTime() && !isDivisible(globals->getSampleTime(), globals->getDt())){ | 
| 847 | 
> | 
  if (globals->haveStatusTime() && !isDivisible(globals->getStatusTime(), globals->getDt())){ | 
| 848 | 
  | 
    sprintf(painCave.errMsg, | 
| 849 | 
  | 
            "Status time is not divisible by dt.\n" | 
| 850 | 
  | 
            "\tThis will result in status reports that are not uniformly\n" | 
| 880 | 
  | 
    if (globals->haveSampleTime()){ | 
| 881 | 
  | 
      info[i].sampleTime = globals->getSampleTime(); | 
| 882 | 
  | 
      info[i].statusTime = info[i].sampleTime; | 
| 883 | 
– | 
      info[i].thermalTime = info[i].sampleTime; | 
| 883 | 
  | 
    } | 
| 884 | 
  | 
    else{ | 
| 885 | 
  | 
      info[i].sampleTime = globals->getRunTime(); | 
| 886 | 
  | 
      info[i].statusTime = info[i].sampleTime; | 
| 888 | 
– | 
      info[i].thermalTime = info[i].sampleTime; | 
| 887 | 
  | 
    } | 
| 888 | 
  | 
 | 
| 889 | 
  | 
    if (globals->haveStatusTime()){ | 
| 892 | 
  | 
 | 
| 893 | 
  | 
    if (globals->haveThermalTime()){ | 
| 894 | 
  | 
      info[i].thermalTime = globals->getThermalTime(); | 
| 895 | 
+ | 
    } else { | 
| 896 | 
+ | 
      info[i].thermalTime = globals->getRunTime(); | 
| 897 | 
  | 
    } | 
| 898 | 
  | 
 | 
| 899 | 
  | 
    info[i].resetIntegrator = 0; | 
| 987 | 
  | 
    MPI_Allreduce(&myUse, &usesDipoles, 1, MPI_INT, MPI_LOR, MPI_COMM_WORLD); | 
| 988 | 
  | 
#endif //is_mpi | 
| 989 | 
  | 
 | 
| 990 | 
< | 
    double theEcr, theEst; | 
| 990 | 
> | 
    double theRcut, theRsw; | 
| 991 | 
  | 
 | 
| 992 | 
  | 
    if (globals->getUseRF()){ | 
| 993 | 
  | 
      info[i].useReactionField = 1; | 
| 994 | 
  | 
 | 
| 995 | 
< | 
      if (!globals->haveECR()){ | 
| 995 | 
> | 
      if (!globals->haveRcut()){ | 
| 996 | 
  | 
        sprintf(painCave.errMsg, | 
| 997 | 
< | 
                "SimSetup Warning: No value was set for electrostaticCutoffRadius.\n" | 
| 997 | 
> | 
                "SimSetup Warning: No value was set for the cutoffRadius.\n" | 
| 998 | 
  | 
                "\tOOPSE will use a default value of 15.0 angstroms" | 
| 999 | 
< | 
                "\tfor the electrostaticCutoffRadius.\n"); | 
| 999 | 
> | 
                "\tfor the cutoffRadius.\n"); | 
| 1000 | 
  | 
        painCave.isFatal = 0; | 
| 1001 | 
  | 
        simError(); | 
| 1002 | 
< | 
        theEcr = 15.0; | 
| 1002 | 
> | 
        theRcut = 15.0; | 
| 1003 | 
  | 
      } | 
| 1004 | 
  | 
      else{ | 
| 1005 | 
< | 
        theEcr = globals->getECR(); | 
| 1005 | 
> | 
        theRcut = globals->getRcut(); | 
| 1006 | 
  | 
      } | 
| 1007 | 
  | 
 | 
| 1008 | 
< | 
      if (!globals->haveEST()){ | 
| 1008 | 
> | 
      if (!globals->haveRsw()){ | 
| 1009 | 
  | 
        sprintf(painCave.errMsg, | 
| 1010 | 
< | 
                "SimSetup Warning: No value was set for electrostaticSkinThickness.\n" | 
| 1010 | 
> | 
                "SimSetup Warning: No value was set for switchingRadius.\n" | 
| 1011 | 
  | 
                "\tOOPSE will use a default value of\n" | 
| 1012 | 
< | 
                "\t0.05 * electrostaticCutoffRadius\n" | 
| 1013 | 
< | 
                "\tfor the electrostaticSkinThickness\n"); | 
| 1012 | 
> | 
                "\t0.95 * cutoffRadius for the switchingRadius\n"); | 
| 1013 | 
  | 
        painCave.isFatal = 0; | 
| 1014 | 
  | 
        simError(); | 
| 1015 | 
< | 
        theEst = 0.05 * theEcr; | 
| 1015 | 
> | 
        theRsw = 0.95 * theRcut; | 
| 1016 | 
  | 
      } | 
| 1017 | 
  | 
      else{ | 
| 1018 | 
< | 
        theEst = globals->getEST(); | 
| 1018 | 
> | 
        theRsw = globals->getRsw(); | 
| 1019 | 
  | 
      } | 
| 1020 | 
  | 
 | 
| 1021 | 
< | 
      info[i].setDefaultEcr(theEcr, theEst); | 
| 1021 | 
> | 
      info[i].setDefaultRcut(theRcut, theRsw); | 
| 1022 | 
  | 
 | 
| 1023 | 
  | 
      if (!globals->haveDielectric()){ | 
| 1024 | 
  | 
        sprintf(painCave.errMsg, | 
| 1032 | 
  | 
    } | 
| 1033 | 
  | 
    else{ | 
| 1034 | 
  | 
      if (usesDipoles || usesCharges){ | 
| 1035 | 
< | 
        if (!globals->haveECR()){ | 
| 1036 | 
< | 
          sprintf(painCave.errMsg, | 
| 1037 | 
< | 
                  "SimSetup Warning: No value was set for electrostaticCutoffRadius.\n" | 
| 1038 | 
< | 
                  "\tOOPSE will use a default value of 15.0 angstroms" | 
| 1039 | 
< | 
                  "\tfor the electrostaticCutoffRadius.\n"); | 
| 1040 | 
< | 
          painCave.isFatal = 0; | 
| 1041 | 
< | 
          simError(); | 
| 1042 | 
< | 
          theEcr = 15.0; | 
| 1043 | 
< | 
        } | 
| 1035 | 
> | 
 | 
| 1036 | 
> | 
        if (!globals->haveRcut()){ | 
| 1037 | 
> | 
          sprintf(painCave.errMsg, | 
| 1038 | 
> | 
                  "SimSetup Warning: No value was set for the cutoffRadius.\n" | 
| 1039 | 
> | 
                  "\tOOPSE will use a default value of 15.0 angstroms" | 
| 1040 | 
> | 
                  "\tfor the cutoffRadius.\n"); | 
| 1041 | 
> | 
          painCave.isFatal = 0; | 
| 1042 | 
> | 
          simError(); | 
| 1043 | 
> | 
          theRcut = 15.0; | 
| 1044 | 
> | 
      } | 
| 1045 | 
  | 
        else{ | 
| 1046 | 
< | 
          theEcr = globals->getECR(); | 
| 1046 | 
> | 
          theRcut = globals->getRcut(); | 
| 1047 | 
  | 
        } | 
| 1048 | 
< | 
         | 
| 1049 | 
< | 
        if (!globals->haveEST()){ | 
| 1048 | 
> | 
         | 
| 1049 | 
> | 
        if (!globals->haveRsw()){ | 
| 1050 | 
  | 
          sprintf(painCave.errMsg, | 
| 1051 | 
< | 
                  "SimSetup Warning: No value was set for electrostaticSkinThickness.\n" | 
| 1051 | 
> | 
                  "SimSetup Warning: No value was set for switchingRadius.\n" | 
| 1052 | 
  | 
                  "\tOOPSE will use a default value of\n" | 
| 1053 | 
< | 
                  "\t0.05 * electrostaticCutoffRadius\n" | 
| 1054 | 
< | 
                  "\tfor the electrostaticSkinThickness\n"); | 
| 1053 | 
> | 
                  "\t0.95 * cutoffRadius for the switchingRadius\n"); | 
| 1054 | 
  | 
          painCave.isFatal = 0; | 
| 1055 | 
  | 
          simError(); | 
| 1056 | 
< | 
          theEst = 0.05 * theEcr; | 
| 1056 | 
> | 
          theRsw = 0.95 * theRcut; | 
| 1057 | 
  | 
        } | 
| 1058 | 
  | 
        else{ | 
| 1059 | 
< | 
          theEst = globals->getEST(); | 
| 1059 | 
> | 
          theRsw = globals->getRsw(); | 
| 1060 | 
  | 
        } | 
| 1061 | 
+ | 
         | 
| 1062 | 
+ | 
        info[i].setDefaultRcut(theRcut, theRsw); | 
| 1063 | 
  | 
         | 
| 1063 | 
– | 
        info[i].setDefaultEcr(theEcr, theEst); | 
| 1064 | 
  | 
      } | 
| 1065 | 
  | 
    } | 
| 1066 | 
  | 
  } | 
| 1365 | 
  | 
  int localMol, allMol; | 
| 1366 | 
  | 
  int local_atoms, local_bonds, local_bends, local_torsions, local_SRI; | 
| 1367 | 
  | 
  int local_rigid; | 
| 1368 | 
– | 
  vector<int> globalAtomIndex; | 
| 1368 | 
  | 
  vector<int> globalMolIndex; | 
| 1369 | 
  | 
 | 
| 1370 | 
  | 
  mpiSim = new mpiSimulation(info); | 
| 1371 | 
  | 
 | 
| 1372 | 
  | 
  mpiSim->divideLabor(); | 
| 1373 | 
  | 
  globalAtomIndex = mpiSim->getGlobalAtomIndex(); | 
| 1374 | 
< | 
  globalMolIndex = mpiSim->getGlobalMolIndex(); | 
| 1374 | 
> | 
  //globalMolIndex = mpiSim->getGlobalMolIndex(); | 
| 1375 | 
  | 
 | 
| 1376 | 
  | 
  // set up the local variables  | 
| 1377 | 
  | 
 |