1 #ifndef OPENMM_GBVIFORCEFIELD_H_
2 #define OPENMM_GBVIFORCEFIELD_H_
37 #include "internal/windowsExport.h"
65 CutoffNonPeriodic = 1,
95 return particles.size();
106 int addParticle(
double charge,
double radius,
double gamma);
115 void getParticleParameters(
int index,
double& charge,
double& radius,
double& gamma)
const;
124 void setParticleParameters(
int index,
double charge,
double radius,
double gamma);
133 int addBond(
int particle1,
int particle2,
double distance);
143 void getBondParameters(
int index,
int& particle1,
int& particle2,
double& distance)
const;
152 void setBondParameters(
int index,
int particle1,
int particle2,
double bondLength);
158 int getNumBonds(
void )
const;
164 return solventDielectric;
170 solventDielectric = dielectric;
176 return soluteDielectric;
182 soluteDielectric = dielectric;
187 NonbondedMethod getNonbondedMethod()
const;
191 void setNonbondedMethod(NonbondedMethod method);
198 double getCutoffDistance()
const;
205 void setCutoffDistance(
double distance);
209 BornRadiusScalingMethod getBornRadiusScalingMethod(
void )
const;
213 void setBornRadiusScalingMethod( BornRadiusScalingMethod method);
217 double getQuinticLowerLimitFactor(
void )
const;
221 void setQuinticLowerLimitFactor(
double quinticLowerLimitFactor );
225 double getQuinticUpperBornRadiusLimit(
void )
const;
229 void setQuinticUpperBornRadiusLimit(
double quinticUpperBornRadiusLimit);
234 NonbondedMethod nonbondedMethod;
235 double cutoffDistance, solventDielectric, soluteDielectric;
237 BornRadiusScalingMethod scalingMethod;
238 double quinticLowerLimitFactor, quinticUpperBornRadiusLimit;
241 std::vector<ParticleInfo> particles;
242 std::vector<BondInfo> bonds;
249 class GBVIForce::ParticleInfo {
251 double charge, radius, gamma;
253 charge = radius = gamma = 0.0;
255 ParticleInfo(
double charge,
double radius,
double gamma) :
256 charge(charge), radius(radius), gamma(gamma) {
264 class GBVIForce::BondInfo {
266 int particle1, particle2;
273 BondInfo(
int atomIndex1,
int atomIndex2,
double bondLength) :
274 particle1(atomIndex1), particle2(atomIndex2), bondLength(bondLength) {