md.mesh.bending

Overview

BendingRigidity

Bending potential.

Helfrich

Helfrich bending potential.

Details

Mesh Bending potentials.

Mesh bending force classes apply a force and virial to every mesh vertex particle based on the local curvature \(K\) of the given mesh triangulation.

\[U_\mathrm{mesh bending} = \sum_{j \in \mathrm{mesh}} U_{j}(K(\mathbf{r}_j))\]

The curvature at each vertex particle \(j\) is determined at its position \(\mathbf{r}_j\).

See also

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

class hoomd.md.mesh.bending.BendingRigidity(mesh)

Bases: MeshPotential

Bending potential.

BendingRigidity specifies a bending energy applied to all mesh triangles in mesh.

\[U(i) = \frac{1}{2} k \sum_{j \in \mathrm{Neigh}(i)} ( 1 - cos(\theta_{ij}))\]

with \(\theta_{ij}\) is the angle between the two normal directors of the bordering triangles of bond \(i\) and \(j\).

Parameters:

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

params

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

  • k (float, required) - bending stiffness \([\mathrm{energy}]\)

Type:

TypeParameter[mesh name,dict]

Example:

bending_potential = hoomd.md.mesh.bending.BendingRigidity(mesh)
bending_potential.params["mesh"] = dict(k=10.0)
class hoomd.md.mesh.bending.Helfrich(mesh)

Bases: MeshPotential

Helfrich bending potential.

Helfrich specifies a Helfrich bending energy applied to all particles within the mesh.

\[U(i) = \frac{1}{2} k \frac{1}{\sigma_i}\left( \sum_{j \in \mathrm{Neigh}(i)} \frac{\sigma_{ij}}{l_{ij}} (\mathbf{r}_j - \mathbf{r}_k) \right)^2\]

with the area of the dual cell of vertex i \(\sigma_i=(\sum_{j \in \mathrm{Neigh}(i)}\sigma_{ij})/4\), the length of the bond in the dual lattice \(\sigma_{ij}= r_{ij}(\text{cot}\theta_1+\text{cot}\theta_2)/2\) and the angles \(\theta_1\) and \(\theta_2\) opposite to the shared bond of vertex \(i\) and \(j\).

Attention

Helfrich is NOT implemented for MPI parallel execution!

Parameters:

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

params

The parameter of the Helfrich energy for the defined mesh. As the mesh can only have one type a type name does not have to be stated. The dictionary has the following keys:

  • k (float, required) - bending stiffness \([\mathrm{energy}]\)

Type:

TypeParameter[dict]

Example:

helfrich_potential = hoomd.md.mesh.bending.Helfrich(mesh)
helfrich_potential.params["mesh"] = dict(k=10.0)