1 #ifndef OPENMM_GBVIFORCEFIELD_H_
2 #define OPENMM_GBVIFORCEFIELD_H_
37 #include "internal/windowsExport.h"
67 CutoffNonPeriodic = 1,
97 return particles.size();
108 int addParticle(
double charge,
double radius,
double gamma);
117 void getParticleParameters(
int index,
double& charge,
double& radius,
double& gamma)
const;
126 void setParticleParameters(
int index,
double charge,
double radius,
double gamma);
135 int addBond(
int particle1,
int particle2,
double distance);
145 void getBondParameters(
int index,
int& particle1,
int& particle2,
double& distance)
const;
154 void setBondParameters(
int index,
int particle1,
int particle2,
double bondLength);
160 int getNumBonds(
void )
const;
166 return solventDielectric;
172 solventDielectric = dielectric;
178 return soluteDielectric;
184 soluteDielectric = dielectric;
189 NonbondedMethod getNonbondedMethod()
const;
193 void setNonbondedMethod(NonbondedMethod method);
200 double getCutoffDistance()
const;
207 void setCutoffDistance(
double distance);
211 BornRadiusScalingMethod getBornRadiusScalingMethod(
void )
const;
215 void setBornRadiusScalingMethod( BornRadiusScalingMethod method);
219 double getQuinticLowerLimitFactor(
void )
const;
223 void setQuinticLowerLimitFactor(
double quinticLowerLimitFactor );
227 double getQuinticUpperBornRadiusLimit(
void )
const;
231 void setQuinticUpperBornRadiusLimit(
double quinticUpperBornRadiusLimit);
236 NonbondedMethod nonbondedMethod;
237 double cutoffDistance, solventDielectric, soluteDielectric;
239 BornRadiusScalingMethod scalingMethod;
240 double quinticLowerLimitFactor, quinticUpperBornRadiusLimit;
243 std::vector<ParticleInfo> particles;
244 std::vector<BondInfo> bonds;
251 class GBVIForce::ParticleInfo {
253 double charge, radius, gamma;
255 charge = radius = gamma = 0.0;
257 ParticleInfo(
double charge,
double radius,
double gamma) :
258 charge(charge), radius(radius), gamma(gamma) {
266 class GBVIForce::BondInfo {
268 int particle1, particle2;
275 BondInfo(
int atomIndex1,
int atomIndex2,
double bondLength) :
276 particle1(atomIndex1), particle2(atomIndex2), bondLength(bondLength) {
double getSoluteDielectric() const
Get the dielectric constant for the solute.
Definition: GBVIForce.h:177
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:78
void setSoluteDielectric(double dielectric)
Set the dielectric constant for the solute.
Definition: GBVIForce.h:183
void setSolventDielectric(double dielectric)
Set the dielectric constant for the solvent.
Definition: GBVIForce.h:171
int getNumParticles() const
Get the number of particles in the system.
Definition: GBVIForce.h:96
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:165
This class implements an implicit solvation force using the GB/VI model.
Definition: GBVIForce.h:53
NonbondedMethod
This is an enumeration of the different methods that may be used for handling long range nonbonded fo...
Definition: GBVIForce.h:58