1 Introduction

When considering polyhedral domains, the solution of the Stokes equations

$$\begin{aligned} -\nu \Delta {\varvec{u}} + \nabla p&= {\varvec{f}}, \end{aligned}$$
(1a)
$$\begin{aligned} \nabla \cdot {\varvec{u}}&= 0, \end{aligned}$$
(1b)

shows in general singular behavior near corners and edges. On quasi-uniform meshes, this leads to sub-optimal performance of standard numerical methods, which can be remedied by local mesh refinement near the singular sections of the boundary. Isotropic refinement can compensate the negative effect of the singular solution, but also leads to over-refinement near edges and thus a waste of computational resources. Anisotropic refinement on the other hand can recover the optimal convergence rate [6, 11, 12], while the number of elements N in the mesh still satisfies \(N \sim h^{-3}\), where h is the mesh size parameter.

Unfortunately, many classical mixed methods do not fulfill the discrete inf-sup stability condition independently of the aspect ratio of the triangulation, which may be unbounded in the case of anisotropic grading. For instance, the standard proof of the inf-sup condition for the Taylor–Hood and Mini-element leads to a constant that depends on the aspect ratio. While for the lowest order Taylor–Hood pair a new proof has been found recently that shows inf-sup stability on a class of anisotropic meshes [13], the Mini-element is reported to become unstable with decreasing minimum angle in the triangulation [2].

However, several inf-sup stable methods are known for anisotropic triangulations in two dimensions, e.g. the Bernardi–Raugel and related elements [10] and the stabilized \(Q_1/Q_1\), \(Q_1/Q_0\) and rotated \(\tilde{Q}_1/P_0\) elements for quadrilaterals [14, 15]. Additionally, results are available for the hp-version finite element method, see e.g. [4, 5, 36]. The Crouzeix–Raviart element [18], which we will focus on in this contribution, is inf-sup stable on simplicial triangulations in two and three dimensions, without any condition on the mesh [12, Lemma 3.1].

In addition to its low regularity near concave edges, the velocity solution of the Stokes problem is not affected by changes in form of gradient fields on the right hand side. This property leads to the notion velocity-equivalence of forces, i.e. \({\varvec{f}}_1, {\varvec{f}}_2 \in {\varvec{L}}^2(\Omega )\) are velocity-equivalent, \({\varvec{f}}_1 \simeq {\varvec{f}}_2\), if they lead to the same velocity solution of (1), see [23]. That is the case if and only if they differ by a gradient field, see e.g. [3, 27, 31]. Reproducing this continuous property on the discrete level poses an additional difficulty for discretization schemes, and most classical methods do not overcome it. In fact, error estimates for classical \({\varvec{H}}^1\)-conforming methods are in general of the form, see e.g. [24, 27],

$$\begin{aligned} \parallel {{\varvec{u}}-{\varvec{u}}_h}\parallel _{1} \le 2(1+C_F) \inf _{{\varvec{v}}_h\in {\varvec{X}}_h} \parallel {{\varvec{u}}-{\varvec{v}}_h}\parallel _{1} + \frac{1}{\nu } \inf _{q_h\in Q_h} \parallel {p - q_h}\parallel _{0}, \end{aligned}$$
(2)

where \(\parallel {\cdot }\parallel _k\) is the standard \({\varvec{H}}^k(\Omega )\)-Sobolev norm and \(C_F\) is the stability constant of the Fortin operator of the mixed method. Some divergence-free \({\varvec{H}}^1\)-conforming methods exist, e.g. the Scott–Vogelius element, see [39], and the rational bubble enriched methods from [25, 26], where the error estimate does not contain the second, pressure-dependent term, for more references see also [27]. For the non-divergence-free methods however, this type of estimate implies that in settings where the continuous pressure is more difficult to approximate compared to the velocity, the velocity approximation can be highly inaccurate.

Consider for example a hydrostatic case where the exact velocity is given as \({\varvec{u}}\equiv {\varvec{0}}\) and the continuous pressure is a polynomial of order k. Then for classical methods using piecewise polynomials of order less than k for the pressure approximation, in general inaccurate discrete velocity solutions \({\varvec{u}}\not \equiv {\varvec{0}}\) and a locking effect for \(\nu \rightarrow 0\) can be observed, where the errors may become arbitrarily large. In contrast, so called pressure-robust methods, i.e. methods that see the velocity-equivalence of forces, yield the exact velocity solution, even for lowest-order mixed methods with piecewise constant pressure approximation, see [23, Section 2.5].

Additionally to the naturally pressure-robust class of \({\varvec{H}}({\text {div}})\)-conforming finite element methods, see e.g. [16, 37, 38], and the already mentioned divergence-free \({\varvec{H}}^1\)-conforming methods from [25, 26, 39], a recent approach using a reconstruction operator on the velocity test functions in the linear form showed that most classical mixed methods can be made pressure-robust at the cost of an additional consistency error, see e.g. [27, 28, 30]. In [9] the pressure-robust modified Crouzeix–Raviart element was analyzed on anisotropic triangulations, using the assumption of a regular solution, i.e. \(({\varvec{u}},p)\in {\varvec{H}}^2(\Omega ) \times H^1(\Omega )\). In this article we extend those results to the case of domains with concave edges and low regularity of the exact solutions. Recently in [31], the reconstruction approach was investigated with minimal assumptions on the regularity of the solution, but without admitting the use of anisotropic triangulations.

The main contribution of this paper is a pressure-robust estimate for the velocity solution of the modified Crouzeix–Raviart method in low-regularity settings due to non-smooth domains. The estimate shows that when appropriate anisotropic mesh grading towards a non-convex edge is used, an optimal convergence rate can be achieved by the pressure robust method. We provide an estimate on the pressure error for the modified method in the anisotropic setting as well. Numerical examples support the theoretical results, and show that in cases with low regularity data the pressure-robust variants can be superior to the standard method.

The article is structured as follows. Section 2 introduces the problem and basic notation. The type of mesh and the modified Crouzeix–Raviart method is described in Sect. 3, and Sect. 4 shows some aspects of the Helmholtz–Hodge decomposition of vector fields which are important to the analysis. Section 5 contains the a-priori error analysis, Sect. 6 shows the performance of the method with the help of two numerical examples.

2 Continuous Stokes problem

Consider a prismatic domain \(\Omega = G \times Z\), where G is a polygonal shape with one concave corner at which the interior angle is \(\omega \in (\pi , 2\pi )\), and Z is a bounded interval. To facilitate notation we assume that the non-convex corner of G is placed at the origin, i.e. the relevant edge of \(\Omega \) is located on the z-axis. On the domain \(\Omega \), consider the incompressible Stokes equations (1) with homogeneous Dirichlet boundary condition

$$\begin{aligned} {\varvec{u}} = 0 \quad \text {on } \partial \Omega , \end{aligned}$$

where \(\nu \) is the kinematic viscosity and vector valued quantities are denoted in bold symbols. For \({\varvec{f}} \in {\varvec{L}}^2(\Omega )\), the corresponding weak formulation given by

$$\begin{aligned} \nu (\nabla {\varvec{u}},\nabla {\varvec{v}}) - (\nabla \cdot {\varvec{v}},p)&= ({\varvec{f}},{\varvec{v}})&\forall {\varvec{v}}\in {\varvec{X}}, \end{aligned}$$
(3a)
$$\begin{aligned} (\nabla \cdot {\varvec{u}},q)&= 0&\forall q\in Q, \end{aligned}$$
(3b)

has a unique solution \(({\varvec{u}},p) \in {\varvec{X}}\times Q\), see e.g. [24, Section I.5.1], where

$$\begin{aligned}&{\varvec{X}} = {\varvec{H}}^1_0(\Omega ) = \{{\varvec{v}} \in {\varvec{H}}^1(\Omega ): {\varvec{v}} = 0 \text { on } \partial \Omega \},\\&Q = L^2_0(\Omega ) = \{q\in L^2(\Omega ): \begingroup \textstyle \int \endgroup _\Omega q = 0 \}, \end{aligned}$$

and \((\cdot ,\cdot )\) denotes the \({\varvec{L}}^2(\Omega )\) scalar product. With the space of divergence-free functions

$$\begin{aligned} {\varvec{V}}^0 = \{{\varvec{v}}\in {\varvec{X}} : (\nabla \cdot {\varvec{v}}, q) = 0 \quad \forall q\in Q\}, \end{aligned}$$

we can reformulate the problem, see [24, Section I.5.1]: find \({\varvec{u}}\in {\varvec{V}}^0\), so that

$$\begin{aligned} \nu (\nabla {\varvec{u}},\nabla {\varvec{v}}) = ( {\varvec{f}},{\varvec{v}} ) \quad \forall {\varvec{v}}\in {\varvec{V}}^0. \end{aligned}$$

Additionally to the well known Stokes theory, see e.g. [24], which states the regularity of the solution in the Hilbert space case as above, Theorem 2.1 in [22] classifies the solution in a more general setting: for \({\varvec{f}}\in {\varvec{W}}^{-1,q}(\Omega )\) and appropriate regularity of the boundary condition we have \(({\varvec{u}},p) \in {\varvec{W}}^{1,q}(\Omega )\times L_0^q(\Omega )\), with \(1<q<\infty \).

For the special case of convex prismatic polyhedral domains, we can assume that the solution of problem (3) satisfies \(({\varvec{u}},p) \in {\varvec{H}}^2(\Omega ) \times H^1(\Omega )\), see [19]. This is in general not the case for non-convex geometries like the ones we are considering, but Theorem 2.1 in [12] gives a regularity result for our case in weighted Sobolev spaces. In particular, the derivatives of the solution in the direction parallel to the concave edge have the standard regularity, i.e. \(\partial _z {\varvec{u}} \in {\varvec{H}}^1(\Omega )\) and \(\partial _z p \in L^2(\Omega )\). The global regularity of \({\varvec{u}}\) is however characterized by \(r^\lambda \), where r is the distance to the singular edge and \(\lambda \) is the smallest positive solution of

$$\begin{aligned} \sin (\lambda \omega ) = -\lambda \sin (\omega ), \end{aligned}$$
(4)

for which \(\nicefrac {1}{2}< \lambda < \nicefrac {\pi }{\omega }\) holds, see [19].

3 Discretization

Fig. 1
figure 1

Example mesh with anisotropic grading towards the concave edge

Figure 1 shows the type of anisotropically graded tensor-product mesh used for the discretization of the problem, and we briefly describe the process of mesh generation in the following paragraph. This type of mesh was introduced in [7] for the treatment of edge singularities that occur in the Poisson problem, and was used in subsequent works also for the Stokes and Maxwell equations [11, 12, 21, 35].

Let \(\mathcal {D}_h\) be a conforming, shape regular triangulation of the two-dimensional domain G, which has a mesh size parameter \(h= \max _{D\in \mathcal {D}_h} h_D\), where \(h_D ={{\text {diam}}\,}(D)\). This mesh is graded towards the non-convex corner, so that the size of every element satisfies

$$\begin{aligned} h_D \sim {\left\{ \begin{array}{ll} h^{\nicefrac {1}{\mu }}, &{}\text {if } r_D = 0, \\ h r_D^{1-\mu }, &{}\text {if } 0<r_D<R, \\ h, &{}\text {else}, \end{array}\right. } \end{aligned}$$

where \(r_D=\inf _{{\varvec{x}}\in D}\{{{\text {dist}}}({\varvec{x}}, {\varvec{0}})\}\) is the distance of an element \(D\in \mathcal {D}_h\) to the concave corner, \(\mu \in (0,1]\) is a grading parameter and \(R>0\) is the radius of the refinement zone. The graded two dimensional mesh is extended into the z-direction with uniform mesh size \(h_3 \sim h\). The resulting prisms are subdivided into tetrahedra, which form the simplicial mesh \(\mathcal {T}_h\). With \(r_T\) being the distance of an element \(T\in \mathcal {T}_h\) to the z-axis and \(h_{1,T}\), \(h_{2,T}\), and \(h_{3,T}\) the length of the projection on the x-, y-, and z-axis, respectively, the procedure yields a mesh where

$$\begin{aligned} h_{3,T} \sim h,\quad h_{1,T} \sim h_{2,T} \sim {\left\{ \begin{array}{ll} h^{\nicefrac {1}{\mu }}, &{}\text {if } r_T = 0, \\ h r_T^{1-\mu }, &{}\text {if } 0<r_T<R, \\ h, &{}\text {else}, \end{array}\right. } \end{aligned}$$

and the number of elements satisfies \(N \sim h^{-3}\). By \({\mathcal {F}(\mathcal {T}_h)}\) we denote the set of facets of the mesh \(\mathcal {T}_h\).

Remark 1

By construction, this type of tensor-product mesh satisfies a maximum angle condition, i.e. all angles between edges and faces of the triangulation are bounded by a constant \(\bar{\psi } < \pi \). The subsequent analysis depends on this regularity assumption on the tetrahedra, which means that meshes like the ones used in [29], where the maximum angle condition is violated, can not easily be included in the theory.

Our discretization is nonconforming, thus we need tools to handle potential discontinuities at the interfaces. Let \([\![{{\varvec{v}}}]\!]_F\) be the jump of a function \({\varvec{v}}\) over a facet F, which is defined for an interior facet belonging to two elements \(T_1\) and \(T_2\) by

$$\begin{aligned}{}[\![{{\varvec{v}}}]\!]_F({\varvec{x}})&= {\varvec{v}}|_{T_1}({\varvec{x}}) - {\varvec{v}}|_{T_2}({\varvec{x}}), \end{aligned}$$

see e.g. [20, Section 1.2.3]. On boundary facets we set \([\![{{\varvec{v}}}]\!]_F = {\varvec{v}}\). For the velocity approximation we use the Crouzeix–Raviart finite element function space

$$\begin{aligned} {\varvec{X}}_h = \{{\varvec{v}}_h\in {\varvec{L}}^2(\Omega ) : {\varvec{v}}_{h}|_T \in {\varvec{P}}_1(T)\quad \forall T\in \mathcal {T}_h,\ [\![{{\varvec{v}}_h}]\!]_F({\varvec{x}}_F) = 0\quad \forall F \in {\mathcal {F}(\mathcal {T}_h)}\}, \end{aligned}$$

which was introduced in [18], and where \({\varvec{x}}_F\) is the barycenter of a facet F. The pressure is approximated in the space of piecewise constants

$$\begin{aligned} Q_h = \{q_h\in Q : q_{h}|_T \in P_0(T)\quad \forall T \in \mathcal {T}_h\}, \end{aligned}$$

where \(P_k(T)\) denotes the space of all polynomials with maximal degree k on the element T. We also need the broken gradient \(\nabla _h:{\varvec{X}}\oplus {\varvec{X}}_h\rightarrow L^2(\Omega )^{d\times d}\) and the broken divergence \(\nabla _h\cdot (\cdot ) : {\varvec{X}}\oplus {\varvec{X}}_h\rightarrow L^2(\Omega )\), which define the derivatives elementwise for all \(T\in \mathcal {T}_h\) by

$$\begin{aligned} (\nabla _h{\varvec{v}}_h)|_T&= \nabla ({\varvec{v}}_h|_T), \\ (\nabla _h\cdot {\varvec{v}}_h)|_T&= \nabla \cdot ({\varvec{v}}_h|_T), \end{aligned}$$

and which are on \({\varvec{X}}\) equivalent to the standard operators, see e.g. [20, Sections 1.2.5, 1.2.6]. The discrete gradient norm for the space \({\varvec{X}}\oplus {\varvec{X}}_h\) is defined by

$$\begin{aligned} \parallel {{\varvec{v}}_h}\parallel _{1,h} = \left( \int _\Omega \nabla _h{\varvec{v}}_h : \nabla _h{\varvec{v}}_h\right) ^{\nicefrac {1}{2}} = \parallel {\nabla _h {\varvec{v}}_h}\parallel _0. \end{aligned}$$

For the next part we need the function spaces

$$\begin{aligned} {{\varvec{H}}({\text {div}},\Omega )}&= \{ {\varvec{v}} \in {\varvec{L}}^2(\Omega ) : \nabla \cdot {\varvec{v}} \in L^2(\Omega ) \}, \\ {{\varvec{H}}_0({\text {div}},\Omega )}&= \{{\varvec{v}} \in {{\varvec{H}}({\text {div}},\Omega )}: {\varvec{v}}\cdot {\varvec{n}} = 0 \text { on } \partial \Omega \}, \end{aligned}$$

where \({\varvec{n}}\) denotes the unit outward normal vector on \(\partial \Omega \). Our discretization uses a reconstruction operator on the velocity test functions in the linear form, and in order to yield a pressure-robust method the operator needs to satisfy some properties, see e.g. [17, 30, 31], which we summarize in the following assumption.

Assumption 1

Assume there is a reconstruction operator \({I_h}:{\varvec{X}}\oplus {\varvec{X}}_h \rightarrow {\varvec{Y}}_h\), where \({\varvec{Y}}_h \subset {{\varvec{H}}_0({\text {div}},\Omega )}\), so that for all \({\varvec{v}}_h \in {\varvec{X}}_h\)

$$\begin{aligned} \nabla \cdot ({I_h}{\varvec{v}}_h)&= \nabla _h \cdot {\varvec{v}}_h, \nonumber \\ \parallel {{\varvec{v}}_h - {I_h}{\varvec{v}}_h}\parallel _0&\le c h \parallel {\nabla _h {\varvec{v}}_h}\parallel _0. \end{aligned}$$
(5)

When using the approximation spaces \({\varvec{X}}_h\) and \(Q_h\), the lowest-order Raviart–Thomas and Brezzi–Douglas–Marini interpolation operators satisfy this assumption, see [17, 30] for the isotropic and [9] for the anisotropic case. For our intended use of the method in an anisotropic setting, the constant in estimate (5) must be independent of the aspect ratio of the mesh. Under the mild assumption of the maximum angle condition which is satisfied for the type of mesh described above, see Remark 1, this is the case for both Raviart–Thomas interpolation, see [1], and Brezzi–Douglas–Marini interpolation, see [8].

Remark 2

In contrast to our reconstruction operator, that maps into \({{\varvec{H}}_0({\text {div}},\Omega )}\), there are approaches to use divergence preserving operators which map into \({\varvec{H}}^1_0(\Omega )\), see e.g. [32], where such an operator is used for theoretical purposes or [40], where the operator is used as reconstruction operator like in our case. However, these operators do not seem to work for highly anisotropic triangulations. It is an open problem to find an operator mapping discretely divergence-free functions to exactly divergence-free functions in \({\varvec{H}}^1_0(\Omega )\) on anisotropic meshes in a stable way.

Using the discrete bilinear forms

$$\begin{aligned}&a_h:{\varvec{X}}_h\times {\varvec{X}}_h \rightarrow {\mathbb {R}},&\quad a_h({\varvec{u}}_h,{\varvec{v}}_h) = \nu \int _\Omega \nabla _h{\varvec{u}}_h : \nabla _h{\varvec{v}}_h, \\&b_h:{\varvec{X}}_h\times Q_h \rightarrow {\mathbb {R}},&\quad b_h({\varvec{v}}_h, q_h) = -\int _\Omega q_h \nabla _h\cdot {\varvec{v}}_h, \end{aligned}$$

we get the discrete weak formulation

$$\begin{aligned} a_h({\varvec{u}}_h,{\varvec{v}}_h) + b_h({\varvec{v}}_h,p_h)&= ( {\varvec{f}}, {I_h}{\varvec{v}}_h )&\forall {\varvec{v}}_h\in {\varvec{X}}_h, \end{aligned}$$
(6a)
$$\begin{aligned} b_h({\varvec{u}}_h,q_h)&= 0&\forall q_h\in Q_h, \end{aligned}$$
(6b)

where \({\varvec{f}}\in {\varvec{L}}^2(\Omega )\) and \({I_h}\) must satisfy Assumption 1. As in the continuous case, using the space of discretely divergence constrained functions

$$\begin{aligned} {\varvec{V}}^0_h = \left\{ {\varvec{v}}_h\in {\varvec{X}}_h : b_h({\varvec{v}}_h, q_h) = 0 \ \forall q_h\in Q_h\right\} = \{{\varvec{v}}_h \in {\varvec{X}}_h : \nabla _h \cdot {\varvec{v}}_h = 0 \}, \end{aligned}$$

we can rewrite the problem, see [17, 24, 33]. Thus \({\varvec{u}}_h\in {\varvec{V}}^0_h\) is uniquely defined by

$$\begin{aligned} a_h({\varvec{u}}_h,{\varvec{v}}_h) = ( {\varvec{f}}, {I_h}{\varvec{v}}_h ) \quad \forall {\varvec{v}}_h\in {\varvec{V}}^0_h. \end{aligned}$$
(7)

To conclude this section, we state the well-known discrete inf-sup stability for the Crouzeix–Raviart element, see e.g. [12, Lemma 3.1].

Lemma 1

The pair of function spaces \({\varvec{X}}_h \times Q_h\) satisfies the discrete inf-sup condition

$$\begin{aligned} \inf _{q_h\in Q_h\setminus \{0\}} \sup _{{\varvec{v}}_h \in {\varvec{X}}_h\setminus \{0\}} \frac{b_h({\varvec{v}}_h, q_h)}{\parallel {q_h}\parallel _0 \parallel {{\varvec{v}}_h}\parallel _{1,h}} \ge \tilde{\beta } > 0, \end{aligned}$$
(8)

where the discrete inf-sup constant \(\tilde{\beta }\) does not depend on the mesh size parameter h or the regularity of the mesh.

4 Helmholtz–Hodge decomposition

This section introduces some aspects of the Helmholtz–Hodge decomposition of vector fields, which is needed for overall context and explanation. The main idea of this section is from [31, Section 3].

Every vector field \({\varvec{g}} \in {\varvec{L}}^2(\Omega )\) can be uniquely decomposed into \({\varvec{g}} = {\mathbb {P}}({\varvec{g}}) + \nabla \phi \), where \(\phi \in H^1(\Omega )/{\mathbb {R}}\) and

$$\begin{aligned} {\mathbb {P}}({\varvec{g}}) \in {\varvec{L}}_\sigma ^2(\Omega ) = \{{\varvec{v}}\in {\varvec{L}}^2(\Omega ) : (\nabla q, {\varvec{v}}) = 0\quad \forall q\in H^1(\Omega )\}. \end{aligned}$$

The function \({\mathbb {P}}({\varvec{g}})\) is called Helmholtz–Hodge projection of \({\varvec{g}}\), see e.g. [24, Corollary I.3.4]. The operator \({\mathbb {P}}(\cdot ):{\varvec{L}}^2(\Omega ) \rightarrow {\varvec{L}}_\sigma ^2(\Omega )\) is an \({\varvec{L}}^2\)-orthogonal projection, i.e.

$$\begin{aligned} ({\mathbb {P}}({\varvec{g}}),{\varvec{v}}) = ({\varvec{g}}, {\varvec{v}}) \quad \forall {\varvec{v}}\in {\varvec{L}}_\sigma ^2(\Omega ). \end{aligned}$$

We can extend the domain of the Helmholtz–Hodge projection operator from \({\varvec{L}}^2(\Omega )\) to \({\varvec{H}}^{-1}(\Omega )\) with range in \(({\varvec{V}}^0)'\), the dual space of \({\varvec{V}}^0\), by defining the projection for every \({\varvec{g}}\in {\varvec{H}}^{-1}(\Omega )\) as the restriction to \({\varvec{V}}^0\), i.e.

$$\begin{aligned} \langle {\mathbb {P}}({\varvec{g}}), {\varvec{v}} \rangle = \langle {\varvec{g}}, {\varvec{v}} \rangle \quad \forall {\varvec{v}}\in {\varvec{V}}^0. \end{aligned}$$

Note that it holds \({\varvec{V}}^0 \subset {\varvec{L}}^2_\sigma (\Omega )\). For a more detailed and technical introduction of this extension we refer to [34, Section 2]. A functional \({\varvec{g}}^* \in {\varvec{H}}^{-1}(\Omega )\) with \({\varvec{L}}^2\)-representative \({\varvec{g}}\), has the Helmholtz–Hodge projection \({\mathbb {P}}({\varvec{g}}^*)\in ({\varvec{V}}^0)'\) with representative \({\mathbb {P}}({\varvec{g}}) \in {\varvec{L}}^2(\Omega )\), since by the previous definitions and the Riesz representation theorem it holds for all \({\varvec{v}}\in {\varvec{V}}^0\)

$$\begin{aligned} \langle {\mathbb {P}}({\varvec{g}}^*) , {\varvec{v}} \rangle = \langle {\varvec{g}}^*, {\varvec{v}} \rangle = ({\varvec{g}}, {\varvec{v}}) = ({\mathbb {P}}({\varvec{g}}), {\varvec{v}}). \end{aligned}$$

Defining \(-\Delta : {\varvec{H}}_0^1(\Omega ) \rightarrow {\varvec{H}}^{-1}(\Omega )\) by

$$\begin{aligned} \langle -\Delta {\varvec{v}} , {\varvec{\psi }} \rangle = ( \nabla {\varvec{v}}, \nabla {\varvec{\psi }}) \quad \forall {\varvec{\psi }} \in {\varvec{H}}_0^1(\Omega ), \end{aligned}$$

according to Lemma 3.1 in [31] the equality

$$\begin{aligned} {\mathbb {P}}(-\Delta {\varvec{u}}) = \nu ^{-1} {\mathbb {P}}({\varvec{f}}) \end{aligned}$$

holds for the weak Stokes velocity solution \({\varvec{u}}\) with data \({\varvec{f}}\). This means that although in general \(-\Delta {\varvec{u}} \in {\varvec{H}}^{-1}(\Omega )\) even for data \({\varvec{f}}\in {\varvec{L}}^2(\Omega )\), it holds \({\mathbb {P}}(-\Delta {\varvec{u}}) \in {\varvec{L}}^2(\Omega )\) and

$$\begin{aligned} \nu \parallel {{\mathbb {P}}(-\Delta {\varvec{u}})}\parallel _0 = \parallel {{\mathbb {P}}({\varvec{f}})}\parallel _0\le \parallel {{\varvec{f}}}\parallel _0. \end{aligned}$$
(9)

Lemma 2

If \(({\varvec{u}}, p)\) is the solution of (3) with data \({\varvec{f}} = {\mathbb {P}}({\varvec{f}}) + \nabla \phi \), then \(({\varvec{u}}, \nu ^{-1}(p-\phi ))\) is the solution of the Stokes equations with unit viscosity and data \(\nu ^{-1} {\mathbb {P}}({\varvec{f}})\).

Proof

The Stokes equations satisfy a fundamental invariance property, i.e. adding a gradient field to the data only changes the pressure solution, see [27]. Thus \(({\varvec{u}}, p - \phi )\) is the solution with data function \({\mathbb {P}}({\varvec{f}}) = {\varvec{f}}-\nabla \phi \). Dividing the momentum equation by \(\nu \), we get the statement of the lemma.

5 A-priori error estimates

For an estimate on the finite element error, the consistency error of the method has to be estimated. For self-containedness we restate [12, Lemma 3.3] which estimates the consistency error for the standard method in the case \(\nu =1\).

Lemma 3

Let \(({\varvec{u}}, p)\) be the solution of the Stokes problem with \(\nu =1\) and data \({\varvec{f}} \in {\varvec{L}}^2(\Omega )\). Then if the mesh is refined according to \(\mu < \lambda \), with \(\lambda \) from (4), the estimate

$$\begin{aligned} \vert {(\nabla _h {\varvec{u}}, \nabla _h {\varvec{v}}_h) + b_h({\varvec{v}}_h,p) - ({\varvec{f}},{\varvec{v}}_h)}\vert \le c h \parallel {{\varvec{v}}_h}\parallel _{1,h} \parallel {{\varvec{f}}}\parallel _0 \end{aligned}$$

holds for all \({\varvec{v}}_h \in {\varvec{X}}_h\). For \({\varvec{v}}_h \in {\varvec{V}}_h^0\) we have the estimate

$$\begin{aligned} \vert {(\nabla _h {\varvec{u}}, \nabla _h {\varvec{v}}_h) - ({\varvec{f}},{\varvec{v}}_h)}\vert \le c h \parallel {{\varvec{v}}_h}\parallel _{1,h} \parallel {{\varvec{f}}}\parallel _0. \end{aligned}$$

Proof

The first inequality is the statement from [12, Lemma 3.3], and the second holds since for \({\varvec{v}}_h \in {\varvec{V}}_h^0\) we have \(\nabla _h \cdot {\varvec{v}}_h = 0\), and thus get

$$\begin{aligned} b_h({\varvec{v}}_h, p) = -(\nabla _h \cdot {\varvec{v}}_h, p) = 0. \end{aligned}$$

\(\square \)

We can now state the error estimate of the velocity solution of our method. It shows that for appropriately refined meshes the method has an optimal order of convergence and is pressure-robust, i.e. the estimate does not depend on the viscosity or the pressure approximability.

Theorem 1

Let \(({\varvec{u}}, p)\) be the solution of (3), \(({\varvec{u}}_h, p_h)\) the solution of (6), and let the mesh be refined according to \(\mu < \lambda \), with \(\lambda \) from (4). In addition, let the reconstruction operator satisfy Assumption 1. Then we have the estimate

$$\begin{aligned} \parallel {{\varvec{u}}-{\varvec{u}}_h}\parallel _{1,h} \le \inf _{{\varvec{v}}_h \in {\varvec{V}}_h^0} \parallel {{\varvec{u}}-{\varvec{v}}_h}\parallel _{1,h} + c h \parallel {{\mathbb {P}}(-\Delta {\varvec{u}})}\parallel _0. \end{aligned}$$
(10)

Proof

Let \({\varvec{w}}_h = {\varvec{u}}_h - {\varvec{v}}_h \in {\varvec{V}}_h^0\), where \({\varvec{v}}_h \in {\varvec{V}}_h^0\) is the best-approximation of \({\varvec{u}}\) with respect to \(\parallel {\cdot }\parallel _{1,h}\), then we have \({\varvec{w}}_h \perp _{1,h} {\varvec{u}}-{\varvec{v}}_h\). Due to the Pythagoras theorem we get

$$\begin{aligned} \parallel {{\varvec{u}}-{\varvec{u}}_h}\parallel _{1,h}^2 = \parallel {{\varvec{u}}-{\varvec{v}}_h}\parallel _{1,h}^2 + \parallel {{\varvec{w}}_h}\parallel _{1,h}^2. \end{aligned}$$
(11)

Using (7) we get

$$\begin{aligned} \nu \parallel {{\varvec{w}}_h}\parallel _{1,h}^2&= a_h({\varvec{w}}_h, {\varvec{w}}_h) = a_h({\varvec{u}}_h - {\varvec{v}}_h, {\varvec{w}}_h) \\&= a_h({\varvec{u}} - {\varvec{v}}_h, {\varvec{w}}_h) - a_h({\varvec{u}}, {\varvec{w}}_h) + a_h({\varvec{u}}_h, {\varvec{w}}_h)\\&\le \vert {a_h({\varvec{u}}, {\varvec{w}}_h) - ({\varvec{f}}, {I_h}{\varvec{w}}_h) }\vert , \end{aligned}$$

where in the last step we used \(a_h({\varvec{u}}-{\varvec{v}}_h, {\varvec{w}}_h) = 0\). Combined with (11) we get

$$\begin{aligned} \parallel {{\varvec{u}}-{\varvec{u}}_h}\parallel _{1,h} \le \parallel {{\varvec{u}}-{\varvec{v}}_h}\parallel _{1,h} + \nu ^{-1} \frac{\vert {a_h({\varvec{u}}, {\varvec{w}}_h) - ({\varvec{f}}, {I_h}{\varvec{w}}_h)}\vert }{\parallel {{\varvec{w}}_h}\parallel _{1,h}}. \end{aligned}$$
(12)

Denote the Helmholtz–Hodge decomposition of the data by \({\varvec{f}} = {\mathbb {P}}({\varvec{f}}) + \nabla \phi \) and note that \(\nabla \cdot {I_h}{\varvec{w}}_h = 0\) due to Assumption 1 and \({\varvec{w}}_h \in {\varvec{V}}_h^0\). Using \((\nabla \phi , {I_h}{\varvec{w}}_h) = 0\), we get

$$\begin{aligned} \vert {a_h({\varvec{u}}, {\varvec{w}}_h) - ({\varvec{f}}, {I_h}{\varvec{w}}_h)}\vert&= \vert {a_h({\varvec{u}}, {\varvec{w}}_h) - ({\mathbb {P}}({\varvec{f}}), {I_h}{\varvec{w}}_h)}\vert \nonumber \\&= |a_h({\varvec{u}}, {\varvec{w}}_h) - ({\mathbb {P}}({\varvec{f}}), {\varvec{w}}_h) + ({\mathbb {P}}({\varvec{f}}), {\varvec{w}}_h - {I_h}{\varvec{w}}_h) | \nonumber \\&\le \vert {a_h({\varvec{u}}, {\varvec{w}}_h) - ({\mathbb {P}}({\varvec{f}}), {\varvec{w}}_h)}\vert + \vert {({\mathbb {P}}({\varvec{f}}), {\varvec{w}}_h - {I_h}{\varvec{w}}_h)}\vert . \end{aligned}$$
(13)

Factoring out \(\nu \) in the first term of (13) we get

$$\begin{aligned} \vert {a_h({\varvec{u}}, {\varvec{w}}_h) - ({\mathbb {P}}({\varvec{f}}), {\varvec{w}}_h)}\vert = \nu \vert { (\nabla _h {\varvec{u}}, \nabla _h {\varvec{w}}_h) - (\nu ^{-1} {\mathbb {P}}({\varvec{f}}), {\varvec{w}}_h) }\vert , \end{aligned}$$

and, due to Lemma 2, see that \({\varvec{u}}\) is also the solution to a Stokes problem with unit viscosity and data \(\nu ^{-1} {\mathbb {P}}({\varvec{f}})\), which means we can now use Lemma 3 and estimate

$$\begin{aligned} \vert {a_h({\varvec{u}}, {\varvec{w}}_h) - ({\mathbb {P}}({\varvec{f}}), {\varvec{w}}_h)}\vert \le c h \nu \parallel {{\varvec{w}}_h}\parallel _{1,h} \parallel {\nu ^{-1} {\mathbb {P}}({\varvec{f}})}\parallel _0 = c h \parallel {{\varvec{w}}_h}\parallel _{1,h} \parallel {{\mathbb {P}}({\varvec{f}})}\parallel _0. \end{aligned}$$
(14)

Using the Cauchy-Schwarz inequality and the interpolation error estimate for the operator \({I_h}\) from Assumption 1 we estimate for the second term of (13)

$$\begin{aligned} \vert {({\mathbb {P}}({\varvec{f}}), {\varvec{w}}_h - {I_h}{\varvec{w}}_h)}\vert \le c h \parallel {{\varvec{w}}_h}\parallel _{1,h} \parallel {{\mathbb {P}}({\varvec{f}})}\parallel _0. \end{aligned}$$
(15)

Combining estimates (14), (15) with (13), inserting the result in (12), using (9) and by seeing that \({\varvec{v}}_h\) was chosen as the best-approximation of \({\varvec{u}}\) in \({\varvec{V}}_h^0\) , we get the final estimate

$$\begin{aligned} \parallel {{\varvec{u}}-{\varvec{u}}_h}\parallel _{1,h} \le \inf _{{\varvec{v}}_h \in {\varvec{V}}_h^0} \parallel {{\varvec{u}}-{\varvec{v}}_h}\parallel _{1,h} + c h \parallel {{\mathbb {P}}(-\Delta {\varvec{u}})}\parallel _0. \end{aligned}$$

\(\square \)

The term for the approximation error can be easily bounded using known results:

Corollary 1

With the assumptions from Theorem 1 the estimate

$$\begin{aligned} \parallel {{\varvec{u}}-{\varvec{u}}_h}\parallel _{1,h} \le c h \parallel {{\mathbb {P}}(-\Delta {\varvec{u}})}\parallel _0. \end{aligned}$$

holds.

Proof

Using Lemma 3.5 from [9] we get

$$\begin{aligned} \inf _{{\varvec{v}}_h \in {\varvec{V}}_h^0} \parallel {{\varvec{u}}-{\varvec{v}}_h}\parallel _{1,h} \le 2\inf _{{\varvec{v}}_h \in {\varvec{X}}_h} \parallel {{\varvec{u}}-{\varvec{v}}_h}\parallel _{1,h}. \end{aligned}$$

By Lemma 2\({\varvec{u}}\) is also the velocity solution of the Stokes problem with unit viscosity and right hand side data \(\nu ^{-1}{\mathbb {P}}({\varvec{f}})\), and thus using Lemma 3.2 from [12] and (9) we get

$$\begin{aligned} \inf _{{\varvec{v}}_h \in {\varvec{V}}_h^0} \parallel {{\varvec{u}}-{\varvec{v}}_h}\parallel _{1,h} \le 2\inf _{{\varvec{v}}_h \in {\varvec{X}}_h} \parallel {{\varvec{u}}-{\varvec{v}}_h}\parallel _{1,h} \le c h \parallel {{\mathbb {P}}(-\Delta {\varvec{u}})}\parallel _0, \end{aligned}$$
(16)

which combined with (10) proves the statement. \(\square \)

Remark 3

Considering Lemma 2, the relationship between the data \({\varvec{f}}\) and the velocity solution \({\varvec{u}}\) with regard to the viscosity parameter \(\nu \) can be looked at from different points of view. On the one hand, in Theorem 1 we establish a velocity error estimate in terms of the divergence-free part of the Laplacian of the exact velocity \({\mathbb {P}}(-\Delta {\varvec{u}})\). In this form, the estimate is pressure-robust, i.e. it does not depend on the irrotational part of the data, and it does not have an apparent dependence on the viscosity. If on the other hand by using (9) we would put the estimate in terms of the Helmholtz–Hodge projection \({\mathbb {P}}({\varvec{f}})\) of the data, it would still be pressure-robust, but we would see a dependence on \(\nu ^{-1}\).

The difference is of interest for numerical examples and the information we want to extract from them. Consider e.g. the examples from [30, Section 5]. Here the exact velocity and pressure solutions are fixed, and the data function \({\varvec{f}}\) changes when the viscosity parameter is adjusted due to the factor \(\nu \) in front of the Laplacian. This can nicely show the effect of pressure-robustness, since non-pressure-robust methods show a viscosity induced locking effect, i.e. the velocity error scales with \(\nu ^{-1}\), while pressure-robust methods do not, as the discrete velocity solution is the same for all values of \(\nu \). If however the data function \({\varvec{f}}\) is fixed, we also see a dependence on the viscosity in the error for pressure-robust methods, since the velocity solution now scales with \(\nu ^{-1}\). When altering the viscosity parameter while using fixed data, pressure-robustness can still be observed by changing the irrotational part of \({\varvec{f}}\), i.e. adding a gradient field, which has no effect on the numerical velocity solution of pressure-robust methods.

For the pressure error we get the following estimate.

Proposition 1

With the assumptions of Theorem 1 we have the estimate

$$\begin{aligned} \parallel {p-p_h}\parallel _{0} \le \inf _{q_h \in Q_h} \parallel {p-q_h}\parallel _{0} + \frac{2 \nu }{\tilde{\beta }} \inf _{{\varvec{v}}_h \in {\varvec{V}}_h^0} \parallel {{\varvec{u}}-{\varvec{v}}_h}\parallel _{1,h} + \frac{c h}{\tilde{\beta }}\parallel {{\varvec{f}}}\parallel _0. \end{aligned}$$
(17)

Proof

Let \(\pi _h:L^2_0(\Omega ) \rightarrow Q_h\) be the \(L^2\)-orthogonal projection onto the discrete pressure space. We start with a triangle inequality, which gives

$$\begin{aligned} \parallel {p-p_h}\parallel _{0} \le \parallel {p-\pi _h p}\parallel _{0} + \parallel {\pi _h p - p_h}\parallel _{0}, \end{aligned}$$

where we see that for the first term it holds \(\parallel {p-\pi _h p}\parallel _{0} = \inf _{q_h \in Q_h} \parallel {p-q_h}\parallel _{0}\). Because of \(\pi _h p - p_h \in Q_h\), we can use the inf-sup condition (8) and estimate

$$\begin{aligned} \parallel {\pi _h p - p_h}\parallel _{0}&\le \frac{1}{\tilde{\beta }} \sup _{{\varvec{v}}_h\in {\varvec{X}}_h} \frac{b_h({\varvec{v}}_h,\pi _h p - p_h)}{\parallel {{\varvec{v}}_h}\parallel _{1,h}} \\&= \frac{1}{\tilde{\beta }} \sup _{{\varvec{v}}_h\in {\varvec{X}}_h} \frac{b_h({\varvec{v}}_h,\pi _h p - p) + b_h({\varvec{v}}_h, p - p_h)}{\parallel {{\varvec{v}}_h}\parallel _{1,h}}, \end{aligned}$$

where \(b_h({\varvec{v}}_h,\pi _h p - p) = 0\), as \(\nabla _h \cdot {\varvec{v}}_h \in Q_h\) and \(\pi _h p - p \in Q_h^{\perp _{L^2}}\). Since \(p_h\) is the discrete pressure solution of (6) we can further calculate

$$\begin{aligned} \parallel {\pi _h p - p_h}\parallel _{0}&\le \frac{1}{\tilde{\beta }} \sup _{{\varvec{v}}_h\in {\varvec{X}}_h} \frac{b_h({\varvec{v}}_h,p)+a_h({\varvec{u}}_h,{\varvec{v}}_h) - ({\varvec{f}}, {I_h}{\varvec{v}}_h)}{\parallel {{\varvec{v}}_h}\parallel _{1,h}} \\&= \frac{\nu }{\tilde{\beta }} \left( \sup _{{\varvec{v}}_h\in {\varvec{X}}_h} \frac{(\nabla _h {\varvec{u}},\nabla _h {\varvec{v}}_h) + b_h({\varvec{v}}_h,\nu ^{-1}p) - (\nu ^{-1}{\varvec{f}}, {\varvec{v}}_h) }{\parallel {{\varvec{v}}_h}\parallel _{1,h}}\right. \\&\left. \quad + \sup _{{\varvec{v}}_h\in {\varvec{X}}_h} \frac{(\nabla _h ({\varvec{u}}_h-{\varvec{u}}),\nabla _h {\varvec{v}}_h) + (\nu ^{-1}{\varvec{f}},{\varvec{v}}_h - {I_h}{\varvec{v}}_h)}{\parallel {{\varvec{v}}_h}\parallel _{1,h}} \right) \\&\le \frac{\nu }{\tilde{\beta }} \left( \parallel {{\varvec{u}}-{\varvec{u}}_h}\parallel _{1,h} + c h \parallel {\nu ^{-1} {\varvec{f}}}\parallel _0 \right) , \end{aligned}$$

where in the last step we used Lemma 3, the Cauchy-Schwarz inequality and the interpolation error estimate (5) for the reconstruction operator. Now combining the estimates, using Theorem 1 and (9) yields the desired inequality. \(\square \)

Corollary 2

With the assumptions of Theorem 1 we have the estimate

$$\begin{aligned} \parallel {p-p_h}\parallel _{0} \le c h \left( 1+\frac{1}{\tilde{\beta }}\right) \parallel {{\varvec{f}}}\parallel _0. \end{aligned}$$

Proof

The estimate is obtained from (17) by using [12, Lemma 3.2] for the first term and (16) in combination with (9) for the second term. \(\square \)

Remark 4

We consider only the three dimensional case, since the focus of this paper is on anisotropic elements. The main results are nevertheless valid for the corresponding two-dimensional problem in a domain with a re-entrant corner, as long as adequate local mesh grading near the corner, as described in the first part of Section 3, is applied.

The proofs for the intermediate results from [11] can be adapted to fit the two-dimensional setting. With them, the consistency error for the standard method, see Lemma 3, can be proved analogously to the first part of the proof of Lemma 3.2 in [12], without the additional difficulty for the third component. From there, our proofs in this section apply analogously.

6 Numerical examples

With the following two examples we show the performance of the pressure-robust modified Crouzeix–Raviart method with Raviart–Thomas (CR-RT) and Brezzi–Douglas–Marini (CR-BDM) reconstruction compared to the standard Crouzeix–Raviart (CR) method on anisotropically graded meshes. Considering Remark 3, we first choose the approach of fixing an exact solution, where the data changes when altering the viscosity. However, for our specified exact solution we get \({\varvec{f}} \notin {\varvec{L}}^2(\Omega )\) for \(\nu \ne 1\), which does not comply with the assumptions of our theory. Thus for the second example we use the other approach, where the divergence-free part \({\mathbb {P}}({\varvec{f}})\) of the data is fixed and only the irrotational part of \({\varvec{f}}\) is changed in order to show pressure-robustness.

6.1 Example with fixed exact solution

Consider the inhomogeneous Stokes problem, i.e. problem (1) with boundary condition \({\varvec{u}} = {\varvec{g}}\) on \(\partial \Omega \), on the domain

$$\begin{aligned} \Omega = \{(r\cos (\varphi ), r\sin (\varphi ), z) \in {\mathbb {R}}^3: 0<r<1, 0<\varphi<\omega , 0<z<1\}, \end{aligned}$$

where \(\omega = \frac{3\pi }{2}\). The results below show that the change to inhomogeneous boundary conditions does not impact the performance of the numerical method. We use the exact velocity and exact pressure solutions defined by

$$\begin{aligned} {\varvec{u}} = \begin{pmatrix} z r^\lambda u_1(\varphi ) \\ z r^\lambda u_2(\varphi ) \\ r^{\nicefrac {2}{3}}\sin \left( \frac{2}{3}\varphi \right) \end{pmatrix},&\qquad p = z r^{\lambda -1} \Phi (\varphi ), \end{aligned}$$

where we use

$$\begin{aligned} u_1(\varphi )&= \sin (\lambda (\omega -\varphi ))-\lambda \sin (\varphi )\cos (\lambda (\omega -\varphi )+\varphi )+\lambda \sin (\omega -\varphi )\cos (\lambda \varphi -\varphi ), \nonumber \\ u_2(\varphi )&= \sin (\lambda \varphi )-\lambda \sin (\varphi )\sin (\lambda (\omega -\varphi )+\varphi )-\lambda \sin (\omega -\varphi )\sin (\lambda \varphi -\varphi ), \nonumber \\ \Phi (\varphi )&= 2 \lambda [\sin (\omega +(\lambda -1)\varphi ) - \sin (\lambda \omega -(\lambda -1)\varphi )]. \end{aligned}$$
(18)

From (4) we get \(\lambda \approx 0.54448\). The velocity solution and the singular nature of the exact pressure along the edge at \(r=0\) are illustrated in Figure 2.

Fig. 2
figure 2

Plot of exact velocity \({\varvec{u}}(x,y,z)\) and exact pressure p(xy, 1)

The data function \({\varvec{f}}\) for the numerical calculations is obtained by evaluating (1a), from which we get

$$\begin{aligned} {\varvec{f}} = \begin{pmatrix} 2 \lambda (\lambda -1) (\nu - 1) z r^{\lambda - 2} \left[ \sin (\lambda \omega - (\lambda - 2) \varphi ) - \sin (\omega + (\lambda - 2) \varphi ) \right] \\ 2 \lambda (\lambda -1) (1 - \nu ) z r^{\lambda - 2} \left[ \cos (\lambda \omega - (\lambda - 2) \varphi ) + \cos (\omega + (\lambda - 2) \varphi ) \right] \\ r^{\lambda -1} \Phi (\varphi ) \end{pmatrix}, \end{aligned}$$
(19)

where \(f_1 = f_2 = 0\) for \(\nu = 1\).

In [9] this example was used to show that the modified Crouzeix–Raviart method can be used for anisotropic meshes. However, no theoretical foundation for the numerical results was given, since due to the low regularity of the solution in this example, i.e. \(({\varvec{u}},p) \notin {\varvec{H}}^2(\Omega ) \times H^1(\Omega )\), \(\Delta {\varvec{u}}\notin {\varvec{L}}^2(\Omega )\), the results from [9] are not directly applicable. This gap in the theory is closed by this contribution, at least for the case \(\nu =1\) where \({\varvec{f}}\in {\varvec{L}}^2(\Omega )\).

As mentioned in Sect. 4 we know that \({\mathbb {P}}(-\Delta {\varvec{u}})\in {\varvec{L}}^2(\Omega )\), since for \(\nu = 1\) by [12, Theorem 2.1] it holds \(\partial _z p\in L^2(\Omega )\) and thus the data function \({\varvec{f}} = (0,0,\partial _z p)\) is in \({\varvec{L}}^2(\Omega )\). As \({\varvec{u}}\) is fixed, this does not change for other values of \(\nu \), even though \({\varvec{f}}\) is no longer in \({\varvec{L}}^2(\Omega )\) for \(\nu \ne 1\).

Table 1 Errors and experimental convergence orders of the standard and modified Crouzeix–Raviart methods on uniform and graded meshes, \(\nu =1\)
Table 2 Errors and experimental convergence orders of the standard and modified Crouzeix–Raviart methods on uniform and graded meshes, \(\nu =10^{-1}\)

The calculations were performed with parameter values \(\nu \in \{10^{-1},1\}\) and \(\mu \in \{0.4, 1\}\). Tables 1 and 2 contain the computed errors. Comparing the estimated order of convergence (eoc) for meshes without grading, \(\mu =1\), and with grading towards the edge, \(\mu =0.4\), shows that anisotropic grading recovers the optimal convergence rate for all methods. The results with viscosity \(\nu = 10^{-1}\) show the pressure-robustness of the modified method, as the absolute value of the velocity error does not depend on \(\nu \), contrary to the standard method. The modified method seems to perform optimally in the anisotropic setting even with the low regularity data in the case \(\nu \ne 1\), where the optimal convergence rate could not be observed with the standard method.

Remark 5

The data function (19) is not in \({\varvec{L}}^2(\Omega )\) for \(\nu \ne 1\), but the right hand side integrals for our methods are still finite. However, in order to produce the shown results in Table 2 the numerical quadrature for the linear form had to be highly accurate. For our CR-BDM calculations, additionally to choosing a high quadrature degree as for the other methods, we used local mesh refinement near the singular axis.

Neither the quadrature procedure described in Remark 5 nor changing the grading parameter improved the convergence results of the standard method on graded meshes with \(\nu \ne 1\), where the optimal rate could not be observed. We do not have a proof, and irregular data do not fit our theory, as for Lemma 2 and Theorem 1 we assume \({\varvec{f}}\in {\varvec{L}}^2(\Omega )\), but the differing behavior of the methods seems to be a result of \({\varvec{f}} \notin {\varvec{L}}^2(\Omega )\):

The velocity error estimate from [12] for the standard method, which is shown for \({\varvec{f}}\in {\varvec{L}}^2(\Omega )\), comprises the consistency error and the best approximation error, the latter being bounded in terms of the interpolation error of the Crouzeix–Raviart interpolation. While we could see the interpolation error in this test converging optimally on the graded meshes, the consistency error does not seem to converge for irregular data. In contrast to the standard Crouzeix–Raviart method, the proof of our pressure robust estimate from Sect. 5 only needs to bound the consistency error for the Helmholtz–Hodge projection of the data, which, for this example, are in \({\varvec{L}}^2(\Omega )\). This is the reason why the modified methods work for this example.

Since the consistency error estimate from [12] was prepared in [11] with a similar estimate for the Poisson equation, we did a further test computation for the Poisson problem with exact solution \(u = r^{\nicefrac {1}{2}} \sin (\nicefrac {2}{3}\varphi )\) on the same meshes. For this exact solution the data are not in \(L^2(\Omega )\) as in the Stokes case, and the results showed a similar convergence behavior as the Stokes example. This is another indication that the consistency error of the Crouzeix–Raviart method causes the bad numerical performance.

The discussion in the previous paragraphs shows that the modified, pressure-robust Crouzeix–Raviart method, in addition to the advantages of the robust behavior concerning small viscosities and irrotational forces, also seems to perform better in certain cases with low regularity data and anisotropic mesh grading.

6.2 Example with fixed data

Consider the same general setting as in the previous example. We now use the data

$$\begin{aligned} {\varvec{f}} = {\varvec{f}}_0 + \nabla \phi _i,\quad i\in \{1,2\}, \end{aligned}$$

where \({\varvec{f}}_0\) and \(\phi _i\) are chosen as

$$\begin{aligned}{\varvec{f}}_0 = \begin{pmatrix} 0\\ 0\\ r^{\lambda -1} \Phi (\varphi ) \end{pmatrix},\qquad \phi _1 = 0, \qquad \phi _2 = 10 r^{\lambda } \Phi (\varphi ), \end{aligned}$$

with \(\Phi (\varphi )\) from (18). The function \({\varvec{f}}_0\) is aquired by setting \(\nu = 1\) in (19) and the functions \(\phi _i\) are used to show the pressure-robustness in the case of a scaled exact velocity solution: the errors for the CR-RT and CR-BDM methods do not change when adding gradient fields to the data. The exact solutions for the convergence analysis can be deduced from the first example using the considerations from Lemma 2 and Remark 3.

As before we have \(-\Delta {\varvec{u}}\notin {\varvec{L}}^2(\Omega )\), but due to our choice of the functions \({\varvec{f}}_0\) and \(\phi _i\) we now get \({\varvec{f}}\in {\varvec{L}}^2(\Omega )\) for all calculations.

The calculations were performed with viscosity parameter \(\nu \in \{10^{-3},1\}\) and, since the difference in convergence orders was already demonstrated in the previous example, we only use anisotropic meshes with grading parameter \(\mu = 0.4\).

Table 3 Errors and experimental convergence orders of the standard and modified Crouzeix–Raviart methods on graded meshes with \(\mu = 0.4\), \(\nu =1\)
Table 4 Errors and experimental convergence orders of the standard and modified Crouzeix–Raviart methods on graded meshes with \(\mu =0.4\), \(\nu =10^{-3}\)

Tables 3 and 4 show the errors for both choices of \(\phi _i\). We see that while the asymptotic convergence rates are optimal for all methods, the additional gradient part \(\nabla \phi _2\) in the data has a significant influence on the value of the velocity error of the standard method. In contrast, the modified methods show their pressure-robustness by yielding the same velocity solution, and thus unchanged velocity errors. The scaling of the velocity solution with \(\nu ^{-1}\) for fixed \({\varvec{f}}\) is clearly visible when comparing the two tables.