1 Introduction

Elasticity problems involving incompressible or nonlinear materials are both notoriously difficult, for which several specialized techniques have been developed [33]. For the former, the displacement-pressure (up) formulation is studied in the incompressible limit, as the Poisson ratio \(\nu \rightarrow 1/2\). The main challenge is to provide an approximation that does not exhibit locking, i.e. which converges uniformly with respect to \(\nu \). For the latter, the difficulty is to ensure a good approximation already on coarse meshes, which often yield an overly stiff solution. This is particularly undesirable in engineering, unless expensive higher-order triangular or tetrahedral elements are employed. Another option is to use stabilized quadrilateral or hexahedral linear elements [5, 6, 14, 19, 24, 26, 28, 29], which provide a good accuracy, but entail the burden of a cumbersome mesh generation for complicated geometries. Therefore, we here restrict ourselves to triangular and tetrahedral elements.

In this context, there is a large amount of research. In particular, linear incompressible problems have long been a subject of study. In this context, Taylor-Hood elements \({\mathbb {P}}^k\)\({\mathbb {P}}^{k-1}\) with \(k > 0\) for the pair (up) have been known for a very long time to be stable in the incompressible limit [3, 8] and also offer a good accuracy in the context of nonlinear elasticity [20]. However, there are few reasons why using such a higher-order element is not completely satisfactory, such as the expensive numerical integration. Moreover, while these elements neither lock nor induce pressure instabilities, they do not precisely enforce incompressibility even in a weak sense [3, 23]. Furthermore, when abandoning low-order elements, it becomes difficult to interpret the discretization as a local conservation law, as can be done with finite volume and piecewise-linear elements, which makes it difficult to understand how to improve their drawbacks.

The above limitations have led to an increasing interest in low-order elements for incompressible problems [1, 12], which rely on stabilizations to avoid locking and pressure instability [9, 18, 22]. While stabilizing allows for constructing low-order elements for incompressible elasticity, it does not improve the accuracy of triangular or tetrahedral linear elements in the case of large deformations. Interestingly, a simple element offering a good accuracy on coarse meshes at a low cost is still missing. In the engineering practice, this forces to rely on relatively expensive quadratic elements (Taylor-Hood with \(k=2\)), particularly in the field of simulating biological tissues [20]. Here, we address the following question: can we design an approximation that falls in between \({\mathbb {P}}^1\) and \({\mathbb {P}}^2\) elements, such that the following desirable properties are satisfied:

  1. (i)

    No locking nor pressure oscillations in the incompressible limit.

  2. (ii)

    The accuracy must match exactly that of quadratic elements on linear problems.

  3. (iii)

    The cost of assembling must be similar to that of linear elements for nonlinear problems.

In the context of linear problems in 2D, a similar question was addressed in [13], where the optimal triangle for a given set DOFs was investigated. The idea behind our approach is connected to gradient recovery methods [32], but rather than postprocessing the solution, we embed a similar technique directly into the construction of our elements and extend these ideas to nonlinear problems. Motivated by an analogy to quasi-Newton methods, which fall in between the first- and second-order gradient and Newton methods, we will refer to the sought class of elements as quasi-quadratic and denote them with the symbol \({\mathbb {P}}^{3/2}\).

Elements that satisfy (i) and (iii) are well-known [1, 3, 8] and are based on approximating the displacement u with \({\mathbb {P}}^1\) basis functions. However, it is also well-known that linear elements provide a very poor approximation of stresses in elasticity, resulting in an overly stiff solution on coarse meshes. We argue that the reason for this behavior is that the resulting strain approximation is piecewise constant \({\mathbb {P}}^0\), causing high stress discontinuities. Instead, we are looking for achieving a piecewise linear discontinuous \({\mathbb {P}}^{1dc}\) strain approximation, which is the strain space arising automatically from the choice of \({\mathbb {P}}^2\) elements for the displacement u in linear elasticity.

Requirement (iii) in the case of nonlinear elasticity immediately implies that higher-order approximations are not possible. For presenting our construction, we focus on the Saint Venant-Kirchhoff model, whose energy is quadratic. However, in Sect. 6 we discuss how this can be easily generalized to nonlinear constitutive laws. Our construction starts from the observing the quadratic energy case \(W = \Vert E \Vert ^2_G\), where E is the nonlinear strain tensor and G denotes the metric of the inner product. As we will discuss in Sect. 5, this implies that the choice of \({\mathbb {P}}^2\) elements would produce a discretized energy \(W_h\) of degree four, i.e. \(W_h |_{u \in {\mathbb {P}}^2} \in {\mathbb {P}}^4\) which is expensive to be integrated. This is particularly evident when compared to the piecewise constant energy of linear elements, yielding \(W |_{u \in {\mathbb {P}}^1} \in {\mathbb {P}}^0\). In order to improve this, without paying the price in terms of an expensive quadrature, we construct our \({\mathbb {P}}^{3/2}\) elements such that \(W |_{u \in {\mathbb {P}}^{3/2}} \in {\mathbb {P}}^2\). In Sect. 5, we discuss that that integrating \(W |_{u \in V_h} \in {\mathbb {P}}^2\) has a cost comparable to integrating \(W |_{u \in {\mathbb {P}}^1} \in {\mathbb {P}}^0\) on the refined mesh, making our element more competitive than h-adaptivity. It also follows that we are seeking a space \({\mathbb {P}}^{3/2}\) for which \(u \in {\mathbb {P}}^{3/2}\) implies that \(E \in {\mathbb {P}}^{1dc}\). This will be the object of study of Sects. 2 and 3.

