 Research Article
 Open Access
 Published:
An unstructured immersed finite element method for nonlinear solid mechanics
Advanced Modeling and Simulation in Engineering Sciences volume 3, Article number: 22 (2016)
Abstract
We present an immersed finite element technique for boundaryvalue and interface problems from nonlinear solid mechanics. Its key features are the implicit representation of domain boundaries and interfaces, the use of Nitsche’s method for the incorporation of boundary conditions, accurate numerical integration based on marching tetrahedrons and cutelement stabilisation by means of extrapolation. For discretisation structured and unstructured background meshes with Lagrange basis functions are considered. We show numerically and analytically that the introduced cutelement stabilisation technique provides an effective bound on the size of the Nitsche parameters and, in turn, leads to wellconditioned system matrices. In addition, we introduce a novel approach for representing and analysing geometries with sharp features (edges and corners) using an implicit geometry representation. This allows the computation of typical engineering parts composed of solid primitives without the need of boundaryfitted meshes.
Background
Conventional finite element methods (FEM) are an irreplaceable tool for the numerical analysis of a variety of physical and engineering problems. They rely on a conforming mesh which approximately matches the domain boundary and material interfaces. For this reason, mesh generation is an essential part of the workflow in FEMbased analyses [1]. Although the procedure is wellestablished, often the use of a boundaryconforming mesh can be limiting or even prohibitive. Fluidstructure interaction, large elastic deformations and shape optimisation are some applications where mesh entanglement can cause severe difficulties for conventional FEM.
In the last two decades or so, a number of finite elementbased numerical methods have been introduced in order to eliminate the need for boundaryconforming meshes. Here, we restrict ourselves to immersed methods, also known as embedded of fictitious domain methods, that operate with a geometryindependent mesh, in the line of [2–6]. Since the mesh of an immersed domain method does not conform with the boundary of the physical domain, one of these methods’ main difficulties is the application of boundary conditions. Here, we choose Nitsche’s method [7] for the weak enforcement of Dirichlet boundary conditions because it gives optimal convergence rates without incurring major implementation difficulties. Moreover, the use Langrange multipliers together with its numerical intricacies, such as the fulfilment of the LBBcondition [8], are avoided. For alternative approaches, see [4, 9–14] among others.
A major difficulty of nonbodyfitted methods is the accurate integration of the arising volume and surface integrals. Here, we make use of a tessellation concept which allows to incorporate standard, Gauß quadrature schemes. In the course of this development, a technique is presented which enables the representation of sharp domain features by performing constructive solid geometry (CSG) modelling directly on the embedding mesh. This approach poses a clear advantage in comparison to the conventional methods of geometry resolution because these sharp features are accurately reproduced and not chamfered even on coarse meshes.
Another pitfall of immersed finite element methods is the loss of numerical stability in cases where the intersection of a shape function support with the physical domain becomes very small. This issue has been successfully addressed in the context of bspline finite elements [6, 12, 15]. In this work, we build up on this concept of constraining critical degrees of freedom and apply it to Lagrangian basis functions on unstructured meshes. Note that Burman et al. [16] introduced an alternative approach, the socalled ghostpenalty stabilisation method, which is based on an augmented bilinear form. Strongly related to stability are the method’s parameters and we show how to choose these parameters in the context of the introduced stabilisation techniques.
The method we present here is based on our previous works [6, 17–19] and related to [2, 3, 16, 20, 21]. Although, as shown in the cited works, the method can be transferred to many physical applications, we focus on the problem class of nonlinear elasticity.
Weak enforcement of boundary and interface conditions
At first, we present the derivation of the proposed immersed finite element method as applied to boundary value problems from nonlinear solid mechanics. Using a weighted residual technique, we obtain the weak form of the problem and give its linearisation. Similarly, the expressions for material interface problems are subsequently derived.
Boundary value problems of nonlinear solid mechanics
Consider the boundary value problem for nonlinear elasticity in the reference domain \(\Omega \in \mathbb {R}^{n_d}\), \(n_d = 2\) or \(n_d=3\) (Fig. 1)
where \(\varvec{u}\) denotes the unknown displacement field, \(\varvec{P}\) is the first PiolaKirchhoff stress tensor, \({{\mathrm{Div}}}\) is the divergence with respect to reference domain coordinates, and \(\varvec{t}(\varvec{u}) = \varvec{P}(\varvec{u})\varvec{n}\), with \(\varvec{n}\) the outward unit normal vector to \(\Omega \), is the boundary traction. The prescribed data are the volume force \(\varvec{f}\), the prescribed displacement \(\bar{\varvec{u}}\) and the prescribed traction \(\bar{\varvec{t}}\). The boundary of \(\Omega \), denoted by \(\Gamma \), is composed of disjoint sets, the Dirichlet boundary \(\Gamma _D\) and the Neumann boundary \(\Gamma _N\), where the respective data are given.
In order to construct a weak form of the boundary value problem (1), a weighted residual approach is taken with the test function \(\varvec{v}\). In mathematical terms, we operate with the Sobolev space \(\varvec{H}^1(\Omega )\), i.e. the vector fields whose components are all in \(H^1(\Omega )\), see, among others, [8] for the precise definition. Different from conventional FEM, we do not employ a constrained subspace with essential boundary conditions. The weighted residual method thus becomes:
with
Here, \(\dot{\varvec{E}}\) denotes the variation of the EulerGreen strain tensor (\(\varvec{E} = \tfrac{1}{2}( \varvec{F}^\top \varvec{F}  \varvec{I})\) with the deformation gradient \(\varvec{F}\)) and \(\varvec{S} = \varvec{F}^{1} \varvec{P}\) the second PiolaKirchhoff stress tensor [22, 23]. In the applications section, we work with a compressible NeoHooke material with given energy density \(W(\varvec{E})\) and for this hyperelastic case, the stress tensor becomes
Using a Newton method to solve the nonlinear Eq. (2), the k th iteration takes the form
where \(\mathrm {D}(\cdot )[\Delta \varvec{u}]\) denotes the derivative in direction of the increment \(\Delta \varvec{u}\), which reads
with
In this expression, \(\hat{\varvec{C}}\) denotes the effective elasticity tensor [22]. For simplicity, it is assumed here that the prescribed volume and surface forces, \(\varvec{f}\) and \(\bar{\varvec{t}}\), are independent of the displacement \(\varvec{u}\) (dead load case). If these assumptions do not hold, the directional derivative of \(R(\varvec{u},\varvec{v})\) contains the derivatives of the applied force and traction terms. So far, expressions (2) and, consequently, (5) do not take into account the displacement boundary condition \(\varvec{u}= \bar{\varvec{u}}\) on \(\Gamma _D\). Therefore, the approach initially introduced by Nitsche [7] is adapted here and the following two terms are added to (5)
with the predictor \(\tilde{\varvec{u}} = \bar{\varvec{u}}\) in the first iteration (or the appropriate value in the first iteration of every load step) and \(\tilde{\varvec{u}}=\varvec{0}\) otherwise, corresponding to a displacementcontrolled Newton method. The scalar \(\gamma > 0\), necessary for numerical stability, is discussed in “Numerical stability” section. In summary, the Newton step (5) including Nitsche’s approach to incorporate displacement boundary conditions reads
where the iteration counter has been omitted for sake of legibility. The added terms (8) are zero for the exact solution and therefore the method is consistent by construction. Moreover, for hyperelastic materials expression (9) is symmetric and positive for the right choice of \(\gamma \) and nonsoftening material behaviour, see “Numerical stability” section. In the following, we abbreviate (9) by
Material interfaces
The formalism presented above for the weak incorporation of displacement boundary conditions can be generalised to interface problems, see also [2, 3, 13]. For simplicity, let the reference domain be composed of two subdomains, \(\Omega = \Omega _1 \cup \Omega _2\), and let us ignore the Dirichlet boundary conditions on \(\partial \Omega \). The treatment of such conditions is here essentially the same as in “Boundary value problems of nonlinear solid mechanics” section. We focus only on the conditions imposed on the material interface \(\Gamma = \partial \Omega _1 \cap \partial \Omega _2\), see Fig. 2. In each subdomain \(\Omega _i\) the local equilibrium reads
Let \(\varvec{u}\) denote the compound displacement field, such that \(\varvec{u}_{\Omega _i} = \varvec{u}_i\), and define the compound test function \(\varvec{v}\) similarly. Moreover, for any compound function \(\varvec{g}\), with \(\varvec{g}_{\Omega _i} = \varvec{g}_i\), the jump across \(\Gamma \) is denoted with
For later use, also a weighted average \(\{ \varvec{g} \}\) is defined on \(\Gamma \) as
where \(0\le \beta \le 1\) is some weighting parameter yet to be discussed. On the interface \(\Gamma \) the conditions are
with prescribed jump functions \(\varvec{u}^\Gamma \) and \(\varvec{t}^\Gamma \). These conditions represent the jump in the solid displacements and the traction equilibrium across the interface. In more complex situations, such as soft interfaces, a cohesive law can be imposed relating the interface traction \(\varvec{t}^\Gamma \) to the displacement gap \(\llbracket \varvec{u} \rrbracket \), see [24]. Here, we assume that \(\varvec{u}^\Gamma \) and \(\varvec{t}^\Gamma \) are prescribed and that they are independent of the displacement \(\varvec{u}\). Note that in the evaluation of the tractions \(\varvec{t}_i\) the unique normal vector \(\varvec{n}= \varvec{n}_1 = \varvec{n}_2\) as shown in Fig. 2 is used, where this choice is arbitrary.
Repetition of the steps as in the singledomain problem above yields the weighted residual method for interface problems
Now the integrand of the interface term is rewritten as follows
employing the average term (13) and the interface conditions (14)\(_2\). Using a Newton method to solve the nonlinear problem (15) with (16) requires the directional derivative
The interface condition (14)\(_1\) is now incorporated by adding terms akin to (8), namely
to expression (17). Again, the parameter \(\gamma >0\) is yet to be discussed in the Appendix A and we use the predictor \(\tilde{\varvec{u}}^\Gamma = \varvec{u}^\Gamma \) in the first iteration and zero afterwards. In summary, a step in a Newton iteration to solve the coupled interface problem reads
Only the first two terms on the right hand side remain in the case of \(\varvec{u}^\Gamma =\varvec{0}\) and \(\varvec{t}^\Gamma = \varvec{0}\). As before, this expression is represented by the equation \(A(\varvec{u}; \Delta \varvec{u}, \varvec{v}) = \ell (\varvec{u}; \varvec{v})\), see (10), and we postpone the discussion of the parameters \(\beta \) and \(\gamma \) to Appendix A.
Immersed finite element method
Finite element discretisation
The linearised weighted residual Eqs. (9) and (19) form the basis of a finite element discretisation. To this end, a domain \(\Omega _\square \) of a simple shape, typically rectangular, is defined such that it fully contains the reference domain \(\Omega \). The following finite element discretisation is based on a triangulation of \(\Omega _\square \) instead of a geometryconforming mesh of \(\Omega \) itself (see Fig. 3). We use piecewise polynomial basis functions \(\varphi _I(\varvec{x})\) and write for the approximated displacement field
There is no constraint on the chosen finite element space, but if the surface \(\Gamma \) overlaps with the boundary of the embedding domain (that is if \(\Gamma _\square = \Gamma \cap \partial \Omega _\square \ne \emptyset \)), it can be more convenient to use an essential treatment of displacement boundary conditions [8] along this boundary. On the other hand, if nonnodal basis functions (like, for instance, higherorder bsplines) are used as the finite element basis, the above presented weak incorporation of the boundary conditions works perfectly well on this boundary part \(\Gamma _\square \) too.
Let the support of the basis function \(\varphi _I\) be denoted by \({{\mathrm{supp}}}(\varphi _I)\). Now all coefficients \(\varvec{u}_I\) from the approximation (20) are discarded a priori if \({{\mathrm{supp}}}(\varphi _I) \cap \Omega = \emptyset \). By \(\mathbb {S}\) we denote the set of the indices of the remaining coefficients and thus \(\{ \varphi _I \}_{I\in \mathbb {S}}\) forms the full basis of the immersed finite element method. This basis is in general not stable [25] and requires further attention, which is given in “Numerical stability” section. Using the approximation (20), we reach the final system of equations
with the matrix and vector coefficients
for the zerobased indices \(I,J \in \mathbb {S}\), and using the coordinate directions \(0 \le a,b < n_d\) (\(n_d\) being the spatial dimension of the problem) and Cartesian unit vectors \(\varvec{e}_a\). Although this immersed finite element method seemingly leads to the same type of linear system as a conventional, geometryconforming FEM, there are technical differences which will be discussed in the following: the representation of the boundary or interface \(\Gamma \), the quadrature of elements traversed by this boundary, and the stabilisation of the basis for such elements. The choice of the Nitsche parameters \(\gamma \) and \(\beta \) is analysed in the Appendix A.
Above expressions hold analogously for interface problems. The main difference is that the two fields \(\varvec{u}_1\) and \(\varvec{u}_2\) are approximated in fashion of (20) independently on the same background mesh of \(\Omega _\square \) which encompasses both subdomains \(\Omega _1\) and \(\Omega _2\). Consequently, the elements which are traversed by the material interface approximate both fields since the FE shape functions of the entire element are used even though the fields are only defined up to the interface on their respective side of the domain. Using two sets of shape functions on these elements allows us to represent a discontinuous derivative of the FE solution and can thus be compared to the element enrichment of XFEM [11]. A good illustration of this implementation detail can be found in [2].
Signed distance functions
The weak forms introduced in “Weak enforcement of boundary and interface conditions” section allow us to work with a finite element discretisation which is independent of the geometry, but still the volume and surface integrals, \(\int _\Omega (\cdot ) \mathrm {d}\Omega \) and \(\int _\Gamma (\cdot ) \mathrm {d}\Gamma \), need geometry information. To this end, we classify the elements (for instance the quadrilaterals in the right picture of Fig. 3) by their location with respect to the physical domain \(\Omega \). If \(\tau _I\) denotes any such element, we have the three cases:

