| 59 | 
  | 
#include "UseTheForce/DarkSide/fElectrostaticScreeningMethod.h" | 
| 60 | 
  | 
#include "UseTheForce/DarkSide/fSwitchingFunctionType.h" | 
| 61 | 
  | 
#include "UseTheForce/doForces_interface.h" | 
| 62 | 
+ | 
#include "UseTheForce/DarkSide/neighborLists_interface.h" | 
| 63 | 
  | 
#include "UseTheForce/DarkSide/electrostatic_interface.h" | 
| 64 | 
  | 
#include "UseTheForce/DarkSide/switcheroo_interface.h" | 
| 65 | 
  | 
#include "utils/MemoryUtils.hpp" | 
| 68 | 
  | 
#include "io/ForceFieldOptions.hpp" | 
| 69 | 
  | 
#include "UseTheForce/ForceField.hpp" | 
| 70 | 
  | 
 | 
| 71 | 
+ | 
 | 
| 72 | 
  | 
#ifdef IS_MPI | 
| 73 | 
  | 
#include "UseTheForce/mpiComponentPlan.h" | 
| 74 | 
  | 
#include "UseTheForce/DarkSide/simParallel_interface.h" | 
| 671 | 
  | 
    // set the useRF logical | 
| 672 | 
  | 
    useRF = 0; | 
| 673 | 
  | 
    useSF = 0; | 
| 674 | 
+ | 
    useSP = 0; | 
| 675 | 
  | 
 | 
| 676 | 
  | 
 | 
| 677 | 
  | 
    if (simParams_->haveElectrostaticSummationMethod()) { | 
| 678 | 
  | 
      std::string myMethod = simParams_->getElectrostaticSummationMethod(); | 
| 679 | 
  | 
      toUpper(myMethod); | 
| 680 | 
  | 
      if (myMethod == "REACTION_FIELD"){ | 
| 681 | 
< | 
        useRF=1; | 
| 681 | 
> | 
        useRF = 1; | 
| 682 | 
  | 
      } else if (myMethod == "SHIFTED_FORCE"){ | 
| 683 | 
  | 
        useSF = 1; | 
| 684 | 
  | 
      } else if (myMethod == "SHIFTED_POTENTIAL"){ | 
| 870 | 
  | 
             "succesfully sent the simulation information to fortran.\n"); | 
| 871 | 
  | 
    MPIcheckPoint(); | 
| 872 | 
  | 
#endif // is_mpi | 
| 873 | 
+ | 
 | 
| 874 | 
+ | 
    // Setup number of neighbors in neighbor list if present | 
| 875 | 
+ | 
    if (simParams_->haveNeighborListNeighbors()) { | 
| 876 | 
+ | 
      setNeighbors(simParams_->getNeighborListNeighbors()); | 
| 877 | 
+ | 
    } | 
| 878 | 
+ | 
    | 
| 879 | 
+ | 
 | 
| 880 | 
  | 
  } | 
| 881 | 
  | 
 | 
| 882 | 
  | 
 | 
| 1135 | 
  | 
                     "\tA default value of %f (1/ang) will be used for the cutoff of\n\t%f (ang).\n", alphaVal, rcut_); | 
| 1136 | 
  | 
            painCave.isFatal = 0; | 
| 1137 | 
  | 
            simError(); | 
| 1138 | 
+ | 
          } else { | 
| 1139 | 
+ | 
            alphaVal = simParams_->getDampingAlpha(); | 
| 1140 | 
  | 
          } | 
| 1141 | 
+ | 
           | 
| 1142 | 
  | 
        } else { | 
| 1143 | 
  | 
          // throw error         | 
| 1144 | 
  | 
          sprintf( painCave.errMsg, | 
| 1453 | 
  | 
   | 
| 1454 | 
  | 
  void SimInfo::setIOIndexToIntegrableObject(const std::vector<StuntDouble*>& v) { | 
| 1455 | 
  | 
    IOIndexToIntegrableObject= v; | 
| 1456 | 
+ | 
  } | 
| 1457 | 
+ | 
 | 
| 1458 | 
+ | 
  /* Returns the Volume of the simulation based on a ellipsoid with semi-axes  | 
| 1459 | 
+ | 
     based on the radius of gyration V=4/3*Pi*R_1*R_2*R_3 | 
| 1460 | 
+ | 
     where R_i are related to the principle inertia moments R_i = sqrt(C*I_i/N), this reduces to  | 
| 1461 | 
+ | 
     V = 4/3*Pi*(C/N)^3/2*sqrt(det(I)). See S.E. Baltazar et. al. Comp. Mat. Sci. 37 (2006) 526-536. | 
| 1462 | 
+ | 
  */ | 
| 1463 | 
+ | 
  void SimInfo::getGyrationalVolume(RealType &volume){ | 
| 1464 | 
+ | 
    Mat3x3d intTensor; | 
| 1465 | 
+ | 
    RealType det; | 
| 1466 | 
+ | 
    Vector3d dummyAngMom;  | 
| 1467 | 
+ | 
    RealType sysconstants; | 
| 1468 | 
+ | 
    RealType geomCnst; | 
| 1469 | 
+ | 
 | 
| 1470 | 
+ | 
    geomCnst = 3.0/2.0; | 
| 1471 | 
+ | 
    /* Get the inertial tensor and angular momentum for free*/ | 
| 1472 | 
+ | 
    getInertiaTensor(intTensor,dummyAngMom); | 
| 1473 | 
+ | 
     | 
| 1474 | 
+ | 
    det = intTensor.determinant(); | 
| 1475 | 
+ | 
    sysconstants = geomCnst/(RealType)nGlobalIntegrableObjects_; | 
| 1476 | 
+ | 
    volume = 4.0/3.0*NumericConstant::PI*pow(sysconstants,3.0/2.0)*sqrt(det); | 
| 1477 | 
+ | 
    return; | 
| 1478 | 
  | 
  } | 
| 1479 | 
  | 
 | 
| 1480 | 
+ | 
  void SimInfo::getGyrationalVolume(RealType &volume, RealType &detI){ | 
| 1481 | 
+ | 
    Mat3x3d intTensor; | 
| 1482 | 
+ | 
    Vector3d dummyAngMom;  | 
| 1483 | 
+ | 
    RealType sysconstants; | 
| 1484 | 
+ | 
    RealType geomCnst; | 
| 1485 | 
+ | 
 | 
| 1486 | 
+ | 
    geomCnst = 3.0/2.0; | 
| 1487 | 
+ | 
    /* Get the inertial tensor and angular momentum for free*/ | 
| 1488 | 
+ | 
    getInertiaTensor(intTensor,dummyAngMom); | 
| 1489 | 
+ | 
     | 
| 1490 | 
+ | 
    detI = intTensor.determinant(); | 
| 1491 | 
+ | 
    sysconstants = geomCnst/(RealType)nGlobalIntegrableObjects_; | 
| 1492 | 
+ | 
    volume = 4.0/3.0*NumericConstant::PI*pow(sysconstants,3.0/2.0)*sqrt(detI); | 
| 1493 | 
+ | 
    return; | 
| 1494 | 
+ | 
  } | 
| 1495 | 
  | 
/* | 
| 1496 | 
  | 
   void SimInfo::setStuntDoubleFromGlobalIndex(std::vector<StuntDouble*> v) { | 
| 1497 | 
  | 
      assert( v.size() == nAtoms_ + nRigidBodies_); |