md.mesh.bond

Overview

FENEWCA

FENE and WCA bond potential.

Harmonic

Harmonic bond potential.

Tether

Tethering bond potential.

Details

Mesh Bond forces.

Mesh bond force classes apply a force and virial between every mesh vertex particle and their neighbors based on the given mesh triangulation.

\[U_\mathrm{mesh bond} = \sum_{j \in \mathrm{mesh}} \sum_{k \in \mathrm{Neigh}(j)}U_{jk}(r)\]

The connectivity and, thus the neighbor set \(\mathrm{Neigh}\) of each vertex particle \(j\) is defined by a mesh triangulation.

See also

See the documentation in hoomd.mesh.Mesh for more information on the initialization of the mesh object.

In the mesh bond (j,k), \(r\) is the length of the edge between the mesh vertex particles \(r= |\mathrm{minimum\_image}(\vec{r}_k - \vec{r}_j)|\).

Note

The mesh bond forces are computed over the mesh data structure and not the separate bond data structure. Hence, the mesh bonds are defined exclusively by the mesh triangulation as HOOMD-blue automatically constructs the mesh bond pairs based on triangulation in the hoomd.mesh.Mesh object. The bonds should not be defined separately in the hoomd.State member bond_group!

Mesh bond force classes assign 1/2 of the potential energy to each of the particles in the bond group:

\[U_i = \frac{1}{2} \sum_{k \in \mathrm{Neigh}(i)}U_{ik}(r)\]

and similarly for virials.

class hoomd.md.mesh.bond.FENEWCA(mesh)

Bases: MeshPotential

FENE and WCA bond potential.

FENEWCA computes forces, virials, and energies on all mesh bonds in mesh with the harmonic potential (see hoomd.md.bond.FENEWCA).

Parameters:

mesh (hoomd.mesh.Mesh) – Mesh data structure constraint.

params

The parameter of the FENEWCA potential bonds. The mesh type name defaults to “mesh”. The dictionary has the following keys:

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

  • r0 (float, required) - size parameter \(r_0\) \([\mathrm{length}]\).

  • epsilon (float, required) - repulsive force strength \(\varepsilon\) \([\mathrm{energy}]\).

  • sigma (float, required) - repulsive force interaction width \(\sigma\) \([\mathrm{length}]\).

  • delta (float, required) - radial shift \(\Delta\) \([\mathrm{length}]\).

Type:

TypeParameter[bond type, dict]

Example:

bond_potential = hoomd.md.mesh.bond.FENEWCA(mesh)
bond_potential.params["mesh"] = dict(k=10.0, r0=1.0,
                                    epsilon=0.8, sigma=1.2, delta=0.0)
class hoomd.md.mesh.bond.Harmonic(mesh)

Bases: MeshPotential

Harmonic bond potential.

Harmonic computes forces, virials, and energies on all mesh bonds in mesh with the harmonic potential (see hoomd.md.bond.Harmonic).

Parameters:

mesh (hoomd.mesh.Mesh) – Mesh data structure constraint.

params

The parameter of the harmonic bonds for the defined mesh. The mesh type name defaults to “mesh”. The dictionary has the following keys:

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

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

Type:

TypeParameter[mesh name,dict]

Example:

harmonic = hoomd.md.mesh.bond.Harmonic(mesh)
harmonic.params["mesh"] = dict(k=10.0, r0=1.0)
class hoomd.md.mesh.bond.Tether(mesh)

Bases: MeshPotential

Tethering bond potential.

Tether computes forces, virials, and energies on all mesh bonds in mesh with the harmonic potential (see hoomd.md.bond.Tether).

Parameters:

mesh (hoomd.mesh.Mesh) – Mesh data structure constraint.

params

The parameter of the Tether bonds for the defined mesh. The mesh type name defaults to “mesh”. The dictionary has the following keys:

  • k_b (float, required) - bond stiffness \([\mathrm{energy}]\)

  • l_min (float, required) - minimum bond length \([\mathrm{length}]\)

  • l_c1 (float, required) - cutoff distance of repulsive part \([\mathrm{length}]\)

  • l_c0 (float, required) - cutoff distance of attractive part \([\mathrm{length}]\)

  • l_max (float, required) - maximum bond length \([\mathrm{length}]\)

Type:

TypeParameter[mesh name,dict]

Example:

bond_potential = hoomd.md.mesh.bond.Tether(mesh)
bond_potential.params["mesh"] = dict(k_b=10.0, l_min=0.9, l_c1=1.2,
                                 l_c0=1.8, l_max=2.1)