OpenMM
 All Classes Namespaces Functions Variables Enumerations Enumerator Friends
GBVIForce Class Reference

This class implements an implicit solvation force using the GB/VI model. More...

#include <GBVIForce.h>

+ Inheritance diagram for GBVIForce:

Public Types

enum  NonbondedMethod { NoCutoff = 0, CutoffNonPeriodic = 1, CutoffPeriodic = 2 }
 This is an enumeration of the different methods that may be used for handling long range nonbonded forces. More...
 
enum  BornRadiusScalingMethod { NoScaling = 0, QuinticSpline = 1 }
 This is an enumeration of the different methods that may be used for scaling of the Born radii. More...
 

Public Member Functions

 GBVIForce ()
 
int getNumParticles () const
 Get the number of particles in the system.
 
int addParticle (double charge, double radius, double gamma)
 Add the GB/VI parameters for a particle.
 
void getParticleParameters (int index, double &charge, double &radius, double &gamma) const
 Get the force field parameters for a particle.
 
void setParticleParameters (int index, double charge, double radius, double gamma)
 Set the force field parameters for a particle.
 
int addBond (int particle1, int particle2, double distance)
 Add a bond.
 
void getBondParameters (int index, int &particle1, int &particle2, double &distance) const
 Get the parameters defining a bond.
 
void setBondParameters (int index, int particle1, int particle2, double bondLength)
 Set 1-2 bonds.
 
int getNumBonds (void) const
 Get number of bonds.
 
double getSolventDielectric () const
 Get the dielectric constant for the solvent.
 
void setSolventDielectric (double dielectric)
 Set the dielectric constant for the solvent.
 
double getSoluteDielectric () const
 Get the dielectric constant for the solute.
 
void setSoluteDielectric (double dielectric)
 Set the dielectric constant for the solute.
 
NonbondedMethod getNonbondedMethod () const
 Get the method used for handling long range nonbonded interactions.
 
void setNonbondedMethod (NonbondedMethod method)
 Set the method used for handling long range nonbonded interactions.
 
double getCutoffDistance () const
 Get the cutoff distance (in nm) being used for nonbonded interactions.
 
void setCutoffDistance (double distance)
 Set the cutoff distance (in nm) being used for nonbonded interactions.
 
BornRadiusScalingMethod getBornRadiusScalingMethod (void) const
 Get Born radius scaling method.
 
void setBornRadiusScalingMethod (BornRadiusScalingMethod method)
 Set Born radius scaling method.
 
double getQuinticLowerLimitFactor (void) const
 Get the lower limit factor used in the quintic spline scaling method (typically 0.5-0.8)
 
void setQuinticLowerLimitFactor (double quinticLowerLimitFactor)
 Set the lower limit factor used in the quintic spline scaling method (typically 0.5-0.8)
 
double getQuinticUpperBornRadiusLimit (void) const
 Get the upper limit used in the quintic spline scaling method, measured in nm (~5.0)
 
void setQuinticUpperBornRadiusLimit (double quinticUpperBornRadiusLimit)
 Set the upper limit used in the quintic spline scaling method, measured in nm (~5.0)
 
- Public Member Functions inherited from Force
 Force ()
 
virtual ~Force ()
 
int getForceGroup () const
 Get the force group this Force belongs to.
 
void setForceGroup (int group)
 Set the force group this Force belongs to.
 

Protected Member Functions

ForceImplcreateImpl () const
 When a Context is created, it invokes this method on each Force in the System.
 
- Protected Member Functions inherited from Force
ForceImplgetImplInContext (Context &context)
 Get the ForceImpl corresponding to this Force in a Context.
 
ContextImplgetContextImpl (Context &context)
 Get the ContextImpl corresponding to a Context.
 

Detailed Description

This class implements an implicit solvation force using the GB/VI model.

To use this class, create a GBVIForce object, then call addParticle() once for each particle in the System to define its parameters. The number of particles for which you define GB/VI parameters must be exactly equal to the number of particles in the System, or else an exception will be thrown when you try to create a Context. After a particle has been added, you can modify its force field parameters by calling setParticleParameters().

Member Enumeration Documentation

This is an enumeration of the different methods that may be used for scaling of the Born radii.

Enumerator:
NoScaling 

No scaling method is applied.

QuinticSpline 

Use quintic spline scaling function.

This is an enumeration of the different methods that may be used for handling long range nonbonded forces.

Enumerator:
NoCutoff 

No cutoff is applied to nonbonded interactions.

The full set of N^2 interactions is computed exactly. This necessarily means that periodic boundary conditions cannot be used. This is the default.

