--- branches/development/src/nonbonded/InteractionManager.hpp 2010/10/02 19:53:32 1502 +++ branches/development/src/nonbonded/InteractionManager.hpp 2010/12/27 18:35:59 1529 @@ -65,51 +65,22 @@ namespace OpenMD { public: static InteractionManager* Instance(); - static void setForceField(ForceField *ff) {forceField_ = ff;}; + static void setForceField(ForceField *ff) {forceField_ = ff;} - static void doPrePair(AtomType* atype1, - AtomType* atype2, - RealType rij, - RealType &rho_i_at_j, - RealType &rho_j_at_i); + static void setCutoffRadius(RealType rcut) {rCut_ = rcut;} + static void setSwitchingRadius(RealType rsw) {rSwitch_ = rsw;} + static void useShiftedForce() ; + static void useShiftedPot(); - static void doPreForce(AtomType* atype, - RealType rho, - RealType &frho, - RealType &dfrhodrho); - - static void doSkipCorrection(AtomType* atype1, - AtomType* atype2, - Vector3d d, - RealType rij, - RealType &skippedCharge1, - RealType &skippedCharge2, - RealType sw, - RealType electroMult, - RealType &pot, - RealType &vpair, - Vector3d &f1, - Mat3x3d eFrame1, - Mat3x3d eFrame2, - Vector3d &t1, - Vector3d &t2); - - static void doSelfCorrection(AtomType* atype, - Mat3x3d eFrame, - RealType skippedCharge, - RealType &pot, - Vector3d &t); - - static RealType getCutoff(); - // Fortran support routines - static void do_prepair(int *atid1, int *atid2, RealType *rij, RealType *rho_i_at_j, RealType *rho_j_at_i); - static void do_preforce(int *atid, RealType *rho, RealType *frho, RealType *dfrhodrho); - static void do_pair(int *atid1, int *atid2, RealType *d, RealType *r, RealType *r2, RealType *rcut, RealType *sw, RealType *vdwMult,RealType *electroMult, RealType *pot, RealType *vpair, RealType *f1, RealType *eFrame1, RealType *eFrame2, RealType *A1, RealType *A2, RealType *t1, RealType *t2, RealType *rho1, RealType *rho2, RealType *dfrho1, RealType *dfrho2, RealType *fshift1, RealType *fshift2); - static void do_skip_correction(int *atid1, int *atid2, RealType *d, RealType *r, RealType *skippedCharge1, RealType *skippedCharge2, RealType *sw, RealType *electroMult, RealType *pot, RealType *vpair, RealType *f1, RealType *eFrame1, RealType *eFrame2, RealType *t1, RealType *t2); - static void do_self_correction(int *atid, RealType *eFrame, RealType *skippedCharge, RealType *pot, RealType *t); - + static void doPrePair(int *atid1, int *atid2, RealType *rij, RealType *rho_i_at_j, RealType *rho_j_at_i); + static void doPreForce(int *atid, RealType *rho, RealType *frho, RealType *dfrhodrho); + static void doPair(int *atid1, int *atid2, RealType *d, RealType *r, RealType *r2, RealType *rcut, RealType *sw, RealType *vdwMult,RealType *electroMult, RealType *pot, RealType *vpair, RealType *f1, RealType *eFrame1, RealType *eFrame2, RealType *A1, RealType *A2, RealType *t1, RealType *t2, RealType *rho1, RealType *rho2, RealType *dfrho1, RealType *dfrho2, RealType *fshift1, RealType *fshift2); + static void doSkipCorrection(int *atid1, int *atid2, RealType *d, RealType *r, RealType *skippedCharge1, RealType *skippedCharge2, RealType *sw, RealType *electroMult, RealType *pot, RealType *vpair, RealType *f1, RealType *eFrame1, RealType *eFrame2, RealType *t1, RealType *t2); + static void doSelfCorrection(int *atid, RealType *eFrame, RealType *skippedCharge, RealType *pot, RealType *t); + static RealType getSuggestedCutoffRadius(int *atid1); + static RealType getSuggestedCutoffRadius(AtomType *atype); private: virtual ~InteractionManager() { } @@ -131,15 +102,16 @@ namespace OpenMD { static Morse* morse_; static Electrostatic* electrostatic_; + static RealType rCut_; + static RealType rSwitch_; + static map typeMap_; /** * Each pair of atom types can have multiple interactions, so the * natural data structures are a map between the pair, and a set * of non-bonded interactions. */ - static map, set > interactions_; - - + static map, set > interactions_; }; } #endif