# | Line 55 | Line 55 | |
---|---|---|
55 | #include "UseTheForce/fCutoffPolicy.h" | |
56 | #include "UseTheForce/DarkSide/fElectrostaticSummationMethod.h" | |
57 | #include "UseTheForce/doForces_interface.h" | |
58 | + | #include "UseTheForce/DarkSide/electrostatic_interface.h" |
59 | #include "UseTheForce/notifyCutoffs_interface.h" | |
60 | #include "utils/MemoryUtils.hpp" | |
61 | #include "utils/simError.h" | |
# | Line 522 | Line 523 | namespace oopse { | |
523 | int useElectrostatics = 0; | |
524 | //usePBC and useRF are from simParams | |
525 | int usePBC = simParams_->getPBC(); | |
526 | + | int useRF; |
527 | ||
528 | + | // set the useRF logical |
529 | + | std::string myMethod = simParams_->getElectrostaticSummationMethod(); |
530 | + | if (myMethod == "REACTION_FIELD") |
531 | + | useRF = 1; |
532 | + | else |
533 | + | useRF = 0; |
534 | + | |
535 | //loop over all of the atom types | |
536 | for (i = atomTypes.begin(); i != atomTypes.end(); ++i) { | |
537 | useLennardJones |= (*i)->isLennardJones(); | |
# | Line 584 | Line 593 | namespace oopse { | |
593 | temp = useFLARB; | |
594 | MPI_Allreduce(&temp, &useFLARB, 1, MPI_INT, MPI_LOR, MPI_COMM_WORLD); | |
595 | ||
596 | + | temp = useRF; |
597 | + | MPI_Allreduce(&temp, &useRF, 1, MPI_INT, MPI_LOR, MPI_COMM_WORLD); |
598 | + | |
599 | #endif | |
600 | ||
601 | fInfo_.SIM_uses_PBC = usePBC; | |
# | Line 598 | Line 610 | namespace oopse { | |
610 | fInfo_.SIM_uses_EAM = useEAM; | |
611 | fInfo_.SIM_uses_Shapes = useShape; | |
612 | fInfo_.SIM_uses_FLARB = useFLARB; | |
613 | + | fInfo_.SIM_uses_RF = useRF; |
614 | ||
615 | < | if( fInfo_.SIM_uses_Dipoles && fInfo_.SIM_uses_RF) { |
615 | > | if( fInfo_.SIM_uses_Dipoles && myMethod == "REACTION_FIELD") { |
616 | ||
617 | if (simParams_->haveDielectric()) { | |
618 | fInfo_.dielect = simParams_->getDielectric(); | |
# | Line 856 | Line 869 | namespace oopse { | |
869 | } | |
870 | } | |
871 | } | |
872 | + | |
873 | + | |
874 | + | if (simParams_->haveSkinThickness()) { |
875 | + | double skinThickness = simParams_->getSkinThickness(); |
876 | + | } |
877 | + | |
878 | notifyFortranCutoffs(&rcut_, &rsw_, &rnblist, &cp); | |
879 | + | // also send cutoff notification to electrostatics |
880 | + | setElectrostaticCutoffRadius(&rcut_); |
881 | } | |
882 | ||
883 | void SimInfo::setupElectrostaticSummationMethod( int isError ) { | |
# | Line 864 | Line 885 | namespace oopse { | |
885 | int errorOut; | |
886 | int esm = NONE; | |
887 | double alphaVal; | |
888 | + | double dielectric; |
889 | ||
890 | errorOut = isError; | |
891 | + | alphaVal = simParams_->getDampingAlpha(); |
892 | + | dielectric = simParams_->getDielectric(); |
893 | ||
894 | if (simParams_->haveElectrostaticSummationMethod()) { | |
895 | std::string myMethod = simParams_->getElectrostaticSummationMethod(); | |
# | Line 880 | Line 904 | namespace oopse { | |
904 | if (!simParams_->haveDampingAlpha()) { | |
905 | //throw error | |
906 | sprintf( painCave.errMsg, | |
907 | < | "SimInfo warning: dampingAlpha was not specified in the input file. A default value of %f (1/ang) will be used for the Damped Wolf Method.", simParams_->getDampingAlpha()); |
907 | > | "SimInfo warning: dampingAlpha was not specified in the input file. A default value of %f (1/ang) will be used for the Damped Wolf Method.", alphaVal); |
908 | painCave.isFatal = 0; | |
909 | simError(); | |
910 | } | |
887 | – | alphaVal = simParams_->getDampingAlpha(); |
911 | } else { | |
912 | if (myMethod == "REACTION_FIELD") { | |
913 | esm = REACTION_FIELD; | |
# | Line 899 | Line 922 | namespace oopse { | |
922 | } | |
923 | } | |
924 | } | |
925 | < | initFortranFF( &esm, &alphaVal, &errorOut ); |
925 | > | // let's pass some summation method variables to fortran |
926 | > | setElectrostaticSummationMethod( &esm ); |
927 | > | setDampedWolfAlpha( &alphaVal ); |
928 | > | setReactionFieldDielectric( &dielectric ); |
929 | > | initFortranFF( &esm, &errorOut ); |
930 | } | |
931 | ||
932 | void SimInfo::addProperty(GenericData* genData) { |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |