# openforcefield.typing.engines.smirnoff.parameters.ParameterHandler

class `openforcefield.typing.engines.smirnoff.parameters.``ParameterHandler`(allow_cosmetic_attributes=False, skip_version_check=False, **kwargs)

  Base class for parameter handlers.

  Parameter handlers are configured with some global parameters for a given section. They may also contain a `ParameterList` populated with `ParameterType` objects if they are responsile for assigning SMIRKS-based parameters.

  Warning

  This API is experimental and subject to change.

  Attributes
    `known_kwargs`

      List of kwargs that can be parsed by the function.

    `parameters`

      The ParameterList that holds this ParameterHandler’s parameter objects

  Methods

  `add_cosmetic_attribute`(self, attr_name, …) | Add a cosmetic attribute to this ParameterHandler object.
  `add_parameter`(self, parameter_kwargs) | Add a parameter to the forcefield, ensuring all parameters are valid.
  `assign_parameters`(self, topology, system) | Assign parameters for the given Topology to the specified System object.
  `check_handler_compatibility`(self, handler_kwargs) | Checks if a set of kwargs used to create a ParameterHandler are compatible with this ParameterHandler.
  `check_parameter_compatibility`(self, …) | Check to make sure that the fields requiring defined units are compatible with the required units for the Parameters handled by this ParameterHandler
  `delete_cosmetic_attribute`(self, attr_name) | Delete a cosmetic attribute from this ParameterHandler object.
  `find_matches`(self, entity) | Find the elements of the topology/molecule matched by a parameter type.
  `get_parameter`(self, parameter_attrs) | Return the parameters in this ParameterHandler that match the parameter_attrs argument
  `postprocess_system`(self, topology, system, …) | Allow the force to perform a a final post-processing pass on the System following parameter assignment, if needed.
  `to_dict`(self[, discard_cosmetic_attributes]) | Convert this ParameterHandler to an OrderedDict, compliant with the SMIRNOFF data spec.

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

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

    Parameters
      allow_cosmetic_attributes bool, 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.

      **kwargs dict

        The dict representation of the SMIRNOFF data source

  Methods

  `__init__`(self[, allow_cosmetic_attributes, …]) | Initialize a ParameterHandler, optionally with a list of parameters and other kwargs.
  `add_cosmetic_attribute`(self, attr_name, …) | Add a cosmetic attribute to this ParameterHandler object.
  `add_parameter`(self, parameter_kwargs) | Add a parameter to the forcefield, ensuring all parameters are valid.
  `assign_parameters`(self, topology, system) | Assign parameters for the given Topology to the specified System object.
  `check_handler_compatibility`(self, handler_kwargs) | Checks if a set of kwargs used to create a ParameterHandler are compatible with this ParameterHandler.
  `check_parameter_compatibility`(self, …) | Check to make sure that the fields requiring defined units are compatible with the required units for the Parameters handled by this ParameterHandler
  `delete_cosmetic_attribute`(self, attr_name) | Delete a cosmetic attribute from this ParameterHandler object.
  `find_matches`(self, entity) | Find the elements of the topology/molecule matched by a parameter type.
  `get_parameter`(self, parameter_attrs) | Return the parameters in this ParameterHandler that match the parameter_attrs argument
  `postprocess_system`(self, topology, system, …) | Allow the force to perform a a final post-processing pass on the System following parameter assignment, if needed.
  `to_dict`(self[, discard_cosmetic_attributes]) | Convert this ParameterHandler to an OrderedDict, compliant with the SMIRNOFF data spec.

  Attributes

  `known_kwargs` | List of kwargs that can be parsed by the function.
  `parameters` | The ParameterList that holds this ParameterHandler’s parameter objects

  property `parameters`

    The ParameterList that holds this ParameterHandler’s parameter objects

  `add_cosmetic_attribute`(self, attr_name, attr_value)

    Add a cosmetic attribute to this ParameterHandler 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.

    Parameters
      attr_name str

        Name of the attribute to define for this ParameterType object.

      attr_value str

        The value of the attribute to define for this ParameterType object.

  `delete_cosmetic_attribute`(self, attr_name)

    Delete a cosmetic attribute from this ParameterHandler object.

    Parameters
      attr_name str

        Name of the attribute to delete.

  property `known_kwargs`

    List of kwargs that can be parsed by the function.

  `check_parameter_compatibility`(self, parameter_kwargs)

    Check to make sure that the fields requiring defined units are compatible with the required units for the Parameters handled by this ParameterHandler

    Parameters
      parameter_kwargs: dict

        The dict that will be used to construct the ParameterType

    Raises
      Raises a ValueError if the parameters are incompatible.
  `check_handler_compatibility`(self, handler_kwargs)

    Checks if a set of kwargs used to create a ParameterHandler are compatible with this ParameterHandler. This is called if a second handler is attempted to be initialized for the same tag.

    Parameters
      handler_kwargs dict

        The kwargs that would be used to construct

    Raises
      IncompatibleParameterError if handler_kwargs are incompatible with existing parameters.
  `add_parameter`(self, parameter_kwargs)

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

    Parameters
      parameter_kwargs dict

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

  `get_parameter`(self, parameter_attrs)

    Return the parameters in this ParameterHandler that match the parameter_attrs argument

    Parameters
      parameter_attrs dict of {attr: value}

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

    Returns
      list of ParameterType objects

        A list of matching ParameterType objects

  `find_matches`(self, entity)

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

    Parameters
      entity openforcefield.topology.Topology

        Topology to search.

    Returns
      matches ValenceDict[Tuple[int], ParameterHandler._Match]

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

  `assign_parameters`(self, topology, system)

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

    Parameters
      topology openforcefield.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.

      system simtk.openmm.System

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

  `postprocess_system`(self, topology, system, **kwargs)

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

    Parameters
      topology openforcefield.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.

      system simtk.openmm.System

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

  `to_dict`(self, discard_cosmetic_attributes=False)

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

    Parameters
      discard_cosmetic_attributes bool, optional. Default = False.

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

    Returns
      smirnoff_data OrderedDict

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