93 void setForceField(
ForceField* ff) { forceField_ = ff; };
94 void setElectrostatic(
Electrostatic* el) { electrostatic_ = el; };
95 void setSimulatedAtomTypes(AtomTypeSet& simtypes) {
100 void addExplicitInteraction(
AtomType* atype1,
AtomType* atype2, RealType dr,
101 int nr, std::vector<RealType> phiAB);
103 void addExplicitInteraction(
AtomType* atype1,
AtomType* atype2, RealType re,
104 RealType alpha, RealType beta, RealType A,
105 RealType B, RealType kappa, RealType lambda);
107 void addExplicitInteraction(
AtomType* atype1,
AtomType* atype2, RealType re,
108 RealType alpha, RealType A, RealType Ci,
111 RealType fastPower(RealType x,
int y);
125 RealType PhiCoreCore(RealType r, RealType re, RealType A, RealType alpha,
127 RealType PhiCoreValence(RealType r, RealType re, RealType B, RealType beta,
130 RealType Phi(RealType r, RealType re, RealType A, RealType B,
131 RealType alpha, RealType beta, RealType kappa,
134 RealType Rho(RealType r, RealType re, RealType fe, RealType beta,
136 RealType gFunc(RealType q, RealType nV, RealType nM);
137 RealType gPrime(RealType q, RealType nV, RealType nM);
138 RealType Zhou2001Functional(RealType rho, RealType rhoe,
139 std::vector<RealType> Fn,
140 std::vector<RealType> F, RealType Fe,
142 RealType Zhou2004Functional(RealType rho, RealType rhoe, RealType rhos,
143 std::vector<RealType> Fn,
144 std::vector<RealType> F, RealType Fe,
145 RealType eta, RealType rhol, RealType rhoh);
146 RealType Zhou2005Functional(RealType rho, RealType rhoe, RealType rhos,
147 std::vector<RealType> Fn,
148 std::vector<RealType> F, RealType F3plus,
149 RealType F3minus, RealType Fe, RealType eta);
150 RealType Zhou2005OxygenFunctional(RealType rho,
151 std::vector<RealType> OrhoLimits,
152 std::vector<RealType> OrhoE,
153 std::vector<std::vector<RealType>> OF);
154 RealType RoseFunctional(RealType rho, RealType rhoe, RealType F0);
157 void calcFunctional(
SelfData& sdat);
160 virtual string getName() {
return name_; }
161 virtual int getHash() {
return EAM_INTERACTION; }
162 virtual RealType getSuggestedCutoffRadius(
163 pair<AtomType*, AtomType*> atypes);
164 void setCutoffRadius(RealType rCut);
171 bool haveCutoffRadius_;
177 vector<vector<EAMInteractionData>>
183 AtomTypeSet simTypes_;
189 EAMMixingMethod mixMeth_;