CustomTorsionForce Class Reference

This class implements interactions between sets of four particles that depend on the torsion angle between them. More...

Inheritance diagram for CustomTorsionForce:
Force

List of all members.

Public Member Functions

def getNumTorsions
 getNumTorsions(self) -> int
def getNumPerTorsionParameters
 getNumPerTorsionParameters(self) -> int
def getNumGlobalParameters
 getNumGlobalParameters(self) -> int
def getEnergyFunction
 getEnergyFunction(self) -> string
def setEnergyFunction
 setEnergyFunction(self, string energy)
def addPerTorsionParameter
 addPerTorsionParameter(self, string name) -> int
def getPerTorsionParameterName
 getPerTorsionParameterName(self, int index) -> string
def setPerTorsionParameterName
 setPerTorsionParameterName(self, int index, string name)
def addGlobalParameter
 addGlobalParameter(self, string name, double defaultValue) -> int
def getGlobalParameterName
 getGlobalParameterName(self, int index) -> string
def setGlobalParameterName
 setGlobalParameterName(self, int index, string name)
def getGlobalParameterDefaultValue
 getGlobalParameterDefaultValue(self, int index) -> double
def setGlobalParameterDefaultValue
 setGlobalParameterDefaultValue(self, int index, double defaultValue)
def addTorsion
 addTorsion(self, int particle1, int particle2, int particle3, int particle4, vectord parameters) -> int
def getTorsionParameters
 getTorsionParameters(self, int index)
def setTorsionParameters
 setTorsionParameters(self, int index, int particle1, int particle2, int particle3, int particle4, vectord parameters)
def __init__
 __init__(self, string energy) -> CustomTorsionForce __init__(self, CustomTorsionForce other) -> CustomTorsionForce
def __del__
 __del__(self)

Public Attributes

 this

Detailed Description

This class implements interactions between sets of four particles that depend on the torsion angle between them.

Unlike PeriodicTorsionForce, the functional form of the interaction is completely customizable, and may involve arbitrary algebraic expressions. In addition to the angle formed by the particles, it may depend on arbitrary global and per-torsion parameters.

To use this class, create a CustomTorsionForce object, passing an algebraic expression to the constructor that defines the interaction energy between each set of particles. The expression may depend on theta, the torsion angle formed by the particles, as well as on any parameters you choose. Then call addPerTorsionParameter() to define per-torsion parameters, and addGlobalParameter() to define global parameters. The values of per-torsion parameters are specified as part of the system definition, while values of global parameters may be modified during a simulation by calling Context.setParameter(). Finally, call addTorsion() once for each torsion. After an torsion has been added, you can modify its parameters by calling setTorsionParameters().

As an example, the following code creates a CustomTorsionForce that implements a harmonic potential:

CustomTorsionForce* force = new CustomTorsionForce("0.5*k*(theta-theta0)^2");

This force depends on two parameters: the spring constant k and equilibrium angle theta0. The following code defines these parameters:

     force->addPerTorsionParameter("k");
     force->addPerTorsionParameter("theta0");
     

Expressions may involve the operators + (add), - (subtract), * (multiply), / (divide), and ^ (power), and the following functions: sqrt, exp, log, sin, cos, sec, csc, tan, cot, asin, acos, atan, sinh, cosh, tanh, erf, erfc, min, max, abs, step. All trigonometric functions are defined in radians, and log is the natural logarithm. step(x) = 0 if x is less than 0, 1 otherwise.


Member Function Documentation

def __del__ (   self  ) 

__del__(self)

Reimplemented from Force.

def __init__ (   self,
  args 
)

__init__(self, string energy) -> CustomTorsionForce __init__(self, CustomTorsionForce other) -> CustomTorsionForce

Create a CustomTorsionForce.

Parameters:
energy an algebraic expression giving the interaction energy between three particles as a function of theta, the torsion angle between them
def addGlobalParameter (   self,
  args 
)

addGlobalParameter(self, string name, double defaultValue) -> int

Add a new global parameter that the interaction may depend on.

Parameters:
name the name of the parameter
defaultValue the default value of the parameter
def addPerTorsionParameter (   self,
  args 
)

addPerTorsionParameter(self, string name) -> int

Add a new per-torsion parameter that the interaction may depend on.

Parameters:
name the name of the parameter
def addTorsion (   self,
  args 
)

addTorsion(self, int particle1, int particle2, int particle3, int particle4, vectord parameters) -> int

Add a torsion term to the force field.

Parameters:
particle1 the index of the first particle connected by the torsion
particle2 the index of the second particle connected by the torsion
particle3 the index of the third particle connected by the torsion
particle4 the index of the fourth particle connected by the torsion
parameters the list of parameters for the new torsion
def getEnergyFunction (   self  ) 

getEnergyFunction(self) -> string

Get the algebraic expression that gives the interaction energy for each torsion

def getGlobalParameterDefaultValue (   self,
  args 
)

getGlobalParameterDefaultValue(self, int index) -> double

Get the default value of a global parameter.

Parameters:
index the index of the parameter for which to get the default value
def getGlobalParameterName (   self,
  args 
)

getGlobalParameterName(self, int index) -> string

Get the name of a global parameter.

Parameters:
index the index of the parameter for which to get the name
def getNumGlobalParameters (   self  ) 

getNumGlobalParameters(self) -> int

Get the number of global parameters that the interaction depends on.

def getNumPerTorsionParameters (   self  ) 

getNumPerTorsionParameters(self) -> int

Get the number of per-torsion parameters that the interaction depends on.

def getNumTorsions (   self  ) 

getNumTorsions(self) -> int

Get the number of torsions for which force field parameters have been defined.

def getPerTorsionParameterName (   self,
  args 
)

getPerTorsionParameterName(self, int index) -> string

Get the name of a per-torsion parameter.

Parameters:
index the index of the parameter for which to get the name
def getTorsionParameters (   self,
  args 
)

getTorsionParameters(self, int index)

Get the force field parameters for a torsion term.

Parameters:
index the index of the torsion for which to get parameters
particle1 the index of the first particle connected by the torsion
particle2 the index of the second particle connected by the torsion
particle3 the index of the third particle connected by the torsion
particle4 the index of the fourth particle connected by the torsion
parameters the list of parameters for the torsion
def setEnergyFunction (   self,
  args 
)

setEnergyFunction(self, string energy)

Set the algebraic expression that gives the interaction energy for each torsion

def setGlobalParameterDefaultValue (   self,
  args 
)

setGlobalParameterDefaultValue(self, int index, double defaultValue)

Set the default value of a global parameter.

Parameters:
index the index of the parameter for which to set the default value
name the default value of the parameter
def setGlobalParameterName (   self,
  args 
)

setGlobalParameterName(self, int index, string name)

Set the name of a global parameter.

Parameters:
index the index of the parameter for which to set the name
name the name of the parameter
def setPerTorsionParameterName (   self,
  args 
)

setPerTorsionParameterName(self, int index, string name)

Set the name of a per-torsion parameter.

Parameters:
index the index of the parameter for which to set the name
name the name of the parameter
def setTorsionParameters (   self,
  args 
)

setTorsionParameters(self, int index, int particle1, int particle2, int particle3, int particle4, vectord parameters)

Set the force field parameters for a torsion term.

Parameters:
index the index of the torsion for which to set parameters
particle1 the index of the first particle connected by the torsion
particle2 the index of the second particle connected by the torsion
particle3 the index of the third particle connected by the torsion
particle4 the index of the fourth particle connected by the torsion
parameters the list of parameters for the torsion

Member Data Documentation


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

Generated by  doxygen 1.6.2