1
\(\tau _I \cap \Omega = \emptyset \), the element is completely outside of \(\Omega \) and can be ignored,

2
\(\tau _I \cap \Omega = \tau _I\), the element is completely inside and its treatment is straightforward as in any geometryconforming FEM,

3
\(\tau _I \cap \Gamma \ne \emptyset \), the element is traversed by the domain’s boundary and requires special consideration.
Note that elements adjacent to the boundary of the embedding mesh (for instance the left or bottom boundaries in the right picture of Fig. 3) technically fall into the third category, but do not pose any difficulty apart from the identification of the element faces which lie on that boundary.
For above classification it is sufficient to have an oriented representation of the surface \(\Gamma = \partial \Omega \). Therefore, the surface is either closed or assumed to be extended beyond the boundaries of \(\Omega _\square \). Here, we assume that \(\Gamma \) is either given analytically or is approximated by means of a surface mesh composed of surface elements \(\sigma _J\),
In order to avoid the tedious task of intersecting volume elements \(\tau _I\) with surface elements \(\sigma _J\), an implicit geometry representation is introduced. Therefore, the signed distance function [26] is used which is defined as
In case of interface problems as introduced in “Material interfaces” section, the above definition of \(s(\varvec{x})\) refers to \(\Omega _1\) and \(\Omega _2\) instead of \(\Omega \) and its complement \(\Omega _\square \setminus \Omega \). If \(\Gamma \) is represented by a mesh \(\Gamma ^h\), the signed distance function \({{\mathrm{dist}}}_{\Gamma ^h}\) with respect to this mesh is used instead. Moreover, only a piecewise polynomial approximation of this function is used
where \(\varphi _K\) are the nodal finite element shape functions (not necessarily the same as in the approximation (20)) and the coefficients \(d_K\) represent the value of the signed distance at the finite element nodes \(\varvec{x}_K\).
The representation (23) can be of higher polynomial degree, given by NURBS patches [1, 14, 27] or subdivision surfaces [28, 29]. But the computation of the coefficients \(d_K\) in (25) and the quadrature described below are nontrivial tasks if the \(\sigma _J\) have a degree higher than linear simplex elements (straight lines in two or flat triangles in three dimensions). In that case, the computation of the distances \(d_K\) requires the solution of nonlinear equations, see, for instance, [30]. In the rest of this work, the \(\sigma _J\) are always linear \((n_d1)\)simplex elements. Moreover, once only piecewise linear elements are used for the surface representation (23), the optimal convergence rate of any higherorder method is impeded by this geometry approximation error, see [8].
Figure 4 shows a twodimensional example where the boundary is composed of three parts: \(\Gamma _0\) is the part of the boundary of \(\Omega \) that coincides with the box boundary \(\partial \Omega _\square \) and does not require any special attention; \(\Gamma _1\) and \(\Gamma _2\) are separated parts which are immersed in the background grid. For the computation of the distance function \({{\mathrm{dist}}}_\Gamma \), it is convenient to treat \(\Gamma _1\) and \(\Gamma _2\) separately as shown in the figure. The final distance function is then composed as the minimal value of these distances,
See also [31] for arithmetic with distance functions. Figure 4 shows the isocurves of the individual distance functions \({{\mathrm{dist}}}_{\Gamma _i}\) as well as of the composite function \({{\mathrm{dist}}}_{\Gamma }\). The extension of this approach to a larger number of immersed surfaces is straightforward.
Once the function \({{\mathrm{dist}}}_\Gamma \) has been determined, the above classification of volume elements \(\tau _I\) is carried out by means of the nodal values \(d_K\) of the distance function: if all \(d_K\) of the element \(\tau _I\) are strictly positive (negative), the element is inside (outside) of the domain. If a change in sign of the \(d_K\) occurs, \(\tau _I\) is traversed by the immersed boundary \(\Gamma \).
It remains to outline how the coefficients \(d_K\) for a given surface are computed. In case of an analytic surface representation by an implicit function, these coefficients are calculated directly. In case of an immersed surface mesh, one needs to find the surface element \(\sigma _K^*\) which contains the point \(\varvec{x}_K^*\) closest to \(\varvec{x}_K\), see for instance [32] for such basic primitive tests as the closest point on a triangle to a point. With the knowledge of the closest element \(\sigma _K^*\), it can be decided if \(\varvec{x}_K\) lies on the positive or the negative side of this element in order to determine the sign \(s(\varvec{x}_K)\) as defined in (24). This decision is based on the premise that the surface mesh is well oriented. Note that, when the closest point falls on an edge or a vertex, ambiguities can arise for the decision if a point is inside or outside the surface mesh [26], see the case shown in Fig. 5.
At the acute corner in the figure, the region of points whose closest point is the vertex B, is delimited by the outer cone. For all points in this cone, \(\sigma _1\) and \(\sigma _2\) are possible choices as closest surface element. The cone contains the region ‘a’ in which the points are all outside with respect to both elements. The points in region ’b’ are outside with respect to one of the possible closest surface elements and inside with respect to the other. Hence, for this region the mentioned ambiguity can occur. One solution to this problem is to introduce angleweighted vertex normal vectors [26], but this requires extra data structures. Here we choose the simpler approach shown in Fig. 5: the point \(\varvec{x}_K\) has a larger distance to the extension plane of \(\sigma _2\) than to the extension plane of \(\sigma _1\). This distance is given by the inner product of the element normal vector and the distance vector between the considered grid point and the closest surface point (here, B). Choosing the element with a larger value of this distance resolves the ambiguity. The method is also used in three dimensions with the only difference being a larger set of candidates as closest elements.
Finally, we consider the numerical complexity of the distance function computation. If there are \(N_\Gamma \) elements in the surface mesh and \(N_\Omega \) nodes in the volume mesh, a bruteforce approach requires \(N_\Gamma \times N_\Omega \) closest point computations. In many cases, this number can be substantially reduced by precomputing a bounding box [32] of the surface \(\Gamma ^h\) and assigning a default value for the \(d_K\) of nodes outside of this box, but the essential complexity remains of order \(\mathcal {O}(N_\Gamma \times N_\Omega )\). Complexity reduction is possible by generation of a hierarchy of bounding boxes [32] or using socalled marching methods, see e.g. [33].
Constructive solid geometry modelling
Now, we consider a different approach for integrating finite element analysis with geometric design, similar to the ideas presented in [34]. Specifically, we consider the construction of a threedimensional geometry by means of CSG, see, for instance, [35, 36]. An example of such a modelling process is given in Fig. 6, where one begins with a cube as a workpiece and performs set operations with other geometric primitives until the desired geometry is obtained. These operations are commonly union \(\cup \), intersection \(\cap \), subtraction\(\setminus \)and the set complement \(()^\complement \). Based on De Morgan’s laws [36], it suffices to work with the canonical operations intersection and complement, and represent the other two as compositions thereof, more precisely \(\mathbb {A} \cup \mathbb {B} = (\mathbb {A}^\complement \cap \mathbb {B}^\complement )^\complement \) and \(\mathbb {A}{\setminus }\mathbb {B} = \mathbb {A} \cap \mathbb {B}^\complement \).
The conventional finite element approach is to work through such a CSG pipeline, export a geometry representation and use a mesh generation software to create a bodyfitted volume mesh for the numerical analysis. The direct modification for an immersed finite element method is to export a surface representation of the geometry and embed this into the mesh by the methods described in “Immersed finite element method” section. Here, a third way is suggested in which the set operations are directly applied to the embedding (nonconforming) volume mesh. As outlined above, it suffice to provide the complement and intersection operations only. The former is trivially achieved: the use of a signed distance function generates an in and an outside partition of the mesh, reversing these partitions gives the complement. For this reason, all that need be explained is the intersection operation.
A simple twodimensional example in Fig. 7 demonstrates the intersection operation: first the intermediate domain \(\Omega _1\) is given via the distance function of a straight line \(\Gamma _1\), afterwards a second distance function to the line \(\Gamma _2\) yields the final domain \(\Omega = \{\varvec{x}\in \Omega _\square :{{\mathrm{dist}}}_{\Gamma _1} (\varvec{x})> 0 \text { and } {{\mathrm{dist}}}_{\Gamma _2}(\varvec{x}) > 0 \}\). For sake of clarity, let us discuss the individual steps in this picture. First the line \(\Gamma _1\) is embedded into the shown \(3\times 3\)grid which fills out the square domain \(\Omega _\square \). The elements \(\tau _{i0}\) are strictly inside the intermediate domain \(\Omega _1 = \{\varvec{x}\in \Omega _\square :{{\mathrm{dist}}}_{\Gamma _1} (\varvec{x}) > 0 \}\) and form the set \(\mathbb {I}_1\). The elements \(\tau _{i2}\) are strictly outside and form the set \(\mathbb {O}_1\). Now, the remaining elements form the set \(\mathbb {C}_1\) and are triangulated such that the embedded boundary is approximated by triangle edges. The squares are first subdivided into two triangles each and then every such triangle is intersected by means of the nodal values of the signed distance function \({{\mathrm{dist}}}_{\Gamma _1}\) [37]. The resulting outcome is the left picture in Fig. 7 where the red squareshaped marks indicate the location of the intersection points.
In the second embedding step, the distance function \({{\mathrm{dist}}}_{\Gamma _2}\) is used which gives rise to the element sets \(\mathbb {I}_2\), \(\mathbb {O}_2\) and \(\mathbb {C}_2\). All elements which belong to the outside are directly assigned to the complementary domain \(\Omega _\square {\setminus }\Omega \), that is \(\mathbb {O} = \mathbb {O}_1 \cup \mathbb {O}_2\). On the other hand, all elements of \(\mathbb {I}_1\), which also belong to \(\mathbb {I}_2\), are inside the final domain \(\Omega \), hence \(\mathbb {I} = \mathbb {I}_1 \cap \mathbb {I}_2 = \{\tau _{20}\}\). Finally, there are the intersection cases. Elements belonging to \(\mathbb {C}_1\) and \(\mathbb {I}_2\) (\(\tau _{21}\)) keep their status and subdivision. Elements from \(\mathbb {I}_1\) and \(\mathbb {C}_2\) (\(\tau _{10}\)) are subject to the same decomposition methods as \(\mathbb {C}_1\). It remains to discuss the situation of the elements which belong to \(\mathbb {C}_1 \cap \mathbb {C}_2\); the ones which are intersected by both boundaries, and in our example of Fig. 7 this is the element \(\tau _{11}\). In this case, simply the composing triangles are intersected with \(\Gamma _2\) as if they were elements of their own. Proper categorisation of these simplex shapes defines the final domain \(\Omega \) and its complement \(\Omega _\square {\setminus }\Omega \), see the middle picture of Fig. 7.
The advantage of this approach becomes clear when looking at the right picture of Fig. 7. Shown is the result for the same target domain \(\Omega \), but first the composition of the individual distance functions \({{\mathrm{dist}}}_{\Gamma _i}\) is computed according to expression (26) and then the element intersections are constructed. Clearly, in the right picture the corner is chamfered whereas in the above outlined approach this geometric feature is preserved. This is the distinctive characteristic of the presented idea: by successively embedding the geometry primitives into the mesh, the sharp features at the primitive intersections are preserved. It is important to remark that the boundaries \(\Gamma _i\) have been represented exactly in this example, but this is solely owed to the fact that they are straight lines. In the more general situation of curved boundaries, they are again represented on the finite element mesh by piecewise linear simplex elements. But, even though these surrogate boundaries do not exactly reproduce the given geometry, the here presented approach still allows to represent corners or edges at the intersection locations of the original primitives which lie inside of the finite elements.
The presented method for CSG modelling based on finite element meshes is straightforward to extent to three dimensions. In the plane case outlined so far, the rectangular elements are subdivided into two triangles which themselves are triangulated in order to recover the implicit surface in the form of triangle edges. This approach is akin to a twodimensional version of marching cubes and in three dimensions we make use of a similar technique. The used threedimensional element shapes are either tetrahedrons or hexahedrons. Figure 8 shows how a hexahedron is decomposed into six tetrahedrons such that it remains to consider this shape only. Given a tetrahedron with values of the signed distance function at its vertices we can classify the cases shown in the right part of the figure. Based on linear interpolation along the edges the zeros of the distance function are recovered and give rise to two volume tessellations \(\tau _I^\) and \(\tau _I^+\) whose common faces form the triangulated surface \(\sigma _I\). Using these decompositions, the above outlined intersection operations of two geometry primitives can be carried out analogously in three dimensions.
Alternative approaches for increasing the quality of implicit geometry representations in the vicinity of sharp features (such as edges and corners) exist. In [38] the operations of surface reconstruction by means of marching cubes and the distance function computation are combined in order to generate a socalled directed distance field allowing for a better resolution of surface features. On the other hand, enriched distance functions are presented in [39] where additional edge and vertex descriptors augment the distance geometry representation. Although both approaches are promising concepts in the context of immersed finite element methods, they are not further considered in this work.
We conclude this paragraph by noting that the here used tessellation techniques also help to construct numerical integration schemes for the elements that are traversed by the boundary or interface. The cut elements are general polytopes for which quadrature rules are not easily obtained. There are many techniques that address this problem, such as momentfitting [40], surfaceonly integration [41], and adaptive decomposition of the integration region [14, 42]. But since we have a tessellation in simplex shapes already available, we use composite Gauß type quadrature rules, see e.g., [11].
Numerical stability
Up to now, it has been shown how to derive an immersed finite element method for boundary value and interface problems, see (9) and (19), and how to compute the matrix coefficients of the linear system of equations. But the stable solution of this final system of Eq. (21) remains to be discussed, especially in view of the method’s parameters \(\gamma \) (for boundary value and interface problems) and \(\beta \) (for interface problems only).
Sources of instability
As an illustrative example, consider a onedimensional problem
for the domain \(\Omega = (0,x_\varepsilon )\) and a constant material parameter \(\alpha \). The boundary conditions are a prescribed value of \(u=0\) at the left end and either a zero derivative (homogeneous Neumann) or a zero function value (homogeneous Dirichlet) at the right end. Let \(\Omega _\square = (0,2h)\) be the embedding domain and two linear finite elements of size h are used for the discretisation, see Fig. 9. First, we consider the case with a homogeneous Neumann boundary condition at the right end. The leftside boundary condition is going to be incorporated essentially and the system matrix becomes
Obviously, for \(\varepsilon \rightarrow 1\) this matrix recovers the standard finite element matrix for this problem with its known properties. The eigenvalues of this matrix have the values
Clearly, the smaller eigevalue goes to zero for the limit \(\varepsilon \rightarrow 0\), that is the case of a vanishing cut element. As expected, the matrix \(\varvec{\mathsf {K}}_N\) is illconditioned for this limit.
We now turn to the Dirichlet case and evaluate the lefthandside of expression (7) for this simple test problem. The resulting stiffness matrix has the form (replacing the surface integrals by point evaluation at \(x_\varepsilon \))
Note that the expression for the system matrix has been multiplied by the factor \(\frac{h}{\alpha }\). The expressions of the eigenvalues of \(\varvec{\mathsf {K}}_D\) are not easily determined, but the condition \(\det (\varvec{\mathsf {K}}_D) > 0\) is more workable. Note that since the trace of the matrix is positive and equals \(\lambda _1 + \lambda _2\), the condition of a positive determinant (recall \(\det (\varvec{\mathsf {K}}_D) = \lambda _1 \lambda _2\)) is sufficient for positive definiteness. One gets
Fulfilment of this condition guarantees that the matrix is positive definite for a fixed mesh size h, but unfortunately it implies \(\gamma \rightarrow \infty \) for \(\varepsilon \rightarrow 0\). The use of a very large value for \(\gamma \) can lead to undesired numerical problems.
In the case of the interface problems and formulation (19), the situation is slightly better. The extra parameter \(\beta \) can be adjusted in a smart way such that a finite value of \(\gamma \) is always achievable. Such a choice is proposed in [43] where \(\beta \) depends on the material parameters of the subdomains and the sizes of the cut elements, \(\tau _I \cap \Omega _i\). Using this approach, the system matrix has always positive eigenvalues (for the considered problem class) with a finite value of \(\gamma \). Nevertheless, the minimal eigenvalue goes to zero for vanishing sizes of the cut elements. Even though the parameter choices by [43] show a good performance in terms of the quality of the numerical results, the matrix condition number still cannot be bounded for a fixed mesh and arbitrary interface locations.
Stabilisation
The above indicated sources of numerical instability all stem from the same situation that for some degrees of freedom, the intersection of the support of their associated shape functions with the physical domain becomes very small,
where \({{\mathrm{supp}}}(\varphi _I)\) denotes the support of shape function \(\varphi _I\) and h is a measure of the mesh size on \(\Omega _\square \). In all above cases, Neumann, Dirichlet, or interface problem, this leads to severe illconditioning of the final system matrix. To solve this problem, the following approaches have been proposed, among others,

S1
Discarding all degrees of freedom with support intersection below a certain threshold, \(s_I < \varepsilon h\);

S2
Adding a facebased stabilisation term [16];
 S3
As reported, among others, in [12], the approach S1 leads to a loss of approximation order. Although appealing due to its simplicity, this drawback can be prohibitive in some applications. An adhoc approach to remedy the stability problem is to locally adapt the finite element mesh in order to avoid the problem of too small values of \(s_I\). Even though simple at first sight, a robust realisation of this idea in three dimensions is not straightforward and mesh entanglement needs to be avoided. The support size \(s_I\) is increased if specific nodes are moved away from the surface \(\Gamma \), but there is an interesting alternative in which the points are snapped to the surface thereby generating a conforming mesh, see [44] for twodimensional analysis of this idea.
Another approach, S2, is proposed in [16] where the jump of the function gradients across certain element faces is added to the weak form in order to guarantee stability of the method. Other than the result (31), the system matrix stays wellconditioned for small values of \(\gamma \) in the limit \(\varepsilon \rightarrow 0\). This approach requires to evaluate surface integrals over interior mesh faces, a technicality which requires additional data structures in many codes, but does not add much to the overall difficulty of implementing an immersed finite element method. Nevertheless there is a drawback with this approach, since it introduces another weighting factor whose adjustment is not straightforward: for too small values of this factor the stabilisation effect disappears and for too large values the method’s accuracy is affected [16].
Finally, we consider S3 which relies on the concept of coupling degrees of freedom with too small supports to other degrees of freedom from the interior of the domain. In order to outline this approach, the degrees of freedom shall first be classified according to the size \(s_I\) of the intersection of their support with the domain, as defined in (32). In “Finite element discretisation” section, the set \(\mathbb {S}\) has been introduced which contains all indices of shape functions for which \(s_I\) is larger than zero. Introducing a threshold \(\hat{s}\), the set \(\mathbb {S}\) is now decomposed into the disjoint index sets, \(\mathbb {A}\) and \(\mathbb {B}\) with definition
The threshold \(\hat{s}\) used in this classification has to depend on the mesh size h and should not be larger than one typical element size. The basic idea of Höllig et al. [12] is to constrain degrees of freedom from the set \(\mathbb {B}\) to suitably chosen degrees of freedom from \(\mathbb {A}(J)\), a subset of \(\mathbb {A}\),
where the coefficients \(c_{IJ}\) will be discussed further below. These constraints give rise to the modified shape function basis
In this reordering of the finite element approximation (20) a new set \(\mathbb {B}(I)\) is used which contains all indices J from \(\mathbb {B}\), such that \(I \in \mathbb {A}(J)\). For the implementation of this stabilisation method, it is sufficient to work with expression (34), but the result of (35) demonstrates that effectively a modified shape function basis \(\{ \tilde{\varphi }_I\}_{I\in \mathbb {A}}\) is generated and illustrates the notion of extended splines as given in [12]. Note also that \(\mathbb {B}(I) = \emptyset \) for all degrees of freedom that are not in the vicinity of the boundary and in that case \(\tilde{\varphi }_I = \varphi _I\), so that most shape functions are not affected. Since the support size of the basis functions \(\tilde{\varphi }_I\) is larger, the bandwidth increases for these degrees of freedom. Therefore, it has to be remarked that only degrees of freedom in the vicinity of the boundary are affected. Moreover, the storage requirement of the final system matrix is of course not larger than it would be for the original (unstable) basis functions \(\varphi _I\).
There are two open questions when using this approach: (i) the choice of the index set \(\mathbb {A}(J)\) associated to J and (ii) the values of the constraint weights \(c_{IJ}\). The origin of this approach, as introduced in [12], is to stabilise bspline discretisations. In this particular situation, the underlying mesh is logically Cartesian and an explicit expression of the coefficients \(c_{IJ}\) can be given as a function of the multiindices used to label that grid. See also [6] for a more intuitive interpretation of the arising extrapolation of Lagrange polynomials and its efficient implementation. The aim of this stabilisation procedure is to maintain the convergence order of the method and therefore to not lose the polynomial approximation quality of the approximation (20) due to the constraints (34). In other words, the modified basis functions \(\tilde{\varphi }_I\) introduced in (35) have to represent the same polynomials as the \(\varphi _I\) themselves.
In order to outline the procedure for obtaining \(\mathbb {A}(J)\) and the corresponding coefficients \(c_{IJ}\), consider the situation depicted in Fig. 10. The degree of freedom \(\varvec{u}_J\), \(J \in \mathbb {B}\), resides at node \(\varvec{x}_J\) and the size of the intersection of the support (hatched in the picture) with the domain \(\Omega \) is below the threshold \(\hat{s}\). Searching through the elements in the vicinity of \(\varvec{x}_J\), one finds the element \(\tau _{K(J)}\) whose connected degrees of freedom all belong to \(\mathbb {A}\). Any element entirely inside the domain \(\Omega \) fulfils this condition. Normally, many such elements can be found and the closest is selected, where the distance between the element middle point and \(\varvec{x}_J\) is a possible way to measure the proximity. The selected element \(\tau _{K(J)}\) gives rise to the index set \(\mathbb {A}(J) \subset \mathbb {A}\) associated with \(\varvec{u}_J\). Formally, we can write
Once this set is defined, the weights \(c_{IJ}\) are calculated by evaluation of the basis of \(\tau _{K(J)}\) at the node \(\varvec{x}_I\),
This choice of weights is an extension of the idea given in [15] where the weights are defined for nonuniform bsplines as dual functionals applied to the polynomials in a chosen grid element. Here the point evaluation of (37) is the corresponding dual functional of Lagrange polynomials [8]. Note that \(\varvec{x}_J \notin \tau _{K(J)}\) and thus \(c_{IJ}\) represents an extrapolation of the polynomial basis spanned in \(\tau _{K(J)}\) to the outside point \(\varvec{x}_J\), see also Fig. 10. The stabilisation procedure can be summarised as follows

1
categorise \(\mathbb {A}\) and \(\mathbb {B}\) using a threshold \(\hat{s}\), see (32) and (33)

2
for all \(J \in \mathbb {B}\)

find \(\tau _{K(J)}\) with all degrees of freedom from \(\mathbb {A}\) that is close to \(\varvec{x}_J\),

define the constraint coefficients as \(c_{IJ} = \varphi _I(\varvec{x}_J)\) for all \(I \in \mathbb {A}(J)\)


3
assemble the final system of equations using the constraint equations (34) applied to test and trial spaces

4
after solving the global system, calculate the constrained degree of freedom \(\varvec{u}_J\) with \(J \in \mathbb {B}\) according to (34).
With respect to the implementation a few remarks have to be made. The code has to be able to search the elements in the neighbourhood of a given node. For instance, the element \(\tau _{K(J)}\) in Fig. 10 does not lie in the support of \(\varphi _J\) but in the ring of elements around that support. Theoretically, for very extreme shapes of \(\Gamma \) the nearest \(\tau _{K(J)}\) to \(\varvec{x}_J\) could lie far away, but here we assume that the mesh is fine enough such that there is always an element nearby. Cuspshaped domains are excluded from the onset. In addition, one has to evaluate the shape functions of \(\tau _{K(J)}\) at \(\varvec{x}_J\) and this requires to find first the reference coordinate \(\varvec{\xi }_J\) (outside of the reference element) such that the geometry representation of the chosen element represents \(\varvec{x}_J\) when evaluated at this coordinate, that is \(\varvec{x}_{K(J)} (\varvec{\xi }_J) = \varvec{x}_J\). Here we restrict ourselves to meshes in which all elements are an affine transformation of the reference element. Higherorder geometry representations of the volume mesh are excluded, but they are also not necessary since the mesh, by design of the immersed method, need not conform to the geometry of \(\Omega \).
Numerical examples
At last, a few numerical examples are presented in order to study and demonstrate the performance of the immersed finite element method as presented here. Unless indicated otherwise, the spatial discretisation of all problems is carried out with linear finite elements. As shown in the appendix, the Nitsche parameter is chosen as \(\gamma = \gamma _0 \tfrac{\alpha }{h}\) with the mesh width h, the representative material parameter \(\alpha \) and a dimensionless scalar \(\gamma _0\). The default choices for this parameter is \(\gamma _0 = 10\) and for interface problems the additional parameter is chosen as \(\beta = 0.5\). The threshold \(\hat{s}\) used to distinguish between the degree of freedom sets \(\mathbb {A}\) and \(\mathbb {B}\) in the stabilisation of “Stabilisation” section is set to the size of one element.
Convergence and robustness analysis
At first, the method’s performance under variation of various parameters is assessed. For this purpose, an essentially onedimensional Poisson problem is used as depicted in Fig. 11, left, with a forcing function \(f(\varvec{x}) = \alpha ^2 \sin (\alpha x_1)\) and \(\alpha = \frac{3\pi }{2 x_\delta }\). The resulting exact solution is then \(u(\varvec{x}) = \sin (\alpha x_1)\). The signed distance function is \({{\mathrm{dist}}}_\Gamma (\varvec{x}) = x_\delta  x_1\) and the boundary is represented exactly. At first, this problem is analysed using a structured mesh as shown in the figure. Figure 11, on the right, shows the analytic solution (solid black line) along the \(x_1\)axis and its derivative (dashed line) for a boundary location at \(x_\delta = \frac{6}{7}\). The approximations \(u^h\) and \(\partial _{1} u^h\) for a mesh with \(5\times 5\) elements (red) and a \(10\times 10\) element (blue) are also displayed. One can see that the numerical approximation \(u^h\) coincides with the analytic solution at the finite element nodes and, moreover, at the boundary location at \(x_\delta \).
The convergence of the method is shown in the left of Fig. 12, where the numerical errors in \(L_2\)norm and \(H^1\)seminorm are shown for an approximation with linear and a quadratic Lagrange polynomials. These results exhibit the expected optimal convergence rates [8]. In this graph, the boundary location is held fixed at \(\varvec{x}_\delta = \frac{6}{7}\) and the mesh width h is decreased. On the other hand, the right side of Fig. 12 shows the smallest and largest eigenvalues of the system matrix in dependence of the boundary location for a nonstabilised implementation and for the stabilisation presented in “Stabilisation” section. Here, a fixed \(40\times 40\) mesh is used and the location of the boundary is at \(\varvec{x}_\delta = (34+\varepsilon )h\) with the parameter \(0 \le \varepsilon \le 1\). A Neumann boundary condition at \(\varvec{x}_\delta \) is considered and, hence, one has always \(a(u^h,u^h) > 0\) and \(\lambda _{\min } > 0\). One can clearly see that \(\lambda _{\min } \in \mathcal {O}(\varepsilon )\) for small \(\varepsilon \) and for the nonstabilised case (note that the figure shows in fact the inverse \(\frac{1}{\lambda _{\min }}\)). Clearly, the matrix condition number grows without bound. The stabilisation as outlined in “Stabilisation” section, however, guarantees a constant value of \(\lambda _{\min }\) well above zero. The largest eigenvalues coincide for both cases.
Now we turn to the problem with a Dirichlet boundary condition at \(x_\delta \). Using the same variation of the location of this boundary as above, Fig. 13 shows the smallest eigenvalue \(\lambda _{\min }\) for the stabilised method and for the nonstabilised method for various values of \(\gamma _0\) (recall that \(\gamma = \frac{\gamma _0}{h}\)). One can see that without stabilisation the considered minimal eigenvalue changes sign for decreasing values of \(\varepsilon \) rendering the system matrix indefinite (and singular when the zero is crossed). In order to force \(\lambda _{\min } >0 \) one can increase the value of \(\gamma _0\), but for \(\varepsilon \rightarrow 0\) this value grows without bound and one gets effectively \(\lambda _{\max } \rightarrow \infty \) which likewise deteriorates the condition number of the matrix, as already discussed in “Sources of instability” section.
Next, the stabilisation technique is applied to an unstructured mesh as shown in Fig. 14. Note that this case is not covered by the original idea of this technique as given by [12] which was only designed for bspline basis functions on structured meshes. The left of Fig. 15 shows the convergence of the stabilised method for linear triangle elements and a fixed boundary location. Finally, the location of the boundary is varied again and the condition number for a Neumann problem is considered in the right of Fig. 15. Whereas in the nonstabilised case this value shows a very erratic behaviour with large peaks, the condition number for the stabilised method is almost constant at a low value.
Now, an interface problem is considered. Figure 16 shows the computational domain that is composed of a circular domain \(\Omega _1\) embedded in a square domain \(\Omega _2\). On this domain, the Poisson problem \( \alpha _i \Delta u = 4\) with material parameters \(\alpha _1 = 1\) and \(\alpha _2 = 1000\) is solved, subject to Dirichlet boundary conditions on the outer boundary \(\partial \Omega _2\). The geometric parameters are chosen as \(R=0.75\) and \(L=2\), respectively. This problem together with its analytic solution is taken from [2]. In the right graph of Fig. 16 the convergence behaviour is shown for different values of the interface weight factor \(\beta \). For the three considered values \(\beta = 0\), 0.5 and 1, the curves are indistinguishable. Also optimal convergence rates are achieved for mesh sizes smaller than \(h \approx 0.02\).
At last, we consider the influence of the geometry representation. As outlined in “Constructive solid geometry modelling” section, we have to approaches available: the use of a signed distance function representing the entire embedded surface and the successive embedding of the geometry primitives that form the final model. For simplicity, consider a square that coincides on two of its edges with the mesh boundary whereas the other two are represented implicitly. Figure 17 shows the effect of the introduced two approaches in the left and middle images, respectively. Clearly, the upper right corner is chamfered off in the first approach, but represented exactly in the second. As a numerical problem we have chosen \(\Delta u = 1\) on a unit square subject to \(u=0\) on the lower and left boundaries and \( \partial u / \partial \varvec{n} = 0\) on the other two boundaries. An analytic solution to this problem is available, for instance in [45] in the context of Poiseuille flow in a rectangular channel. The right graph in Fig. 17 shows the convergence rates for the two types of geometry modelling. Clearly, optimal convergence rates are obtained for both cases. Nevertheless the exact representation of the corner leads to a much smoother outcome with lower approximation errors for coarse mesh sizes.
Meshembedded CSG
Here the domain as obtained by the CSG process of Fig. 6 is reconsidered, see also the left of Fig. 18. The embedding domain is \(\Omega _\square = (0,1)^3\) and equipped with a uniform hexahedral mesh. Following the meshbased Boolean operations as introduced in “Constructive solid geometry modelling” section, the immersed geometry is obtained by

