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) {
double getSoluteDielectric() const
Get the dielectric constant for the solute.
Definition: GBVIForce.h:175
Force objects apply forces to the particles in a System, or alter their behavior in other ways...
Definition: Force.h:65
BornRadiusScalingMethod
This is an enumeration of the different methods that may be used for scaling of the Born radii...
Definition: GBVIForce.h:76
void setSoluteDielectric(double dielectric)
Set the dielectric constant for the solute.
Definition: GBVIForce.h:181
void setSolventDielectric(double dielectric)
Set the dielectric constant for the solvent.
Definition: GBVIForce.h:169
int getNumParticles() const
Get the number of particles in the system.
Definition: GBVIForce.h:94
A ForceImpl provides the internal implementation of a Force.
Definition: ForceImpl.h:57
double getSolventDielectric() const
Get the dielectric constant for the solvent.
Definition: GBVIForce.h:163
This class implements an implicit solvation force using the GB/VI model.
Definition: GBVIForce.h:51
NonbondedMethod
This is an enumeration of the different methods that may be used for handling long range nonbonded fo...
Definition: GBVIForce.h:56