OpenMM
 All Classes Namespaces Functions Variables Pages
ForceField Class Reference

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

+ Inheritance diagram for ForceField:

Public Member Functions

def __init__
 Load one or more XML files and create a ForceField object based on them. More...
 
def loadFile
 Load an XML file and add the definitions from it to this FieldField. More...
 
def getGenerators
 Get the list of all registered generators. More...
 
def registerGenerator
 Register a new generator. More...
 
def registerAtomType
 Register a new atom type. More...
 
def registerResidueTemplate
 Register a new residue template. More...
 
def registerScript
 Register a new script to be executed after building the System. More...
 
def createSystem
 Construct an OpenMM System representing a Topology with this force field. More...
 

Detailed Description

A ForceField constructs OpenMM System objects based on a Topology.

Constructor & Destructor 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.

References ForceField._atomClasses, ForceField._atomTypes, ForceField._forces, ForceField._scripts, ForceField._templates, ForceField._templateSignatures, and ForceField.loadFile().

Referenced by ForceField.createSystem(), and ForceField.registerScript().

Member Function Documentation

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.
argsArbitrary 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

References ForceField.__init__(), ForceField._atomTypes, ForceField._forces, ForceField._scripts, ForceField._templateSignatures, HarmonicAngleGenerator.angle, AmoebaAngleGenerator.angle, CustomNonbondedGenerator.bondCutoff, CustomManyParticleGenerator.bondCutoff, RBTorsion.c, CustomGBGenerator.computedValues, NonbondedGenerator.coulomb14scale, CustomNonbondedGenerator.energy, CustomManyParticleGenerator.energy, CustomGBGenerator.energyTerms, HarmonicBondGenerator.ff, HarmonicAngleGenerator.ff, PeriodicTorsionGenerator.ff, RBTorsionGenerator.ff, CMAPTorsionGenerator.ff, NonbondedGenerator.ff, GBSAOBCGenerator.ff, GBVIGenerator.ff, CustomBondGenerator.ff, CustomAngleGenerator.ff, CustomTorsionGenerator.ff, CustomNonbondedGenerator.ff, CustomGBGenerator.ff, CustomManyParticleGenerator.ff, DrudeGenerator.ff, GBVIGenerator.fixedParameters, CustomNonbondedGenerator.functions, CustomGBGenerator.functions, CustomManyParticleGenerator.functions, CustomBondGenerator.globalParams, CustomAngleGenerator.globalParams, CustomTorsionGenerator.globalParams, CustomNonbondedGenerator.globalParams, CustomGBGenerator.globalParams, CustomManyParticleGenerator.globalParams, PeriodicTorsionGenerator.improper, RBTorsionGenerator.improper, CustomTorsionGenerator.improper, HarmonicBondGenerator.k, HarmonicAngleGenerator.k, PeriodicTorsion.k, AmoebaBondGenerator.k, AmoebaAngleGenerator.k, AmoebaPiTorsionGenerator.k, AmoebaUreyBradleyGenerator.k, ForceField._BondData.length, HarmonicBondGenerator.length, AmoebaBondGenerator.length, AmoebaUreyBradleyGenerator.length, NonbondedGenerator.lj14scale, CMAPTorsion.map, CMAPTorsionGenerator.maps, CustomBondGenerator.paramValues, CustomAngleGenerator.paramValues, CustomTorsion.paramValues, CustomManyParticleGenerator.particlesPerSet, CustomAngleGenerator.perAngleParams, CustomBondGenerator.perBondParams, PeriodicTorsion.periodicity, CustomManyParticleGenerator.permutationMode, CustomNonbondedGenerator.perParticleParams, CustomGBGenerator.perParticleParams, CustomManyParticleGenerator.perParticleParams, CustomTorsionGenerator.perTorsionParams, PeriodicTorsion.phase, PeriodicTorsionGenerator.proper, RBTorsionGenerator.proper, CustomTorsionGenerator.proper, CMAPTorsionGenerator.torsions, CustomManyParticleGenerator.typeFilters, NonbondedGenerator.typeMap, GBSAOBCGenerator.typeMap, GBVIGenerator.typeMap, CustomNonbondedGenerator.typeMap, CustomGBGenerator.typeMap, CustomManyParticleGenerator.typeMap, AmoebaVdwGenerator.typeMap, AmoebaMultipoleGenerator.typeMap, AmoebaWcaDispersionGenerator.typeMap, DrudeGenerator.typeMap, HarmonicBondGenerator.types1, HarmonicAngleGenerator.types1, PeriodicTorsion.types1, RBTorsion.types1, CMAPTorsion.types1, CustomBondGenerator.types1, CustomAngleGenerator.types1, CustomTorsion.types1, AmoebaBondGenerator.types1, AmoebaAngleGenerator.types1, AmoebaOutOfPlaneBendGenerator.types1, AmoebaTorsionGenerator.types1, AmoebaPiTorsionGenerator.types1, AmoebaTorsionTorsionGenerator.types1, AmoebaStretchBendGenerator.types1, AmoebaUreyBradleyGenerator.types1, HarmonicBondGenerator.types2, HarmonicAngleGenerator.types2, PeriodicTorsion.types2, RBTorsion.types2, CMAPTorsion.types2, CustomBondGenerator.types2, CustomAngleGenerator.types2, CustomTorsion.types2, AmoebaBondGenerator.types2, AmoebaAngleGenerator.types2, AmoebaOutOfPlaneBendGenerator.types2, AmoebaTorsionGenerator.types2, AmoebaPiTorsionGenerator.types2, AmoebaTorsionTorsionGenerator.types2, AmoebaStretchBendGenerator.types2, AmoebaUreyBradleyGenerator.types2, HarmonicAngleGenerator.types3, PeriodicTorsion.types3, RBTorsion.types3, CMAPTorsion.types3, CustomAngleGenerator.types3, CustomTorsion.types3, AmoebaAngleGenerator.types3, AmoebaOutOfPlaneBendGenerator.types3, AmoebaTorsionGenerator.types3, AmoebaTorsionTorsionGenerator.types3, AmoebaStretchBendGenerator.types3, AmoebaUreyBradleyGenerator.types3, PeriodicTorsion.types4, RBTorsion.types4, CMAPTorsion.types4, CustomTorsion.types4, AmoebaOutOfPlaneBendGenerator.types4, AmoebaTorsionGenerator.types4, AmoebaTorsionTorsionGenerator.types4, CMAPTorsion.types5, and AmoebaTorsionTorsionGenerator.types5.

