openmmtools.testsystems.DoubleWellDimer_WCAFluid

class openmmtools.testsystems.DoubleWellDimer_WCAFluid(ndimers=1, nparticles=216, density=0.96, mass=Quantity(value=39.9, unit=dalton), epsilon=Quantity(value=997.7366965464261, unit=joule/mole), sigma=Quantity(value=3.4, unit=angstrom), h=Quantity(value=4932.81022772553, unit=joule/mole), r0=Quantity(value=3.816370964251868, unit=angstrom), w=Quantity(value=1.02, unit=angstrom), **kwargs)[source]
Attributes:
analytical_properties

A list of available analytical properties, accessible via ‘get_propertyname(thermodynamic_state)’ calls.

mdtraj_topology

The mdtraj.Topology object corresponding to the test system (read-only).

name

The name of the test system.

positions

The simtk.unit.Quantity object containing the particle positions, with units compatible with simtk.unit.nanometers.

system

The simtk.openmm.System object corresponding to the test system.

topology

The simtk.openmm.app.Topology object corresponding to the test system.

Methods

reduced_potential_expectation(…) Calculate the expected potential energy in state_sampled_from, divided by kB * T in state_evaluated_in.
serialize() Return the System and positions in serialized XML form.
__init__(ndimers=1, nparticles=216, density=0.96, mass=Quantity(value=39.9, unit=dalton), epsilon=Quantity(value=997.7366965464261, unit=joule/mole), sigma=Quantity(value=3.4, unit=angstrom), h=Quantity(value=4932.81022772553, unit=joule/mole), r0=Quantity(value=3.816370964251868, unit=angstrom), w=Quantity(value=1.02, unit=angstrom), **kwargs)[source]

Cereate a double well dimer in a fluid of WCA particles.

This is commonly used as a test system for rare events. The transition from condensed to extended within the double well dimer is the rare event, and the WCA particles present a bath. This makes for a somewhat more realistic system than trivial 2D models.

In this particular setup, we convert the WCA particles to a user-selected number of dimers. This allows for simple examples of multiple state systems as in [1].

Parameters:
ndimers : int, optional, default = 1

Number of double-well dimers.

nparticles : int, optional, default = 216

Number of particles.

density : float, optional, default = 0.96

Reduced density, N sigma^3 / V.

mass : simtk.unit.Quantity with units compatible with angstrom, optional, default=39.9 amu

Particle mass.

epsilon : simtk.unit.Quantity with units compatible with kilocalories_per_mole, optional, default=120K*kB

WCA well depth.

sigma : simtk.unit.Quantity, optional, default = 3.4 angstrom

WCA sigma.

h : simtk.unit.Quantity, optional, default = 593.28K * kB

Double well barrier height.

r0 : simtk.unit.Quantity, optional, default = 2^(1/6) * 3.4 angstrom

Double well “short” state distance for minimum energy.

w: simtk.unit.Quanity, optional, default = 1.02 angstrom

Double well width; “extended” state minimum energy distance is r0 + 2w.

References

[1](1, 2) D.W.H. Swenson and P.G. Bolhuis. J. Chem. Phys. 141, 044101 (2014); https://doi.org/10.1063/1.4890037

Examples

Create the default: a single double-well dimer in a WCA particle bath.

>>> dw_dimer = DoubleWellDimer_WCAFluid()
>>> system, positions = dw_dimer.system, dw_dimer.positions

Create a system with 2 dimers in a system with 400 total particles.

>>> dw_dimer = DoubleWellDimer_WCAFluid(ndimers=2, nparticles=400)
>>> system, positions = dw_dimer.system, dw_dimer.positions

You can create up to nparticles/2 dimers, although large numbers are not recommended.

>>> dw_dimer = DoubleWellChain_WCAFluid(ndimers=4, nparticles=8)
>>> system, positions = dw_dimer.system, dw_dimer.positions

Asking for 0 dimers is the same as asking for the WCAFluid.

>>> dw_dimer = DoubleWellChain_WCAFluid(ndimers=0)
>>> system, positions = dw_dimer.system, dw_dimer.positions

Methods

__init__([ndimers, nparticles, density, …]) Cereate a double well dimer in a fluid of WCA particles.
reduced_potential_expectation(…) Calculate the expected potential energy in state_sampled_from, divided by kB * T in state_evaluated_in.
serialize() Return the System and positions in serialized XML form.

Attributes

analytical_properties A list of available analytical properties, accessible via ‘get_propertyname(thermodynamic_state)’ calls.
mdtraj_topology The mdtraj.Topology object corresponding to the test system (read-only).
name The name of the test system.
positions The simtk.unit.Quantity object containing the particle positions, with units compatible with simtk.unit.nanometers.
system The simtk.openmm.System object corresponding to the test system.
topology The simtk.openmm.app.Topology object corresponding to the test system.
analytical_properties

A list of available analytical properties, accessible via ‘get_propertyname(thermodynamic_state)’ calls.

mdtraj_topology

The mdtraj.Topology object corresponding to the test system (read-only).

name

The name of the test system.

positions

The simtk.unit.Quantity object containing the particle positions, with units compatible with simtk.unit.nanometers.

reduced_potential_expectation(state_sampled_from, state_evaluated_in)

Calculate the expected potential energy in state_sampled_from, divided by kB * T in state_evaluated_in.

Notes

This is not called get_reduced_potential_expectation because this function requires two, not one, inputs.

serialize()

Return the System and positions in serialized XML form.

Returns:
system_xml : str

Serialized XML form of System object.

state_xml : str

Serialized XML form of State object containing particle positions.

system

The simtk.openmm.System object corresponding to the test system.

topology

The simtk.openmm.app.Topology object corresponding to the test system.