1
intersection with a sphere of radius 0.65 and centred at (0.5, 0.5, 0.5), and

2
successive subtraction of cylinders around the same centre with radius 0.3 and in the directions of the \(x_i\)coordinate axes.
Thus the domain \(\Omega \) is obtained as shown in Fig. 18 and we assume that it is occupied by a hyperelastic solid. In a first analysis, linearised elasticity is assumed and the convergence is studied by using fundamental solution of elasticity \(\varvec{U}(\varvec{x},\varvec{y})\) (see, for instance, [46]) as an imposed analytic solution with a source point \(\varvec{y}\) located outside of the domain. Therefore, on the bottom (\(x_3=0\)) the boundary displacements \(\bar{\varvec{u}}(\varvec{x}) = \varvec{U}(\varvec{x},\varvec{y})\) are prescribed and the remaining boundaries are subject to the Neumann condition \(\bar{\varvec{t}} = \varvec{t}(\varvec{U})(\varvec{x},\varvec{y})\). For simplicity, the material parameters are chosen as \(\lambda = 28.85\) and \(\mu = 19.23\). The right of Fig. 18 shows the convergence of the displacement solution and of the computed volume and surface area of the embedded domain. Quadratic convergence is observed for all considered quantities.
Next, a compressible NeoHookean material model [22, 23] with large deformations is used, based on the strain energy density
with the deformation gradient \(\varvec{F} = \varvec{I} + {{\mathrm{Grad}}}\varvec{u}\). The material parameters are the same as in the linearised case above. For the example, the bottom boundary is held fixed and a twisting traction field is applied to the top surface with value \(\bar{\varvec{t}} = 10 ( x_2  0.5, 0.5  x_1, 0)\). The load is applied in 4 steps and within each step a Newton method is used to obtain the equilibrium state. The deformed geometry for these four load steps is shown in the images of Fig. 19 for a \(40^3\) grid of linear hexahedron elements.
Composite material
As a last example, the elastic deformation of a fibrereinforced block of elastic material is considered. A block of dimension \(L \times \frac{2}{5} L \times L \) is reinforced by inclined fibres placed with a main axis separation of \(\frac{L}{3}\). The fibres are represented by cylinders with radius \(\frac{L}{15}\). The threedimensional setup is shown in the left of Fig. 20 and on the right a twodimensional view of the problem is depicted. The bottom surface is held fixed and the top surface is constrained in normal direction. The left and right surfaces are subject to a constant traction field \(\bar{\varvec{t}}\) in normal direction. The discretisation is carried out by a fixed mesh of dimension \(50 \times 20 \times 50\) as indicated on the back faces of the threedimensional view. For comparison, we monitor the average horizontal displacement
throughout the composite body for a variety of fibre angles \(35^\circ \le \alpha \le 35^\circ \). Both domains \(\Omega _1\) and \(\Omega _2\) have the hyperelastic material law according to the energy (38) and the computations are carried out with large deformations. For comparison, a linearised situation is also considered.
The model parameters are chosen as \(L=1\) and \(\bar{\varvec{t}}=(1,0,0)\). The materials are represented by the Lamé parameters \(\lambda _1 = 5.769\), \(\mu _1 = 3.846\), \(\lambda _2 = 10 \lambda _1\) and \(\mu _2 = 10 \mu _1\). Figure 21 shows the deformed configuration for fibre angles \(\alpha =35^\circ \), \(\alpha =0^\circ \) and \(\alpha =+35^\circ \). In addition, the analysis of the average horizontal displacement \(U_1\) as a function of the considered fibre angles \(\alpha \) is shown for the NeoHooke material and linearised elasticity. Although there are similarities between the largedeformation analysis and the linearised version, striking differences can be observed too. Most of all, the linear variant is completely symmetric with respect to the sign of \(\alpha \) and has its largest value for \(\alpha =0^\circ \). In the largedeformation variant, on the other hand the result is a larger deformation for the negative fibre angles and smaller for positive angles. Overall, the body behaves less flexibly in the nonlinear analysis, but with a strong bias to an increased flexibility for negative fibre angles.
Conclusions
Immersed finite element methods, that do not rely on a bodyfitted mesh, are a promising alternative to conventional FEM for many applications. Especially in the case of complex threedimensional geometries, moving interfaces, or design optimisation such methods allow for more flexible geometry processing and remove the repeated interaction with mesh generation software. Here, we present an immersed FEM for the problem class of nonlinear elasticity, based on a weak incorporation of Dirichlet boundary conditions and interface conditions with Nitsche’s method, an implicit geometry representation and accurate integration of the arising cut elements. We place emphasis on the implementation details such as the robust computation of the signed distance function and quadrature by means of tessellation. A common pitfall of nonbodyfitted FEM, the loss of numerical stability in situations with degenerate function support, is analysed and we provide a stabilisation technique that is robust without affecting the convergence behaviour. Moreover, the choice of the parameters in the context of Nitsche’s method are thoroughly discussed.
We demonstrate a way to incorporate sharp features such as edges and vertices in our method by means of successively embedding the geometry primitives into the analysis mesh in a similar way as in constructive solid geometry modelling. Based on this idea, geometry modelling is directly integrated in the finite element analysis and there is no need for a mesh generation tool. The presented applications emphasise the potential of this approach, where large deformation analyses are carried out based on a trivial Cartesian background mesh.
A present shortcoming of the introduced approach is the restriction to linear approximation orders. Although the field approximation used in this FEM can be of arbitrary order, a gain in convergence order would be impeded by the geometry representation based on linear facets. In principle, the use of more accurate signed distance functions and the subsequent adaptation on the quadrature level to account for embedded higherorder surface representations is feasible.
Finally, we note that the presented method is ideally suited for the incorporation of hadaptivity. A combination of this immersed FEM with hierarchical refinement techniques as shown, for instance, in [47] would render a powerful analysis toolbox, which yields accurate numerical predictions based only on the input of geometry primitives.
References
 1.
