Data structure combining multiple particles into a mesh.


Triangulated mesh data structure.

The mesh data structure combines particles into a connected triangulated network. The particles act as vertices of the triangulation and are linked with their neighbors in both pairs via mesh bonds and triplets via mesh triangles.

Mesh triangles and mesh bonds

Mesh.triangles is a list of triangle data that constitutes the triangulation. Each triangle is defined by a triplet of particle tags. For a given triangulation HOOMD-blue also constructs a list of mesh bonds automatically. Each mesh bond is defined by a pair of particle tags. The corresponding vertex particles share a common edge in the triangulation.

Mesh potentials

In MD simulations different bond potentials can be attached which connect the vertex particles with a bond potential. The mesh data structure is designed so that other potentials (like bending potentials or global conservation potentials) can be implemented later.

See also

See the documentation in hoomd.md.mesh for more information on how to apply potentials to the mesh object and in hoomd.md.nlist on adding mesh bond exceptions to the neighbor list.

class hoomd.mesh.Mesh

Data structure combining multiple particles into a mesh.

The mesh is defined by an array of triangles that make up a triangulated surface of particles. Each triangle consists of three particle tags. The mesh object consists of only one mesh triangle type with the default type name “mesh”.


mesh = mesh.Mesh()
mesh.triangles = [[0,1,2],[0,2,3],[0,1,3],[1,2,3]]
property bonds

Mesh bonds.

A list of tuples of particle ids which encodes the bonds within the mesh structure.

(Loggable: category=”sequence”)


((N, 2) numpy.ndarray of uint32)

property triangles

Mesh triangulation.

A list of triplets of particle tags which encodes the triangulation of the mesh structure.

(Loggable: category=”sequence”)


((N, 3) numpy.ndarray of uint32)