azplugins.bond

Overview

DoubleWell

Double-well bond potential.

ImageHarmonic

Harmonic bond potential using unwrapped coordinates.

Quartic

Quartic bond potential.

Details

Bond potentials.

class hoomd.azplugins.bond.DoubleWell

Bases: Bond

Double-well bond potential.

DoubleWell specifies a double well potential between the two particles in the simulation state with:

\[\begin{split}U(r) &= U_1 \left[1 - \left(\frac{r_1-r}{r_1-r_0}\right)^2 \right]^2 \\ &+ U_{\rm{tilt}}\left(1 - \frac{r_1-r}{r_1-r_0} -\left[1 - \left(\frac{r_1-r}{r_1-r_0}\right)^2 \right]^2 \right)\end{split}\]
params

The parameter of the double-well bonds for each particle type. The dictionary has the following keys:

  • r_0 (float, required) - Location of the first potential minimum \(r_0\) when \(U_{\rm tilt} = 0\) \([\mathrm{length}]\)

  • r_1 (float, required) - Location of the potential local maximum \(r_1\) when \(U_{\rm tilt} = 0\) \([\mathrm{length}]\)

  • U_1 (float, required) - Potential energy \(U_1 = U(r_1)\) \([\mathrm{energy}]\)

  • U_tilt (float, required) - Tunes the energy offset \(U_{\rm tilt}\) between the two potential minima values, i.e. it tilts the potential \([\mathrm{energy}]\)

Type:

TypeParameter[bond type, dict]

Examples:

dw = azplugins.bond.DoubleWell()
dw.params['A-A'] = dict(r_0=0.5, r_1=2.5, U_1=5.0, U_tilt=0.0)
dw.params['A-A'] = dict(r_0=1.0, r_1=2.0, U_1=1.0, U_tilt=0.5)
class hoomd.azplugins.bond.ImageHarmonic

Bases: Harmonic

Harmonic bond potential using unwrapped coordinates.

This class implements the same potential as hoomd.md.bond.Harmonic, but differs in how the bond distance is computed. Rather than computing the distance between nearest images of bonded particles, the true distance between a pair of particles is computed by unwrapping the coordinates first. This is important for systems where bonded particles may be separated by distances larger than half the box size.

Warning

This potential may have issues in simulations run under MPI if a bond spans more than half a domain size.

params

The parameter of the ImageHarmonic bonds for each particle type. The dictionary has the following keys:

  • r0 (float, required) - Rest length \([\mathrm{length}]\)

  • k (float, required) - Potential constant \([\mathrm{energy} / \mathrm{length}^2]\)

Type:

TypeParameter[bond type, dict]

Examples:

ih = azplugins.bond.ImageHarmonic()
ih.params["A-A"] = dict(r0=1.0, k=25)
class hoomd.azplugins.bond.Quartic

Bases: Bond

Quartic bond potential.

Quartic specifies a quartic potential between the two particles in the simulation state with:

\[\begin{split}U(r) &= k (r - \Delta - r_0 - b_1)(r - \Delta - r_0 - b_2) (r - \Delta -r_0)^2 & \\ &+ U_0 + U_{\rm WCA}(r), & r < r_0 + \Delta \\ &= U_0 + U_{\rm WCA}(r), & r \ge r_0 + \Delta\end{split}\]

where \(r\) is the distance from one particle to the other in the bond. The potential \(U_{\rm WCA}(r)\) is given by:

\[\begin{split}U_{\rm WCA}(r) &= 4 \varepsilon \left[ \left( \frac{\sigma}{r-\Delta} \right)^{12} - \left( \frac{\sigma}{r-\Delta} \right)^{6} \right] + \varepsilon, & r < 2^{1/6}\sigma + \Delta \\ &= 0, & r \ge 2^{1/6}\sigma + \Delta\end{split}\]
params

The parameters of the quartic bonds for each particle type. The dictionary has the following keys:

  • k (float, required) - quartic attractive force strength \([\mathrm{energy}/\mathrm{length}^4]\).

  • r_0 (float, required) - Location of the quartic potential cutoff \(r_0\). Intended to be larger than the WCA cutoff, \(2^{1/6}\sigma\). When true, \(U(r_0) = U_{0} + U_{\rm WCA}(r_0)\) \([\mathrm{length}]\).

  • b_1 (float, required) - First quartic potential fitting parameter \(b_1\) \([\mathrm{length}]\).

  • b_2 (float, required) - Second quartic potential fitting parameter \(b_2\) \([\mathrm{length}]\).

  • U_0 (float, required) - Quartic potential energy barrier height \(U_0\) at \(r_0\) when \(r_0 > 2^{1/6}\sigma\) \([\mathrm{energy}]\).

  • epsilon (float, required) - Repulsive WCA interaction energy \(\varepsilon\) \([\mathrm{energy}]\).

  • sigma (float, required) - Repulsive WCA interaction size \(\sigma\) \([\mathrm{length}]\).

  • delta (float, optional) - Shift \(\Delta\), defaults to zero \([\mathrm{length}]\).

Type:

TypeParameter[bond type, dict]

Examples:

Tsige and Stevens bond potential.

quartic = hoomd.azplugins.bond.Quartic()
quartic.params['A-A'] = dict(k=1434.3, r_0=1.5, b_1=-0.7589, b_2=0.0,
                            U_0=67.2234, sigma=1, epsilon=1, delta=0.0)