Referenced by ForceField.registerScript().

def getGenerators (   self)

Get the list of all registered generators.

References ForceField._forces.

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.

References ForceField._atomTypes, ForceField.registerAtomType(), ForceField.registerResidueTemplate(), and ForceField.registerScript().

Referenced by ForceField.__init__().

def registerAtomType (   self,
  parameters 
)

Register a new atom type.

References ForceField._atomClasses, and ForceField._atomTypes.

Referenced by ForceField.loadFile().

def registerGenerator (   self,
  generator 
)

Register a new generator.

def registerResidueTemplate (   self,
  template 
)

Register a new residue template.

References ForceField._templates, and ForceField._templateSignatures.

Referenced by ForceField.loadFile().

def registerScript (   self,
  script 
)

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

References ForceField.__init__(), ForceField._atomClasses, ForceField._atomTypes, ForceField._findAtomTypes(), GromacsTopFile._MoleculeType.angles, ForceField._SystemData.angles, ForceField._BondData.atom1, ForceField._BondData.atom2, ForceField._SystemData.atomBonds, GromacsTopFile._MoleculeType.atoms, Topology.atoms(), Chain.atoms(), Residue.atoms(), ForceField._SystemData.atoms, ForceField._TemplateData.atoms, ForceField._VirtualSiteData.atoms, ForceField._SystemData.atomType, ForceField._TemplateAtomData.bondedTo, GromacsTopFile._MoleculeType.bonds, Topology.bonds(), ForceField._SystemData.bonds, ForceField._TemplateData.bonds, ForceField.createSystem(), Atom.element, ForceField._TemplateAtomData.element, ForceField._SystemData.excludeAtomWith, ForceField._VirtualSiteData.excludeWith, ForceField._TemplateData.externalBonds, ForceField._TemplateAtomData.externalBonds, ForceField._SystemData.impropers, Chain.index, Residue.index, Atom.index, ForceField._VirtualSiteData.index, ForceField._SystemData.isAngleConstrained, ForceField._BondData.isConstrained, ForceField._BondData.length, HarmonicBondGenerator.length, AmoebaBondGenerator.length, AmoebaUreyBradleyGenerator.length, ForceField._VirtualSiteData.localPos, Element.name(), Residue.name, Atom.name, ForceField._TemplateData.name, ForceField._TemplateAtomData.name, Modeller._ResidueData.name, Modeller._Hydrogen.name, ForceField._VirtualSiteData.originWeights, ForceField._SystemData.propers, ForceField._TemplateAtomData.type, ForceField._VirtualSiteData.type, AmoebaOutOfPlaneBendGenerator.type, AmoebaVdwGenerator.type, ForceField._SystemData.virtualSites, ForceField._TemplateData.virtualSites, ForceField._VirtualSiteData.weights, ForceField._VirtualSiteData.xWeights, and ForceField._VirtualSiteData.yWeights.

Referenced by ForceField.loadFile().


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