Cottrell JA, Hughes TJ, Bazilevs Y. Isogeometric analysis: toward integration of CAD and FEA. New York: Wiley; 2009.
 2.
Hansbo A, Hansbo P. An unfitted finite element method, based on Nitsche’s method, for elliptic interface problem. Comput Methods Appl Mech Eng. 2002;191:5537–52.
 3.
Dolbow J, Harari I. An efficient finite element method for embedded interface problems. Int J Numer Methods Eng. 2009;78:229–52.
 4.
Sanches R, Bornemann P, Cirak F. Immersed bspline (ispline) finite element method for geometrically complex domains. Comput Methods Appl Mech Eng. 2011;200(13):1432–45.
 5.
Rüberg T, Cirak F. An immersed finite element method with integral equation correction. Int J Numer Methods Eng. 2011;86:93–114.
 6.
Rüberg T, Cirak F. Subdivisionstabilised immersed bspline finite elements for moving boundary flows. Comput Methods Appl Mech Eng. 2011;209–212:266–83.
 7.
Nitsche J. Über ein Variationsprinzip zur Lösung von DirichletProblemen bei Verwendung von Teilräumen, die keinen Randbedingungen unterworfen sind. In: Abhandlungen aus dem Mathematischen Seminar der Universität Hamburg, vol. 36. Berlin: Springer; 1971. p. 9–15.
 8.
