openff.toolkit.typing.engines.smirnoff.parameters.vdWHandler

class openff.toolkit.typing.engines.smirnoff.parameters.vdWHandler(allow_cosmetic_attributes=False, skip_version_check=False, **kwargs)[source]

Handle SMIRNOFF <vdW> tags

Warning

This API is experimental and subject to change.

__init__(allow_cosmetic_attributes=False, skip_version_check=False, **kwargs)

Initialize a ParameterHandler, optionally with a list of parameters and other kwargs.

Parameters
allow_cosmetic_attributesbool, optional. Default = False

Whether to permit non-spec kwargs. If True, non-spec kwargs will be stored as attributes of this object and can be accessed and modified. Otherwise an exception will be raised if a non-spec kwarg is encountered.

skip_version_check: bool, optional. Default = False

If False, the SMIRNOFF section version will not be checked, and the ParameterHandler will be initialized with version set to _MAX_SUPPORTED_SECTION_VERSION.

**kwargsdict

The dict representation of the SMIRNOFF data source

Methods

__init__([allow_cosmetic_attributes, ...])

Initialize a ParameterHandler, optionally with a list of parameters and other kwargs.

add_cosmetic_attribute(attr_name, attr_value)

Add a cosmetic attribute to this object.

add_parameter([parameter_kwargs, parameter, ...])

Add a parameter to the force field, ensuring all parameters are valid.

assign_parameters(topology, system)

Assign parameters for the given Topology to the specified OpenMM System object.

assign_partial_bond_orders_from_molecules(...)

attribute_is_cosmetic(attr_name)

Determine whether an attribute of this object is cosmetic.

check_charges_assigned(ref_mol, topology)

Check whether charges have been assigned for a reference molecule.

check_handler_compatibility(other_handler)

Checks whether this ParameterHandler encodes compatible physics as another ParameterHandler.

check_partial_bond_orders_from_molecules_duplicates(pb_mols)

create_force(system, topology, **kwargs)

delete_cosmetic_attribute(attr_name)

Delete a cosmetic attribute from this object.

find_matches(entity[, unique])

Find the elements of the topology/molecule matched by a parameter type.

get_parameter(parameter_attrs)

Return the parameters in this ParameterHandler that match the parameter_attrs argument.

mark_charges_assigned(ref_mol, topology)

Record that charges have been assigned for a reference molecule.

postprocess_system(topology, system, **kwargs)

Allow the force to perform a a final post-processing pass on the OpenMM System following parameter assignment, if needed.

to_dict([discard_cosmetic_attributes])

Convert this ParameterHandler to an OrderedDict, compliant with the SMIRNOFF data spec.

Attributes

TAGNAME

The name of this ParameterHandler corresponding to the SMIRNOFF tag name

combining_rules

cutoff

known_kwargs

List of kwargs that can be parsed by the function.

method

parameters

The ParameterList that holds this ParameterHandler's parameter objects

potential

scale12

scale13

scale14

scale15

switch_width

version

class vdWType(**kwargs)[source]

A SMIRNOFF vdWForce type.

Warning

This API is experimental and subject to change.

to_dict(discard_cosmetic_attributes=False, duplicate_attributes=None)[source]

Convert this object to dict format.

The returning dictionary contains all the ParameterAttribute and IndexedParameterAttribute as well as cosmetic attributes if discard_cosmetic_attributes is False.

Parameters
discard_cosmetic_attributesbool, optional. Default = False

Whether to discard non-spec attributes of this object

duplicate_attributeslist of string, optional. Default = None

A list of names of attributes that redundantly decsribe data and should be discarded during serializaiton

Returns
smirnoff_dictdict

The SMIRNOFF-compliant dict representation of this object.

add_cosmetic_attribute(attr_name, attr_value)

Add a cosmetic attribute to this object.

This attribute will not have a functional effect on the object in the Open Force Field Toolkit, but can be written out during output.

Warning

