44 |
|
|
45 |
|
#include "brains/SimInfo.hpp" |
46 |
|
#include "types/AtomType.hpp" |
47 |
– |
#include "UseTheForce/ForceField.hpp" |
47 |
|
#include "nonbonded/LJ.hpp" |
48 |
|
#include "nonbonded/GB.hpp" |
49 |
|
#include "nonbonded/Sticky.hpp" |
51 |
|
#include "nonbonded/SC.hpp" |
52 |
|
#include "nonbonded/Morse.hpp" |
53 |
|
#include "nonbonded/Electrostatic.hpp" |
54 |
+ |
#include "nonbonded/MAW.hpp" |
55 |
|
#include "nonbonded/SwitchingFunction.hpp" |
56 |
|
|
57 |
|
using namespace std; |
58 |
|
|
59 |
|
namespace OpenMD { |
60 |
+ |
enum CutoffMethod { |
61 |
+ |
HARD, |
62 |
+ |
SWITCHED, |
63 |
+ |
SHIFTED_POTENTIAL, |
64 |
+ |
SHIFTED_FORCE |
65 |
+ |
}; |
66 |
+ |
|
67 |
|
/** |
68 |
|
* @class InteractionManager InteractionManager is responsible for |
69 |
|
* keeping track of the non-bonded interactions (C++) and providing |
73 |
|
|
74 |
|
public: |
75 |
|
static InteractionManager* Instance(); |
76 |
< |
static void setForceField(ForceField *ff) {forceField_ = ff;} |
77 |
< |
static void setCutoffRadius(RealType rcut) {rCut_ = rcut;} |
71 |
< |
static void setSwitchingRadius(RealType rsw) {rSwitch_ = rsw;} |
72 |
< |
static void setCutoffMethod(CutoffMethod cm) {cutoffMethod_ = cm;} |
76 |
> |
static void setSimInfo(SimInfo* info) {info_ = info;} |
77 |
> |
static void initialize(); |
78 |
|
|
79 |
|
// Fortran support routines |
80 |
|
|
96 |
|
InteractionManager& operator=(InteractionManager const&) {}; |
97 |
|
static InteractionManager* _instance; |
98 |
|
|
94 |
– |
static void initialize(); |
99 |
|
static bool initialized_; |
100 |
|
|
101 |
< |
static ForceField* forceField_; |
101 |
> |
static void setupCutoffs(); |
102 |
> |
static void setupSwitching(); |
103 |
> |
static void setupNeighborlists(); |
104 |
> |
|
105 |
> |
static SimInfo* info_; |
106 |
|
static LJ* lj_; |
107 |
|
static GB* gb_; |
108 |
|
static Sticky* sticky_; |
110 |
|
static SC* sc_; |
111 |
|
static Morse* morse_; |
112 |
|
static Electrostatic* electrostatic_; |
113 |
+ |
static MAW* maw_; |
114 |
|
static SwitchingFunction* switcher_; |
115 |
|
|
116 |
< |
static RealType rCut_; |
117 |
< |
static RealType rSwitch_; |
118 |
< |
static CutoffMethod cutoffMethod_; |
116 |
> |
static RealType rCut_; /**< cutoff radius for non-bonded interactions */ |
117 |
> |
static RealType rSwitch_; /**< inner radius of switching function */ |
118 |
> |
static CutoffMethod cutoffMethod_;/**< Cutoff Method for most non-bonded interactions */ |
119 |
> |
static SwitchingFunctionType sft_;/**< Type of switching function in use */ |
120 |
> |
static RealType listRadius_; /**< Verlet neighbor list radius */ |
121 |
> |
static RealType skinThickness_; /**< Verlet neighbor list skin thickness */ |
122 |
|
|
123 |
|
static RealType vdwScale_[4]; |
124 |
|
static RealType electrostaticScale_[4]; |