To address the requirement (i), the incompressible limit must be studied. As discussed above, choosing Taylor-Hood elements would immediately violate (ii). In a similar way, choosing linear elements for the displacement, with a stabilization for the pressure field, would satisfy (i) and (iii) but violate (ii), unless some further modification is introduced. Since the ellipticity of the smooth problem is a desirable property to rely on when constructing modifications of standard elements, we focus on conforming approximations. In this class, the \({\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2\)\({\mathbb {P}}^1\) pair, which is stable for incompressible problems [3, 16], is particularly attractive since it satisfies (i) and (iii), while offering more degrees-of-freedom (DOFs) than standard linear elements. In fact, it offers the same DOFs as quadratic ones, a fact that we will exploit in order to reconstruct \(E \in {\mathbb {P}}^{1dc}\) on the coarse mesh from a linear displacement on the finer one. In the context of two-dimensional problems, a similar element that satisfies (iii) and a weaker condition (ii) was proposed in [27]. This work extends it to three-dimensional problems and improves its choice of approximation such that our condition (ii) is fulfilled.

The paper is organized as follows:

  • In Sect. 2, we present our gradient reconstruction technique for recovering linear and nonlinear 2D and 3D strains.

  • In Sect. 3, we apply our quasi-quadratic elements to the mixed Hellinger-Reissner principle of Saint Venant-Kirchhoff elasticity.

  • In Sect. 4, the incompressible formulation is presented.

  • In Sect. 5, we study the computational cost of quadrature for the proposed element, showing that requirement (iii) is fulfilled.

  • In Sect. 6, we discuss two possibilities for generalizing our construction to nonlinear constitutive laws.

  • In Sect. 7, we present numerical benchmarks that assess the performance of \({\mathbb {P}}^{3/2}\) elements against linear and quadratic ones, therefore proving experimentally that points (i) and (ii) are satisfied.

2 Quasi-quadratic elements

The central idea of this work is the local reconstruction on each element \(\mathcal T\) of the gradient of a \({\mathbb {P}}^2\) function using \({\mathbb {P}}^1\) basis functions on a refined mesh. We will interpret such a reconstruction as a hierarchical strain averaging, where piecewise constant strains on a coarse and a fine mesh are combined in order to reproduce the strain of quadratic elements exactly on linear problems. In the nonlinear case, we will perform the same hierarchical averaging of strains, with the difference that the strain of \({\mathbb {P}}^2\) elements will not be recovered exactly, but only approximately.

We recall that, given a d-dimensional displacement vector \(u: \varOmega \subset \mathbb R^d \rightarrow \mathbb R^d\), the linear strain is defined as

$$\begin{aligned} \epsilon (u) := \frac{\nabla u + \nabla u^T}{2}. \end{aligned}$$
(1)

Therefore, for the remainder of this section, we will focus on reconstructing the gradient \(\nabla u\) rather than \(\epsilon (u)\), in order to simplify the notation. We denote \(V_h\) as

$$\begin{aligned} V_h := \{ v \in [C^0 (\varOmega )]^d : v|_{\mathcal T} \in \varLambda (\mathcal T) \}, \end{aligned}$$

where the Finite Element (FE) space

$$\begin{aligned} \varLambda \in \{ {\mathbb {P}}^1 , {\mathbb {P}}^2, {\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2\}, \end{aligned}$$

and \(d=2,3\) is the spatial dimension. For \(u_h \in V_h\), in order to make the choice of the space explicit in a compact form, we will write

$$\begin{aligned} f(u_h)|_{\varLambda } = f(u_h), \end{aligned}$$
(2)

where f can be any function.

2.1 Linear 2-dimensional strain

We start with the 2-dimensional case, considering a triangle with displacements denoted with \(v_i \in {\mathbb {R}}^2\), \(i=1,2,3\), at the vertices, and with \(e_i \in {\mathbb {R}}^2\), \(i=1,2,3\), at the edge midpoints, where \(e_i\) is opposite to the vertex \(v_i\), and barycentric coordinates \( \lambda _i (x)\), \(i=1,2,3\). Then, \({\mathbb {P}}^1\) and \({\mathbb {P}}^2\) FE functions can be, respectively, written as

$$\begin{aligned} u_h |_{{\mathbb {P}}^1}= & {} \sum _{i=1}^3 v_i \lambda _i, \end{aligned}$$
(3)
$$\begin{aligned} u_h |_{{\mathbb {P}}^2}= & {} \sum _{i=1}^3 \left( v_i \lambda _i(2\lambda _i-1) + 4 e_i \lambda _j \lambda _k \right) , \end{aligned}$$
(4)

where (ijk) is a circular permutation of (1, 2, 3). It follows that

$$\begin{aligned} \nabla u_h |_{{\mathbb {P}}^1}= & {} \sum _{i=1}^3 v_i \nabla \lambda _i, \end{aligned}$$
(5)
$$\begin{aligned} \nabla u_h |_{{\mathbb {P}}^2}= & {} \sum _{i=1}^3 \left( v_i (4\lambda _i-1) + 4e_j \lambda _k + 4e_k\lambda _j \right) \nabla \lambda _i, \end{aligned}$$
(6)

where again (ijk) is again a circular permutation of (1, 2, 3) and \(\nabla \lambda _i\) is a row vector. In particular, we note that

$$\begin{aligned} \nabla u_h |_{{\mathbb {P}}^2}= & {} - \nabla u |_{{\mathbb {P}}^1} + 4\sum _{i=1}^3 \left( v_i \lambda _i + e_j \lambda _k + e_k\lambda _j \right) \nabla \lambda _i. \end{aligned}$$
(7)

At this point, \(\nabla u_h\) can be used directly to compute the elastic energy. However, since the gradient of quadratic elements is linear, we assume within each triangle an independent linear approximation of the gradient, denoted with F(x)

$$\begin{aligned} F|_{{\varLambda }}= f_0 + \sum _{i=1}^3 f_i \lambda _i, \end{aligned}$$
(8)

where \(f_i \in {\mathbb {R}}^{2\times 2}\). In order to find the coefficients of F, we look for the best linear approximation of \(\nabla u_h\). This can be performed in the \(L^2\) sense via the projection

$$\begin{aligned} \int _{T} F~\lambda _i~d\omega = \int _{T} \nabla u_h ~ \lambda _i ~ d\omega , \quad i=1 \ldots 3. \end{aligned}$$
(9)

The most trivial example is \(u_h \in {\mathbb {P}}^1\): in this case, the gradient is piecewise constant, so the projection is exact and one solution can be obtained by setting all linear terms to zero as

$$\begin{aligned} F|_{{\mathbb {P}}^{1}}&= \nabla u_h |_{{\mathbb {P}}^1}, \\ f_0|_{{\mathbb {P}}^{1}}&= \nabla u_h |_{{\mathbb {P}}^1} , \\ f_i |_{{\mathbb {P}}^{1}}&= 0. \end{aligned}$$

Since the gradient of \({\mathbb {P}}^2\) elements is \({\mathbb {P}}^{1dc}\), the projection is again exact and one solution is

$$\begin{aligned} F|_{{\mathbb {P}}^{2}}&= \nabla u_h |_{{\mathbb {P}}^2} , \\ f_0 |_{{\mathbb {P}}^{2}}&= - \nabla u_h |_{{\mathbb {P}}^1}, \\ f_i |_{{\mathbb {P}}^{2}}&= 4 \left( v_i \nabla \lambda _i + e_j \nabla \lambda _k + e_k \nabla \lambda _j \right) , \end{aligned}$$

where (ijk) is a circular permutation of (1, 2, 3). We now consider \({\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2\) elements, which are a well-known macroelement that combines linear elements on a uniformly refined triangle (in 2D) with the DOFs of \({\mathbb {P}}^2\) elements [3, 16]. We will refer to \(\{ v_1,v_2,v_3\}\) as the coarse triangle and to its 4 sub-triangles as the fine triangles. In this case, the gradient of \(u_h \in {\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2\) is piecewise constant, i.e. it is given by four coefficients \((\nabla u_h |_{{\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2})_{i=1..4}\), where \((\nabla u_h |_{{\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2})_4\) refers to the triangle \(\{ e_1,e_2,e_3\}\)

$$\begin{aligned} (\nabla u_h |_{{\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2})_i&= 2\left( v_i \nabla \lambda _i + e_j \nabla \lambda _k + e_k \nabla \lambda _j \right) , \\ (\nabla u_h |_{{\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2})_4&= 2\sum _{i=1}^3 e_i \nabla \lambda _i. \end{aligned}$$

Here, we have used that the gradients of barycentric coordinates within each fine triangle are scaled versions of those on the coarse one. The coefficients of F can be found by solving (9), yielding

$$\begin{aligned} F&= \sum _{j=1}^4 w_{ij} ( \nabla u_h |_{{\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2} )_j. \end{aligned}$$
(10)

The weights \(w_{ij}\) can be obtained by computing the integrals on the right-hand-side of (9)

$$\begin{aligned} f_0 |_{{\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2}&= 0, \end{aligned}$$
(11)
$$\begin{aligned} f_i |_{{\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2}&= \frac{ \left( 5 (\nabla u_h)_i - (\nabla u_h)_j - (\nabla u_h)_k + (\nabla u_h)_4 \right) }{4}. \end{aligned}$$
(12)

The resulting discretization was proposed in [27]. We will denote this element with \({\mathbb {P}}^{3/2 - L^2}\). However, while this choice offers a significant benefit over linear elements, as shown in Sect. 7, it performs poorly in the 3-dimensional case and it is clearly unable to reproduce the gradient of quadratic elements exactly. In order to construct a non-quadratic element, which is able to reproduce the gradient of quadratic elements exactly, we bypass projection (9) and instead note that

$$\begin{aligned} f_i |_{{\mathbb {P}}^{2}}&= 2 (\nabla u_h |_{{\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2})_i. \end{aligned}$$

Therefore, our element is simply characterized by

$$\begin{aligned} f_0 |_{{\mathbb {P}}^{3/2}}&= - \nabla u_h |_{{\mathbb {P}}^1} , \end{aligned}$$
(13)
$$\begin{aligned} f_i |_{{\mathbb {P}}^{3/2}}&= 2 (\nabla u_h |_{{\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2})_{i=1\cdots 3}. \end{aligned}$$
(14)

It is easy to verify that

$$\begin{aligned} F(x) |_{{\mathbb {P}}^{3/2}}&= F(x) |_{{\mathbb {P}}^2}, \end{aligned}$$

which is the sought property (ii). We will refer to this element as \({{\mathbb {P}}^{3/2}}\).

2.2 Linear 3-dimensional strain

The same reasoning can be used in the 3-dimensional setting. In this case, the degrees of freedom are

$$\begin{aligned} \{ v_i \}_{i=1\cdots 4} \hbox { and } \{ e_i \}_{i=1\cdots 6}, \end{aligned}$$

leading to the linear and quadratic interpolations, respectively,

$$\begin{aligned} u_h |_{{\mathbb {P}}^1}= & {} \sum _{i=1}^4 v_i \lambda _i, \end{aligned}$$
(15)
$$\begin{aligned} u_h |_{{\mathbb {P}}^2}= & {} \sum _{i=1}^4 v_i \lambda _i(2\lambda _i-1) + 4 \sum _{i=1}^6 e_i \lambda _j \lambda _k. \end{aligned}$$
(16)

Here, \((v_k,v_j)\) is the edge containing the midpoint \(e_i\). We obtain the gradients

$$\begin{aligned} \nabla u_h |_{{\mathbb {P}}^1} (x)= & {} \sum \limits _{i=1}^4 v_i \nabla \lambda _i, \end{aligned}$$
(17)
$$\begin{aligned} \nabla u_h |_{{\mathbb {P}}^2} (x)= & {} \sum \limits _{i=1}^4 v_i (4\lambda _i-1) \nabla \lambda _i \,4 \sum \limits _{i=1}^6 e_i \left( \lambda _j \nabla \lambda _k + \lambda _k \nabla \lambda _j \right) . \nonumber \\ \end{aligned}$$
(18)

As in 2D, we are looking for an interpolation

$$\begin{aligned} F|_{{\varLambda }}= f_0 + \sum _{i=1}^4 f_i \lambda _i, \end{aligned}$$
(19)

which again can be found by solving the \(L^2\) projection problem

$$\begin{aligned} \int _{T} F~\lambda _i~d\omega = \int _{T} \nabla u_h ~ \lambda _i ~ d\omega , \quad i=1 \ldots 4. \end{aligned}$$

Once again, the solution is trivial if we use linear or quadratic elements for the displacement u. If \({\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2\) elements are used, then again each element needs to subdivided by a step of h-refinement. In 3D, this implies that each tetrahedron is refined in 8 sub-tetrahedra, giving the algebraic system

$$\begin{aligned} F_i&= \sum _{j=1}^8 w_{ij} ( \nabla u_h )_j. \end{aligned}$$
(20)

As we will see in the numerical experiments, this choice in 3D does not deliver a behavior that is as good as in 2D. Therefore, in this setting, it is even more important to reconstruct the gradient of quadratic polynomials exactly. To achieve this, we re-write the second term in (18) as a sum over vertices rather than edges

$$\begin{aligned}&4 \sum _{i=1}^6 e_i \left( \lambda _j \nabla \lambda _k + \lambda _k \nabla \lambda _j \right) \\&\quad =4 \sum _{i=1}^4 \lambda _i \left( e_m \nabla \lambda _k + e_n \nabla \lambda _j + e_p \nabla \lambda _l \right) , \end{aligned}$$

where (kjl) are the indices of the other three basis functions and (mnp) are those of the three midpoints adjacent to the vertex \(v_i\). Similarly to the 2-dimensional case, the right-hand-side is therefore a linear combination of the piecewise constant gradients computed using \({\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2\) elements. Therefore, we set

$$\begin{aligned} f_0 |_{{\mathbb {P}}^{3/2}}&= - \nabla u_h |_{{\mathbb {P}}^1} (x), \end{aligned}$$
(21)
$$\begin{aligned} f_i |_{{\mathbb {P}}^{3/2}}&= 2 (\nabla u_h |_{{\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2})_{i=1\cdots 4}. \end{aligned}$$
(22)

It is easy to verify that with the above choice, it holds

$$\begin{aligned} F(x) |_{{\mathbb {P}}^{3/2}}&= F(x) |_{{\mathbb {P}}^2}. \end{aligned}$$

2.3 Nonlinear strain

In the case of nonlinear elasticity, the same construction can be repeated on any nonlinear quantity. However, in this case the reconstruction will not be exact in general. To illustrate it, we consider the nonlinear Green-Lagrange strain E

$$\begin{aligned} E(u) := \frac{(\nabla u)^T \nabla u + \nabla u + \nabla u^T}{2}. \end{aligned}$$

Here, we do not approximate the gradients, but rather we are looking for a piecewise linear approximation

$$\begin{aligned} F|_{\varLambda }= f_0 + \sum _{i=1}^{d+1} f_i \lambda _i, \end{aligned}$$
(23)

such that

$$\begin{aligned} \int _{T} F~\lambda _i~d\omega = \int _{\mathcal T} E(u_h) |_{\varLambda } ~ \lambda _i , \quad i=1 \ldots d+1. \end{aligned}$$

The integrals on the right-hand-side can be computed once a displacement space is chosen. If \({\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2\) elements are used, we will refer to this choice as \({\mathbb {P}}^{3/2-L^2}\). However, one can be agnostic with respect to this choice and simply evaluate the nonlinear quantity in exactly the same way as for the linear case. This yields

$$\begin{aligned} f_0 |_{{\mathbb {P}}^{3/2}}&= - E(u_h) |_{{\mathbb {P}}^1} , \end{aligned}$$
(24)
$$\begin{aligned} f_i |_{{\mathbb {P}}^{3/2}}&= 2(E(u_h)|_{{\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2})_{i=1\cdots d+1}. \end{aligned}$$
(25)

We will refer to the resulting element as \({\mathbb {P}}^{3/2}\). Therefore, in the nonlinear case, the same construction of the linear case is followed: \(f_0\) is computed using the coarse triangle and the \(f_i\)’s are computed by evaluating the piecewise-constant \(E(u_h)\) on the corner element i (triangle or tetrahedron) corresponding to the vertex \(v_i\), where \(u_h\) is assumed to be linear.

3 Compressible elasticity

We consider elasticity problems defined on a reference configuration \(\varOmega \subset \mathbb R^d\), proper open subset of the d-dimensional Euclidean space. Its boundary \(\partial \varOmega \) is separated into two disjoint subsets \(\varGamma _D\) and \(\varGamma _N\), on which we impose Dirichlet and traction boundary conditions respectively. We moreover assume that \(\partial \varOmega = \overline{\varGamma }_D \cup \overline{\varGamma }_N\) and the measure \( | \varGamma _D | \) is striclty positive. Assuming conservative loading, the elasticity problem reads

$$\begin{aligned} \mathop {\hbox {inf}}\limits _{u \in V} \frac{1}{2} \int _{\varOmega } \Vert E(u) \Vert ^2_G \, d\omega - \int _\varOmega f \cdot u\, d\omega - \int _{\varGamma _N} g \cdot u\, d\gamma ,\nonumber \\ \end{aligned}$$
(26)

where u is the displacement vector, f is the volumetric load, g is the surface traction applied on the Neumann boundary \(\varGamma _N\), and V denotes the set of admissible displacements. The Saint Venant-Kirchhoff strain-energy density function \(\Vert E \Vert ^2_G\) is the induced norm from the following tensor product \((\cdot , \cdot ) _G\) defined as

$$\begin{aligned} (A, B )_G := 2 \mu \, A:B + \lambda {{\mathrm{tr}}}(A) {{\mathrm{tr}}}(B) , \end{aligned}$$

where \(\mu \) and \(\lambda \) are two parameters, which in elasticity are the shear modulus and the first Lamé parameter. The second Piola-Kirchhoff stress tensor is given as

$$\begin{aligned} S := 2\mu E + \lambda {{\mathrm{tr}}}(E) Id . \end{aligned}$$

Since the constitutive law is invertible for \(\lambda < \infty \), it holds that

$$\begin{aligned} \Vert S \Vert ^2_{G^{-1}} = S : E = \Vert E \Vert _{G}^2, \end{aligned}$$

where \(\Vert \cdot \Vert ^2_{G^{-1}}\) encodes the inverse stress–strain relationship, induced by the scalar product

$$\begin{aligned} (A,B)_{G^{-1}} = \frac{1}{2\mu } A: B - \frac{\lambda }{2\mu (d \lambda + 2 \mu )} {{\mathrm{tr}}}(A) {{\mathrm{tr}}}(B). \end{aligned}$$

It is then possible to write the compressible Hellinger-Reissner principle [30] as

$$\begin{aligned}&\mathop {\hbox {inf}}\limits _{S \in \varSigma } \sup _{u \in V} \int _{\varOmega } \left[ \frac{1}{2} \Vert S \Vert ^2_{G^{-1}} - E(u): S + f \cdot u \right] d\omega \nonumber \\&\quad + \int _{\varGamma _N} g \cdot u ~d\gamma . \end{aligned}$$
(27)

The two spaces V and \(\varSigma \) are two Sobolev spaces that are regular enough in order to make the integrals in (27) well-defined. A detailed discussion of regularity in non-linear elasticity is reported in [4, 21]. In a variational framework, the associated balance equations are found imposing the variation of the Lagrangian with respect to a virtual displacement v and a virtual stress \(\tau \). Explicitly, the associated Euler–Lagrange problem reads:

Find \(u \in V\) and \(S \in \varSigma \), such that

$$\begin{aligned} R_1(\tau ;S,u)&= 0 \quad \forall \tau \in \varSigma , \end{aligned}$$
(28a)
$$\begin{aligned} R_2(v;S,u)&= 0 \quad \forall v \in V, \end{aligned}$$
(28b)

where

$$\begin{aligned} R_1(\tau ;S,u)&:= \int _\varOmega (S , \tau )_{G^{-1}} - \int _\varOmega E(u) : \tau , \end{aligned}$$
(29a)
$$\begin{aligned} R_2(v;S,u)&:= \int _\varOmega S : d{E}(u,v) - \int _\varOmega f \cdot v - \int _{\varGamma _N} g \cdot v, \end{aligned}$$
(29b)

and d E(uv) denotes the differential of E(u) in direction v

$$\begin{aligned} d{E}(u,v) := \frac{(\nabla u)^T\nabla v + (\nabla v)^T\nabla u + \nabla v + \nabla v^T}{2}. \end{aligned}$$

Equation (28a) imposes a relation between the displacement and the stress, employing the inverse relation between stress and strain. Equation (28b) is the balance law of momentum. In the numerical implementation of a solution strategy for the non-linear problem (28), a crucial role is played by the Fréchet derivative of (28). The associated tangent problem is to find the the stress and displacement increments by \(\delta S\) and \(\delta u\) such that:

$$\begin{aligned} \delta R_1(\delta u, \delta S, \tau ;S,u)&= -R_1(\tau ;S,u)&\,\,\,\, \forall \tau \in \varSigma , \end{aligned}$$
(30a)
$$\begin{aligned} \delta R_2(\delta u, \delta S, v;S,u)&= -R_2(v;S,u)&\,\,\,\, \forall v \in V \end{aligned}$$
(30b)

where

$$\begin{aligned} \delta R_1&:= \int _\varOmega (\delta S , \tau )_{G^{-1}} - \int _\varOmega dE(u,\delta u) : \tau , \\ \delta R_2&:= \int _\varOmega \delta S : d{E}(u,v) + S : d{E}( \delta u,v). \end{aligned}$$

In case of small displacements, E(u) and S can be replaced with \(\epsilon \) and the corresponding Cauchy stress \(\delta S_h\). This yields the linear elasticity equations and it is equivalent to solving (30) for \(\delta u\) and \(\delta S\) with \(u=0\) and \(S=0\). We will assume this in the remainder of this section to ease the notation. In this case, the natural spaces are \(V=H_{\varGamma _D}^{1}(\varOmega , \mathbb R^d)\) and \(\varSigma =L^{2}(\varOmega , \mathbb R^{d \times d})\) [30], where

$$\begin{aligned} H_{\varGamma _D}^{1}(\varOmega , \mathbb R^d) = \{ v \in H^1 ( \varOmega , \mathbb R^d ) \text { such that } v|_{\varGamma _D} =0 \}. \end{aligned}$$

These two spaces are inf-sup stable according to the standard theory of saddle-point problems [7, 10]. Finite element approximations of (30) can be obtained introducing two finite dimensional subspaces \(V_h \subset V\) and \(\varSigma _h \subset \varSigma \), where h denotes a discretization parameter, in this case the mesh-size. For the two spaces, the following property should hold

$$\begin{aligned} (\varSigma _h,V_h) \xrightarrow [h \rightarrow 0]{} (\varSigma ,V), \end{aligned}$$

The corresponding finite element problem reads: Find \((\delta u_h , \delta S_h) \in V_h \times \varSigma _h\) such that (30) holds \( \forall (v_h, \tau _h) \in V_h \times \varSigma _h\).

We aim to find appropriate spaces \((\varSigma _h,V_h)\) such that the properties (i)–(iii) introduced in the introduction are satisfied. Denoting by \(\psi _i\) and \(\phi _i\) the elements of the bases of \(V_h\) and \(\varSigma _h\), respectively, the FE problem can be recast in an algebraic form

$$\begin{aligned} \left( \begin{array}{cc} G^{-1} &{} B^T \\ B &{}0 \end{array}\right) \left( \begin{array}{c} \delta S_h \\ \delta u_h \end{array}\right)= & {} \left( \begin{array}{c} 0 \\ g \end{array}\right) , \end{aligned}$$
(31)

where

$$\begin{aligned} \left( G^{-1} \right) _{ij}&= \int _{\varOmega } \left( \phi _i, \phi _j \right) _{G^{-1}} d\omega ,\\ \left( B \right) _{ik}&= \int _{\varOmega } \frac{\nabla \psi _i + \nabla \psi ^T_i}{2} : \phi _k ~ d\omega ,\\ \left( g \right) _{i}&= \int _\varOmega f \cdot \psi _i + \int _{\varGamma _N} g \cdot \psi _i, \end{aligned}$$

where \(i,j=1\ldots \dim (\varSigma _h)\) and \(k=1\ldots \dim (V_h)\). The matrix \(G^{-1}\) is non-singular if the material is compressible, i.e. \(\kappa < \infty \). Spaces \(V_h\) and \(\varSigma _h\) have to respect the LBB (inf-sup) condition in order to avoid spurious modes in the displacements [10]. Moreover, to avoid locking, the space \(\varSigma _h\) has to be rich enough w.r.t. the space of displacements. Since \(\varSigma = L^2(\varOmega ,\mathbb R^{d \times d})\), discontinuous elements for the stress are a natural choice.

If the material is not isochoric, the matrix \(G^{-1}\) is non-singular and the problem (31) can be recast in terms of pure displacements as

$$\begin{aligned} \left( B G B^T \right) \delta u_h = -g, \end{aligned}$$
(32)

where computing G entails inverting a matrix that is spectrally equivalent to a mass matrix. This formulation can be obtained via the displacement space defined implicitly by the pair \((\varSigma _h,V_h)\). In particular, in order to apply the quasi-quadratic elements introduced in the previous section, we choose spaces such that

$$\begin{aligned} (\delta S_h,\delta u_h) \in (\varSigma _h, V_h) \Longleftrightarrow \delta u_h |_ {\mathbb {P}^{3/2}}. \end{aligned}$$
(33)

However, the discretization of the Hellinger-Reissner principle lends itself to a larger family of FE, defined by the following choices:

  • The space \(V_h\). Our choice is the space of piecewise linear elements on the refined mesh. These are known as the \({\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2\) elements, which are appropriate for incompressible materials [8]. However, more exotic choices can be made, e.g. elements that do not satisfy the partition-of-unity criterion, as proposed in [27].

  • The space \(\varSigma _h\). A natural choice to satisfy requirement (ii) is the space of piecewise discontinuous linear elements. This space automatically arises with the choice of quadratic elements for \(V_h\) and it is the reason for the naming of quasi-quadratic elements. Discontinuous finite elements have the further advantage of allowing for an easy inversion of \(G^{-1}\) since only local element matrices have to be inverted. While we focus on elements that share the same DOF as quadratic ones and therefore \(\mathbb {P}^{1dc}\) elements, we do not exclude that using other DG methods for \(\varSigma _h\) could provide additional benefits.

  • The projection operator \(\varPi : \nabla V_h \rightarrow \varSigma _h\), implicitly defined in B. This is arguably the main contribution of this work. While a standard choice is to use \(L^2\) projection as in the definition of B, several other options are possible. For example, using the approach of enforcing the coupling only at selected “tying” points [11]. We argue that a good choice is such that

    $$\begin{aligned} \Vert E(u_{\mathrm {exact}}) \Vert ^2_G \le \Vert \varPi ~E(u_h |_{\varLambda }) \Vert ^2_G \ll \Vert E(u_h |_{\mathbb {P}^1}) \Vert ^2_G . \end{aligned}$$
    (34)

    As discussed in the previous section and shown in the numerical results, the \(L^2\) projection is not an optimal choice. Our approach is instead based on constructing a projection such that the linear strain computed with \(\mathbb {P}^2\) elements is recovered exactly.

4 Incompressible elasticity

As discussed in the introduction, we would like to show that quasi-quadratic elements yield a stable discretization in the incompressible limit. Therefore, we modify the problem of (26) by introducing the pressure

$$\begin{aligned} p= \kappa {{\mathrm{tr}}}(E(u)), \end{aligned}$$

where \(\kappa =\left( \frac{2\mu }{d} + \lambda \right) \) is the bulk modulus. In this case, the associated Lagrangian reads (see [10]):

$$\begin{aligned} \mathop {\hbox {inf}}\limits _{u \in V} \sup _{p \in Q} \int _{\varOmega } \left[ W(u,p) - u \cdot g \right] d\omega - \int _{\varGamma _N} f \cdot u ~d\gamma , \end{aligned}$$
(35)

where \(Q=L^{2}(\varOmega , \mathbb R)\) and

$$\begin{aligned} W(u,p) := \frac{1}{2} \left( \Vert E_{\mu }(u) \Vert ^2_{G} + \frac{\Vert p \Vert _2^2}{\kappa } \right) + p~{{\mathrm{tr}}}(E(u)), \end{aligned}$$

where \(E_{\mu }\) denotes the deviatoric stress as

$$\begin{aligned} E_{\mu }&:= \left( E - \frac{{{\mathrm{tr}}}(E)}{d} Id \right) , \quad d=2,3. \end{aligned}$$

By defining the second Piola-Kirchhoff stress \(S(u,p):= 2 \mu \, E(u) + p~ Id \), the associated Euler–Lagrange problem reads:

Find \(u \in V\) and \(p \in Q\), such that

$$\begin{aligned} R_1(v;p,u)&= 0 \quad \forall v \in V, \\ R_2(q;p,u)&= 0 \quad \forall q \in Q, \end{aligned}$$

where

$$\begin{aligned} R_1(v;p,u) :=&\int _\varOmega S(u,p) : d{E}(u,v) - g \cdot v - \int _{\varGamma _N} f \cdot v, \\ R_2(q;p,u) :=&\int _\varOmega q~{{\mathrm{tr}}}(E(u)) + \tfrac{1}{\kappa } \int _\varOmega p~q. \end{aligned}$$

At a given point (up), the corresponding tangent problem for the increment \((\delta u,\delta p)\) is defined as (see [3]):

Find \(\delta u \in V\) and \(\delta p \in Q\), such that

$$\begin{aligned} \delta R_1(\delta u, \delta p, v;p,u)&\, = -R_1(v;p,u) \quad&\forall v \in V, \end{aligned}$$
(36a)
$$\begin{aligned} \delta R_2(\delta u, \delta p, q;p,u)&= -R_2(q;p,u) \quad&\forall q \in Q, \end{aligned}$$
(36b)

where

$$\begin{aligned} \delta R_1&=a(\delta u, v ; u,p) + \int _\varOmega \delta p~{{\mathrm{tr}}}(d{E}( u,v)) ,\\ \delta R_2&=\int _\varOmega {{\mathrm{tr}}}(dE(u,\delta u))~q -\tfrac{1}{\kappa } \int _\varOmega \delta p~q, \end{aligned}$$

and the bilinear form a is the linearization of the stress tensor and is defined as

$$\begin{aligned}&a(\delta u, v ; u,p) \\&\quad = \int _\varOmega \left( 2 \mu \, dE (\delta u , u) : d{E}(u,v) + S(u,p) : d{E}(\delta u,v) \right) ~d\omega . \end{aligned}$$

Problem (36) is well-defined for incompressible material, i.e. \(\kappa \rightarrow \infty \). The Galerkin formulation of (36) can be obtained defining the problem in two finite-dimensional subspace \(V_h \subset V\) and \(Q_h \subset Q\). By considering \(u=0\) and \(p=0\) and introducing two bases \(\{ \psi _i \}\) and \(\{ \phi _i \}\) for, respectively, \(V_h\) and \(Q_h\), system (36) reduces to linear elasticity:

$$\begin{aligned} \left( \begin{array}{cc} K &{} B^T \\ B &{} -M_p \end{array}\right) \left( \begin{array}{c} \delta u_h \\ \delta p_h \end{array}\right)= & {} \left( \begin{array}{c} g \\ 0 \end{array}\right) , \end{aligned}$$
(37)

where

$$\begin{aligned} \left( K\right) _{ij}&= \int _{\varOmega } 2 \mu \, dE( 0, \psi _j ) : d{E}(0,\psi _i),\\ \left( B\right) _{kj}&= \int _{\varOmega } \nabla \cdot \psi _k~ \phi _i~d\omega , \\ \left( M_p\right) _{kl}&= \frac{1}{\kappa }\int _{\varOmega } \phi _k \, \phi _l \, d\omega . \end{aligned}$$

where \( i,j=1\ldots \dim (V_h)\) and \(k,l=1\ldots \dim (Q_h)\).

A detailed computation of the entries of the non-linear tangent problem is reported in [15]. Fortunately, the theory for this case is already well-understood since it is the same as for the Stokes problem, incompressible elasticity, and their stabilized versions for \(\lambda <\infty \). For example, the choice \({\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2\)\({\mathbb {P}}^1\) and \({\mathbb {P}}^2\)\({\mathbb {P}}^1\) couples yield a stable formulation [8]. This can be extended to quasi-quadratic elements with the couple of FE spaces \({\mathbb {P}}^{3/2}\)\({\mathbb {P}}^1\). Since the number of degrees of freedom for the displacement is the same as for the canonical pairs discussed before, we argue that this choice retains all of their nice properties, such as the satisfaction of the LBB condition, while providing all of the added benefits of the \({\mathbb {P}}^{3/2}\) element for the displacement. This will be shown numerically in the remainder of this paper.

5 Computational cost

We here discuss the complexity of standard FE and compare it with that of our element. In particular, we show how the stiffness matrix of quasi-quadratic elements can be assembled with a complexity similar to linear elements, reducing the assembling cost by a factor of approximately 3.4 and 7.6 over quadratic elements in, respectively, 2 and 3 dimensions. Our analysis is based on the quadrature of the term

$$\begin{aligned} \begin{aligned}&\int _{\varOmega } dE(u_h, \psi _j ) : dE(u_h, \psi _i) \\&\quad + E_h: \left( \frac{\nabla \psi _i + \nabla ( \psi _j )^T}{2} \right) ~ d\omega . \end{aligned} \end{aligned}$$
(38)

This is an entry of the Hessian matrix of the Saint Venant-Krichhoff energy (26) where, without affecting the cost analysis, the Lamé parameters have been set to \(\mu =1\) and \(\lambda =0\).

5.1 2-Dimensional case

Let us first consider the cost of numerical quadrature of (38) with the choice \(V_h = {\mathbb {P}}^1\) under mesh refinement. The cost of computing the element stiffness matrix on the coarse mesh is given by the number of basis functions per element (3) times the dimension (2), all tested against each other (\(6\cdot 6\)), times a single quadrature point, yielding

$$\begin{aligned} C^{2D}_{2h}({\mathbb {P}}^1) = 6 \cdot 6. \end{aligned}$$

Under mesh refinement, by splitting each triangle into four, we obtain

$$\begin{aligned} C^{2D}_{h}({\mathbb {P}}^1) = 6 \cdot 6 \cdot 4. \end{aligned}$$

Therefore, the complexity ratio of assembling on a refined mesh

$$\begin{aligned} \frac{C^{2D}_{h}({\mathbb {P}}^1)}{C^{2D}_{2h}({\mathbb {P}}^1)} = 4. \end{aligned}$$

In order to compute exactly integrals with \(V_h = {\mathbb {P}}^2\), we have to integrate polynomials of order 4. In 2D, quadrature rules for polynomials of order 4 require the evaluation of integrals in 6 quadrature points. Hence, we need \(6\cdot 2\) basis functions times \(6\cdot 2\) basis functions times 6 quadrature points per element in order to compute the local stiffness matrix, to obtain

$$\begin{aligned} C^{2D}_{2h}({\mathbb {P}}^2) = 12 \cdot 12 \cdot 6 = 864. \end{aligned}$$

Therefore, the ratios of increasing the element order are

$$\begin{aligned} \frac{C^{2D}_{2h}({\mathbb {P}}^2)}{C^{2D}_{2h}({\mathbb {P}}^1)} = 24, \quad \frac{C^{2D}_{2h}({\mathbb {P}}^2)}{C^{2D}_{h}({\mathbb {P}}^1)} = 6. \end{aligned}$$

With our element, the cost is the combination of computing four constant strains per element, which form the coefficients of the piecewise linear strain, and integrating the resulting quadratic polynomial (38) using 3 quadrature points. We obtain

$$\begin{aligned} C^{2D}_{2h}({\mathbb {P}}^{3/2}) = 4~C^{2D}_{2h}({\mathbb {P}}^1) + 6\cdot 6\cdot 3. \end{aligned}$$

Therefore, we get that the ratios for our element are

$$\begin{aligned} \frac{C^{2D}_{2h}({\mathbb {P}}^{3/2})}{C^{2D}_{2h}({\mathbb {P}}^1)} = 7, \quad \frac{C^{2D}_{2h}({\mathbb {P}}^{3/2})}{C^{2D}_{h}({\mathbb {P}}^1)} = 1.75. \end{aligned}$$

In particular, we the ratio versus quadratic elements is

$$\begin{aligned} \frac{C^{2D}_{2h}({\mathbb {P}}^{2})}{C^{2D}_{2h}({\mathbb {P}}^{3/2})} \approx 3.43. \end{aligned}$$

5.2 3-Dimensional case

Let us consider again the cost of integrating (38) with the choice \(V_h = {\mathbb {P}}^1\) under mesh refinement. The cost of computing this integral on the coarse mesh is

$$\begin{aligned} C^{3D}_{2h}({\mathbb {P}}^1) = 12\cdot 12. \end{aligned}$$

Under mesh refinement, we obtain

$$\begin{aligned} C^{3D}_{h}({\mathbb {P}}^1) = 12\cdot 12\cdot 8. \end{aligned}$$

Therefore, the complexity of refining the mesh is

$$\begin{aligned} \frac{C^{3D}_{h}({\mathbb {P}}^1)}{C^{3D}_{2h}({\mathbb {P}}^1)} = 8. \end{aligned}$$

In order to exactly compute integrals with \(V_h = {\mathbb {P}}^2\), we have to integrate polynomials of order 4. In 3D, quadrature rules for polynomials of order 4 require the evaluation of integrals in 11 quadrature points. Hence, we need 30 basis functions times 30 basis functions times 11 quadrature points per element in order to compute the local stiffness matrix, to obtain

$$\begin{aligned} C^{3D}_{2h}({\mathbb {P}}^2) = 30\cdot 30\cdot 11. \end{aligned}$$

Therefore, the ratios of increasing the element order are

$$\begin{aligned} \frac{C^{3D}_{2h}({\mathbb {P}}^2)}{C^{3D}_{2h}({\mathbb {P}}^1)} = 68.75, \quad \frac{C^{3D}_{2h}({\mathbb {P}}^2)}{C^{3D}_{h}({\mathbb {P}}^1)} \approx 8.6. \end{aligned}$$

With our element, the cost is the combination of computing four constant strains per element, which form the coefficients of the piecewise linear strain, and integrating the resulting quadratic polynomial (38) using 4 quadrature points. We obtain

$$\begin{aligned} C^{3D}_{2h}({\mathbb {P}}^{3/2}) = 5~C^{3D}_{2h}({\mathbb {P}}^1) + 12\cdot 12\cdot 4. \end{aligned}$$

Therefore, we get that the ratios for our element are

$$\begin{aligned} \frac{C^{3D}_{2h}({\mathbb {P}}^{3/2})}{C^{3D}_{2h}({\mathbb {P}}^1)} = 9, \quad \frac{C^{3D}_{2h}({\mathbb {P}}^{3/2})}{C^{3D}_{h}({\mathbb {P}}^1)} = 1.125. \end{aligned}$$

In particular, we the ratio versus quadratic elements is

$$\begin{aligned} \frac{C^{3D}_{2h}({\mathbb {P}}^{2})}{C^{3D}_{2h}({\mathbb {P}}^{3/2})} \approx 7.64. \end{aligned}$$

6 Nonlinear constitutive laws

While our construction is motivated by using the Saint Venant-Kirchhoff model, we here present two approaches to generalize it to general constitutive laws. We will refer to them as the strain- or stress-averaged elements, according to whether the averaging from Sect. 2 is applied, respectively, before or after the computation of the stresses from the strains.

6.1 Strain-averaged quasi-quadratic elements

We abandon the assumption that the elastic energy W(u) is the squared norm of the strain and consider the more general expression

$$\begin{aligned} W(u) = w(E(u)), \end{aligned}$$

where \(w(\cdot )\) is a given smooth nonlinear function. By following the same steps as in the previous sections, we obtain the nonlinear problem

$$\begin{aligned} \int _{\varOmega } \frac{\partial w}{\partial E} \left( E( u ) \right) : d{E}(u,v) = \int _{\varOmega } f \cdot v, \quad \forall v \in V. \end{aligned}$$

The discretization of this problem is simply obtained by inserting the formula (23) for the quasi-quadratic strain

$$\begin{aligned} E |_{{\mathbb {P}}^{3/2}} (u_h) = - E(u_h) |_{{\mathbb {P}}^1} + 2 \sum _{i=1}^{d+1} (E(u_h)|_{{\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2})_i \lambda _i, \end{aligned}$$

from which follows that we only need to evaluate both E(u) and dE(uv) on each sub-element using linear elements for u, as in the Saint Venant-Kirchhoff case. It follows that \(\frac{\partial w}{\partial E} (\cdot )\) and dE(uv) are piecewise linear and discontinuous. Therefore, the quadrature becomes more difficult when \(\frac{\partial w}{\partial E} (\cdot )\) is strongly nonlinear. This situation is similar to standard FE, where the order of quadrature does not depend only on the approximation order, but also on the complexity of the constitutive law.

6.2 Stress-averaged quasi-quadratic elements

In this case, we do not reconstruct the strain at the energy level. Instead, we define the second Piola-Kirchhoff stress from the constitutive law

$$\begin{aligned} S := \frac{\partial w}{\partial E}(E(u)). \end{aligned}$$

We assume S to be piecewise constant on each sub-element and apply our averaging (23)

$$\begin{aligned} S |_{{\mathbb {P}}^{3/2}} = - S |_{{\mathbb {P}}^1} + 2 \sum _{i=1}^{d+1} (S|_{{\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2})_i \lambda _i, \end{aligned}$$

where

$$\begin{aligned} S |_{{\mathbb {P}}^1}&= \frac{\partial w}{\partial E}(E(u)|_{{\mathbb {P}}^1} ), \\ (S |_{{\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2})_i&= \frac{\partial w}{\partial E}(E(u) |_{{\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2}). \end{aligned}$$

If follows that the integrand of

$$\begin{aligned} \int _{\varOmega } S|_{{\mathbb {P}}^{3/2}} \left( E( u ) \right) : d{E}(u,v) \end{aligned}$$

is quadratic for any nonlinear law \(\frac{\partial w}{\partial E} (\cdot )\). Therefore, the quadrature can always be performed at the same cost as that of the Saint Venant-Kirchhoff case analyzed in the previous sections. In this case, the nonlinearity of \(\frac{\partial w}{\partial E} (\cdot )\) will affect the accuracy of the quasi-quadratic projection step, rather than the quadrature. In the next section, we will test both approaches using a Neo-Hookean law using a 3-point quadrature over triangles.

7 Numerical experiments

We have used FreeFem++ [17] to implement the proposed element with UMFPACK as a solver. For each experiment, we tested the following formulations:

  • \(\mathbb P^1\) elements, or \(({\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2,{\mathbb {P}}^1)\) in the case of incompressible materials.

  • \(\mathbb P^2\) elements, or \(({\mathbb {P}}^2,{\mathbb {P}}^1)\) in the case of incompressible materials.

  • \({\mathbb {P}}^{3/2}\) elements, obtained with the \(L^2\)-projection, as in Eq. (12) (\({\mathbb {P}}^{3/2-L^2}\)).

  • \({\mathbb {P}}^{3/2}\) elements, combined with \({\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2\) elements for the load computation (\({\mathbb {P}}^{3/2-P^1}\)).

  • \({\mathbb {P}}^{3/2}\) elements, combined with \({\mathbb {P}}^2\) elements for the load computation.

Our benchmarks are based on varying boundary conditions, material parameters, and loading, with the following geometries:

  • 2D/3D thick beam, shown in Fig. 9.

  • 2D/3D slender beam, shown in Fig. 11.

  • Cook’s membrane.

In Sect. 5, we proved that \({\mathbb {P}}^{3/2}\) elements fulfill the requirement (iii) outlined in the introduction. Here, we provide numerical evidence that requirements (i) and (ii) are also satisfied. In particular, we analyze the following properties:

  • Equivalence with quadratic elements, as requested by (ii).

  • Accuracy in the nonlinear regime.

  • Stability of the incompressible formulation, as requested by (i).

  • Robustness of the method with respect to irregular meshes, boundary conditions, discontinuities in the material coefficients, and nonlinear constitutive laws.

7.1 Equivalence with quadratic elements

We here consider a sequence of linear problems with increasing complexity and decreasing regularity. We will show that if the load is computed using quadratic elements, then \({\mathbb {P}}^{3/2}\) and \({\mathbb {P}}^2\) elements are exactly equivalent. Moreover, we will see that the difference between using quadratic and linear elements for the load becomes less and less important as the solution regularity decreases, up to the point where this does have any effect. However, in the energy norm, it becomes clear that it is necessary to use quadratic elements for the load. We remark that this choice has a negligible computational cost compared to the computation of the stiffness matrix, leaving requirement (iii) unaffected.

Fig. 1
figure 1

Linear 2D cantilever with Timoshenko BC: log plot of the \(L^2\) displacement error versus mesh size

Fig. 2
figure 2

Linear 2D cantilever with Timoshenko BC: log plot of the energy norm versus mesh size

Fig. 3
figure 3

Linear 2D cantilever with clamped BC: log plot of the \(L^2\) displacement error versus mesh size

Fig. 4
figure 4

Linear 3D cantilever: log plot of the \(L^2\) displacement error versus mesh size

Fig. 5
figure 5

Linear Cook’s plate: log plot of the \(L^2\) displacement error versus mesh size

7.1.1 2D thick cantilever beam with Timoshenko boundary conditions

The cantilever beam is a standard benchmark for 2D elasticity. There are several ways to enforce the clamped condition at the fixed boundary, which are not equivalent since they produce solution with different regularities [2]. In order to test the performance of the different elements with the highest possible regularity of the solution, we here take the boundary load g to be parabolic on the right edge and the essential boundary conditions along the clamped edge are applied according to the analytical solution given by Timoshenko and Goodier [31]:

$$\begin{aligned} u_x&= \frac{P y}{6 \bar{E} I} \left( (6L-3x)x + 2(2+\bar{\nu })y^2 - \frac{3D^2}{2} (1+\bar{\nu }) \right) , \\ u_y&= \frac{P}{6 \bar{E} I} \left( 3 \bar{\nu } y^2 (L-x) + (3L-x)x^2 \right) , \end{aligned}$$

where \(\bar{E} = E / (1-\nu ^2)\), \(\bar{\nu } = \nu /(1-\nu )\), and I is the second-area moment of the beam section. The values used for the parameters are \(E=210{,}000~\mathrm {MPa}\), \(L=200~\mathrm {mm}\), \(D=100~\mathrm {mm}\), and \(P=-5000~\mathrm {N}\). As can be seen in Fig. 1, our element confirms its equivalence to \({\mathbb {P}}^2\), if the load is computed using quadratic basis functions (\({\mathbb {P}}^{3/2}\)). If linear elements are used, the \(L^2\) is still showing a good behavior, but the energy norm in Fig. 2 clearly shows that the behavior is poor. Therefore, we will only use quadratic elements for the load in the remainder of this section.

7.1.2 2D thick cantilever beam with clamped BC

We now enforce the displacements to be exactly zero at the clamped boundary and compute the reference solution on a higher-resolution mesh. In this case, a stress singularity near the fixed boundary develops for \(\nu > 0\). This gets progressively worse as \(\nu \) increases. As can be seen in Fig. 3, such a loss of regularity causes a loss of convergence and even the \(L^2\) projection \({\mathbb {P}}^{3/2-L^2}\) elements become as good as the fully-quadratic ones. This occurs already at \(\nu =0.25\).

Fig. 6
figure 6

Nonlinear 2D cantilever with clamped BC: log plot of the \(L^2\) displacement error versus mesh size

7.1.3 3D thick cantilever beam with clamped BC

With the same setup as per the previous test, we now consider the 3D case with a square cross section of thickness \(D=100~\mathrm {mm}\). In this case, as can be seen in Fig. 4, there is a significant benefit in using the exact gradient-reconstruction weighting \({\mathbb {P}}^{3/2}\) elements over the standard \(L^2\)-projection \({\mathbb {P}}^{3/2-L^2}\). As for the previous tests, \({\mathbb {P}}^{3/2}\) are exactly equivalent to \({\mathbb {P}}^2\) while \({\mathbb {P}}^{3/2-P^1}\) are equivalent in the low-regularity scenario \(\nu >0\).

7.1.4 Cook’s membrane

This test is another standard benchmark for 2D elasticity. We use the same geometry and setup proposed in [25]. In particular, we clamp the left boundary, apply a distributed shear load of \(P=6.25~\mathrm {N/mm}\) to the right edge, and set \(E=240565~\mathrm {MPa}\). The reference solution is computed on a mesh with 132098 nodes and \({\mathbb {P}}^2\) elements. As shown in Fig. 5, due to the low regularity of the solution, all \({\mathbb {P}}^{3/2}\) elements provide the same benefits as the fully-quadratic ones.

7.2 Accuracy in the nonlinear regime

Here, we focus on large displacements. We use the same setup as in the linear case, except that the thickness of the beam is decreased to \(D=20~\mathrm {mm}\). This causes a large deformation involving large rotations, as shown in Fig. 9, and therefore requires a nonlinear strain. This implies that \({\mathbb {P}}^{3/2}\) and \({\mathbb {P}}^2\) elements are no longer equivalent. We will show that, despite this, the good accuracy behavior is retained in the nonlinear world. In particular, \({\mathbb {P}}^{3/2}\) and \({\mathbb {P}}^2\) elements exhibit exactly the same convergence if \(\nu >0\). Moreover, the \(L^2\)-projection approach severe undermines the accuracy in the 3D setting. We argue that the disappointing result of the \(L^2\)-projection weights can be due to the non-symmetric nature of tetrahedra refinement, which is significantly more complicated than in 2D.

Fig. 7
figure 7

Nonlinear 3D cantilever: log plot of the \(L^2\) displacement error versus mesh size

Fig. 8
figure 8

Incompressible slender cantilever: log plot of the \(L^2\) displacement error versus mesh size

7.2.1 2D slender cantilever

As shown in Fig. 6, the convergence behavior of quasi-quadratic elements is comparable to the linear benchmarks from the previous section. In particular, we see that quasi- and fully-quadratic elements are virtually identical if \(\nu >0\). For the case \(\nu =0\), fully-quadratic elements have a better performance, as shown in Fig. 7.

7.2.2 3D slender cantilever

As for the linear case, we set the additional dimension of the beam to equal to the known thickness \(D=20~\mathrm {mm}\), so that its cross section becomes a square. The plots in Fig. 4 show that, similarly to the two-dimensional case, not all quasi-quadratic elements are created equal. In particular, the \(L^2\)-projection approach exhibits a very poor behavior, while the optimal \({\mathbb {P}}^{3/2}\) elements behave similarly to the 2D setting. In the remainder of this section, we will therefore only consider the latter for our bechmarks.

7.3 Stability of the incompressible formulation

Here, we consider the nearly- and fully-incompressible limits of the model and their consequences on the discretization. In particular, we will verify the absence of locking for the displacement field and of spurious modes for the pressure, in the case that the saddle-point (up) formulation is employed. We will test both formulations: for the primal formulation, \(\nu =0.499\) and \(\nu =0.49999\) will be considered, while for the saddle-point case we will consider the truly incompressible limit \(\nu =0.5\). Moreover, we will test both a large shear-dominated deformation (Fig. 9) and a volumetric-dominated compression generating a complex pressure field (Fig. 11).

Fig. 9
figure 9

Incompressible slender cantilever: pressure field for the case \(\nu =0.5\)

Fig. 10
figure 10

Incompressible thick compressed beam: log plot of the \(L^2\) displacement error versus mesh size

Fig. 11
figure 11

Incompressible thick compressed beam: pressure field for the case \(\nu =0.5\)

Fig. 12
figure 12

Nonlinear Cook’s plate: log plot of the \(L^2\) displacement error versus mesh size

Fig. 13
figure 13

2D cantilever with jumping coefficients: log plot of the \(L^2\) displacement error versus mesh size

Fig. 14
figure 14

Twisted cantilever: log plot of the \(L^2\) displacement error versus mesh size

Fig. 15
figure 15

Neo-Hookean cantilever: log plot of the \(L^2\) displacement error versus mesh size

7.3.1 2D nonlinear slender cantilever

We use the same geometry, boundary conditions, and loading as for the slender cantilever, but consider both the (u) and (up) formulations. We use \(\nu =0.499\) and \(\nu =0.49999\) for the former and \(\nu =0.5\) for the latter. As shown in Fig. 8, the results show that quasi-quadratic elements are, if anything, outperforming fully-quadratic ones. The pressure field computed with \({\mathbb {P}}^{3/2}\) elements in the case \(\nu =0.5\) is shown in Fig. 9 and provides evidence that no spurious modes are present, as shown in Fig. 10.

7.3.2 2D thick beam compression

We use the same geometry as for the thick cantilever, but consider a compressive surface load. The load is uniform with density \(P=15{,}000\) between L / 4 and 3L / 4. The left, right, and bottom boundaries are fully constrained. This results in a small displacement (\(\approx 1.5\,\mathrm{mm}\)) but generates a complex pressure field, as shown in Fig. 11. The convergence plots show that there is no benefit in using fully-quadratic elements over quasi-quadratic ones. In fact, the regularity is so low that there there is no apparent benefit from using quasi-quadratic elements over linear ones (\({\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2\)), as shown by the case \(\nu =0.5\) in Fig. 8. The pressure field computed with \({\mathbb {P}}^{3/2}\) elements in the case \(\nu =0.5\) is shown in Fig. 11 and provides evidence that no spurious modes are present.

7.4 Robustness of the method

Finally, we test the performance of our method when some of the conditions of the above benchmarks are perturbed. In particular, we consider unstructured meshes, discontinuous material parameters, and twist-inducing boundary conditions in 3D. We show that the fundamental conclusions of the previous benchmarks are unscathed. Namely, that there is a large difference between using linear and quasi-quadratic elements, while the margin is small between the latter and fully-quadratic ones, which becomes apparent only in the case \(\nu =0\), i.e. when the regularity is sufficiently high.

7.4.1 Cook’s membrane with unstructured mesh

We use the same loading and boundary conditions as for the linear case, but we now consider the strain to be nonlinear and we use an unstructured mesh. We place a total of 8 nodes on the boundary of the coarsest mesh and generate a Delaunay mesh in the interior. To generate the refined mesh, we double the number of boundary points and generate a new interior mesh, which in general is non-nested with respect to all of the other meshes. The results, shown in Fig. 12, show that the behavior is similar to the linear case. In fact, there is a slight advantage over fully-quadratic elements in certain situations.

7.4.2 2D cantilever with jumping coefficients

We use the same geometry as for the slender cantilever, but consider a Young modulus with a jump at \(x=L/2\) from \(E_{\mathrm {stiff}} = 2.1e6~\mathrm {MPa}\) to \(E_{\mathrm {soft}}=1.1e5~\mathrm {MPa}\). The results, shown in Fig. 13, show that the behavior is similar to the other benchmarks. In particular, the solution exhibits a higher regularity, such as when \(\nu =0\), this is exploited by fully-quadratic elements. In all of the other cases, there is no additional benefit in using fully-quadratic over quasi-quadratic.

7.4.3 3D twisted cantilever

We use the same geometry as for the slender cantilever, but apply a twist about its longitudinal axis at both ends of the cantilever of, respectively, \(-\,15\) and \(+\,15\) degrees. The results, shown in Fig. 14, show that this benchmark produces a solution with a low regularity even in the case \(\nu =0\), therefore there is no additional benefit in using fully-quadratic elements.

7.4.4 Neo-Hookean cantilever

We use the same geometry and parameters as for the slender cantilever, but consider a Neo-Hookean constitutive law. In Fig. 15, we compare the strain and stress formulations presented in Sect. 6, denoted by \({\mathbb {P}}^{3/2-\epsilon }\) and \({\mathbb {P}}^{3/2-\sigma }\), respectively. From the plots, we see that the stress projection exhibits the same behavior as for the linear case in Fig. 6 for \(\nu =0\) and \(\nu =0.25\), confirming the robustness of the proposed approach. Interestingly, we see that the strain formulation shows a slight increase in the error for the case \(\nu =0\), implying that either the approximation error of the projected strain is amplified by the nonlinearity of the material law, or that a 3-point quadrature is sub-optimal.

Finally, we report a failure of convergence for both Newton’s method (with or without line search) and trust region in the case of \(\nu =0.499\) for the stress formulation. A possible explanation could be found in the strong nonlinearity of the material law. In particular, in the use of linear elements for computing the stresses from the sub-elements, which generate very high hydrostatic stresses due to the logarithmic term in the energy. Therefore, the sensitivity of the stress to the displacement should in principle be very high. However, the averaging performed during the projection step reduces these sensitivities, creating the possibility to obtain similar projected stresses for different displacements, making the problem ill-conditioned.

8 Conclusion

We presented a novel element for the solution of the nonlinear elasticity equations. The proposed method possesses the following properties: (i) it neither locks nor exhibits pressure oscillations in the incompressible limit, (ii) it is exactly equivalent to quadratic elements on linear problems, and (iii) it is of a computational cost comparable to linear elements on nonlinear problems. Therefore, for nonlinear problems, the proposed element enables to achieve a benefit similar to performing one iteration of p-adaptivity, at a cost comparable to that of one step of h-adaptivity.

The idea could be generalized to more than a single step. However, it is not trivial to express high-order strains using hierarchical basis functions, even in the linear case. In particular, this will open the question of whether a hierarchy of linear basis functions would still be appropriate, or the order of interpolation for the displacement should be increased together with that of the strain. Moreover, in general it is unclear if the regularity is such that p-adaptivity can be truly exploited.

A further topic of interest is to study the complete class of Hellinger-Reissner elements. While we focused on those obtained via \({\mathbb {P}}^1\mathrm {iso}{\mathbb {P}}^2\) elements and different projection weights, both choices can be generalized to incorporate, e.g., elements for the displacement that do not satisfy the partition-of-unity condition [27], or interpolation of strains based on pointwise tying conditions [11].

Finally, there is the need to understand the role of error contributions in the case of nonlinear constitutive laws. In particular, while our experiments suggests that the stress projection might be superior to that of the strain, since it requires a lower order of quadrature, the convergence of Newton’s method can be severely affected for certain choices of material parameters. This might suggest, e.g., that the deviatoric and hydrostatic components require a different choice of discrete spaces.