md.alchemy.pair#

Overview

AlchemicalDOF

Alchemical degree of freedom \(\alpha_i\) associated with a specific pair force.

AlchemicalDOFStore

A read-only mapping of alchemical degrees of freedom accessed by type.

LJGauss

Alchemical Lennard Jones Gauss pair force.

Details

Alchemical pair forces.

class hoomd.md.alchemy.pair.AlchemicalDOF#

Alchemical degree of freedom \(\alpha_i\) associated with a specific pair force.

AlchemicalDOF represents an alchemical degree of freedom to be numerically integrated via an alchemical integration method.

Note

To access an alchemical degree of freedom for a particular type pair, query the corresponding attribute in the alchemical pair force instance.

New in version 3.1.0.

mass#

The mass of the alchemical degree of freedom.

Type

float

mu#

The value of the alchemical potential.

Type

float

alpha#

The value of the dimensionless alchemical degree of freedom \(\alpha_i\).

Type

float

alchemical_momentum#

The momentum of the alchemical parameter.

Type

float

property alchemical_forces#

Per particle forces in alchemical alpha space.

\[F_{\mathrm{alchemical},i} = -\frac{\mathrm{d}U_i}{\mathrm{d}\alpha}\]

(Loggable: category=”particle”, default=False)

property net_alchemical_force#

Net force in alchemical alpha space.

\[F_{\mathrm{alchemical}} = \sum_{i=0}^{N_{\mathrm{particles}}-1} F_{\mathrm{alchemical},i}\]

(Loggable: category=”scalar”)

property value#

Current value of alpha multiplied by its corresponding parameter.

(Loggable: category=”scalar”)

class hoomd.md.alchemy.pair.AlchemicalDOFStore(name, pair_instance, dof_cls)#

Bases: Mapping

A read-only mapping of alchemical degrees of freedom accessed by type.

The class acts as a cache so once an alchemical DOF is queried it is returned and not recreated when queried again.

New in version 3.1.0.

__contains__(key)#

Return whether the key is in the mapping.

__getitem__(key)#

Get the alchemical degree of freedom for the given type pair.

__iter__()#

Iterate over keys.

__len__()#

Get the length of the mapping.

class hoomd.md.alchemy.pair.LJGauss(nlist, default_r_cut=None, default_r_on=0.0, mode='none')#

Bases: LJGauss

Alchemical Lennard Jones Gauss pair force.

Parameters
  • nlist (hoomd.md.nlist.NeighborList) – Neighbor list.

  • default_r_cut (float) – Default cutoff radius \([\mathrm{length}]\).

  • default_r_on (float) – Default turn-on radius \([\mathrm{length}]\).

  • mode (str) – Energy shifting/smoothing mode.

LJGauss computes the Lennard-Jones Gauss force on all particles in the simulation state, with additional alchemical degrees of freedom:

\[U(r) = 1\ [\mathrm{energy}] \cdot \left[ \left ( \frac{1\ [\mathrm{length}]}{r} \right)^{12} - \left ( \frac{2\ [\mathrm{length}]}{r} \right)^{6} \right] - \alpha_{1}\epsilon \exp \left[ - \frac{\left(r - \alpha_{2}r_{0}\right)^{2}}{2 (\alpha_{3}\sigma)^{2}} \right],\]

where \(\alpha_i\) are the alchemical degrees of freedom.

Note

\(\alpha_i\) not accessed are set to 1.

Attention

hoomd.md.alchemy.pair.LJGauss does not support execution on GPUs.

Attention

hoomd.md.alchemy.pair.LJGauss does not support MPI parallel simulations.

New in version 3.1.0.

params#

The potential parameters. The dictionary has the following keys:

  • epsilon (float, required) - energy parameter \(\varepsilon\) \([\mathrm{energy}]\)

  • sigma (float, required) - Gaussian width \(\sigma\) \([\mathrm{length}]\)

  • r0 (float, required) - Gaussian center \(r_0\) \([\mathrm{length}]\)

Type: TypeParameter [tuple [particle_type, particle_type], dict]

epsilon#

Alchemical degrees of freedom for the potential parameter \(\epsilon\).

Type: AlchemicalDOFStore [tuple [particle_type, particle_type], AlchemicalDOF])

sigma#

Alchemical degrees of freedom for the potential parameter \(\sigma\).

Type: AlchemicalDOFStore [tuple [particle_type, particle_type], AlchemicalDOF])

r0#

Alchemical degrees of freedom for the potential parameter \(r_0\).

Type: AlchemicalDOFStore [tuple [particle_type, particle_type], AlchemicalDOF])