Ern A, Guermond JL. Theory and practice of finite elements, vol. 159. Berlin: Springer; 2004.
 9.
Courant R. Variational methods for the solution of problems of equilibrium and vibrations. Bull Am Math Soc. 1943;49(1):1–23.
 10.
Babuška I. The finite element method with Lagrangian multipliers. Numerische Mathematik. 1973;20(3):179–92.
 11.
Fries TP, Belytschko T. The extended/generalized finite element method: an overview of the method and its applications. Int J Numer Methods Eng. 2010;84(3):253–304.
 12.
Höllig K, Reif U, Wipper J. Weighted extended Bspline approximation of Dirichlet problems. SIAM J Numer Anal. 2001;39:442–62.
 13.
Legrain G, Allais R, Cartraud P. On the use of the extended finite element method with quadtree/octree meshes. Int J Numer Methods Eng. 2011;86(6):717–43.
 14.
Schillinger D, Dedè L, Scott MA, Evans JA, Borden MJ, Rank E, Hughes TJR. An isogeometric designthroughanalysis methodology based on adaptive hierarchical refinement of nurbs, immersed boundary methods, and tspline CAD surfaces. Comput Methods Appl Mech Eng. 2012;249–252:116–50.
 15.
Höllig K, Reif U. Nonuniform websplines. Comput Aided Geom Des. 2003;20(5):277–94.
 16.
Burman E, Hansbo P. Fictitious domain finite element methods using cut elements: II. A stabilized Nitsche method. Appl Numer Math. 2012;62(4):328–41.
 17.
Rüberg T, Cirak F. A fixedgrid bspline finite element technique for fluidstructure interaction. Int J Numer Methods Fluids. 2014;74:623–60.
 18.
Rüberg T, Aznar JMG. Numerical simulation of solid deformation driven by creeping flow using an immersed finite element method. Adv Model Simul Eng Sci. 2016;3(1):1–31.
 19.
Bandara K, Rüberg T, Cirak F. Shape optimisation with multiresolution subdivision surfaces and immersed finite elements. Comput Methods Appl Mech Eng. 2016;300:510–39.
 20.
Hansbo A, Hansbo P. A finite element method for the simulation of strong and weak discontinuities in solid mechanics. Comput Methods Appl Mech Eng. 2004;193(33):3523–40.
 21.
Mergheim J, Steinmann P. A geometrically nonlinear FE approach for the simulation of strong and weak discontinuities. Comput Methods Appl Mech Eng. 2006;195(37):5037–52.
 22.
Holzapfel GA. Nonlinear solid mechanics: a continuum approach for engineering. New York: Wiley; 2000.
 23.
Wriggers P. Nonlinear finite element methods. Berlin: Springer; 2008.
 24.
Ortiz M, Pandolfi A. Finitedeformation irreversible cohesive elements for threedimensional crackpropagation analysis. Int J Numer Methods Eng. 1999;44(9):1267–82.
 25.
Höllig K, Reif U, Wipper J. Bspline approximation of Neumann problems. Technical report. Germany: University of Stuttgart; 2001.
 26.
Jones M, Bærentzen JA, Šrámek M. 3D distance fields: a survey of techniques and applications. IEEE Trans Vis Comput Graph. 2006;12(4):581–99.
 27.
Piegl L, Tiller W. The NURBS book. 1997. Monographs in visual communication. Berlin: Springer; 1997.
 28.
Jörg P, Reif U Subdivision Surfaces. Geometry and Computing, vol 3. Berlin: Springer; 2008. doi:10.1007/9783540764069.
 29.
Cirak F, Ortiz M, Schröder P. Subdivision surfaces: a new paradigm for thinshell finiteelement analysis. Int J Numer Methods Eng. 2000;47(12):2039–72.
 30.
Pabst HF, Springer JP, Schollmeyer A, Lenhardt R, Lessig C, Froehlich R. Ray casting of trimmed NURBS surfaces on the GPU. In: Knoll A, Wald I, Parker S, Hansen C, editors. IEEE Symposium on interactive ray tracing. Piscataway: IEEE; 2006. p. 151–60.
 31.
Shapiro V. Real functions for representation of rigid solids. Comput Aided Geom Des. 1994;11(2):153–75.
 32.
Ericson C. Realtime collision detection. Boca Raton: CRC Press; 2004.
 33.
Mauch SP. Efficient algorithms for solving static HamiltonJacobi equations. PhD thesis. Pasadena: Calinfornia Institute of Technology; 2003.
 34.
Rank E, Ruess M, Kollmannsberger S, Schillinger D, Düster A. Geometric modeling, isogeometric analysis and the finite cell method. Comput Methods Appl Mech Eng. 2012;249–252:104–15.
 35.
Pasko A, Adzhiev V, Sourin A, Savchenko V. Function representation in geometric modeling: concepts, implementation and applications. Vis Comput. 1995;11(8):429–46.
 36.
Duff T. Interval arithmetic recursive subdivision for implicit functions and constructive solid geometry. In: ACM SIGGRAPH computer graphics, vol. 26. New York: ACM; 1992. p. 131–38.
 37.
Sukumar N, Chopp DL, Moës N, Belytschko T. Modeling holes and inclusions by level sets in the extended finiteelement method. Comput Methods Appl Mech Eng. 2001;190(46):6183–200.
 38.
Kobbelt LP, Botsch M, Schwanecke U, Seidel HP. Feature sensitive surface extraction from volume data. In: Pocock L, editor. Proceedings of the 28th annual conference on computer graphics and interactive techniques. New York: ACM; 2001. p. 57–66.
 39.
Song X, Jüttler B. Modeling and 3D object reconstruction by implicitly defined surfaces with sharp features. Comput Graph. 2009;33(3):321–30.
 40.
