# GBVIForce Class Reference

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

`#include <GBVIForce.h>`

Inheritance diagram for GBVIForce:

List of all members.

## Classes

class | BondInfo
| This is an internal class used to record information about a bond.
class | ParticleInfo
| This is an internal class used to record information about a particle.

## 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).

## Protected Member Functions

ForceImpl * | createImpl () const
| When a Context is created, it invokes this method on each Force in the System.

## 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().

Deprecated:
  This class is not supported by most platforms, and will eventually be removed. You can implement the same force with CustomGBForce.

## Member Enumeration Documentation

enum BornRadiusScalingMethod

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.

enum NonbondedMethod

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:

  | particle1 | the index of the first particle
  | particle2 | the index of the second particle
  | distance | the 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:

  | charge | the charge of the particle, measured in units of the proton charge
  | radius | the GB/VI radius of the particle, measured in nm
  | gamma | the gamma parameter

Returns:
  the index of the particle that was added

ForceImpl* createImpl | ( |  | ) | const`[protected, virtual]`

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:

  | index | the index of the bond for which to get parameters
  | particle1 | the index of the first particle involved in the bond
  | particle2 | the index of the second particle involved in the bond
  | distance | the 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:

  | index | the index of the particle for which to get parameters
  | charge | the charge of the particle, measured in units of the proton charge
  | radius | the GBSA radius of the particle, measured in nm
  | gamma | the 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:

  | index | index of the bond for which to set parameters
  | particle1 | index of first atom in bond
  | particle2 | index of second atom in bond
  | bondLength | bond 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:

  | distance | the 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:

  | index | the index of the particle for which to set parameters
  | charge | the charge of the particle, measured in units of the proton charge
  | radius | the GB/VI radius of the particle, measured in nm
  | gamma | the 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:

- GBVIForce.h