The API for modifying cosmetic attributes is experimental and may change in the future (see issue #338).

Parameters
attr_namestr

Name of the attribute to define for this object.

attr_valuestr

The value of the attribute to define for this object.

attribute_is_cosmetic(attr_name)

Determine whether an attribute of this object is cosmetic.

Warning

The API for modifying cosmetic attributes is experimental and may change in the future (see issue #338).

Parameters
attr_namestr

The attribute name to check

Returns
is_cosmeticbool

Returns True if the attribute is defined and is cosmetic. Returns False otherwise.

delete_cosmetic_attribute(attr_name)

Delete a cosmetic attribute from this object.

Warning

The API for modifying cosmetic attributes is experimental and may change in the future (see issue #338).

Parameters
attr_namestr

Name of the cosmetic attribute to delete.

check_handler_compatibility(other_handler)[source]

Checks whether this ParameterHandler encodes compatible physics as another ParameterHandler. This is called if a second handler is attempted to be initialized for the same tag.

Parameters
other_handlera ParameterHandler object

The handler to compare to.

Raises
IncompatibleParameterError if handler_kwargs are incompatible with existing parameters.
property TAGNAME

The name of this ParameterHandler corresponding to the SMIRNOFF tag name

Returns
handler_namestr

The name of this parameter handler

add_cosmetic_attribute(attr_name, attr_value)

Add a cosmetic attribute to this object.

This attribute will not have a functional effect on the object in the Open Force Field Toolkit, but can be written out during output.

Warning

The API for modifying cosmetic attributes is experimental and may change in the future (see issue #338).

Parameters
attr_namestr

Name of the attribute to define for this object.

attr_valuestr

The value of the attribute to define for this object.

add_parameter(parameter_kwargs=None, parameter=None, after=None, before=None)

Add a parameter to the force field, ensuring all parameters are valid.

Parameters
parameter_kwargs: dict, optional

The kwargs to pass to the ParameterHandler.INFOTYPE (a ParameterType) constructor

parameter: ParameterType, optional

A ParameterType to add to the ParameterHandler

afterstr or int, optional

The SMIRKS pattern (if str) or index (if int) of the parameter directly before where the new parameter will be added

beforestr, optional

The SMIRKS pattern (if str) or index (if int) of the parameter directly after where the new parameter will be added

Note the following behavior:

Examples

Add a ParameterType to an existing ParameterList at a specified position.

Given an existing parameter handler and a new parameter to add to it:

>>> from openmm import unit
>>> bh = BondHandler(skip_version_check=True)
>>> length = 1.5 * unit.angstrom
>>> k = 100 * unit.kilocalorie_per_mole / unit.angstrom ** 2
>>> bh.add_parameter({'smirks': '[*:1]-[*:2]', 'length': length, 'k': k, 'id': 'b1'})
>>> bh.add_parameter({'smirks': '[*:1]=[*:2]', 'length': length, 'k': k, 'id': 'b2'})
>>> bh.add_parameter({'smirks': '[*:1]#[*:2]', 'length': length, 'k': k, 'id': 'b3'})
>>> [p.id for p in bh.parameters]
['b1', 'b2', 'b3']
>>> param = {'smirks': '[#1:1]-[#6:2]', 'length': length, 'k': k, 'id': 'b4'}

Add a new parameter immediately after the parameter with the smirks ‘[:1]=[:2]’

>>> bh.add_parameter(param, after='[*:1]=[*:2]')
>>> [p.id for p in bh.parameters]
['b1', 'b2', 'b4', 'b3']
assign_parameters(topology, system)

Assign parameters for the given Topology to the specified OpenMM System object.

Parameters
topologyopenff.toolkit.topology.Topology

The Topology for which parameters are to be assigned. Either a new Force will be created or parameters will be appended to an existing Force.

systemopenmm.System

The OpenMM System object to add the Force (or append new parameters) to.

attribute_is_cosmetic(attr_name)

Determine whether an attribute of this object is cosmetic.

Warning

The API for modifying cosmetic attributes is experimental and may change in the future (see issue #338).

Parameters
attr_namestr

The attribute name to check

Returns
is_cosmeticbool

Returns True if the attribute is defined and is cosmetic. Returns False otherwise.

static check_charges_assigned(ref_mol, topology)

Check whether charges have been assigned for a reference molecule.

Parameters
ref_molopenff.toolkit.topology.Molecule

The molecule to check for having charges assigned

topologyopenff.toolkit.topology.Topology

The topology to query for this information

Returns
charges_assignedbool

Whether charges have already been assigned to this molecule

delete_cosmetic_attribute(attr_name)

Delete a cosmetic attribute from this object.

Warning

The API for modifying cosmetic attributes is experimental and may change in the future (see issue #338).

Parameters
attr_namestr

Name of the cosmetic attribute to delete.

find_matches(entity, unique=False)

Find the elements of the topology/molecule matched by a parameter type.

Parameters
entityopenff.toolkit.topology.Topology

Topology to search.

uniquebool, default=False

If False, SMARTS matching will enumerate every valid permutation of matching atoms. If True, only one order of each unique match will be returned.

Returns
matchesValenceDict[Tuple[int], ParameterHandler._Match]

matches[particle_indices] is the ParameterType object matching the tuple of particle indices in entity.

get_parameter(parameter_attrs)

Return the parameters in this ParameterHandler that match the parameter_attrs argument. When multiple attrs are passed, parameters that have any (not all) matching attributes are returned.

Parameters
parameter_attrsdict of {attr: value}

The attrs mapped to desired values (for example {“smirks”: “[:1]~[#16:2]=,:[#6:3]~[:4]”, “id”: “t105”} )

Returns
paramslist of ParameterType objects

A list of matching ParameterType objects

Examples

Create a parameter handler and populate it with some data.

>>> from openmm import unit
>>> handler = BondHandler(skip_version_check=True)
>>> handler.add_parameter(
...     {
...         'smirks': '[*:1]-[*:2]',
...         'length': 1*unit.angstrom,
...         'k': 10*unit.kilocalorie_per_mole/unit.angstrom**2,
...     }
... )

Look up, from this handler, all parameters matching some SMIRKS pattern

>>> handler.get_parameter({'smirks': '[*:1]-[*:2]'})
[<BondType with smirks: [*:1]-[*:2]  length: 1 A  k: 10 kcal/(A**2 mol)  >]
property known_kwargs

List of kwargs that can be parsed by the function.

mark_charges_assigned(ref_mol, topology)

Record that charges have been assigned for a reference molecule.

Parameters
ref_molopenff.toolkit.topology.Molecule

The molecule to mark as having charges assigned

topologyopenff.toolkit.topology.Topology

The topology to record this information on.

property parameters

The ParameterList that holds this ParameterHandler’s parameter objects

postprocess_system(topology, system, **kwargs)

Allow the force to perform a a final post-processing pass on the OpenMM System following parameter assignment, if needed.

Parameters
topologyopenff.toolkit.topology.Topology

The Topology for which parameters are to be assigned. Either a new Force will be created or parameters will be appended to an existing Force.

systemopenmm.System

The OpenMM System object to add the Force (or append new parameters) to.

to_dict(discard_cosmetic_attributes=False)

Convert this ParameterHandler to an OrderedDict, compliant with the SMIRNOFF data spec.

Parameters
discard_cosmetic_attributesbool, optional. Default = False.

Whether to discard non-spec parameter and header attributes in this ParameterHandler.

Returns
smirnoff_dataOrderedDict

SMIRNOFF-spec compliant representation of this ParameterHandler and its internal ParameterList.