CutoffNonPeriodic 

Interactions beyond the cutoff distance are ignored.

CutoffPeriodic 

Periodic boundary conditions are used, so that each particle interacts only with the nearest periodic copy of each other particle.

Interactions beyond the cutoff distance are ignored.

Constructor & Destructor Documentation

GBVIForce ( )

Member Function Documentation

int addBond ( int  particle1,
int  particle2,
double  distance 
)

Add a bond.

Parameters
particle1the index of the first particle
particle2the index of the second particle
distancethe distance between the two particles, measured in nm
Returns
the index of the bond that was added
int addParticle ( double  charge,
double  radius,
double  gamma 
)

Add the GB/VI parameters for a particle.

This should be called once for each particle in the System. When it is called for the i'th time, it specifies the parameters for the i'th particle.

Parameters
chargethe charge of the particle, measured in units of the proton charge
radiusthe GB/VI radius of the particle, measured in nm
gammathe gamma parameter
Returns
the index of the particle that was added
ForceImpl* createImpl ( ) const
protectedvirtual

When a Context is created, it invokes this method on each Force in the System.

It should create a new ForceImpl object which can be used by the context for calculating forces. The ForceImpl will be deleted automatically when the Context is deleted.

Implements Force.

void getBondParameters ( int  index,
int &  particle1,
int &  particle2,
double &  distance 
) const

Get the parameters defining a bond.

Parameters
indexthe index of the bond for which to get parameters
particle1the index of the first particle involved in the bond
particle2the index of the second particle involved in the bond
distancethe distance between the two particles, measured in nm
BornRadiusScalingMethod getBornRadiusScalingMethod ( void  ) const

Get Born radius scaling method.

double getCutoffDistance ( ) const

Get the cutoff distance (in nm) being used for nonbonded interactions.

If the NonbondedMethod in use is NoCutoff, this value will have no effect.

Returns
the cutoff distance, measured in nm
NonbondedMethod getNonbondedMethod ( ) const

Get the method used for handling long range nonbonded interactions.

int getNumBonds ( void  ) const

Get number of bonds.

Returns
number of bonds
int getNumParticles ( ) const
inline

Get the number of particles in the system.

void getParticleParameters ( int  index,
double &  charge,
double &  radius,
double &  gamma 
) const

Get the force field parameters for a particle.

Parameters
indexthe index of the particle for which to get parameters
chargethe charge of the particle, measured in units of the proton charge
radiusthe GBSA radius of the particle, measured in nm
gammathe gamma parameter
double getQuinticLowerLimitFactor ( void  ) const

Get the lower limit factor used in the quintic spline scaling method (typically 0.5-0.8)

double getQuinticUpperBornRadiusLimit ( void  ) const

Get the upper limit used in the quintic spline scaling method, measured in nm (~5.0)

double getSoluteDielectric ( ) const
inline

Get the dielectric constant for the solute.

double getSolventDielectric ( ) const
inline

Get the dielectric constant for the solvent.

void setBondParameters ( int  index,
int  particle1,
int  particle2,
double  bondLength 
)

Set 1-2 bonds.

Parameters
indexindex of the bond for which to set parameters
particle1index of first atom in bond
particle2index of second atom in bond
bondLengthbond length, measured in nm
void setBornRadiusScalingMethod ( BornRadiusScalingMethod  method)

Set Born radius scaling method.

void setCutoffDistance ( double  distance)

Set the cutoff distance (in nm) being used for nonbonded interactions.

If the NonbondedMethod in use is NoCutoff, this value will have no effect.

Parameters
distancethe cutoff distance, measured in nm
void setNonbondedMethod ( NonbondedMethod  method)

Set the method used for handling long range nonbonded interactions.

void setParticleParameters ( int  index,
double  charge,
double  radius,
double  gamma 
)

Set the force field parameters for a particle.

Parameters
indexthe index of the particle for which to set parameters
chargethe charge of the particle, measured in units of the proton charge
radiusthe GB/VI radius of the particle, measured in nm
gammathe gamma parameter
void setQuinticLowerLimitFactor ( double  quinticLowerLimitFactor)

Set the lower limit factor used in the quintic spline scaling method (typically 0.5-0.8)

void setQuinticUpperBornRadiusLimit ( double  quinticUpperBornRadiusLimit)

Set the upper limit used in the quintic spline scaling method, measured in nm (~5.0)

void setSoluteDielectric ( double  dielectric)
inline

Set the dielectric constant for the solute.

void setSolventDielectric ( double  dielectric)
inline

Set the dielectric constant for the solvent.


The documentation for this class was generated from the following file: