patterns from different triangulations. The approach adopted here can still be used to solve membrane problems (i.e. where the volume is absent) by defining a volume with vanishing strength. More details are given in the liquid bridge numerical example discussed in Sect. \[sec:liquid\_bridge\]. It should be emphasised, however, that the solution of membrane problems is not the focus of this contribution.

The [ContinuumPoint]{} class {#sec:continuum_points}
----------------------------

The `ContinuumPoint` class represents a Lagrangian continuum point in the volume or on the surface. Its primary role is to calculate the constitutive response at a quadrature point given the kinematic state. For example, it determines the Piola–Kirchhoff stress and the tangent based on the deformation gradient, and its determinant and inverse. It is also convenient to store the kinetic and kinematic data in the class structure for use when constructing the residual and for post-processing the results. One key design decision was not to create separate classes for the material response and the quadrature point data as done in step\_44 as this leads to data ownership conflicts.

An instance of a `ContinuumPoint` is aware if it is in the volume or on the surface. Such knowledge is required occasionally (for example, when computing 