# ForceField Class Reference

A ForceField constructs OpenMM System objects based on a Topology. More...

List of all members.

## Classes
class | _BondData
| Inner class used to encapsulate data about a bond.
class | _SystemData
| Inner class used to encapsulate data about the system being created.
class | _TemplateAtomData
| Inner class used to encapsulate data about an atom in a residue template definition.
class | _TemplateData
| Inner class used to encapsulate data about a residue template definition.
class | _VirtualSiteData
| Inner class used to encapsulate data about a virtual site.
## Public Member Functions
def | __init__
| Load one or more XML files and create a ForceField object based on them.
def | loadFile
| Load an XML file and add the definitions from it to this FieldField.
def | getGenerators
| Get the list of all registered generators.
def | registerGenerator
| Register a new generator.
def | registerAtomType
| Register a new atom type.
def | registerResidueTemplate
| Register a new residue template.
def | registerScript
| Register a new script to be executed after building the System.
def | createSystem
| Construct an OpenMM System representing a Topology with this force field.

## Detailed Description

A ForceField constructs OpenMM System objects based on a Topology.

## Member Function Documentation

def __init__ | ( |  | self,
|  |  | files |
| ) |  |  |

Load one or more XML files and create a ForceField object based on them.

Parameters:

  | files | (list) A list of XML files defining the force field. Each entry may be an absolute file path, a path relative to the current working directory, a path relative to this module's data subdirectory (for built in force fields), or an open file-like object with a read() method from which the forcefield XML data can be loaded.

def createSystem | ( |  | self,
|  |  | topology,
|  |  | nonbondedMethod = `NoCutoff`,
|  |  | nonbondedCutoff = `1.0*unit.nanometer`,
|  |  | constraints = `None`,
|  |  | rigidWater = `True`,
|  |  | removeCMMotion = `True`,
|  |  | hydrogenMass = `None`,
|  |  | args |
| ) |  |  |

Construct an OpenMM System representing a Topology with this force field.

Parameters:

  | topology | (Topology) The Topology for which to create a System
  | nonbondedMethod | (object=NoCutoff) The method to use for nonbonded interactions. Allowed values are NoCutoff, CutoffNonPeriodic, CutoffPeriodic, Ewald, or PME.
  | nonbondedCutoff | (distance=1*nanometer) The cutoff distance to use for nonbonded interactions
  | constraints | (object=None) Specifies which bonds and angles should be implemented with constraints. Allowed values are None, HBonds, AllBonds, or HAngles.
  | rigidWater | (boolean=True) If true, water molecules will be fully rigid regardless of the value passed for the constraints argument
  | removeCMMotion | (boolean=True) If true, a CMMotionRemover will be added to the System
  | hydrogenMass | (mass=None) The mass to use for hydrogen atoms bound to heavy atoms. Any mass added to a hydrogen is subtracted from the heavy atom to keep their total mass the same.
  | args | Arbitrary additional keyword arguments may also be specified. This allows extra parameters to be specified that are specific to particular force fields.

Returns:
  the newly created System

def getGenerators | ( |  | self | ) |

Get the list of all registered generators.

def loadFile | ( |  | self,
|  |  | file |
| ) |  |  |

Load an XML file and add the definitions from it to this FieldField.

Parameters:

  | file | (string or file) An XML file containing force field definitions. It may be either an absolute file path, a path relative to the current working directory, a path relative to this module's data subdirectory (for built in force fields), or an open file-like object with a read() method from which the forcefield XML data can be loaded.

def registerAtomType | ( |  | self,
|  |  | parameters |
| ) |  |  |

Register a new atom type.

def registerGenerator | ( |  | self,
|  |  | generator |
| ) |  |  |

Register a new generator.

def registerResidueTemplate | ( |  | self,
|  |  | template |
| ) |  |  |

Register a new residue template.

def registerScript | ( |  | self,
|  |  | script |
| ) |  |  |

Register a new script to be executed after building the System.

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

- forcefield.py