ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/nonbonded/InteractionManager.hpp
(Generate patch)

Comparing branches/development/src/nonbonded/InteractionManager.hpp (file contents):
Revision 1502 by gezelter, Sat Oct 2 19:53:32 2010 UTC vs.
Revision 1530 by gezelter, Tue Dec 28 21:47:55 2010 UTC

# Line 52 | Line 52
52   #include "nonbonded/SC.hpp"
53   #include "nonbonded/Morse.hpp"
54   #include "nonbonded/Electrostatic.hpp"
55 + #include "nonbonded/SwitchingFunction.hpp"
56  
57   using namespace std;
58  
# Line 65 | Line 66 | namespace OpenMD {
66  
67    public:
68      static InteractionManager* Instance();
69 <    static void setForceField(ForceField *ff) {forceField_ = ff;};    
69 >    static void setForceField(ForceField *ff) {forceField_ = ff;}
70 >    static void setCutoffRadius(RealType rcut) {rCut_ = rcut;}
71 >    static void setSwitchingRadius(RealType rsw) {rSwitch_ = rsw;}
72 >    static void setCutoffMethod(CutoffMethod cm) {cutoffMethod_ = cm;}
73  
70    static void doPrePair(AtomType* atype1,
71                          AtomType* atype2,
72                          RealType rij,
73                          RealType &rho_i_at_j,
74                          RealType &rho_j_at_i);
75
76    static void doPreForce(AtomType* atype,
77                           RealType rho,      
78                           RealType &frho,
79                           RealType &dfrhodrho);
80
81    static void doSkipCorrection(AtomType* atype1,      
82                                 AtomType* atype2,
83                                 Vector3d d,
84                                 RealType rij,
85                                 RealType &skippedCharge1,
86                                 RealType &skippedCharge2,
87                                 RealType sw,
88                                 RealType electroMult,
89                                 RealType &pot,
90                                 RealType &vpair,
91                                 Vector3d &f1,
92                                 Mat3x3d eFrame1,
93                                 Mat3x3d eFrame2,
94                                 Vector3d &t1,
95                                 Vector3d &t2);
96    
97    static void doSelfCorrection(AtomType* atype,
98                                 Mat3x3d eFrame,
99                                 RealType skippedCharge,
100                                 RealType &pot,
101                                 Vector3d &t);
102
103    static RealType getCutoff();
104
74      // Fortran support routines
75  
76 <    static void do_prepair(int *atid1, int *atid2, RealType *rij, RealType *rho_i_at_j, RealType *rho_j_at_i);
77 <    static void do_preforce(int *atid, RealType *rho, RealType *frho, RealType *dfrhodrho);
78 <    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);    
79 <    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);
80 <    static void do_self_correction(int *atid, RealType *eFrame, RealType *skippedCharge, RealType *pot, RealType *t);
81 <  
76 >    static void doPrePair(int *atid1, int *atid2, RealType *rij, RealType *rho_i_at_j, RealType *rho_j_at_i);
77 >    static void doPreForce(int *atid, RealType *rho, RealType *frho, RealType *dfrhodrho);
78 >    static void doPair(int *atid1, int *atid2, RealType *d, RealType *r, RealType *r2, RealType *rcut, RealType *sw, int *topoDist, 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);    
79 >    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);
80 >    static void doSelfCorrection(int *atid, RealType *eFrame, RealType *skippedCharge, RealType *pot, RealType *t);
81 >    static RealType getSuggestedCutoffRadius(int *atid1);  
82 >    static RealType getSuggestedCutoffRadius(AtomType *atype);
83 >    static void setSwitch(RealType *rIn, RealType *rOut);
84 >    static void getSwitch(RealType *r2, RealType *sw, RealType *dswdr, RealType *r, int *in_switching_region);
85      
86    private:
87      virtual ~InteractionManager() { }
# Line 130 | Line 102 | namespace OpenMD {
102      static SC* sc_;
103      static Morse* morse_;
104      static Electrostatic* electrostatic_;
105 +    static SwitchingFunction* switcher_;
106  
107 +    static RealType rCut_;
108 +    static RealType rSwitch_;
109 +    static CutoffMethod cutoffMethod_;
110 +
111 +    static RealType vdwScale_[4];
112 +    static RealType electrostaticScale_[4];
113 +  
114      static map<int, AtomType*> typeMap_;
115      /**
116       * Each pair of atom types can have multiple interactions, so the
117       * natural data structures are a map between the pair, and a set
118       * of non-bonded interactions.
119       */
120 <    static map<pair<AtomType*, AtomType*>, set<NonBondedInteraction*> > interactions_;
141 <    
142 <
120 >    static map<pair<AtomType*, AtomType*>, set<NonBondedInteraction*> > interactions_;    
121    };
122   }
123   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines