azplugins.bond

Overview

DoubleWell

Double-well 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)