Müller B, Kummer F, Oberlack M. Highly accurate surface and volume integration on implicit domains by means of momentfitting. Int J Numer Methods Eng. 2013;96(8):512–28.
 41.
Sudhakar Y, de Almeida JM, Wall WA. An accurate, robust, and easytoimplement method for integration over arbitrary polyhedra: application to embedded interface methods. J Comput Phys. 2014;273:393–415.
 42.
Düster A, Parvizian J, Yang Z, Rank E. The finite cell method for threedimensional problems of solid mechanics. Comput Methods Appl Mech Eng. 2008;197(45):3768–82.
 43.
Annavarapu C, Hautefeuille M, Dolbow JE. A robust Nitsche’s formulation for interface problems. Comput Methods Appl Mech Eng. 2012;225:44–54.
 44.
Rangarajan R, Lew AJ. Universal meshes: a method for triangulating planar curved domains immersed in nonconforming meshes. Int J Numer Methods Eng. 2014;98(4):236–64.
 45.
White FM, Corfield I. Viscous fluid flow, vol. 3. New York: McGrawHill; 2006.
 46.
McLean WC. Strongly elliptic systems and boundary integral equations. Cambridge: Cambridge University Press; 2000.
 47.
Bornemann P, Cirak F. A subdivisionbased implementation of the hierarchical bspline finite element method. Comput Methods Appl Mech Eng. 2013;253:584–98.
 48.
Bazilevs Y, Hsu MC, Scott M. Isogeometric fluidstructure interaction analysis with emphasis on nonmatching discretizations, and with application to wind turbines. Comput Methods Appl Mech Eng. 2012;249:28–41.
Author's contributions
The presented ideas are joint contribution of the three authors. TR implemented the numerical techniques and wrote the initial draft of the paper. JMGA and FC contributed to the revision of the draft. All authors read and approved the final manuscript.
Acknowledgements
This work was partially supported by the EPSRC (second author, Grant #EP/G008531/1), by the European Research Council (third author, Grant #ERC2012StG 306751), and by the Spanish Ministry of Economy and Competitiveness (third author, Grant #DPI201564221C21R).
Competing interests
The authors declare that they have no competing interests.
Author information
Affiliations
Corresponding author
Appendix A: method parameters \(\gamma \) and \(\beta \)
Appendix A: method parameters \(\gamma \) and \(\beta \)
In the following, estimates for the parameters \(\gamma \) (Penalty weighting parameter first appearing in (8)) and \(\beta \) (interface weighting parameter first appearing in (13)) are derived. These parameters only make sense with the Finite Element discretisation as the final goal. With a slight abuse of notation, the functions used in the following have to be understood as discrete FE solutions, but for simplicity the superscripts, for instance of \(\varvec{u}^h\), have been omitted.
Dirichlet boundary conditions
We develop an estimate for the parameter \(\gamma \) appearing in the linearised weighted residual equation (9). The material behaviour is assumed to be such that \(\mathrm {D}a(\varvec{u},\varvec{v})[\Delta \varvec{u}]\) is an elliptic bilinear form. The aim is to show that \(A(\varvec{u};\varvec{w},\varvec{w}) > 0\) for any \(\varvec{w}\ne \varvec{0}\), where \(\varvec{u}\) is the current displacement solution. This gives
Here, \(\Vert \varvec{w}\Vert _{\Gamma _D}\) is the \(L_2\)norm over the Dirichlet boundary \(\Gamma _D\). The CauchySchwarz inequality has been used from the first to the second line and, most importantly, the third line is based on the inverse inequality
This type of estimate is also presented in [3] for the case of Poisson’s equation. Knowledge of the constant C gives rise to the choice \(\gamma > C^2\) which renders the last line in (40) positive. Inserting the finite element trial functions (20) into (41) leads to the condition
for all coordinate directions \(\varvec{e}_a\), \(0 \le a < n_d\), and all shape functions \(\varphi _I\). Obviously, this condition is only nontrivial if the supports of \(\varphi _I\) and \(\varphi _J\) overlap each other and intersect with the Dirichlet boundary \(\Gamma _D\). Therefore, we use the following abbreviations for these domain and boundary intersections
The lefthand side of (42) can be rewritten as
and the righthand side becomes
Abbreviating the integrands in (44) and (45) with \(f^\Omega _{aIbJ}\) and \(f^\Gamma _{aIbJ}\), we obtain for the inverse inequality
Assuming continuity of the integrands, the mean value theorem of integration states that two points \(\varvec{\xi } \in \Omega _{IJ}\) and \(\varvec{\eta } \in \Gamma _{IJ}\) exist such that the estimate becomes
Without assumptions on the shape functions \(\varphi _I\) and the material behaviour, we cannot further reduce the ratio of the evaluated integrands. Nevertheless, if \(\alpha \) denotes a characteristic material behaviour (for instance the bulk modulus), it is clear from (44) and (45) that this ratio scales like \(\frac{\alpha ^2}{\alpha } = \alpha \). Here, we focus on controlling the second part of the right hand side of the estimate (47). Using a standard finite element basis, there are constellations in which \(\Omega _{IJ} \rightarrow 0\), whereas \(\Gamma _{IJ}\) does not decrease: see, for instance the sliver test case in [16].
Employing the proposed stabilisation technique from “Stabilisation” section, where critical shape functions are essentially joined with neighbouring ones that have a nondegenerate support, the above geometric ratio can be safely estimated as
because the support sizes of the stabilised basis functions \(\tilde{\varphi }_I\) never fall below the stabilisation threshold \(\hat{s}\) which is of order \(h^{n_d}\). In conclusion, we can state that there exists a constant \(\gamma _0\) independent of the material and the mesh size h, such that
and, in turn, \(A(\varvec{u}; \varvec{w},\varvec{w}) > 0\), see estimate (40).
Interface conditions
Next, we assess the choice of parameters in the linearised weighted residual equation (19) for the interface problems. To this end, the steps of (40) are repeated in an analogous manner with the function \(\varvec{w} = (\varvec{w}_1, \varvec{w}_2)\) and yield the estimate
which is positive for \(\varvec{w}_i \ne \varvec{0}\) and \(\gamma > D^2\). Here, D is the constant of the inverse estimate
Using the “PeterPaul inequality” with some \(\delta > 0\) (that is, the estimate \(2ab \le \delta a^2 + \delta ^{1} b^2\)) one gets
Let \(C_i\) denote the constant of (41) for the subdomain \(\Omega _i\), choose \(\delta = ((1\beta )^2 C_2^2) / (\beta ^2 C_1^2)\), and insert the inverse inequality (41) into the last expression in order to get
Based on the discussion above we know that the stabilisation technique given in “Stabilisation” section keeps the values of \(C_i\) bounded: therefore D according to (53) is wellbehaved, independent of the choice of \(0 \le \beta \le 1\). Nevertheless, in [43] a parameter choice for \(\beta \) is presented which keeps the value of D bounded even for a nonstabilised finite element basis. Their choice is, adapted to the notation used here, \(\beta = C_1^{1} / (C_1^{1} + C_2^{1})\) and this value controls nicely the righthandside of expression (53) for unbounded values of \(C_i\) (note that in case of geometric constellations for which \(C_1\) is large the counterpart \(C_2\) is small, and vice versa). But it has to be remarked that in certain types of applications (e.g. fluidstructure interaction [48]) it is convenient to freely choose the parameter \(\beta \) without stability restrictions. Moreover, this special choice of \(\beta \) maintains \(A(\varvec{u}; \varvec{w}, \varvec{w}) >0\) for a finite value of \(\gamma \), but does not prevent unbounded values of the condition number of the system matrix. With the here presented stabilisation technique, the choice of \(\beta \) does not affect stability and \(\gamma = \gamma _0 (\alpha _1 + \alpha _2) /h\) provides a safe choice for the characteristic material parameters \(\alpha _i\).
Rights and permissions
Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.
About this article
Cite this article
Rüberg, T., Cirak, F. & García Aznar, J.M. An unstructured immersed finite element method for nonlinear solid mechanics. Adv. Model. and Simul. in Eng. Sci. 3, 22 (2016). https://doi.org/10.1186/s4032301600775
Received:
Accepted:
Published:
Keywords
 Immersed finite elements
 Nonlinear solid mechanics
 Nitsche’s method
 CSG modelling
 Cutelement stabilisation
 Implicit geometry