azplugins.bond

Overview

DoubleWell

Double-well bond potential.

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.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)