CollectiveVariableCoupling

class openxps.couplings.CollectiveVariableCoupling(function, collective_variables, dynamical_variables, **parameters)[source]

Coupling between dynamical variables and physical collective variables.

This class uses a cvpack.MetaCollectiveVariable to create a coupling defined by a mathematical expression involving physical collective variables and parameters.

Parameters:
  • function (str) – A mathematical expression that defines the coupling energy as a function of collective variables and parameters.

  • collective_variables (Iterable[CollectiveVariable]) – The physical collective variables used in the coupling function.

  • dynamical_variables (Iterable[DynamicalVariable]) – The extended dynamical variables used in the coupling function.

  • **parameters (Quantity) – Named parameters that appear in the mathematical expression. Values given for names of dynamical variables are ignored, since dynamical variables take their values from the extension context.

Examples

>>> from copy import copy
>>> import cvpack
>>> import openxps as xps
>>> from openmm import unit
>>> from math import pi
>>> phi = cvpack.Torsion(6, 8, 14, 16, name="phi")
>>> mass = 3 * unit.dalton * (unit.nanometer / unit.radian)**2
>>> phi0 = xps.DynamicalVariable("phi0", unit.radian, mass, xps.CircularBounds())
>>> xps.CollectiveVariableCoupling(
...     f"0.5*kappa*min(delta,{2*pi}-delta)^2; delta=abs(phi-phi0)",
...     [phi],
...     [phi0],
...     kappa=1000 * unit.kilojoules_per_mole / unit.radian**2,
... )
CollectiveVariableCoupling("0.5*kappa*min(delta,6.28...-delta)^2; ...")

Methods

updateExtensionContext(physical_context, extension_context)[source]

Update the extension context with the current physical parameters.

Parameters:
  • physical_context (Context) – The physical context to get the physical parameters from.

  • extension_context (Context) – The extension context to update with the physical parameters.