1 Introduction

Linear, second-order, nonvariational partial differential equations (PDEs) are those which are given in the form

$$\begin{aligned} -{\varvec{A}}{:}{\mathrm {D}^2u} = f, \end{aligned}$$
(1)

where \({{\varvec{X}}}{:}{{\varvec{Y}}} = {\text {trace}}\!\left( {{{\varvec{X}}}^{{\varvec{\intercal }}} {\varvec{Y}}}\right)\) is the Frobenious inner product between matrices. If the matrix \(\varvec{A}\) is differentiable, then there is an equivalence between this problem and its variational sibling

$$\begin{aligned} -{\text {div}}\!\left( {\varvec{A}\nabla u}\right) + \mathrm {D}{\varvec{A}}\nabla u = f, \end{aligned}$$
(2)

where

$$\begin{aligned} \mathrm {D}\varvec{A}= \!\left( {\sum _{i=1}^d \partial _i a_{i,1}(\varvec{x}) , \cdots , \sum _{i=1}^d \partial _i a_{i,d}(\varvec{x})}\right) , \end{aligned}$$
(3)

and d is the dimension under consideration. Rewriting in this form is sometimes undesirable. For example, if the coefficient matrix \(\varvec{A}\) has near singular derivatives, the problem will become advection dominated and possibly unstable for conforming finite element methods. There is a wealth of material on the treatment of advection-dominated problems [c.f., 18, 19]. If \(\varvec{A}\) is not differentiable, then the problem has no variational structure. In this case, standard finite element methods cannot be applied.

In a previous work [32], a finite element method for the approximation of the nonvariational problem (1) was introduced. This involved the introduction of a finite element Hessian represented in the same finite element space as the solution (modulo boundary conditions). The applications of the discrete representation of a Hessian of a piecewise function are becoming broader, for example, it can be used to drive anisotropic adaptive algorithms [1, 40], as a notion of discrete convexity [2] and in the design of finite element methods for nonlinear fourth-order problems [37].

The algebraic formulation of the \({\textit {C}} ^{0}\) Galerkin approximation of the nonvariational problem requires the solution of large sparse \(\left( {d+1}\right) ^2 N^2\) linear system [32, Lem 3.3], where N is the number of degrees of freedom. Equivalently, using a Schur complement argument, this can be reduced to an \(N^2\) full linear system. The reason that this system is full is due to the global nature of the \({\text {L}} ^{2}(\varOmega )\) projection operator into a continuous finite element space. The motivation for extending the nonvariational finite element method into the discontinuous setting is the massive gain in computational efficiency over the continuous case. Indeed, due to the local representation of the projection operators in these discontinuous spaces, we are able to make massive computational savings, in that the system matrix becomes sparse and is the same size as that of a standard discontinuous Galerkin stiffness matrix for the Laplacian.

There has been a plethera of other finite element methods posed for linear nonvariational PDEs exist including [38] in which the authors pose a stable discontinuous Galerkin scheme for linear nonvariational problems using discrete analogs of the classical methods used to prove existence of strong solutions, see also [29] where similar techniques are used over curved domains. In [22,23,24] the author considers a least squares formulation, see also [31, 35] for related formulations. Many of these formulations share the same disadvantage in the conditioning of the system matrix—the condition number scales like a fourth-order problem. As already mentioned, one of the desirable features of the formulation presented here is that it scales in the same fashion as a discontinuous Galerkin method for a second-order variational problem, a property shared by the method in [25] under the Cordes condition.

We are particularly interested in nonvariational PDEs due to their relation to general fully nonlinear PDEs

$$\begin{aligned} \mathscr {F} \!\left( { \mathrm {D}^2u }\right) = 0, \end{aligned}$$
(4)

which are of significant current research. In the literature finite element methods have been presented to solve this general class of problem. For example in [8] the author presents a \({\textit {C}} ^{1}\) finite element method shows stability and consistency (hence convergence) of the scheme which requires a high degree of smoothness on the exact solution. In [20, 21] the authors give a method in which they approximate the general second-order fully nonlinear PDE by a sequence of fourth-order quasilinear PDEs. This is reminiscent of the vanishing viscosity method introduced for classically studying first-order fully nonlinear PDEs. Efficiency of any method used to approximate a problem such as this is key. Each of the methods is computationally costly due to their reliance on \({\textit {C}} ^{1}\) finite elements [8, 21] or mixed methods [20].

In [5], a generic framework was set up to prove convergence of numerical approximations to the viscosity solutions of degenerate elliptic fully nonlinear PDEs. This involved constructing monotone sequences of approximations which are typically applied to finite difference approximations of the nonlinear problem [c.f., 36]. The assumption of consistency made in the [5] framework is incompatible with finite element methods; however, an extremely important observation made in [28] is that the consistency condition may be weakened to incorporate the finite element case using a localisation argument (in the case of isotropic diffusion).

A posteriori analysis of linear nonvariational problems is less standard than for those of variational type. Typically, results are based on “closeness” conditions of Cordes type [12] which guarantees existence of a unique smooth, \({\text {H}} ^{2}\) solution. Under these assumptions, it is relatively straightforward to derive a posteriori bounds in the natural norm for the problem, \({\text {H}} ^{2}\), or a mesh-dependent equivalent. For other methods, this has been done in [24]. It has even been shown that adaptive methods for these problems converge optimally in terms of the number of degrees of freedom [30].

We show similar a posteriori bounds that make it straightforward to incorporate the method into well-developed software package for finite element methods, shown here using Dune [6, 7]. In this work, we are interested in the asymptotic behaviour of the discontinuous approximation and the computational gains using this method. In a subsequent work, we will study the computational gains using the discontinuous framework presented over the continuous one given in [32], as well as exploit the powerful parallelisation capabilities of the package.

The rest of the paper is set out as follows. In Sect. 2, we formally introduce the model problem and give a brief review of known classical facts about nonvariational PDEs. In Sect. 3, we examine the discretisation of the nonvariational method in the discontinuous Galerkin framework, making use of the unified framework set out in [4] to derive a very general formulation of the finite element Hessian represented as a discontinuous object. We present some examples and examine the natural question of what happens when we try to eliminate the finite element Hessian from the formulation. In Sect. 4, we conduct an a posteriori analysis of the method and show upper and lower bounds to the error in an \({\text {H}} ^{2}\)-like mesh-dependent norm. Finally, in Sect. 5, we detail a summary of extensive numerical experiments aimed at examining convergence and robustness of the method presented.

2 Problem Formulation

In this section, we formulate the model problem, fix notation and give some basic assumptions. In addition, we review the existence and uniqueness of the nonvariational problems. Let \(\varOmega \subset \mathbb R ^d\), \(d=2,3\), be a connected domain with polygonal boundary. The Lebesgue spaces are defined as

$$\begin{aligned} {\text {L}} ^{2}(\varOmega ) = \left\{ \phi :\;\int _\varOmega \left| \phi (\varvec{x})\right| ^2 \,\mathrm {d}\varvec{x}< \infty \right\} \;\; \text { and }\;\; {\text {L}} ^{\infty }(\varOmega ) = \left\{ \phi :\;\sup _{\varvec{x} \in \varOmega } \left| \phi (\varvec{x})\right| < \infty \right\} , \end{aligned}$$
(5)

and the Sobolev and Hilbert spaces

$$\begin{aligned} {\text {W}} ^{k,p}(\varOmega ) = \left\{ \phi \in {\text {L}} ^{p}(\varOmega ):\;\mathrm {D}^{{\varvec{\alpha }}}\phi \in {\text {L}} ^{p}(\varOmega ), \quad \text { for } \left| \varvec{\alpha }\right| \leqslant k \right\} \;\; \text { and }\;\;{\text {H}} ^{k}(\varOmega ) := {\text {W}} ^{k,2}(\varOmega ). \end{aligned}$$
(6)

These are equipped with the norms

$$\begin{aligned} \left\| \phi \right\| ^2_{{\text {L}} ^{2}(\varOmega )}= & {} \int _\varOmega \left| \phi \right| ^2 \,\mathrm {d}\varvec{x} , \qquad \left\| \phi \right\| _{{\text {L}} ^{\infty }(\varOmega )} = \sup _{\varvec{x} \in \varOmega } \left| \phi (\varvec{x})\right| , \end{aligned}$$
(7)
$$\begin{aligned} \left\| v\right\| _{{\text {W}} ^{k,p}(\varOmega )}^p= & {} \sum _{\left| {\varvec{\alpha }}\right| \leqslant k}\left\| \mathrm {D}^{{\varvec{\alpha }}} v\right\| _{{\text {L}} ^{p}(\varOmega )}^p \quad \text { and }\quad \left| v\right| _{{\text {W}} ^{k,p}(\varOmega )}^p = \sum _{\left| {\varvec{\alpha }}\right| = k}\left\| \mathrm {D}^{{\varvec{\alpha }}} v\right\| _{{\text {L}} ^{p}(\varOmega )}^p, \end{aligned}$$
(8)

where \({\varvec{\alpha }}= \{ \alpha _1,\cdots,\alpha _d\}\) is a multi-index, \(\left| {\varvec{\alpha }}\right| = \sum _{i=1}^d\alpha _i\) and derivatives \(\mathrm {D}^{{\varvec{\alpha }}}\) are understood in a weak sense. We pay particular attention to the cases \(k = 1,2\) and

$$\begin{aligned} {\text {H}} ^{1}_0(\varOmega ) := \text {closure of }{\textit {C}} ^{\infty }_0(\varOmega ) \text { in } {\text {H}} ^{1}(\varOmega ). \end{aligned}$$
(9)

The model problem in strong form is: find \(u\in {\text {H}} ^{2}(\varOmega )\cap {\text {H}} ^{1}_0(\varOmega )\) such that

$$\begin{aligned} \begin{aligned} \left\langle {\mathscr {L} u,\phi }\right\rangle&= \left\langle {f,\phi }\right\rangle, \quad \quad \,\forall \,\phi \in {\text {H}} ^{1}_0(\varOmega ), \\ \end{aligned} \end{aligned}$$
(10)

where the data \(f\in {\text {L}} ^{2}(\varOmega )\) are prescribed and \(\mathscr {L}\) is a general linear, second-order, uniformly elliptic partial differential operator. Let \(\varvec{A}\in {\text {L}} ^{\infty }(\varOmega )^{d\times d}\), we then define

$$\begin{aligned} \begin{array}{rccl} {\mathscr {L}}: &{} {{\text {H}} ^{2}(\varOmega )\cap {\text {H}} ^{1}_0(\varOmega )} &{} \rightarrow &{} {{\text {L}} ^{2}(\varOmega )}, \\ &{} \quad \quad\quad\quad \quad{u} &{}\mapsto &{} {\mathscr {L} u:= -{\varvec{A}}{:}{\mathrm {D}^2u}.} \end{array}\quad \end{aligned}$$
(11)

We assume that \(\varvec{A}\) is uniformly positive definite, i.e., there exists a \(\gamma >0\) such that for all \({\varvec{x}}\)

$$\begin{aligned} {{\varvec{y}}}^{{\varvec{\intercal }}} \varvec{A}({\varvec{x}}) {\varvec{y}} \geqslant \gamma \left| {\varvec{y}}\right| ^2, \quad \,\forall \,{\varvec{y}}\in \mathbb R ^d, \end{aligned}$$
(12)

and we call \(\gamma\) the ellipticity constant.

Definition 1

(Strong solution) A strong solution of (1) is a function \(u\in {\text {H}} ^{2}(\varOmega ) \cap {\text {H}} ^{1}_0(\varOmega )\), that is a twice weakly differentiable function, which satisfies the problem almost everywhere.

Theorem 1

(Existence and regularity of a strong solution of (1) [12]) Let \(\varOmega \subset \mathbb R ^d\) be a convex polytope. Suppose \(\varvec{A}\in {\text {L}} ^{\infty }(\varOmega )^{d\times d}\) is uniformly elliptic and \(f\in {\text {L}} ^{2}(\varOmega )\). Suppose further that \(\varvec{A}\) satisfies the Cordes condition, that there exists \(0 < \alpha \in {\text {L}} ^{\infty }(\varOmega )\) and \(0 < \beta ,\gamma \in \mathbb R\) with \(\beta +\gamma < 1\) such that

$$\begin{aligned} \left| {\mathbf{I }}: {\varvec{Y}} - \alpha (x) \varvec{A}:{\varvec{Y}}\right| {} \leqslant \beta \left| {\varvec{Y}}\right| {} + \gamma \left| {\mathbf{I }}: {\varvec{Y}}\right|, {} \quad \,\forall \,{\varvec{Y}} \in {\text {Sym}}^+(\mathbb R ^{d\times d}). \end{aligned}$$
(13)

Then, (1) admits a unique strong solution. There also exists a constant independent of u such that

$$\begin{aligned} \left\| u\right\| _{{\text {H}} ^{2}(\varOmega )}\leqslant C\left\| f\right\| _{{\text {L}} ^{2}(\varOmega )}. \end{aligned}$$
(14)

Remark 1

(Less regular solutions) Note that the theory of viscosity solutions has been developed for non-classical solutions of (10), if the problem data do not satisfy the regularity assumed above, see [27].

Assumption 1

(Inf-sup condition) From hereon in, we will assume that the problem satisfies an inf-sup condition, that is, with

$$\begin{aligned} a(w,v) := \int _\varOmega -{\varvec{A}}{:}{\mathrm {D}^2w} v \,\mathrm {d}x, \end{aligned}$$
(15)

then, for all \(w\in {\text {H}} ^{2}(\varOmega )\cap {\text {H}} ^{1}_0(\varOmega )\)

$$\begin{aligned} \sup _{v\in {\text {L}} ^{2}(\varOmega )} \frac{a(w,v)}{\left\| v\right\| _{{\text {L}} ^{2}(\varOmega )}} \geqslant C\left\| \Delta w\right\| _{{\text {L}} ^{2}(\varOmega )}. \end{aligned}$$
(16)

This is true under a variety of conditions. For example, those of Theorem 1. Note that for \(d=2\), this criterion is satisfied for all essentially bounded, symmetric positive definite \(\varvec{A}\).

3 Discretisation

Let \(\mathscr {T} ^{}\) be a shape regular triangulation of \(\varOmega\), namely, \(\mathscr {T} ^{}\) is a finite family of sets such that

  1. 1)

    \(K\in \mathscr {T} ^{}\) implies K is an open simplex (segment for \(d=1\), triangle for \(d=2\), tetrahedron for \(d=3\)),

  2. 2)

    for any \(K,J\in \mathscr {T} ^{}\) we have that \(\overline{K}\cap \overline{J}\) is a full subsimplex (i.e., it is either \(\emptyset\), a vertex, an edge, a face, or the whole of \(\overline{K}\) and \(\overline{J}\)) of either \(\overline{K}\) and \(\overline{J}\) and

  3. 3)

    \(\bigcup _{K\in \mathscr {T} ^{}}\overline{K}=\overline{\varOmega }\).

We use the convention where \(h:\varOmega \rightarrow \mathbb R\) denotes the mesh size function of \(\mathscr {T} ^{}\), i.e.,

$$\begin{aligned} h({\varvec{x}}):=\max _{\overline{K}\ni {\varvec{x}}}h_K, \end{aligned}$$
(17)

where \(h_K\) is the diameter of K. We let \(\mathscr {E} {}\) be the skeleton (set of common interfaces) of the triangulation \(\mathscr {T} ^{}\) and say \(e\in \mathscr {E}\) if e is on the interior of \(\varOmega\) and \(e\in \partial \varOmega\) if e lies on the boundary \(\partial \varOmega\).

Let \(\mathbb P ^{k}(\mathscr {T} ^{})\) denote the space of piecewise polynomials of degree k over the triangulation \(\mathscr {T} ^{}\), \(\text { i.e., }\)

$$\begin{aligned} \mathbb P ^{k} (\mathscr {T} ^{}) = \left\{ \phi :\;\phi |_K \in \mathbb P ^{k} (K) \right\} , \end{aligned}$$
(18)

and introduce the finite element spaces

$$\begin{aligned} \mathbb {V}= & {} \mathbb {V}\!\left( {\mathscr {T} ^{},k}\right) := \mathbb P ^{k}(\mathscr {T} ^{}), \end{aligned}$$
(19)
$$\begin{aligned} \mathbb {V}_{0}= & {} \mathbb {V}_{0}\!\left( {\mathscr {T} ^{},k}\right) := \left\{ \phi \in \mathbb P ^{k}(\mathscr {T} ^{}):\;\phi \vert _{\partial \varOmega } = 0 \right\} , \end{aligned}$$
(20)

to be the usual spaces of discontinuous piecewise polynomial functions.

Remark 2

(Generalised Hessian) Assume \(v\in {\text {H}} ^{2}(\varOmega )\), let \(\varvec{n}:\partial \varOmega \rightarrow \mathbb R ^d\) be the outward pointing normal of \(\varOmega\), then the Hessian \(\mathrm {D}^2v\) of v, satisfies the following identity:

$$\begin{aligned} \int _\varOmega {\mathrm {D}^2v} \ {\phi } \,\mathrm {d}\varvec{x} = - \int _\varOmega {\nabla v}\otimes {\nabla \phi } \,\mathrm {d}\varvec{x} + \int _{\partial \varOmega }{\nabla v}\otimes {\varvec{n} \ \phi } \,\mathrm {d}s, \quad \,\forall \,\phi \in {\text {H}} ^{1}(\varOmega ). \end{aligned}$$
(21)

If \(v\in {\text {H}} ^{1}(\varOmega )\), the right-hand side of (21) is still well defined in view of duality, in this case we set

$$\begin{aligned} \left\langle \mathrm {D}^2v\,\vert \,\phi \right\rangle = - \int _\varOmega {\nabla v}\otimes {\nabla \phi }\,\mathrm {d}\varvec{x} + \int _{\partial \varOmega }{\nabla v}\otimes {\varvec{n} \ \phi } \,\mathrm {d}s, \quad \,\forall \,\phi \in {\text {H}} ^{1}(\varOmega ), \end{aligned}$$
(22)

where the last term is understood as a duality pairing.

Definition 2

(Broken Sobolev spaces, trace spaces) We introduce the broken Sobolev space

$$\begin{aligned} {\text {H}} ^{k}(\mathscr {T} ^{}) := \left\{ \phi :\;\phi |_K\in {\text {H}} ^{k}(K), \text { for each } K \in \mathscr {T} ^{} \right\} . \end{aligned}$$
(22)

We also make use of functions defined in these broken spaces restricted to the skeleton of the triangulation. This requires an appropriate trace space

$$\begin{aligned} \mathcal T \!\left( {\mathscr {E}}\right) := \prod _{K\in \mathscr {T} ^{}} {\text {L}} ^{2}(\partial K) = \prod _{K\in \mathscr {T} ^{}} {\text {H}} ^{\frac{1}{2}}(K). \end{aligned}$$
(24)

Definition 3

(Jumps, averages and tensor jumps) We define average, jump and tensor jump operators for arbitrary scalar functions \(v\in \mathcal T \!\left( {\mathscr {E}}\right)\), vectors \({\varvec{v}}\in \mathcal T \!\left( {\mathscr {E}}\right) ^d\) and matrices \({\varvec{V}}\in \mathcal T \!\left( {\mathscr {E}}\right) ^{d\times d}\) as

$$\begin{aligned} \lbrace v \rbrace= & {} {\frac{1}{2}\!\left( {v|_{K_1} + v|_{K_2}}\right) }, \qquad \lbrace {\varvec{v}} \rbrace = {\frac{1}{2}\!\left( {{\varvec{v}}|_{K_1} + {\varvec{v}}|_{K_2}}\right) }, \end{aligned}$$
(25)
$$\begin{aligned} \llbracket v\rrbracket= & {} {{{v}|_{K_1} \varvec{n}_{K_1} + {v}|_{K_2}} \varvec{n}_{K_2}}, \qquad \llbracket {\varvec{v}}\rrbracket = {\!\left( {{\varvec{v}}|_{K_1}}\right) } \cdot \varvec{n}_{K_1} + {\!\left( {{\varvec{v}}|_{K_2}}\right) } \cdot \varvec{n}_{K_2}, \end{aligned}$$
(26)
$$\begin{aligned} \llbracket {\varvec{V}}\rrbracket= & {} {{{{{\varvec{V}}|_{K_1}}}\varvec{n}_{K_1} + {{{\varvec{V}}|_{K_2}}}\varvec{n}_{K_2}}}, \qquad \llbracket {\varvec{v}}\rrbracket _\otimes = {{{\varvec{v}}|_{K_1} }\otimes \varvec{n}_{K_1} + {\varvec{v}}|_{K_2} \otimes \varvec{n}_{K_2}}. \end{aligned}$$
(27)

Note that on the boundary of the domain \(\partial \varOmega\), the jump and average operators are defined as

$$\begin{aligned}&\lbrace v \rbrace \Big \vert _{\partial \varOmega } := v, \qquad \lbrace \varvec{v} \rbrace \Big \vert _{\partial \varOmega } := \varvec{v}, \end{aligned}$$
(28)
$$\begin{aligned}&\llbracket v\rrbracket \Big \vert _{\partial \varOmega } := v\varvec{n}, \qquad \llbracket \varvec{v}\rrbracket \Big \vert _{\partial \varOmega } := {\varvec{v}} \cdot \varvec{n}, \end{aligned}$$
(29)
$$\begin{aligned}&\llbracket {\varvec{V}}\rrbracket \Big \vert _{\partial \varOmega } := {\varvec{V}} \varvec{n}, \qquad \llbracket {\varvec{v}}\rrbracket _\otimes \Big \vert _{\partial \varOmega } := {\varvec{v}}\otimes \varvec{n}. \end{aligned}$$
(30)

We will often use the following Proposition which we state in full for clarity but whose proof is merely using the identities in Definition 3.

Proposition 1

(Elementwise integration) For a generic vector-valued function \(\varvec{p}\) and scalar-valued function \(\phi\), we have

$$\begin{aligned} \begin{aligned} \sum _{K\in \mathscr {T} ^{}} \int _K {\text {div}}\!\left( {\varvec{p}}\right) \phi \,\mathrm {d}\varvec{x} = \sum _{K\in \mathscr {T} ^{}} \!\left( { - \int _K {\varvec{p}} \cdot \nabla _h \phi \,\mathrm {d}\varvec{x} + \int _{\partial K} \phi {\varvec{p}} \cdot \varvec{n}_K \,\mathrm {d}s }\right) , \end{aligned} \end{aligned}$$
(31)

where \(\nabla _h = {\!\left( {\mathrm {D}_h }\right) }^{{\varvec{\intercal }}}\) is the elementwise spatial gradient. Furthermore, If we have \(\varvec{p} \in \mathcal T \!\left( {\mathscr {E} \cup \partial \varOmega }\right) ^d\) and \(\phi \in \mathcal T \!\left( {\mathscr {E} \cup \partial \varOmega }\right)\), the following identity holds

$$\begin{aligned} \sum _{K\in \mathscr {T} ^{}} \int _{\partial K} \phi {{\varvec{p}}} \cdot \varvec{n}_K \,\mathrm {d}s = \int _\mathscr {E} \llbracket \varvec{p}\rrbracket \lbrace \phi \rbrace \,\mathrm {d}s + \int _{\mathscr {E} \cup \partial \varOmega } {\llbracket \phi \rrbracket } \cdot \lbrace \varvec{p} \rbrace \,\mathrm {d}s = \int _{\mathscr {E} \cup \partial \varOmega } \llbracket \varvec{p} \phi \rrbracket \,\mathrm {d}s. \end{aligned}$$
(32)

An equivalent tensor formulation of (31)–(32) is

$$\begin{aligned} \begin{aligned} \sum _{K\in \mathscr {T} ^{}} \int _K \mathrm {D}_h {\varvec{p}} \phi \,\mathrm {d}\varvec{x} = \sum _{K\in \mathscr {T} ^{}} \!\left( { - \int _K {\varvec{p}} \otimes \nabla _h \phi \,\mathrm {d}\varvec{x} + \int _{\partial K} \phi {\varvec{p}} \otimes \varvec{n}_K \,\mathrm {d}s }\right) , \end{aligned} \end{aligned}$$
(33)

where

$$\begin{aligned} \sum _{K\in \mathscr {T} ^{}} \int _{\partial K} \phi {\varvec{p}} \otimes \varvec{n}_K \,\mathrm {d}s = \int _\mathscr {E} \llbracket \varvec{p}\rrbracket _\otimes \lbrace \phi \rbrace \,\mathrm {d}s + \int _{\mathscr {E} \cup \partial \varOmega } {\llbracket \phi \rrbracket }\otimes \lbrace \varvec{p} \rbrace \,\mathrm {d}s = \int _{\mathscr {E} \cup \partial \varOmega } \llbracket \varvec{p} \phi \rrbracket _\otimes \,\mathrm {d}s. \end{aligned}$$
(34)

In addition for matrix-valued \({\varvec{V}},\) we have that

$$\begin{aligned} \sum _{K\in \mathscr {T} ^{}} \int _{K} { \!\left( {\mathrm {D}_h {\varvec{p}}}\right) }{:}{{\varvec{V}}} \,\mathrm {d}{\varvec{x}} = \sum _{K\in \mathscr {T} ^{}} \!\left( { -\int _{K} { {{\varvec{p}}} }{:}{\mathrm {D}_h {\varvec{V}}}\,\mathrm {d}{\varvec{x}} + \int _{\partial \varOmega } {\!\left( {{\varvec{V}} {\varvec{p}}}\right) } \cdot {\varvec{n}} \,\mathrm {d}s }\right) \end{aligned}$$
(35)

and

$$\begin{aligned} \sum _{K\in \mathscr {T} ^{}} \int _{\partial \varOmega } {\!\left( {{\varvec{V}} {\varvec{p}}}\right) } \cdot {\varvec{n}} \,\mathrm {d}s = \int _\mathscr {E} {\llbracket {\varvec{V}}\rrbracket } \cdot \lbrace {\varvec{p}} \rbrace \,\mathrm {d}s + \int _{\mathscr {E} \cup \partial \varOmega } {\llbracket {\varvec{p}}\rrbracket _\otimes }{:}{\lbrace {\varvec{V}} \rbrace } \,\mathrm {d}s = \int _{\mathscr {E} \cup \partial \varOmega } \llbracket {\varvec{V}}\varvec{p}\rrbracket \,\mathrm {d}s. \end{aligned}$$
(36)

3.1 Construction of an Appropriate Discrete Hessian

We now use the framework set out in [4] to construct a general notion of discrete Hessian. We first give a definition using a flux formulation.

Definition 4

(Generalised finite element Hessian: flux formulation) Let \(u\in {\text {H}} ^{2}(\mathscr {T} ^{})\), \({\widehat{U}} : {\text {H}} ^{1}(\mathscr {T} ^{}) \rightarrow \mathcal T \!\left( {\mathscr {E} \cup \partial \varOmega }\right)\) be a linear form and \(\widehat{\varvec{p}} : {\text {H}} ^{2}(\mathscr {T} ^{}) \times {\text {H}} ^{1}(\mathscr {T} ^{})^d \rightarrow \mathcal T \!\left( {\mathscr {E} \cup \partial \varOmega }\right) ^d\) a bilinear form representing approximations to u and \(\nabla u\) over the skeleton of the triangulation. Then, we define the generalised finite element Hessian \(\varvec{H}[u]\) as the solution of

$$\begin{aligned} \int _K {\varvec{H}[u]} \ {\varPhi } \,\mathrm {d}\varvec{x} = - \int _K \varvec{p} \otimes \nabla _h \varPhi \,\mathrm {d}\varvec{x} + \int _{\partial K} \varvec{\widehat{p}}_K \otimes \varvec{n} \ \varPhi \,\mathrm {d}s, \quad \,\forall \,\varPhi \in {\text {H}} ^{1}(\mathscr {T} ^{}) \end{aligned},$$
(37)
$$\begin{aligned} \int _K \varvec{p} \otimes \varvec{q} \,\mathrm {d}\varvec{x} = - \int _K u \ \mathrm {D}_h \varvec{q} \,\mathrm {d}\varvec{x} + \int _{\partial K} \varvec{q} \otimes \varvec{n} \ \widehat{U}_K \,\mathrm {d}s \end{aligned}$$
(38)

for all \(\varPhi \in \mathbb {V}\).

We now present the primal formulation for the generalised finite element Hessian.

Theorem 2

(Generalised finite element Hessian: primal form) Let \(u\in {\text {H}} ^{2}(\mathscr {T} ^{})\) and let \({\widehat{U}}\) and \(\widehat{\varvec{p}}\) be defined as in Definition 4. Then, the generalised finite element Hessian H[u] is given for each \(\varPhi \in \mathbb {V}\) as

$$\begin{aligned} \begin{aligned} \int _{\varOmega } \varvec{H}[u] \ \varPhi \,\mathrm {d}\varvec{x}&= - \int _\varOmega \nabla _h u \otimes \nabla _h \varPhi \,\mathrm {d}\varvec{x} + \int _{\mathscr {E} \cup \partial \varOmega } \llbracket \varPhi \rrbracket \otimes \lbrace \varvec{{\widehat{p}}} \rbrace \,\mathrm {d}s + \int _\mathscr {E} \lbrace \varPhi \rbrace \llbracket \varvec{{\widehat{p}}}\rrbracket _\otimes \,\mathrm {d}s \\&\qquad - \int _{\mathscr {E}} \lbrace {\widehat{U}} - u \rbrace \llbracket \nabla _h \varPhi \rrbracket _\otimes \,\mathrm {d}s - \int _{\mathscr {E} \cup \partial \varOmega } \llbracket {\widehat{U}} - u\rrbracket \otimes \lbrace \nabla _h \varPhi \rbrace \,\mathrm {d}s. \end{aligned} \end{aligned}$$
(39)

Proof

Note that in view of Definition 3 for generic vector fields \(\varvec{q} \in \mathbb {W}\) and \(v \in \mathbb {V}\), we have the following identity:

$$\begin{aligned} \sum _{K\in \mathscr {T} ^{}} \int _{\partial K} v \varvec{q} \otimes \varvec{n} \,\mathrm {d}s = \int _{\mathscr {E} \cup \partial \varOmega } \llbracket v\rrbracket \otimes \lbrace \varvec{q} \rbrace \,\mathrm {d}s + \int _\mathscr {E} \lbrace v \rbrace \llbracket \varvec{q}\rrbracket _\otimes \,\mathrm {d}s. \end{aligned}$$
(40)

Then summing (37) over \(K\in \mathscr {T} ^{}\) and making use of the identity (40) we see

$$\begin{aligned} \begin{aligned} \int _\varOmega {\varvec{H}[u]} \ {\varPhi } \,\mathrm {d}\varvec{x}&= \sum _{K\in \mathscr {T} ^{}} \int _K {\varvec{H}[u]} \ {\varPhi } \,\mathrm {d}\varvec{x} = \sum _{K\in \mathscr {T} ^{}} \!\left( {- \int _K \varvec{p} \otimes \nabla _h \varPhi \,\mathrm {d}\varvec{x} + \int _{\partial K} \varvec{\widehat{p}}_K \otimes \varvec{n} \ \varPhi }\right) \,\mathrm {d}s \\&= - \int _\varOmega \varvec{p} \otimes \nabla _h \varPhi \,\mathrm {d}\varvec{x} + \int _{\mathscr {E} \cup \partial \varOmega } \llbracket \varPhi \rrbracket \otimes \lbrace \varvec{\widehat{p}}_K \rbrace \,\mathrm {d}s + \int _\mathscr {E} \lbrace \varPhi \rbrace \llbracket \varvec{\widehat{p}}_K\rrbracket _\otimes \,\mathrm {d}s. \end{aligned} \end{aligned}$$
(41)

Using the same argument for (38)

$$\begin{aligned} \begin{aligned} \int _\varOmega \varvec{p} \otimes \varvec{q} \,\mathrm {d}\varvec{x}&= \sum _{K\in \mathscr {T} ^{}} \int _K \varvec{p} \otimes \varvec{q} \,\mathrm {d}\varvec{x} = \sum _{K\in \mathscr {T} ^{}} \!\left( { - \int _K u \ \mathrm {D}_h \varvec{q} \,\mathrm {d}\varvec{x} + \int _{\partial K} \varvec{q} \otimes \varvec{n} \ \widehat{U}_K \,\mathrm {d}s }\right) \\&= - \int _\varOmega u \ \mathrm {D}_h \varvec{q} \,\mathrm {d}\varvec{x} + \int _{\mathscr {E} \cup \partial \varOmega } \llbracket \widehat{U}\rrbracket \otimes \lbrace \varvec{q} \rbrace \,\mathrm {d}s + \int _\mathscr {E} \lbrace \widehat{U} \rbrace \llbracket \varvec{q}\rrbracket _\otimes \,\mathrm {d}s. \end{aligned} \end{aligned}$$
(42)

Note that, again making use of (40), we have for each \(\varvec{q}\in {\text {H}} ^{1}(\mathscr {T} ^{})^d\) and \(v\in {\text {H}} ^{1}(\mathscr {T} ^{})\) that

$$\begin{aligned} \int _\varOmega \varvec{q} \otimes \nabla _h v \,\mathrm {d}\varvec{x} = - \int _\varOmega \mathrm {D}_h \varvec{q} v\,\mathrm {d}\varvec{x} + \int _{\mathscr {E} \cup \partial \varOmega } \lbrace \varvec{q} \rbrace \otimes \llbracket v\rrbracket \,\mathrm {d}s + \int _\mathscr {E} \llbracket \varvec{q}\rrbracket _\otimes \lbrace v \rbrace \,\mathrm {d}s. \end{aligned}$$
(43)

Taking \(v=u\) in (43) and substituting into (38), we see

$$\begin{aligned} \int _\varOmega \varvec{p}\otimes \varvec{q}\,\mathrm {d}\varvec{x} = \int _\varOmega \varvec{q} \otimes \nabla _h u\,\mathrm {d}\varvec{x} + \int _{\mathscr {E} \cup \partial \varOmega } \llbracket {\widehat{U}} - u\rrbracket \otimes \lbrace \varvec{q} \rbrace \,\mathrm {d}s + \int _\mathscr {E} \lbrace {\widehat{U}} - u \rbrace \llbracket \varvec{q}\rrbracket _\otimes \,\mathrm {d}s. \end{aligned}$$
(44)

Now choosing \(\varvec{q} = \nabla _h \varPhi\) and substituting (44) into (37), we arrive at the fully generalised finite element Hessian given by (39).

Remark 3

(Consistent representations of the gradient operator) If one were interested in consistent representations of other derivatives, for example the gradient operator, one would need to modify the proof of Theorem 2. Examples of consistent gradient representations can be found in [4]. See also [10, 11, 17]. Using this methodology, it should be possible to construct an entire hierarchy of derivatives.

Example 1

An example of a DG formulation for the approximation to the Hessian, \(\mathrm {D}^2u\), can be derived by taking the fluxes in the following way:

$$\begin{aligned} {\widehat{U}}= & {} {\left\{ \begin{array}{ll} \lbrace u_h \rbrace &{}\quad \text { over } \mathscr {E}, \\ 0 &{}\quad \text { on } \partial \varOmega , \end{array}\right. } \end{aligned}$$
(45)
$$\begin{aligned} \widehat{\varvec{p}}= & {} \lbrace \nabla _h u_h \rbrace \text { on } \mathscr {E} \cup \partial \varOmega . \end{aligned}$$
(46)

The result is a discrete representation of the Hessian \(\varvec{H}[u_h]\) as a unique element of \(\mathbb {V}^{d\times d}\) such that

$$\begin{aligned} \int _{\varOmega } \varvec{H}[u_h] \ \varPhi \,\mathrm {d}\varvec{x} = - \int _\varOmega \nabla _h u_h \otimes \nabla _h \varPhi \,\mathrm {d}\varvec{x} + \int _{\mathscr {E} \cup \partial \varOmega } \llbracket u_h\rrbracket \otimes \lbrace \nabla _h \varPhi \rbrace + \llbracket \varPhi \rrbracket \otimes \lbrace \nabla _h u_h \rbrace \,\mathrm {d}s. \end{aligned}$$

We can also derive unsymmetric approximations with fluxes similar to those used for the NIPG method. This is given by taking \(\theta =-1\) in the following, while the symmetric version is given by \(\theta =1\):

$$\begin{aligned} \begin{aligned} \int _{\varOmega } \varvec{H}[u_h] \ \varPhi \,\mathrm {d}\varvec{x}&= - \int _\varOmega \nabla _h u_h \otimes \nabla _h \varPhi \,\mathrm {d}\varvec{x} \\&\quad + \int _{\mathscr {E} \cup \partial \varOmega } \theta \llbracket u_h\rrbracket \otimes \lbrace \nabla _h \varPhi \rbrace + \llbracket \varPhi \rrbracket \otimes \lbrace \nabla _h u_h \rbrace \,\mathrm {d}s \\&= \int _\varOmega \mathrm {D}^2_h u_h \varPhi \,\mathrm {d}\varvec{x} - \int _\mathscr {E} \llbracket \nabla _h u_h\rrbracket _\otimes \lbrace \varPhi \rbrace \,\mathrm {d}s \\&\quad + \int _{\mathscr {E} \cup \partial \varOmega } \theta \llbracket u_h\rrbracket \otimes \lbrace \nabla _h \varPhi \rbrace \,\mathrm {d}s, \quad \,\forall \,\varPhi \in \mathbb {V}. \end{aligned} \end{aligned}$$
(47)

3.2 The Discontinuous Nonvariational Finite Element Method

We are now in a position to state the numerical method for the approximation of (1). We look to find \(u_h\in \mathbb {V}_{0}\) together with \(\varvec{H}[u_h]\in \mathbb {V}^{d\times d}\) such that

$$\begin{aligned} \mathscr {A} _h\!\left( {u_h,\varPsi }\right) = l(\varPsi ), \quad \,\forall \,\varPsi \in \mathbb {V}_{0}\end{aligned}$$
(48)

with

$$\begin{aligned} \mathscr {A} _h\!\left( {u_h,\varPsi }\right):= & {} \int _\varOmega -{\varvec{A}}{:}{\varvec{H}[u_h]} \varPsi \,\mathrm {d}\varvec{x} + \int _{\mathscr {E} \cup \partial \varOmega } \sigma h^{-1} {\llbracket u_h\rrbracket } \cdot \llbracket \varPsi \rrbracket \,\mathrm {d}s, \end{aligned}$$
(49)
$$\begin{aligned} l(\varPsi ):= & {} \int _\varOmega f \varPsi \,\mathrm {d}\varvec{x}, \end{aligned}$$
(50)

where the penalisation parameter \(\sigma >0\) is to be chosen sufficiently large.

Using the \({\text {L}} ^{2}\) projection operator \({\text {P}}_{k} :{\text {L}} ^{2}(\varOmega ) \rightarrow \mathbb {V}\) defined for \(v\in {\text {L}} ^{2}(\varOmega )\) through

$$\begin{aligned} \int _\varOmega {\text {P}}_{k} \!\left( {v}\right) \varPsi \,\mathrm {d}\varvec{x} = \int _\varOmega v\varPsi \,\mathrm {d}\varvec{x},\quad \forall \varPsi \in \mathbb {V}, \end{aligned}$$
(51)

it is possible to elliminate the finite element Hessian from the bilinear form for sufficiently smooth \(\varvec{A}\).

Lemma 1

(Elimination of the finite element Hessian in a general setting) If the fluxes are chosen as in Example 1, then

$$\begin{aligned} \begin{aligned} \mathscr {A} _h\!\left( {u_h,\varPsi }\right)&= \int _\varOmega D_h\!\left( {{\text {P}}_{k} \!\left( {\varPsi \varvec{A}}\right) }\right) \nabla _h u_h\,\mathrm {d}\varvec{x} - \int _{\mathscr {E} \cup \partial \varOmega } \theta {\llbracket u_h\rrbracket } \cdot \lbrace D_h\!\left( {{\text {P}}_{k} \!\left( {\varPsi \varvec{A}}\right) }\right) \rbrace \,\mathrm {d}s \\&\quad - \int _{\mathscr {E} \cup \partial \varOmega } {\llbracket {\text {P}}_{k} \!\left( {\varPsi \varvec{A}}\right) \rrbracket } \cdot \lbrace \nabla _h u_h \rbrace \,\mathrm {d}s + \int _{\mathscr {E} \cup \partial \varOmega } \sigma h^{-1} {\llbracket u_h\rrbracket } \cdot \llbracket \varPsi \rrbracket \,\mathrm {d}s. \end{aligned} \end{aligned}$$
(52)

Proof

This follows from the following identity:

$$\begin{aligned} \begin{aligned} \int _\varOmega -{\varvec{A}}{:}{\varvec{H}[u_h]} \varPsi \,\mathrm {d}\varvec{x}&= \int _\varOmega -{\varvec{H}[u_h]}{:}{\!\left( {\varPsi \varvec{A}}\right) } \,\mathrm {d}\varvec{x} = \int _\varOmega -{\varvec{H}[u_h]}{:}{{\text {P}}_{k} \!\left( {\varPsi \varvec{A}}\right) } \,\mathrm {d}\varvec{x} \\&= \int _\varOmega D_h\!\left( {{\text {P}}_{k} \!\left( {\varPsi \varvec{A}}\right) }\right) \nabla _h u_h\,\mathrm {d}\varvec{x} - \int _{\mathscr {E} \cup \partial \varOmega } \theta {\llbracket u_h\rrbracket } \cdot \lbrace D_h\!\left( {{\text {P}}_{k} \!\left( {\varPsi \varvec{A}}\right) }\right) \rbrace \,\mathrm {d}s \\&\quad - \int _{\mathscr {E} \cup \partial \varOmega } {\llbracket {\text {P}}_{k} \!\left( {\varPsi \varvec{A}}\right) \rrbracket } \cdot \lbrace \nabla _h u_h \rbrace \,\mathrm {d}s. \end{aligned} \end{aligned}$$
(53)

Remark 4

The solution of the problem in this form is nontrivial due to the global \({\text {L}} ^{2}(\varOmega )\) projection appearing in the formulation. However, in the discontinuous setting, the global \({\text {L}} ^{2}(\varOmega )\) projection is in fact computable locally. We may actually exploit this fact to optimise our schemes efficiency. We will discuss this further in the sequel.

Example 2

(Laplacian formulation) Note that if in (1) we have that \(\varvec{A}= \varvec{I}\), then we have that

$$\begin{aligned} f = -{A}{:}{\mathrm {D}^2u} = -\Delta u \end{aligned}$$
(54)

and our bilinear form reduces to

$$\begin{aligned} \begin{aligned} \mathscr {A} _h\!\left( {u_h,\varPsi }\right)&= \int _\varOmega {\!\left( {\nabla _h\varPsi }\right) } \cdot \nabla _h u_h\,\mathrm {d}\varvec{x} - \int _{\mathscr {E} \cup \partial \varOmega } \theta {\llbracket u_h\rrbracket } \cdot \lbrace \nabla _h\varPsi \rbrace \,\mathrm {d}s \\&\quad - \int _{\mathscr {E} \cup \partial \varOmega } {(\llbracket \varPsi \rrbracket \cdot \lbrace \nabla _h u_h \rbrace } - \sigma h^{-1} {\llbracket u_h\rrbracket } \cdot \llbracket \varPsi \rrbracket )\,\mathrm {d}s, \end{aligned} \end{aligned}$$
(55)

since \({\text {P}}_{k} \!\left( {\varPsi \varvec{A}}\right) =\varPsi {\varvec{I}}\).

The nonvariational finite element method, thus, coincides with the classical (symmetric) interior penalty method for the Laplacian [16].

Remark 5

(Relation to standard DG methods) It is not difficult to prove that choosing to numerical fluxes in the same way as presented in [4, Table 3.2] results in the same correlation to the DG methods summarised in the aforementioned paper for the case that \(\varvec{A}\) is constant. For brevity, we will not prove this here.

Note that when \(\varvec{A}\) is not constant, we have that the nonvariational finite element method does not coincide with its standard variational finite element counterpart. Indeed, the method is able to successfully cope with classes of advection dominated problems not falling under the variational framework without special treatment [32, §4.2] which is illustrated by the result of Lemma 1.

We conclude this section with a proof of consistency of the method and then show that Galerkin orthogonality holds.

Lemma 2

(Consistency) Let \(u\in {\text {H}} ^{2}(\varOmega )\) and assume that the numerical fluxes are chosen in a consistent fashion in the sense of [4, §3.1], that is,

$$\begin{aligned} {\widehat{U}}= & {} u|_{\mathscr {E} \cup \partial \varOmega }, \end{aligned}$$
(56)
$$\begin{aligned} \widehat{\varvec{p}}= & {} \nabla u|_{\mathscr {E} \cup \partial \varOmega }. \end{aligned}$$
(57)

Then for \(\varPhi \in \mathbb {V}\)

$$\begin{aligned} \begin{aligned} \int _\varOmega \varvec{H}[u] \varPhi \,\mathrm {d}\varvec{x}&= \int _\varOmega \mathrm {D}^2u \varPhi \,\mathrm {d}\varvec{x}. \end{aligned} \end{aligned}$$
(58)

Therefore, we have that \(\varvec{H}[u] = {\text {P}}_{k} \!\left( {\mathrm {D}^2u}\right)\).

Proof

Applying Proposition 1 to the first term in the definition of \(\varvec{H}[u]\) yields

$$\begin{aligned} \begin{aligned} \int _\varOmega \varvec{H}[u] \varPhi \,\mathrm {d}\varvec{x}&= \int _\varOmega \mathrm {D}^2u \varPhi \,\mathrm {d}\varvec{x} + \int _\mathscr {E} \llbracket \widehat{{\varvec{p}}}-\nabla u\rrbracket _\otimes \lbrace \varPhi \rbrace \,\mathrm {d}s + \int _{\mathscr {E} \cup \partial \varOmega } \lbrace \varvec{{\widehat{p}}}-\nabla u \rbrace \otimes \llbracket \varPhi \rrbracket \,\mathrm {d}s \\&\quad - \int _{\mathscr {E}} \lbrace {\widehat{U}} - u \rbrace \llbracket \nabla _h \varPhi \rrbracket _\otimes \,\mathrm {d}s - \int _{\mathscr {E} \cup \partial \varOmega } \llbracket {\widehat{U}} - u\rrbracket \otimes \lbrace \nabla _h \varPhi \rbrace \,\mathrm {d}s \\&= \int _\varOmega \mathrm {D}^2u \varPhi \,\mathrm {d}\varvec{x},\quad \,\forall \,\varPhi \in \mathbb {V}, \end{aligned} \end{aligned}$$
(59)

which proves the results under the consistency conditions on the fluxes.

Lemma 3

(Galerkin orthogonality) Let \(u\in {\text {H}} ^{2}(\varOmega )\cap {\text {H}} ^{1}_0(\varOmega )\) be a strong solution to the problem (1) and let \(u_h\in \mathbb {V}_{0}\) be its nonvariational finite element approximation. Assume that the numerical fluxes \({\widehat{U}}\) and \(\widehat{\varvec{p}}\) are consistent, then we have the following orthogonality result:

$$\begin{aligned} \mathscr {A} _h\!\left( {u_h-u,\varPsi }\right) = J(\varPsi ), \quad \,\forall \,\varPsi \in \mathbb {V}_{0}, \end{aligned}$$
(60)

with the error functional given by

$$\begin{aligned} J(\varPsi ) = \int _\varOmega {\!\left( {\mathrm {D}^2u-\varvec{H}[u]}\right) }{:}{\!\left( {\varvec{A}\varPsi }\right) } \,\mathrm {d}\varvec{x}. \end{aligned}$$
(61)

Proof

Using the consistency result and that \(\llbracket u\rrbracket =0\), we conclude

$$\begin{aligned} \mathscr {A} _h\!\left( {u_h-u,\varPsi }\right)&= \mathscr {A} _h\!\left( {u_h,\varPsi }\right) + \int _\varOmega {\varvec{A}}{:}{\varvec{H}[u]} \varPsi \,\mathrm {d}\varvec{x} = l(\varPsi ) + \int _\varOmega {\varvec{H}[u]}{:}{\!\left( {\varvec{A}\varPsi }\right) } \,\mathrm {d}\varvec{x}\\&= -\int _\varOmega {\varvec{A}}{:}{\mathrm {D}^2u}\varPsi - {\varvec{H}[u]}{:}{\!\left( {\varvec{A}\varPsi }\right) }\,\mathrm {d}\varvec{x} = J(\varPsi ), \end{aligned}$$

concluding the proof.

Remark 6

If \(\varvec{A}\) is piecewise constant, then since \(\varvec{H}[u]={\text {P}}_{k} \!\left( {\mathrm {D}^2u}\right)\) we have \(J(\varPsi ) = 0\) and we recover the usual Galerkin orthogonality \(\mathscr {A} _h\!\left( {u_h-u,\varPsi }\right) = 0\).

Definition 5

(\({\text {H}} ^{1}(\mathscr {T} ^{})\) and \({\text {H}} ^{2}(\mathscr {T} ^{})\) norms) We introduce the broken \({\text {H}} ^{1}(\mathscr {T} ^{})\) and \({\text {H}} ^{2}(\mathscr {T} ^{})\) norms as

$$\begin{aligned}&\left\| u_h\right\| _{{\text{DG}},{1}}^2 := \left\| \nabla _h u_h\right\| _{{\text {L}} ^{2}(\varOmega )}^2 + h^{-1} \left\| \llbracket u_h\rrbracket \right\| _{{\text {L}} ^{2}(\mathscr {E})}^2, \end{aligned}$$
(62)
$$\begin{aligned}&\left\| u_h\right\| _{{\text{DG}},{2}}^2 := \left\| \mathrm {D}^2_h u_h\right\| _{{\text {L}} ^{2}(\varOmega )}^2 + h^{-1} \left\| \llbracket \nabla _h u_h\rrbracket \right\| _{{\text {L}} ^{2}(\mathscr {E})}^2 + h^{-3} \left\| \llbracket u_h\rrbracket \right\| _{{\text {L}} ^{2}(\mathscr {E})}^2. \end{aligned}$$
(63)

These are equivalent to their continuous equivalent norms for functions in \(\mathbb {V}\).

Proposition 2

(Projection approximation in \(\mathbb {V}\)) Let \({\text {P}}_{k} :{\text {L}} ^{2}(\varOmega ) \rightarrow \mathbb {V}\) be the \({\text {L}} ^{2}(\varOmega )\) orthogonal projection operator defined by (51). Using standard approximation arguments, we have that

$$\left\{\begin{aligned} \begin{aligned} \left\| v - {\text {P}}_{k} v\right\| _{{\text{DG}},{1}}&\leqslant C h^k\left| v\right| _{{\text {H}} ^{k+1}(\varOmega )},\\ \left\| v - {\text {P}}_{k} v\right\| _{{\text {L}} ^{2}(\varOmega )}&\leqslant C h^{k+1}\left| v\right| _{{\text {H}} ^{k+1}(\varOmega )}. \end{aligned} \end{aligned}\right.$$
(64)

Lemma 4

(Stability of \(\varvec{H}\) [37, Theorem 4.10]) Let \(\varvec{H}\) be defined as in Example 1. Then the DG Hessian is stable in the sense that

$$\begin{aligned} \begin{aligned} \left\| \mathrm {D}^2_h v_h - \varvec{H}[v_h]\right\| _{{\text {L}} ^{2}(\varOmega )}^2&\leqslant C\!\left( {\int _\mathscr {E} h^{-1} \left| \llbracket \nabla _h v_h\rrbracket \right| ^2 + h^{-3} \left| \llbracket v_h\rrbracket \right| ^2 \,\mathrm {d}s }\right) . \end{aligned} \end{aligned}$$
(65)

Consequently, we have

$$\begin{aligned} \left\| \varvec{H}[v_h]\right\| _{{\text {L}} ^{2}(\varOmega )}^2 \leqslant C \left\| v_h\right\| _{{\text{DG}},{2}}^2. \end{aligned}$$
(66)

4 A Posteriori Analysis

The discrete bilinear form (49) only makes sense over \({\text {H}} ^{2}\!\left( {\mathscr {T} ^{}}\right) \times {\text {H}} ^{2}\!\left( {\mathscr {T} ^{}}\right)\). To allow for an a posteriori bound we require an extension to ensure the appropriate stability arguments can be applied. We require the bilinear form to be extended to \({\text {H}} ^{2}\!\left( {\mathscr {T} ^{}}\right) \times {\text {L}} ^{2}\!\left( {\varOmega }\right)\). To do this for \(\left( {u,v}\right) \in {\text {H}} ^{2}\!\left( {\mathscr {T} ^{}}\right) \times {\text {L}} ^{2}\!\left( {\varOmega }\right)\), we define

$$\begin{aligned} \mathscr {A} _h\!\left( {u,v}\right) := \int _\varOmega {\varvec{A}}{:}{\varvec{H}(u)} v + \int _\mathscr {E} \sigma h_e^{-1} \llbracket u\rrbracket \cdot \llbracket {\text {P}}_{k} v\rrbracket . \end{aligned}$$
(67)

Remark 7

Notice that the modified bilinear form (67) coincides with (49) over \(\mathbb {V}\times \mathbb {V}\) and that it satisfies

$$\begin{aligned} \mathscr {A} _h\!\left( {u,v}\right) \leqslant C \,|\!|\!| {{u}} |\!|\!|_{{\text{DG}},{2}} \left\| v\right\| _{{\text {L}} ^{2}(\varOmega )} \text { for } \!\left( {u,v}\right) \in \!\left( {{\text {H}} ^{2}\!\left( {\mathscr {T} ^{}}\right) \times {\text {L}} ^{2}(\varOmega )}\right) . \end{aligned}$$
(68)

Assumption 2

(Existence of an \({\text {H}} ^{2}\) reconstruction) We will assume there exists an operator \(\mathscr {R}: \mathbb {V}\rightarrow {\text {H}} ^{2}(\varOmega )\) such that

$$\begin{aligned} \,|\!|\!| {{\mathscr {R} (u_h) - u_h}} |\!|\!|_{{\text{DG}},{2}}^2 \leqslant C \!\left( { \left\| h^{-1/2}\llbracket \nabla u_h\rrbracket \right\| _{{\text {L}} ^{2}(\mathscr {E})}^2 + \left\| h^{-3/2}\llbracket u_h\rrbracket \right\| _{{\text {L}} ^{2}(\mathscr {E})}^2 }\right) . \end{aligned}$$
(69)

Such an example is given, for \(d=2\), in [26, Lem 3.1] and consists of averaging techniques onto macro-elements on the Hsieh-Clough-Tocher space or in [9], for \(d=3\), using virtual element spaces.

Proposition 3

(Abstract upper bound) Let \(u\in {\text {H}} ^{2}(\varOmega )\) solve (1), \(u_h\in \mathbb {V}\) be the finite element approximation given by (48) and \(\mathscr {R} (u_h)\in {\text {H}} ^{2}(\varOmega )\) be a post-processor satisfying (69). Then,

$$\begin{aligned}&\left\| u - \mathscr {R} (u_h)\right\| _{{\text {H}} ^{2}(\varOmega )} \nonumber \\& \leqslant \frac{1}{C} \sup _{v\in {\text {L}} ^{2}(\varOmega )} \frac{\bigg ( l(v) - \mathscr {A} _h\!\left( {u_h,v}\right) + \mathscr {A} _h\!\left( {u_h - \mathscr {R} (u_h),v}\right) + \mathscr {A} _h\!\left( {\mathscr {R} (u_h),v}\right) - \mathscr {A} \!\left( {\mathscr {R} (u_h),v}\right) \bigg ) }{\left\| v\right\| _{{\text {L}} ^{2}(\varOmega )}}. \end{aligned}$$
(70)

Proof

Making use of the Miranda-Talenti inequality [34, 39] and the inf-sup condition (16) we see that

$$\begin{aligned} C\left\| u - \mathscr {R} (u_h)\right\| _{{\text {H}} ^{2}(\varOmega )} \leqslant {\tilde{C}}\left\| \Delta \!\left( {u - \mathscr {R} (u_h)}\right) \right\| _{{\text {L}} ^{2}(\varOmega )} \leqslant \sup _{v\in {\text {L}} ^{2}(\varOmega )} \frac{\mathscr {A} \!\left( {u - \mathscr {R} (u_h),v}\right) }{\left\| v\right\| _{{\text {L}} ^{2}(\varOmega )}}. \end{aligned}$$
(71)

Now, adding and subtracting appropriate terms, we have

$$\begin{aligned} \mathscr {A} \!\left( {u - \mathscr {R} (u_h),v}\right)&= l(v - v_h) - \mathscr {A} _h\!\left( {u_h,v-v_h}\right) \nonumber \\&\quad +\mathscr {A} _h\!\left( {u_h - \mathscr {R} (u_h),v}\right) + \mathscr {A} _h\!\left( {\mathscr {R} (u_h),v}\right) - \mathscr {A} \!\left( {\mathscr {R} (u_h),v}\right), \end{aligned}$$
(72)

and the result follows.

Theorem 3

(A posteriori bound) Let \(u\in {\text {H}} ^{2}(\varOmega )\) solve (1) and \(u_h\in \mathbb {V}\) be the finite element approximation given by (48). Then

$$\begin{aligned} \,|\!|\!| {{u - u_h}} |\!|\!|_{{\text{DG}},{2}} \leqslant C \!\left( {\sum _{K\in \mathscr {T} ^{}}\eta _K^2 + \sum _{e\in \mathscr {E}}\eta _e^2}\right) ^{1/2}, \end{aligned}$$
(73)

where

$$\begin{aligned}&\eta _K^2 := \left\| f + {\varvec{A}}{:}{\varvec{H}(u_h)}\right\| _{{\text {L}} ^{2}(K)}^2, \end{aligned}$$
(74)
$$\begin{aligned}&\eta _e^2 := h_e^{-1} \left\| \llbracket \nabla u_h\rrbracket \right\| _{{\text {L}} ^{2}(e)}^2 + h_e^{-3} \left\| \llbracket u_h\rrbracket \right\| _{{\text {L}} ^{2}(e)}^2. \end{aligned}$$
(75)

Proof

Beginning from Proposition 3 we note that the bound can be split into a residual component \(\mathscr {I} _1\), a nonconformity component \(\mathscr {I} _2\) and an inconsistency component \(\mathscr {I} _3\) as follows:

$$\begin{aligned} \begin{aligned} \left\| u - \mathscr {R} (u_h)\right\| _{{\text {H}} ^{2}(\varOmega )}&\leqslant \frac{1}{C} \left( \sup _{v\in {\text {L}} ^{2}(\varOmega ), \left\| v\right\| _{{\text {L}} ^{2}(\varOmega )}\leqslant 1} \!\left( { l(v) - \mathscr {A} _h\!\left( {u_h,v}\right) }\right) \right. \\&\quad + \sup _{v\in {\text {L}} ^{2}(\varOmega ), \left\| v\right\| _{{\text {L}} ^{2}(\varOmega )}\leqslant 1} \mathscr {A} _h\!\left( {u_h - \mathscr {R} (u_h),v}\right) \\&\quad \left. + \sup _{v\in {\text {L}} ^{2}(\varOmega ), \left\| v\right\| _{{\text {L}} ^{2}(\varOmega )}\leqslant 1} \mathscr {A} _h\!\left( {\mathscr {R} (u_h),v}\right) - \mathscr {A} \!\left( {\mathscr {R} (u_h),v}\right) \right) \\&=: \mathscr {I} _1 + \mathscr {I} _2 + \mathscr {I} _3. \end{aligned} \end{aligned}$$
(76)

Now, we proceed to bound these term by term. In view of Cauchy-Schwartz, we have

$$\begin{aligned} \begin{aligned} \mathscr {I} _1&\leqslant \sup _{v\in {\text {L}} ^{2}(\varOmega ), \left\| v\right\| _{{\text {L}} ^{2}(\varOmega )}\leqslant 1}\int _\varOmega \!\left( {f - {\varvec{A}}{:}{\varvec{H}(u_h)}}\right) v \\&\leqslant \!\left( {\sum _{K\in \mathscr {T} ^{}} \left\| f - {\varvec{A}}{:}{\varvec{H}(u_h)}\right\| _{{\text {L}} ^{2}(K)}^2}\right) ^{1/2} . \end{aligned} \end{aligned}$$
(77)

For the nonconformity term, we note that

$$\begin{aligned} \mathscr {I} _2 \leqslant C \,|\!|\!| {{\mathscr {R} (u_h) - u_h}} |\!|\!|_{{\text{DG}},{2}} \leqslant C \!\left( { \sum _{e \in {K}} h_e^{-1} \left\| \llbracket \nabla _h v_h\rrbracket \right\| ^2_{{\text {L}} ^{2}(e)} + h_e^{-3} \left\| \llbracket v_h\rrbracket \right\| ^2_{{\text {L}} ^{2}(e)} }\right) ^{1/2}, \end{aligned}$$
(78)

by the properties of the reconstruction given in (69).

For the inconsistency term, we have that

$$\begin{aligned} \begin{aligned} \mathscr {I} _3&= \sup _{v\in {\text {L}} ^{2}(\varOmega ), \left\| v\right\| _{{\text {L}} ^{2}(\varOmega )}\leqslant 1} \frac{1}{C} \int _\varOmega {\varvec{A}}{:}{\!\left( {\varvec{H}(\mathscr {R} (u_h)) - \mathrm {D}^2\mathscr {R} (u_h)}\right) } v \\&\leqslant C \left\| \varvec{A}\right\| _{{\text {L}} ^{\infty }(\varOmega )} \left\| \varvec{H}(\mathscr {R} (u_h)) - \mathrm {D}^2\mathscr {R} (u_h)\right\| _{{\text {L}} ^{2}(\varOmega )} \\&\leqslant C \left\| \varvec{A}\right\| _{{\text {L}} ^{\infty }(\varOmega )} \bigg ( \left\| \varvec{H}(\mathscr {R} (u_h)) - \varvec{H}(u_h)\right\| _{{\text {L}} ^{2}(\varOmega )} + \left\| \varvec{H}(u_h) - \mathrm {D}^2_h u_h\right\| _{{\text {L}} ^{2}(\varOmega )} \\&\quad + \left\| \mathrm {D}^2_h u_h - \mathrm {D}^2\mathscr {R} (u_h)\right\| _{{\text {L}} ^{2}(\varOmega )} \bigg ). \end{aligned} \end{aligned}$$
(79)

Making use of Lemma 4 and the properties of the reconstruction (69), we see that

$$\begin{aligned} \begin{aligned} \left\| \varvec{H}(\mathscr {R} (u_h)) - \varvec{H}(u_h)\right\| _{{\text {L}} ^{2}(\varOmega )}&\leqslant C\,|\!|\!| {{\mathscr {R} (u_h) - u_h}} |\!|\!|_{{\text{DG}},{2}} \\&\leqslant C \!\left( { \sum _{e \in \mathscr {E}} h_e^{-1} \left\| \llbracket \nabla _h v_h\rrbracket \right\| ^2_{{\text {L}} ^{2}(e)} + h_e^{-3} \left\| \llbracket v_h\rrbracket \right\| ^2_{{\text {L}} ^{2}(e)} }\right) ^{1/2}. \end{aligned} \end{aligned}$$
(80)

Again from Lemma 4 we have that

$$\begin{aligned} \left\| \varvec{H}(u_h) - \mathrm {D}^2_h u_h\right\| _{{\text {L}} ^{2}(\varOmega )} \leqslant C \!\left( { \sum _{e \in \mathscr {E}} h_e^{-1} \left\| \llbracket \nabla _h v_h\rrbracket \right\| ^2_{{\text {L}} ^{2}(e)} + h_e^{-3} \left\| \llbracket v_h\rrbracket \right\| ^2_{{\text {L}} ^{2}(e)} }\right) ^{1/2}, \end{aligned}$$
(81)

and finally (69) gives that

$$\begin{aligned} \left\| \mathrm {D}^2_h u_h - \mathrm {D}^2\mathscr {R} (u_h)\right\| _{{\text {L}} ^{2}(\varOmega )} \leqslant C \!\left( { \sum _{e \in \mathscr {E}} h_e^{-1} \left\| \llbracket \nabla _h v_h\rrbracket \right\| ^2_{{\text {L}} ^{2}(e)} + h_e^{-3} \left\| \llbracket v_h\rrbracket \right\| ^2_{{\text {L}} ^{2}(e)} }\right) ^{1/2}. \end{aligned}$$
(82)

Hence, we have that

$$\begin{aligned} \begin{aligned} \mathscr {I} _3&\leqslant C \!\left( { \sum _{e \in \mathscr {E}} h_e^{-1} \left\| \llbracket \nabla _h v_h\rrbracket \right\| ^2_{{\text {L}} ^{2}(e)} + h_e^{-3} \left\| \llbracket v_h\rrbracket \right\| ^2_{{\text {L}} ^{2}(e)} }\right) ^{1/2}. \end{aligned} \end{aligned}$$
(83)

Collecting (77), (78) and (83) yields the desired result.

Proposition 4

(A posteriori lower bound) Using the notation of Theorem 3, through standard a posteriori techniques, we have a lower bound of the form

$$\begin{aligned} \eta _K + \sum _{e\in \partial K} \eta _e \leqslant C \!\left( {\left\| \mathrm {D}^2u - \varvec{H}[u_h]\right\| _{{\text {L}} ^{2}(\hat{K})} + \sum _{K\in \hat{K}} \eta _{I,K} }\right) , \end{aligned}$$
(84)

where

$$\begin{aligned} \eta _{I,K}^2 := \left\| \!\left( {P_{k-2}\varvec{A}- \varvec{A}}\right) : {\varvec{H}(u_h)}\right\| _{{\text {L}} ^{2}(K)}^2 + \left\| f - P_{k-2}f\right\| _{{\text {L}} ^{2}(K)}^2. \end{aligned}$$
(85)

5 Numerical Experiments

In this section, we detail numerical experiments carried out in the finite element package Dune-Fem [15] which is based on the Dune software framework [6, 7]. The code makes use of the newly developed Python frontend [15] and the unified form language [3] is used to provide the problem data. The code will be made freely available within the Dune-Fem-tutorial in a future release [13].

We present some benchmark problems designed such that the exact solution is known. In each of the experiments the domain \(\varOmega = [0,1]^2\) and we consider the coefficient matrix to be

$$\begin{aligned} \varvec{A}({\varvec{x}}) = \begin{bmatrix} 1 &{} b({\varvec{x}}) \\ b({\varvec{x}}) &{} a({\varvec{x}}) \end{bmatrix} \end{aligned}$$
(86)

varying \(a({\varvec{x}})\) and \(b({\varvec{x}})\). We study three different choices using \(\varvec{x} = \!\left( {x_1,x_2}\right)\) as follows.

  1. 1)

    (Coercive) In this test, we take the components of \(\varvec{A}\) such that the differential operator can be written in variational form and is coercive, fitting into a standard analytical framework:

    $$\begin{aligned} a(\varvec{x})&= 1-\ln \!\left( {\!\left( {x_1-1/2}\right) ^2+10^{{-4}}}\right), \end{aligned}$$
    (87)
    $$\begin{aligned} b(\varvec{x})&= 0. \end{aligned}$$
    (88)
  2. 2)

    (Continuous not \(H^2\)) In this test, we take \(\varvec{A}\) such that it is comparable to [32, §4.4]

    $$\begin{aligned} a(\varvec{x})&= 2, \end{aligned}$$
    (89)
    $$\begin{aligned} b(\varvec{x})&= \!\left( {x_1^2x_2^2}\right) ^{1/3}. \end{aligned}$$
    (90)
  3. 3)

    (Discontinuous not \(W^{1,\infty }\)) In our third test, a is discontinuous and not in \(W^{1,\infty }\). We take \(b\equiv 0\) and choose

    $$\begin{aligned} a(\varvec{x})=\alpha (|\varvec{x}|_\infty ) \end{aligned}$$
    (91)

    with

    $$\begin{aligned} \alpha (s)&= \frac{1}{100} + 1\,000 {\left\{ \begin{array}{ll} \sqrt{\frac{1}{4}-s}, &{} \text { if } s<\frac{1}{4}, \\ \cos {\uppi s}, &{} \text { otherwise. } \end{array}\right. } \end{aligned}$$
    (92)

    Note that the initial grid is chosen so that it aligns with the discontinuity.

We study the behaviour of our method for polynomial degrees \(k=1,2,3\), choosing the forcing such that the exact solution is given by the following two choices.

  1. 1)

    (Smooth solution): \(u(\varvec{x}) = \sin {2\uppi x_1} \sin {2\uppi x_2}\).

  2. 2)

    (\(H^2{\setminus } H^3\) solution): \(u(\varvec{x}) = {\left\{ \begin{array}{ll} \frac{1}{4}\Big (\cos {8\uppi \left| \varvec{x}-\frac{1}{2}\right| ^2}+1\Big ), &{} \text { if } \left| \varvec{x}-\frac{1}{2}\right| ^2 \leqslant \frac{1}{8}, \\ 0, &{} \text { otherwise. } \end{array}\right. }\)

The penalty parameter is chosen as \(\sigma = \lambda _{\varvec{A},{\mathrm {max}}} 5k(k+1)\) where \(\lambda _{\varvec{A},{\mathrm {max}}}\) is the maximum eigenvalue of \(\varvec{A}\).

Remark 8

(Compatibility of spaces for \(u_h\) and \(\varvec{H}(u_h)\)) Note that it is not actually required that the approximations \(u_h\) and \(\varvec{H}(u_h)\) are represented in the same finite element space. Computationally we observe similar results when \(\varvec{H}(u_h)\) is one degree lower than \(u_h\) and suboptimal convergence rates when \(\varvec{H}(u_h)\) is two orders lower than \(u_h\). Other choices do not appear to be stable.

Fig. 1
figure 1

Convergence rates for the error measured in \({\text {H}} ^{1}(\varOmega )\) and \({\text {L}} ^{2}(\varOmega )\) for \(k=1\) testing the case when u is either a prescribed smooth solution or \(u\in {\text {H}} ^{2}(\varOmega )/{\text {H}} ^{3}(\varOmega )\). We also test three different choices for diffusion coefficient \(\varvec{A}\) that are coercive, continuous but not \(H^2\) and discontinuous. The rates are optimal in \({\text {H}} ^{1}(\varOmega )\) in all cases and in \({\text {L}} ^{2}(\varOmega )\) in most cases. Note we did not present the \({\text {H}} ^{2}(\varOmega )\) rates nor the estimate since neither will converge for \(k=1\)

Fig. 2
figure 2

Convergence rates for the error measured in \({\text {H}} ^{2}(\varOmega )\), \({\text {H}} ^{1}(\varOmega )\) and \({\text {L}} ^{2}(\varOmega )\) for \(k=2\) and the estimator given in Theorem 3. We test the case when u is either a prescribed smooth solution or \(u\in {\text {H}} ^{2}(\varOmega )/{\text {H}} ^{3}(\varOmega )\). We also test three different choices for diffusion coefficient \(\varvec{A}\) that are coercive, continuous but not \(H^2\) and discontinuous. The rates are optimal in \({\text {H}} ^{2}(\varOmega )\) and \({\text {H}} ^{1}(\varOmega )\) in all cases and in \({\text {L}} ^{2}(\varOmega )\) in most cases. When the solution is not smooth the rates are slowed to an expected rate in-line with the regularity of u. In all cases, the estimate is efficient and robust

Fig. 3
figure 3

Convergence rates for the error measured in \({\text {H}} ^{2}(\varOmega )\), \({\text {H}} ^{1}(\varOmega )\) and \({\text {L}} ^{2}(\varOmega )\) for \(k=3\) and the estimator given in Theorem 3. We test the case when u is either a prescribed smooth solution or \(u\in {\text {H}} ^{2}(\varOmega )/{\text {H}} ^{3}(\varOmega )\). We also test three different choices for diffusion coefficient \(\varvec{A}\) that are coercive, continuous but not \(H^2\) and discontinuous. The rates are optimal in \({\text {H}} ^{2}(\varOmega )\) and \({\text {H}} ^{1}(\varOmega )\) in all cases and in \({\text {L}} ^{2}(\varOmega )\) in most cases. When the solution is not smooth the rates are slowed to an expected rate in-line with the regularity of u. In all cases, the estimate is efficient and robust.

Benchmarking for these tests is shown in Figs. 1, 2 and 3. For linear polynomials, the \({\text {H}} ^{2}(\mathscr {T} ^{})\)-error does not converge since the piecewise Hessian of \(u_h\) vanishes. So we only show the errors in the \({\text {L}} ^{2}(\varOmega )\) and \({\text {H}} ^{1}(\mathscr {T} ^{})\) norms. For the smooth solution (left column), we clearly see that the method converges optimally in both norms. While for the less smooth solution convergence is slowed as would be expected when approximating an \({\text {H}} ^{2}(\varOmega )\) solution. For polynomial orders 2 and 3 convergence is optimal for all norms studied here when approximating a smooth solution and between 1 and 1.5 for the \({\text {H}} ^{2}(\varOmega )\) solution. The convergence rate hardly depends on the smoothness of A. The only case where some clear dependency is visible is in the \({\text {L}} ^{2}(\varOmega )\) errors for quadratic polynomials with the discontinuous \(\varvec{A}\). In this case, the order of the \({\text {L}} ^{2}(\varOmega )\) error seems to equal the convergence in the \({\text {H}} ^{1}(\mathscr {T} ^{})\) norm, i.e., is not optimal (see Fig. 2).

We also study the condition number of the system matrix generated when assembling (49). The results are shown in Fig. 4. In contrast to many other methods, which rewrite the nonvariational model as a fourth-order problem, the condition number depends on the grid spacing in the same way as it does for second-order variational problem, i.e., it is \(O(h^{-2})\).

Fig. 4
figure 4

Condition number estimates of the system matrix given by (49). Notice that the condition number grows in the same asymptotic fashion as the IP-DG method for the Laplacian (\(\varvec{A}=\)Identity). Also, the complexity does not change asymptotically as k is increased

Finally, we study the behaviour of the residual error indicator and an adaptive scheme for the approximation of the solutions to these problems. The indicator is included in Figs. 2, 3 where its reliability is clearly visible. A comparison of these globally refined simulations with an adaptive simulation using an equal distribution strategy for locally refining the grid are given in Figs. 5 and 6. As to be expected, no advantage can be gained when approximating a smooth solution. For the \({\text {H}} ^{2}(\varOmega )\) solution, the adaptive simulation approximately doubles the convergence rate of the scheme.

Fig. 5
figure 5

Comparison of simulations carried out on adaptive and globally refined grids driven by the estimate from Theorem 3. We test the case when u is either a prescribed smooth solution or \(u\in {\text {H}} ^{2}(\varOmega )/{\text {H}} ^{3}(\varOmega )\) and when \(\varvec{A}\) is discontinuous. For the smooth solution, we find the uniform and adaptive schemes behave similarly, for the solution that is not \({\text {H}} ^{3}(\varOmega )\), the adaptive scheme clearly outperforms the uniform one, although there is no gain from using \(k=3\)

Fig. 6
figure 6

Convergence of estimator under adaptive and globally refined grids. Here, we consider the case when \(\varvec{A}\) is discontinuous, shown in Fig. 7a, and the forcing is chosen \(f=100\). No exact solution is known for this case. There is a clear indication that the adaptive scheme outperforms the uniform one

We conclude with a simulation for which we do not have an exact solution. We use the discontinuous \(\varvec{A}\) and choose a constant forcing \(f\equiv 1\,000\). As before boundary conditions are equal to zero. Results are shown in Fig. 6 where we show the convergence of the residual indicator under global and local refinement. A visualisation of the function a, the resulting discrete solution, and the adaptive grid are given in Fig. 7.

Fig. 7
figure 7

Visualisation of the problem coefficient, the solution and the underlying adaptive mesh refinement level. Notice the algorithm refines where the problem data are discontinuous and well as near boundary layers caused by the anisotropy of the diffusion tensor

6 Conclusions and Outlook

In this work, we have extended the framework from [32] for linear nonvariational problems to incorporate discontinuous approximations. We have derived a posteriori bounds for this problem and shown they are useful to drive adaptive algorithms. We would like to point out that the approach presented here can be directly applied to the case where the approximation \(u_h\) is chosen in a continuous finite element space but the finite element Hessian is defined in the discontinuous fashion described here.

In the numerical experiments, we note the method is well posed and converges optimally even for \(\varvec{A}\) that are discontinuous. The method is well suited to solve nonlinear problems [33] and this will be the topic of ongoing research.