Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

1 The Obstacle Problem

Throughout the paper we will use standard notations for Sobolev spaces, norms and seminorms. For a bounded domain D in \({\mathbb{R}}^{2}\), we denote by H s(D) the standard Sobolev space of order s ≥ 0, and by \(\|\cdot \|_{{H}^{s}(D)}\) and \(\left \vert \cdot \right \vert _{{H}^{s}(D)}\) the usual Sobolev norm and seminorm, respectively. For s = 0, we write L 2(D) instead of H 0(D). \(H_{0}^{1}(D)\) is the subspace of H 1(D) of functions with zero trace on \(\partial D\).

Let Ω be an open, bounded, convex set of \({\mathbb{R}}^{2}\), with either a polygonal or a C 2-smooth boundary \(\Gamma := \partial \Omega \). Let \(g :=\tilde{ g}_{\vert _{\Gamma }}\), with \(\tilde{g} \in {H}^{2}(\Omega )\) and we set \({V }^{g} :=\{ v \in {H}^{1}(\Omega ) :\ \ v = g\ \text{ on}\ \Gamma \}\). Let us introduce the bilinear form \(a(\cdot ,\cdot ) : {H}^{1}(\Omega ) \times {H}^{1}(\Omega )\rightarrow \mathbb{R}\) defined by \(a(u,v) := \int \limits _{\Omega }\nabla u \cdot \nabla v\mathrm{\,d}x\), and the linear functional \(F(\cdot ) : {H}^{1}(\Omega )\rightarrow \mathbb{R}\) with \(F(v) := \int \limits _{\Omega }f\ v\mathrm{\,d}x\), where we assume \(f \in {L}^{2}(\Omega )\). Finally, we define the function \(\psi \in {H}^{2}(\Omega )\) with ψ ≤ g on Γ and the convex space

$$K :=\{ v \in {V }^{g}\ :\ v \geq \psi \ \text{ a.e. in }\Omega \}.$$

We are interested in solving the following variational inequality:

$$\left \{\begin{array}{l} \mathrm{Find}\ u \in K\ \mathrm{such\ that}\\ a(u, v - u) \geq F(v - u)\qquad \forall v \in K.\end{array} \right.$$
(1)

It is well known (see e.g. [6]) that under the above data regularity assumption, the elliptic obstacle problem (1) admits a unique solution \(u \in {H}^{2}(\Omega )\).

2 The Mimetic Discretization

In this section we recall the mimetic discretization for the obstacle problem (1) (see [2] for more details). Let \(\Omega _{h} \subset \Omega \) be a polygonal approximation of Ω, in such a way that all vertexes of Ω h which are on the boundary of Ω h are also on the boundary of Ω. The polygonal domain Ω h represents the computational domain for the method. With a little abuse of notation, we also denote by Ω h a partition of the above introduced computational domain into polygons E. We assume that this partition is conformal, i.e., intersection of two different elements E 1 and E 2 is either a few mesh points, or a few mesh edges (two adjacent elements may share more than one edge) or empty. We allow Ω h to contain non-convex elements. Note moreover that, differently from conforming finite element meshes, T-junctions are now allowed in the mesh; indeed, this are included in the above conditions simply by splitting single edges into two new (aligned) edges. For each polygon E, k E denotes its number of vertexes, \(\vert E\vert\) its area, h E its diameter and

$$h :=\max _{E\in \Omega _{h}}h_{E}.$$

We denote the set of mesh vertexes and edges by \(\mathcal{N}_{h}\) and \(\mathcal{E}_{h}\), the set of internal vertexes and edges by \(\mathcal{N}_{h}^{0}\) and \(\mathcal{E}_{h}^{0}\), the set of boundary vertexes and edges by \(\mathcal{N}_{h}^{\partial }\) and \(\mathcal{E}_{h}^{\partial }\). The set of vertexes and edges of a particular element E are denoted by \(\mathcal{N}_{h}^{E}\) and \(\mathcal{E}_{h}^{E}\), respectively. Moreover, we denote a generic mesh vertex by \(\mathsf{v}\), a generic edge by \(\mathsf{e}\) and its length both by \(h_{\mathsf{e}}\) and \(\vert \mathsf{e}\vert \). A fixed orientation is also set for the mesh Ω h , which is reflected by a unit normal vector \(\mathbf{n}_{\mathsf{e}}\), \(\mathsf{e} \in \mathcal{E}_{h}\), fixed once for all. For every polygon E and edge \(\mathsf{e} \in \mathcal{E}_{h}^{E}\), we define a unit normal vector \(\mathbf{n}_{E}^{\mathsf{e}}\) that points outside E.

The mesh is assumed to satisfy the following shape regularity properties, which have already been used in [7]. There exist

  • An integer number N s independent of h;

  • A real positive number ρ independent of h;

  • A compatible sub-decomposition \(\mathcal{T}_{h}\) of every Ω h into shape-regular triangles,

such that

  1. (H1)

    Any polygon E ∈ Ω h admits a decomposition \(\mathcal{T}_{h}\vert _{E}\) formed by less than N s triangles;

  2. (H2)

    Any triangle \(T \in \mathcal{T}_{h}\) is shape-regular in the sense that the ratio between the radius r T of the inscribed ball and the diameter h T of T is bounded from below by ρ; i.e. \(0 < \rho \leq \frac{r_{T}} {h_{T}}\).

The discretization of problem (1) requires to discretize a scalar field in H 1(Ω). To this aim, we start introducing the degrees of freedom for the discrete approximation space. The discrete space V h is defined as follows: a vector \(v_{h} \in V _{h}\) consists of a collection of degrees of freedom

$$v_{h} :=\{ {v}^{\mathsf{v}}\}_{ \mathsf{v}\in \mathcal{N}_{h}},$$

one per mesh vertex, e.g. to every vertex \(\mathsf{v} \in \mathcal{N}_{h}\), we associate a real number \({v}^{\mathsf{v}}\). The scalar \({v}^{\mathsf{v}}\) represents the nodal value of the underlying discrete scalar field. The number of unknowns is equal to the number of vertexes of the mesh. We also define the discrete space \(V _{h}^{g} \subset V _{h}\) of functions which satisfy the Dirichlet boundary condition:

$$V _{h}^{g} :=\{ v_{ h} \in V _{h}\ :\ v_{h}^{\mathsf{v}} = g(\mathsf{v})\ \forall \mathsf{v} \in \mathcal{N}_{ h}^{\partial}\}.$$

Accordingly, \(V _{h}^{0}\) represents the space of discrete functions which vanish at the boundary nodes.

We define the following interpolation operator from the spaces of smooth enough functions to the discrete space V h . For every function \(v \in {\mathcal{C}}^{0}(\bar{\Omega }) \cap {H}^{1}(\Omega )\), we define \(v_{\text{ I}} \in V _{h}\) by

$$v_{\text{ I}}^{\mathsf{v}} := v(\mathsf{v})\quad \forall \mathsf{v} \in \mathcal{N}_{ h}.$$

Moreover, we analogously define the local interpolation operator from \({\mathcal{C}}^{0}(\bar{E}) \cap {H}^{1}(E)\) into \(V _{h}\vert _{E}\) given by

$$v_{\text{ I}}^{\mathsf{v}} := v(\mathsf{v})\quad \forall \mathsf{v} \in \mathcal{N}_{ h}^{E}.$$

We endow the space V h with the following discrete seminorm

$$\|v_{h}\|_{1,h}^{2} := \sum \limits _{E\in \Omega _{h}}\|v_{h}\|_{1,h,E}^{2} = \sum \limits _{E\in \Omega _{h}}\vert E\vert \sum \limits _{\mathsf{e}\in \mathcal{E}_{h}^{E}}{\left [ \frac{1} {\vert \mathsf{e}\vert }({v}^{\mathsf{v}_{2} } - {v}^{\mathsf{v}_{1} })\right ]}^{2},$$
(2)

where \(\mathsf{v}_{1}\) and \(\mathsf{v}_{2}\) are the two vertexes of \(\mathsf{e}\). The quantity \(\|\cdot \|_{1,h}\) is a \({H}^{1}(\Omega )\)-type discrete seminorm, which becomes a norm on V h 0. We denote by \(a_{h}(\cdot ,\cdot ) : V _{h} \times V _{h} \rightarrow \mathbb{R}\) the discretization of the bilinear form a( ⋅,  ⋅), defined as follows:

$$a_{h}(v_{h},w_{h}) := \sum \limits _{E\in \Omega _{h}}a_{h}^{E}(v_{ h},w_{h})\quad \forall v_{h},w_{h} \in V _{h},$$
(3)

where \(a_{h}^{E}(\cdot ,\cdot )\) is a symmetric bilinear form on each element E. We introduce two fundamental assumptions for the local bilinear form \(a_{h}^{E}(\cdot ,\cdot )\). The first one represents the coercivity (up to the kernel) and the correct scaling with respect to the element size.

  1. (S1)

    There exist two positive constants c 1 and c 2 independent of h such that, for every \(u_{h},v_{h} \in V _{h}\) and each \(E \in \Omega _{h}\), we have

    $$\begin{array}{rcl} c_{1}\|v_{h}\|_{1,h,E}^{2} \leq a_{ h}^{E}(v_{ h},v_{h}),\quad \qquad a_{h}^{E}(u_{ h},v_{h}) \leq c_{2}\|u_{h}\|_{1,h,E}\|v_{h}\|_{1,h,E}.& & \\ \end{array}$$
  2. (S2)

    For every element E, every linear vector function p 1 on E, and every \(v_{h} \in V _{h}\), it holds

    $$a_{h}^{E}(v_{ h},({p}^{1})_{ \text{ I}}) = \sum \limits _{\mathsf{e}\in \mathcal{E}_{h}^{E}}(\nabla {p}^{1} \cdot \mathbf{n}_{ E}^{\mathsf{e}})\frac{\vert \mathsf{e}\vert } {2} \big{(}v_{h}^{\mathsf{v}_{1} } + v_{h}^{\mathsf{v}_{2} }\big{)},$$
    (4)

    where \(\mathsf{v}_{1}\) and \(\mathsf{v}_{2}\) are the two vertexes of \(\mathsf{e} \in \mathbf{n}_{E}^{\mathsf{e}}\).

We remark that the meaning of the consistency condition ({ S2}) is that the discrete bilinear form respects integration by parts when tested with linear functions. The bilinear form \(a_{h}(\cdot ,\cdot )\) can be easily built element by element in a simple algebraic way; see for instance [2, 7]. Finally, we are able to define the proposed mimetic discrete method for the obstacle problem. Let the loading term

$$(f,v_{h})_{h} := \sum \limits _{E\in \Omega _{h}}\bar{f}\vert _{E}\sum \limits _{i=1}^{k_{E} }{v}^{\mathsf{v}_{i} }\omega _{E}^{i},$$
(5)

where \(\mathsf{v}_{1},\ldots ,\mathsf{v}_{k_{E}}\) are the vertexes of E, \(\bar{f}\vert _{E} := \frac{1} {\vert E\vert } \int \limits _{E}f\ \mathrm{d}x\), and \(\omega _{E}^{1},\ldots ,\omega _{E}^{k_{E}}\) are positive weights such that \(\sum \limits _{i=1}^{k_{E}}\omega _{E}^{i} =\vert E\vert\). Finally, let us introduce the discrete convex space

$$K_{h} :=\{ v_{h} \in V _{h}^{g}\ :\ v_{ h}^{\mathsf{v}} \geq \psi (\mathsf{v})\ \forall \mathsf{v} \in \mathcal{N}_{ h}\}.$$

Then, the mimetic discretization of problem (1) reads:

$$\left \{\begin{array}{l} \mathrm{Find}\ u_{h} \in K_{h}\ \mathrm{such\ that} \\ a_{h}(u_{h},v_{h} - u_{h}) \geq (f,v_{h} - u_{h})_{h}\qquad \forall v_{h} \in K_{h}.\end{array} \right.$$
(6)

Thanks to property (S1) it is immediate to check that the bilinear form \(a_{h}(\cdot ,\cdot )\) is coercive on \(V _{h}/\mathbb{R}\). As a consequence, recalling again that \(K_{h} \subset V _{h}\) is convex and closed, standard results [8] give the existence and uniqueness of a solution for the discrete problem (6). The following convergence result has been proved in [2].

Theorem 1.

Let \(u \in K \cap {H}^{2}(\Omega )\) be the solution to the continuous problem  (1) , and \(u_{h} \in K_{h}\) be the corresponding mimetic approximation, obtained by solving the discrete problem  (6) . Then, it holds

$$\|u_{h} - u_{\text{ I}}\|_{1,h} \leq Ch,$$

where the constant C is independent of the mesh-size h.

3 An Adaptive MFD Algorithm

In this section we extend the h-adaptive MFD algorithm presented in [3] to the case of the obstacle problem (1). The adaptive procedure, based on a posteriori error indicator of hierarchical type, has the following form:

$$\mathbf{\mathtt{SOLVE}} \rightarrow \mathbf{\mathtt{ESTIMATE}} \rightarrow \mathbf{\mathtt{MARK}} \rightarrow \mathbf{\mathtt{REFINE}}.$$

Here SOLVE computes the discrete solution to (6). The module ESTIMATE makes use of a suitable fluctuation problem (cf. (12) below) to build the hierarchical error indicators, while the procedure MARK employs the fixed fraction strategy, with refinement fraction set to 30 %, to make a selection of the elements to be refined. Finally, the module REFINE uses the strategy described in Sect. 3.1 to subdivide elements marked for refinement. In the next two sections we will briefly describe the modules \(\mathbf{\mathtt{REFINE}}\) and \(\mathbf{\mathtt{ESTIMATE}}\).

3.1 Mesh Refinement

Given a mesh Ω h we can build a uniformly refined mesh \(\widehat{\Omega }_{h}\) as follows. We start assuming that

  1. (H3)

    All polygons E ∈ Ω h are convex.

Then, we introduce the point \(\mathbf{x}_{E} \in E\)

$$\mathbf{x}_{E} := \frac{1} {N}\sum \limits _{\mathsf{v}\in \partial E}\mathbf{x}(\mathsf{v})\ ,$$
(7)

where N is the number of vertexes in \(\partial E\) and \(\mathbf{x}(\mathsf{v})\) is the position vector of node \(\mathsf{v} \in \mathcal{N}\).

Remark 1.

We remark that assumption (H3) is made essentially for the sake of exposition. What follows can be adapted to cover more general cases such as, for instance, elements which are star shaped with respect to a ball. In particular, (7) has to be modified to define an interior point, and (10) has to be changed, for \(\mathsf{v} = \mathbf{x}_{E}\), in such a way that the operator preserves the linear functions.

The uniformly refined mesh \(\widehat{\Omega }_{h}\) is built by subdividing each element E of Ω h in the following way: each midpoint \(\mathsf{m} = \mathsf{m}(e)\) of each edge \(e \in \partial E\) is connected with the point x E . This determines a subdivision of E into sub-elements which are collected for all \(E \in \Omega _{h}\) to form the new mesh \(\widehat{\Omega }_{h}\) (see Fig. 1). In the following, we will indicate all geometrical objects of the finer grid \(\widehat{\Omega }_{h}\) with a hat symbol, the meaning being the same as in the original mesh. For instance, we will indicate with \(\widehat{E}\) a generic element of \(\widehat{\Omega }_{h}\), and with \(\widehat{\mathcal{N}_{h}}\) the set of all its vertexes. Note that

$$\widehat{\mathcal{N}_{h}} = \mathcal{N}_{h} \cup \{\mathsf{m}(e)\}_{e\in \mathcal{E}}\cup \{\mathbf{x}_{E}\}_{E\in \Omega _{h}},$$

i.e. the edge midpoints \(\mathsf{m}(e)\) and the points \(\mathbf{x}_{E}\) become additional vertexes in the new mesh \(\widehat{\Omega }_{h}\). In addition, \(\widehat{h}\) will denote the mesh-size of the finer mesh \(\widehat{\Omega }_{h}\), i.e. \(\widehat{h} =\max _{\widehat{E}\in \widehat{\Omega }_{h}}h_{\widehat{E}}\).

Fig. 1
figure 1

Refinement strategy: coarse element E ∈ Ω h and sub-elements \(\widehat{E} \in \widehat{\Omega }_{h}\). Circles denote the coarse vertexes, while diamonds refer to additional vertexes in the finer mesh

3.2 Hierachical Error Indicators

Following the construction given in Sect. 2, we can introduce the finer discrete spaces \(\widehat{V }_{h}\) and \(\widehat{K}_{h}\) associated to the mesh \(\widehat{\Omega }_{h}\), a bilinear form \(\widehat{a}_{h}(\cdot ,\cdot ) : \widehat{V }_{h} \times \widehat{V }_{h} \rightarrow \mathbb{R}\) and a suitable loading term, so that the finer version of the coarse discrete problem (6) reads as follows

$$\left \{\begin{array}{ll} &\mathrm{Find}\ \widehat{u}_{h} \in \widehat{K}_{h}\ \mathrm{such\ that} \\ &\widehat{a}_{h}(\widehat{u}_{h},v_{h} -\widehat{u}_{h}) \geq (f,v_{h} -\widehat{u}_{h})_{\widehat{h}}\qquad \forall v_{h} \in \widehat{K}_{h}. \end{array} \right.$$
(8)

We now introduce two operators that maps the finer space into the coarser one and viceversa. Let \(\Pi : \widehat{V }_{h} \rightarrow V _{h}\) be defined by

$$\big{(}\Pi (v_{h})\big{)}(\mathsf{v}) = v_{h}(\mathsf{v})\quad \forall \mathsf{v} \in \mathcal{N}_{h},\ \forall v_{h} \in \widehat{V }_{h}.$$
(9)

Given any midpoint \(\mathsf{m} = \mathsf{m}(e)\), \(e \in \mathcal{E}_{h}\), we indicate with \(\mathsf{v}_{\mathsf{m}}\) and with \(\mathsf{v}_{\mathsf{m}} \prime\) the two vertexes which are endpoints to the edge e. We then define \({\Pi }^{\dag } : V _{h} \rightarrow \widehat{V }_{h}\) by

$$\big{(}{\Pi }^{\dag }(v_{ h})\big{)}(\mathsf{v}) = \left \{\begin{array}{ll} v_{h}(\mathsf{v})\quad &\forall \mathsf{v} \in \mathcal{N}_{h} \\ \frac{1} {2}\big{(}v_{h}(\mathsf{v}_{\mathsf{m}}) + v_{h}(\mathsf{v}_{\mathsf{m}} \prime)\big{)}\quad &\mathrm{if}\,\,\,\mathsf{v} = \mathsf{m}(e),\ e \in \mathcal{E} \\ \frac{1} {N}\sum \limits _{\mathsf{v}\in \partial E}v_{h}(\mathsf{v})\quad &\mathrm{if}\,\,\,\mathsf{v} = \mathbf{x}_{E},\ E \in \Omega _{h}, \end{array} \right.$$
(10)

for all \(v_{h} \in V _{h}\). The operator \({\Pi }^{\dag }\) embeds the coarse space V h into the finer space \(\widehat{V }_{\!h}\) by averaging the coarse vertex values. We denote by \(\widehat{V }_{h}^{c}\) the subspace of \(\widehat{V }_{\!h}\) given by the image of \({\Pi }^{\dag }\) and we refer to it as to the embedded coarse space. Finally, we introduce the fluctuation space

$$\widehat{V }_{h}^{f} =\{ v_{ h} \in \widehat{V }_{h}\:\vert \:v_{h}(\mathsf{v}) = 0\ \forall \mathsf{v} \in \mathcal{N}_{h}\}.$$

It is immediate to check that

$$\widehat{V }_{h} = \widehat{V }_{h}^{c} \oplus \widehat{V }_{ h}^{f}.$$

Let \(\|\cdot \|_{1,\widehat{h}}\) and \(\|\cdot \|_{1,\widehat{h},\widehat{E}}\), \(\widehat{E} \in \widehat{V }_{h}\), denote the global and local norms of the finer space \(\widehat{V }_{h}\) (cf. (2)). Accordingly, we indicate with \(\|\cdot \|_{1,\widehat{h},E}\) the norm of the fine space restricted to the coarse element E ∈ Ω h

$$\|v_{h}\|_{1,\widehat{h},E}^{2} = \sum \limits _{\widehat{E}\in E}\|v_{h}\|_{1,\widehat{h},\widehat{E}}^{2}\quad \forall v_{ h} \in \widehat{V }_{h}.$$

For all \(E \in \Omega _{h}\), we can define a bilinear form \(a_{h}^{E}(\cdot ,\cdot )\) on the coarse space V h as follows

$$a_{h}^{E}(v_{ h},w_{h}) := \sum \limits _{\widehat{E}\in E}\widehat{a}_{h}^{\widehat{E}}({\Pi }^{\dag }(v_{ h}),{\Pi }^{\dag }(w_{ h}))\quad \forall v_{h},w_{h} \in V _{h}.$$
(11)

Similarly, we can also define a loading term

$$(f,v_{h})_{h} = \sum \limits _{E\in \Omega _{h}}\sum \limits _{\widehat{E}\in E}(f,{\Pi }^{\dag }(v_{ h}))_{\widehat{h},\widehat{E}}$$

where \((f,\cdot )_{\widehat{h},\widehat{E}}\) represents a local scalar product on the fine mesh constructed analogously to (5).

Inspired by Zou et al. [10] (see also [1, 4, 5]) we introduce the following fluctuation discrete problem:

$$\left \{\begin{array}{ll} &\mathrm{Find}\ \widehat{e}_{h}^{f} \in \widehat{K}_{h}^{f}\ \mathrm{such\ that} \\ &\widehat{a}_{h}(\widehat{e}_{h}^{f},v_{h}^{f} -\widehat{e}_{h}^{f}) \geq (f,v_{h}^{f} -\widehat{e}_{h}^{f})_{\widehat{h}} -\widehat{a}_{h}({\Pi }^{\dag }u_{h},v_{h}^{f} -\widehat{e}_{h}^{f})\ \ \forall v_{h}^{f} \in \widehat{K}_{h}^{f}\ , \end{array} \right.$$
(12)

where

$$\widehat{K}_{h}^{f} =\{ v_{ h}^{f} \in \widehat{V }_{ h}^{f}\ :\ v_{ h}^{f}(\mathsf{v}) \geq \psi (\mathsf{v}) - {\Pi }^{\dag }u_{ h}(\mathsf{v})\quad \forall \mathsf{v} \in \widehat{\mathcal{N}_{h}} \setminus \mathcal{N}_{h}\}.$$

Note that the right-hand side in (12) is the residual of the approximate solution u h when tested with the fluctuation space \(\widehat{K}_{h}^{f}\). The local heuristic error indicators are \(\eta _{E} := \sum \limits _{\widehat{E}\in E}\|\widehat{e}_{h}^{f}\|_{1,\widehat{h},\widehat{E}}^{2}\) being \(\widehat{e}_{h}^{f}\) the solution of problem (12), while we set \({\eta }^{2} = \sum \limits _{E\in \Omega _{h}}\eta _{E}^{2}\). The quantities η E , computed in the module \(\mathbf{\mathtt{ESTIMATE}}\), are employed by the procedure \(\mathbf{\mathtt{MARK}}\) to select the elements of the mesh Ω h to be refined. We refer to [3] (where a similar approach has been employed for the solution of linear elliptic problems) for more details on the construction of possible inexpensive heuristic variants of the error indicators η E .

3.3 Numerical Results

Next we investigate the numerical performance of our adaptive MFD method. We consider the domain \(\Omega =]-1,1{[}^{2}\). For the parameter r = 0. 7, we define the (continuous) load

$$f(x,y) := \left \{\begin{array}{ll} - 8(2{x}^{2} + 2{y}^{2} - {r}^{2}) &\mathrm{if}\sqrt{{x}^{2 } + {y}^{2}} > r, \\ - 8{r}^{2}(1 - {x}^{2} - {y}^{2} + {r}^{2})&\mathrm{if}\sqrt{{x}^{2 } + {y}^{2}} \leq r,\\ \end{array} \right.$$
(13)

and the Dirichlet boundary data \(g(x,y) := {({x}^{2} + {y}^{2} - {r}^{2})}^{2}\). We consider a constant obstacle ψ(x, y) : = 0, so that the exact minimizer of model problem (1) is given by

$$u(x,y) := {(\max \{{x}^{2} + {y}^{2} - {r}^{2},0\})}^{2};$$
(14)

cf. [9].

In Fig. 2 we report the first four levels of meshes generated by the adaptive algorithm employing the fixed fraction marking strategy. We observe that the mesh is correctly refined along the boundary of the contact region and not in its interior where the solution (equal to the obstacle) is indeed smooth. In Fig. 3 the error estimator computed on the sequence of the adaptively generated meshes together with the actual error in the discrete energy norm and the error \(\|u - {\Pi }^{\dag }u_{h}\|_{1,\widehat{h}}\) are plotted as a function of the number of degrees of freedom (loglog-scale).

Fig. 2
figure 2

First four levels of computational meshes generated by the adaptive refinement strategy employing the fixed fraction marking strategy

Fig. 3
figure 3

Left: actual errors and error indicator versus the number of degrees of freedom (loglog-scale). The adaptive meshes are constructed by employing the fixed fraction marking strategy. Right: adaptive approximate solution after four iterations