# | Line 92 | Line 92 | namespace oopse { | |
---|---|---|
92 | nGlobalIntegrableObjects_(0), nGlobalRigidBodies_(0), | |
93 | nAtoms_(0), nBonds_(0), nBends_(0), nTorsions_(0), nRigidBodies_(0), | |
94 | nIntegrableObjects_(0), nCutoffGroups_(0), nConstraints_(0), | |
95 | < | sman_(NULL), fortranInitialized_(false), calcBoxDipole_(false) { |
95 | > | sman_(NULL), fortranInitialized_(false), calcBoxDipole_(false), |
96 | > | useAtomicVirial_(true) { |
97 | ||
98 | MoleculeStamp* molStamp; | |
99 | int nMolWithSameStamp; | |
# | Line 666 | Line 667 | namespace oopse { | |
667 | int useSF; | |
668 | int useSP; | |
669 | int useBoxDipole; | |
670 | + | |
671 | std::string myMethod; | |
672 | ||
673 | // set the useRF logical | |
# | Line 689 | Line 691 | namespace oopse { | |
691 | if (simParams_->haveAccumulateBoxDipole()) | |
692 | if (simParams_->getAccumulateBoxDipole()) | |
693 | useBoxDipole = 1; | |
694 | + | |
695 | + | useAtomicVirial_ = simParams_->getUseAtomicVirial(); |
696 | ||
697 | //loop over all of the atom types | |
698 | for (i = atomTypes.begin(); i != atomTypes.end(); ++i) { | |
# | Line 766 | Line 770 | namespace oopse { | |
770 | ||
771 | temp = useBoxDipole; | |
772 | MPI_Allreduce(&temp, &useBoxDipole, 1, MPI_INT, MPI_LOR, MPI_COMM_WORLD); | |
773 | + | |
774 | + | temp = useAtomicVirial_; |
775 | + | MPI_Allreduce(&temp, &useAtomicVirial_, 1, MPI_INT, MPI_LOR, MPI_COMM_WORLD); |
776 | ||
777 | #endif | |
778 | ||
# | Line 786 | Line 793 | namespace oopse { | |
793 | fInfo_.SIM_uses_SF = useSF; | |
794 | fInfo_.SIM_uses_SP = useSP; | |
795 | fInfo_.SIM_uses_BoxDipole = useBoxDipole; | |
796 | + | fInfo_.SIM_uses_AtomicVirial = useAtomicVirial_; |
797 | } | |
798 | ||
799 | void SimInfo::setupFortranSim() { | |
# | Line 947 | Line 955 | namespace oopse { | |
955 | // Check the cutoff policy | |
956 | int cp = TRADITIONAL_CUTOFF_POLICY; // Set to traditional by default | |
957 | ||
958 | + | // Set LJ shifting bools to false |
959 | + | ljsp_ = false; |
960 | + | ljsf_ = false; |
961 | + | |
962 | std::string myPolicy; | |
963 | if (forceFieldOptions_.haveCutoffPolicy()){ | |
964 | myPolicy = forceFieldOptions_.getCutoffPolicy(); | |
# | Line 1010 | Line 1022 | namespace oopse { | |
1022 | simError(); | |
1023 | } | |
1024 | } | |
1025 | < | |
1026 | < | notifyFortranCutoffs(&rcut_, &rsw_); |
1025 | > | |
1026 | > | if (simParams_->haveElectrostaticSummationMethod()) { |
1027 | > | std::string myMethod = simParams_->getElectrostaticSummationMethod(); |
1028 | > | toUpper(myMethod); |
1029 | > | |
1030 | > | if (myMethod == "SHIFTED_POTENTIAL") { |
1031 | > | ljsp_ = true; |
1032 | > | } else if (myMethod == "SHIFTED_FORCE") { |
1033 | > | ljsf_ = true; |
1034 | > | } |
1035 | > | } |
1036 | > | notifyFortranCutoffs(&rcut_, &rsw_, &ljsp_, &ljsf_); |
1037 | ||
1038 | } else { | |
1039 | ||
# | Line 1028 | Line 1050 | namespace oopse { | |
1050 | if (simParams_->haveElectrostaticSummationMethod()) { | |
1051 | std::string myMethod = simParams_->getElectrostaticSummationMethod(); | |
1052 | toUpper(myMethod); | |
1053 | < | if (myMethod == "SHIFTED_POTENTIAL" || myMethod == "SHIFTED_FORCE") { |
1053 | > | |
1054 | > | // For the time being, we're tethering the LJ shifted behavior to the |
1055 | > | // electrostaticSummationMethod keyword options |
1056 | > | if (myMethod == "SHIFTED_POTENTIAL") { |
1057 | > | ljsp_ = true; |
1058 | > | } else if (myMethod == "SHIFTED_FORCE") { |
1059 | > | ljsf_ = true; |
1060 | > | } |
1061 | > | if (myMethod == "SHIFTED_POTENTIAL" || myMethod == "SHIFTED_FORCE") { |
1062 | if (simParams_->haveSwitchingRadius()){ | |
1063 | sprintf(painCave.errMsg, | |
1064 | "SimInfo Warning: A value was set for the switchingRadius\n" | |
# | Line 1051 | Line 1081 | namespace oopse { | |
1081 | simError(); | |
1082 | rsw_ = 0.85 * rcut_; | |
1083 | } | |
1084 | < | notifyFortranCutoffs(&rcut_, &rsw_); |
1084 | > | |
1085 | > | notifyFortranCutoffs(&rcut_, &rsw_, &ljsp_, &ljsf_); |
1086 | > | |
1087 | } else { | |
1088 | // We didn't set rcut explicitly, and we don't have electrostatic atoms, so | |
1089 | // We'll punt and let fortran figure out the cutoffs later. |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |