1 Introduction

Coupling of flow and mechanical deformations in a porous medium, referred as poroelasticity, is relevant to several applications. These include subsurface deformations resulting from hydrocarbon recovery [1, 2] or anthropogenically induced seismic events due to geothermal stimulations [3]. In biological context, there are several examples where such a coupling is needed. For example, this is used to model the interaction between the fluid flow within the bone’s microstructure due to interstitial fluid and the mechanical deformation of the bone [4]. Similarly, the tumor growth and angiogenesis involves the interaction of solid tumor tissue, interstitial fluid flow, and angiogenesis [5]. Cartilage mechanics [6], biomechanics of soft tissues [7], brain tissues [8, 9] are other examples where the coupling of fluid flow and the deformation of the solid matrix needs to be taken into account.

This paper concerns the numerical solution of the coupled flow and mechanical deformation in the context of poroelasticity. The Biot equations are the most common approach of modelling poroelasticity. In a quasi-static model they comprise a set of partial differential equations (PDE) describing the flow and displacement using the physical laws of mass and momentum conservation,

see Sect. 2.1 for the model equations. Together with linear constitutive models, the mechanical deformations are captured by an elliptic (linear elasticity) equation for the displacement and the fluid pressure is described by a parabolic equation. The coupling terms quantify the deformation and stress fields due to changes in the fluid pressure in addition to taking into account the changes in porosity due to mechanical deformations. Starting with the pioneering works of Terzaghi [10] and Biot [11], these PDE have been used to model the consolidation of soils [11, 12]. A comprehensive discussion of the theory of poromechanics can be found in [13]. The standard reference for the well-posedness theory for the Biot model is [14] and for more recent extensions, we refer to [15]. The quasi-static Biot model can be regarded as the singular limit of the fully dynamic Biot-Allard problem [16] after neglecting the acceleration of solid in the mechanics part.

In this work, we consider the case when the hydraulic conductivity K changes due to the evolving stress conditions, that is, upon the dilatation (local volume change), \(\nabla \cdot u\), i.e., \(K = K(\nabla \cdot {\varvec{u}})\). The ease with which a fluid flows through the solid skeleton of a porous medium is characterized by the hydraulic conductivity tensor. It is a function of porosity and tortuosity (a measure of geometric complexity of the porous medium, cf. Kozeny-Carman relationship). Changes in porosity due to mechanical deformations are captured using the term \(\nabla \cdot {\varvec{u}}\). Accordingly, the hydraulic conductivity is a function of \(\nabla \cdot {\varvec{u}}\). Such a stress dependent permeability model was introduced first in [17] to describe poroelasticity effects in the paper production process. Same type of model is used to account for stress sensitive reservoirs in petroleum related applications [18, 19]. Mathematically, these extended Biot’s models have been studied in [20,21,22,23], where the authors have proven existence and uniqueness of solutions and developed the numerical approximations and their analysis. A comprehensive study of nonlinear Biot model including the stress dependent permeability case and variations of boundary conditions is in [24]. For a recent work developing further the theory of nonlinear single phase poroelasticity, we refer to [25]. Numerically, extensions of single phase nonlinear Biot models have been treated in [26,27,28].

To solve the Biot model numerically, there are two main categories of schemes: fully implicit and fully explicit. The fully implicit coupling approach considers fluid variables such as pressure and kinematic variable displacement as unknowns at each time step and linearizes the fully coupled system to obtain the Jacobian. This approach allows one to take larger time steps and provides more stability. However, there are some important disadvantages. First, the coupled linear system is difficult to solve, especially in multiphase flows where the operator of the geomechanics noticeably differs from that of the flow problem. Second, a fully coupled system may lose some flexibility, for instance, it does not permit the use of large time steps for the geomechanical response compared to the flow time step (this may be exploited to develop multirate schemes [29, 30]). Finally, the implementation of a fully implicit approach is more difficult as compared to that of the individual equations. In contrast to the implicit approach, an explicit coupling approach allows one to take the output from the mechanics (e.g., displacement) and use it as an input for the flow problem. This is simpler to implement and also allows more flexibility, for example in choosing time steps for individual equations separately. However, performing a naive explicit decoupling leads to unstable schemes or at best conditionally stable schemes.

An elegant way to combine the advantages of the above two broad approaches is to consider an iterative scheme. In this, at each step in time, the flow problem is solved followed by the mechanics problem using the pressure from the first step. The procedure is repeated until the desired convergence is reached. Since we treat the equations separately, both the ease of implementation and flexibility are retained. However, to ensure stability and robustness, the design of an iterative scheme demands careful considerations. For the fully-coupled problems, iterative methods can be used to construct efficient preconditioning techniques for the arising algebraic systems, the investigation of which is a matter of active ongoing scientific research, (see, e.g., [31,32,33,34]) including the recently developed parameter-robust methods in [35,36,37,38,39]).

Two main iterative coupling schemes to solve the flow problem coupled with geomechanics in an iteratively sequential manner are the fixed-stress split and the undrained split schemes [31, 38, 40] (see [41] for a variational derivation for these iterative schemes). In the fixed-stress split iterative scheme [16, 42], a constant volumetric mean total stress is assumed during the flow solve, whereas in the undrained split scheme [43, 44], a constant fluid mass is assumed during the mechanics solve. In the linear Biot case, both schemes were shown to be convergent in [16, 45, 46] and [44]. Fixed-stress splitting is preferred in practice because of its robustness and efficiency. In this work we focus on the extension of the fixed-stress split scheme to our nonlinear setting. Our main contribution is in the convergence analysis of the fixed-stress type splitting scheme to the aforementioned nonlinear Biot model. The scheme introduces a stabilization of the flow equation and then iterates with the elasticity equation. This stabilization amounts to adding a diagonal term to the pressure matrix block. One key question is the amount of stabilization that should be added, which will be addressed in the proof of convergence of the scheme. Moreover, our analysis uses solution variables in their natural energy norms in contrast to the approaches in [16, 46]. Though we treat here a fixed-stress type splitting scheme, the idea of the proof extends to other iterative schemes as well with necessary alterations.

The paper is organized as follows: Sect. 2.1 introduces the nonlinear Biot equations. The fixed-stress type splitting scheme is given in Sect. 2.2. The main result is stated in Sect. 3 and the convergence analysis carried out in Sect. 3.2. The numerical examples including convergence studies for different choices for \(K(\nabla \cdot {\varvec{u}})\) are in Sect. 4 followed by conclusions in Sect. 5.

2 Problem formulation and splitting scheme

In this section, we present a nonlinear poroelasticity model that generalizes the classical quasi-static Biot’s model of consolidation by introducing a general (nonlinear) dependency of the hydraulic conductivity, or, equivalently, porosity and/or permeability, on solid dilatation, i.e., on the divergence of the displacement field. We further extend a popular splitting scheme for this nonlinear model, namely, the fixed-stress split method that can be used to solve the coupled problem iteratively by solving in each iteration step one mechanics and one flow equation separately.

2.1 A nonlinear poroelasticity model

We consider the following nonlinear poroelasticity problem in two-field formulation. Let \(\Omega\) be bounded Lipschitz domain in \({\mathbb {R}}^{d}, d=2,3.\) Then the solid displacement \({\varvec{u}}\) and fluid pressure p are sought as the solution of the differential-algebraic system

$$\begin{aligned}&-\text {div}\,\varvec{\sigma }+ \alpha \nabla p = {\varvec{f}}~~ \text {in}~~ \Omega \times (0,T), \end{aligned}$$
(1a)
$$\begin{aligned}&\frac{\partial }{\partial t}\left( \alpha \text {div}\,{\varvec{u}}+ S p\right) - \text {div}\,(K(\text {div}\,{\varvec{u}}) \nabla p) =g\;\;\text {in}~~ \Omega \times (0,T), \end{aligned}$$
(1b)

which couples one elliptic partial differential equation (PDE), stating the momentum balance, to one parabolic PDE, stating the mass balance. Here \(\varvec{\sigma }=2 \mu \varvec{\epsilon }({\varvec{u}}) + \lambda \text {div}\,{\varvec{u}}I\) denotes the effective stress where \(\varvec{\epsilon }({\varvec{u}}) = \frac{1}{2} (\nabla {\varvec{u}}+ (\nabla {\varvec{u}})^T)\) is the strain tensor and \(\lambda\) and \(\mu\) are given Lamé parameters. The remaining model parameters are the Biot-Willis coefficient \(\alpha\), the constrained storage coefficient S, and the hydraulic conductivity K, which itself is defined in terms of the intrinsic permeability \({\mathbb {K}}\), the fluid density \(\rho\) and viscosity \(\eta\) (and the gravitational constant \(c_g\)) via the relation \(K=({\mathbb {K}} \rho )/\eta\) (respectively \(K=({\mathbb {K}} \rho c_{g})/\eta\)).

Moreover, we want to make the following assumption.

Assumption 1

We assume that the hydraulic conductivity \(K: {\mathbb {R}} \mapsto {\mathbb {R}}\) is differentiable, strictly positive and Lipschitz continuous with a Lipschitz constant \(K_L\) , i.e., the function K satisfies the conditions

$$\begin{aligned}&K \in C^1({\mathbb {R}}), \end{aligned}$$
(2a)
$$\begin{aligned}&0 < {\underline{K}} \le K(z) \text{ for } \text{ all } z \in {\mathbb {R}}, \end{aligned}$$
(2b)
$$\begin{aligned}&\vert K(z_1) - K(z_2) \vert \le K_L \vert z_1 - z_2 \vert \text{ for } \text{ all } z_1,z_2 \in {\mathbb {R}}. \end{aligned}$$
(2c)

Then, under Assumption 1 and imposing proper boundary and initial conditions, the system (1) has a unique solution, see, e.g., [20,21,22,23,24]. For instance, such conditions are given by

$$\begin{aligned}{} & {} p({\varvec{x}},t) = p_{D}({\varvec{x}},t), \qquad \, {\varvec{x}}\in \Gamma _{p,D}, \quad t > 0, \end{aligned}$$
(3a)
$$\begin{aligned}{} & {} (K(\text {div}\,{\varvec{u}}) \nabla p) \cdot {\varvec{n}} = q_{N}({\varvec{x}},t), \qquad \, {\varvec{x}}\in \Gamma _{p,N}, \quad t > 0,\end{aligned}$$
(3b)
$$\begin{aligned}{} & {} {\varvec{u}}({\varvec{x}},t) = {{\varvec{u}}}_D({\varvec{x}},t), \qquad {\varvec{x}}\in \Gamma _{{\varvec{u}},D}, \quad t > 0, \end{aligned}$$
(3c)
$$\begin{aligned}{} & {} ({\varvec{\sigma }({\varvec{x}},t)}-\alpha p \varvec{I}) \, {{\varvec{n}}} ({\varvec{x}}) = {{\varvec{v}}}_{N}({\varvec{x}},t), \qquad {\varvec{x}}\in \Gamma _{{\varvec{u}},N}, \quad t > 0, \end{aligned}$$
(3d)
$$\begin{aligned}{} & {} p({\varvec{x}},0) = p_{0}({\varvec{x}}), \qquad {\varvec{x}}\in \Omega , \end{aligned}$$
(3e)
$$\begin{aligned}{} & {} {\varvec{u}}({\varvec{x}},0) = {\varvec{u}}_0({\varvec{x}}), \qquad {\varvec{x}}\in \Omega , \end{aligned}$$
(3f)

where \(\Gamma _{p,D} \cap \Gamma _{p,N} = \emptyset\), \({\overline{\Gamma }}_{p,D}\cup {\overline{\Gamma }}_{p,N}=\Gamma =\partial {\Omega }\), \(\Gamma _{{\varvec{u}},D} \cap \Gamma _{{\varvec{u}},N} = \emptyset\) and \({\overline{\Gamma }}_{{\varvec{u}},D} \cup {\overline{\Gamma }}_{{\varvec{u}},N}=\Gamma\) are fulfilled.

\(\Gamma _{p,D}\) is often called a clamped and \(\Gamma _{p,N}\) a traction boundary, whereas \(\Gamma _{p,D}\) is referred to as drained and \(\Gamma _{p,N}\) as flux boundary. Note that the cases in which either \(\Gamma _{p,D}=\Gamma\) (pure Dirichlet condition for p) or \(\Gamma _{p,N}=\Gamma\) (pure Neumann condition for p) and/or \(\Gamma _{{\varvec{u}},D}=\Gamma\) (pure Dirichlet condition for \({\varvec{u}}\)) are also included in the above general setting. For brevity, we will consider the case \(\Gamma _{{\varvec{u}},D} =\Gamma _{p,N}=\Gamma\) in this paper. The presented algorithm and its analysis, however, carry over to other scenarios with minor modifications.

According to the abstract theory of (perturbed) saddle-point problems, Hilbert spaces resulting in a well-posed weak formulation (5) of problem (1) with boundary conditions (3) have to account for the respective essential boundary conditions, i.e., respect the corresponding homogeneous conditions. The resulting spaces \({\varvec{U}}\) for \({\varvec{u}}\) and P for p then have to satisfy a corresponding inf-sup condition, see, e.g., [47] where this aspect has extensively been discussed for various formulations of Biot’s model.

Before we present the variational formulation of problem (1) under suitable boundary and initial conditions, we want to reduce the number of parameters in the model by a simple scaling. We divide (1a) by \(2 \mu\) and (1b) by \(\alpha\) and introduce the new variable \({{\tilde{p}}} = \frac{\alpha }{(2\mu )} p\) to obtain the equivalent system

$$\begin{aligned}&-\text {div}\,(\varvec{\epsilon }({\varvec{u}}) + {{\tilde{\lambda }}} \text {div}\,\varvec{u} I) + \nabla {{\tilde{p}}} = {{\tilde{{\varvec{f}}}}}~~ \text {in}~~ \Omega \times (0,T), \end{aligned}$$
(4a)
$$\begin{aligned}&\frac{\partial }{\partial t}\left( \text {div}\,{\varvec{u}}+ {{\tilde{S}}} {{\tilde{p}}}\right) - \text {div}\,({{\tilde{K}}} (\text {div}\,{\varvec{u}}) \nabla {{\tilde{p}}}) = {{\tilde{g}}}\;\;\text {in}~~ \Omega \times (0,T), \end{aligned}$$
(4b)

for the scaled parameters \({{\tilde{\lambda }}} = \lambda /(2 \mu )\), \({{\tilde{S}}} = \frac{2 \mu S}{\alpha ^2}\), scaled right-hand sides \({{\tilde{{\varvec{f}}}}} = {\varvec{f}}/(2 \mu )\), \({{\tilde{g}}} = g/\alpha\), and the scaled function \({{\tilde{K}}} (\text {div}\,{\varvec{u}}) = \frac{2 \mu }{\alpha ^2} K (\text {div}\,{\varvec{u}})\), the latter satisfying Assumption 1 if and only if K does.

Next, on a given subdivision \(0=t_0< t_1< \ldots< t_{n-1}< t_n< \ldots< t_{N-1} < t_N = T\) of the time interval [0, T] into subintervals \([t_{n-1},t_n]\) of length \(\tau :=\tau _n=t_n-t_{n-1}\), \(n=1,2,\ldots ,N\), we discretize in time equation (4b) by the implicit Euler method. Since in what follows we consider only a single time-step, for convenience, we denote the quantities of interest at time \(t_n\) by \({\varvec{u}}:= {\varvec{u}}_n = {\varvec{u}}({\varvec{x}},t_n)\) and \(p:= {{\tilde{p}}}_n = p ({\varvec{x}},t_n)\), and use the short notation \({\varvec{f}}:= {{\tilde{{\varvec{f}}}}} ({\varvec{x}},t_n)\) and \(g=\tau {{\tilde{g}}}({\varvec{x}},t_n) + \text {div}\,{\varvec{u}}_{n-1} + {{\tilde{S}}} p_{n-1}\) for the right-hand sides in the implicit Euler time-step equations, where we assume that \({\varvec{u}}_{n-1}\) and \({{\tilde{p}}}_{n-1}\) are known from initial conditions or have already been computed. Moreover, from now on, we will also skip the tilde symbol again with the scaled parameters in (4), including the scaled hydraulic conductivity.

The variational form of the time-step equations can then be expressed as: Find \(({\varvec{u}},p) \in {\varvec{U}}\times P\) such that

$$\begin{aligned} (\varvec{\epsilon }({\varvec{u}}),\varvec{\epsilon }({\varvec{w}})) + \lambda (\text {div}\,{\varvec{u}}, \text {div}\,{\varvec{w}}) - (p, \text {div}\,w)&= ({\varvec{f}},{\varvec{w}}) , \qquad \forall {\varvec{w}}\in {\varvec{U}}, \end{aligned}$$
(5a)
$$\begin{aligned} (\text {div}\,{\varvec{u}}, q) - \tau (\text {div}\,K (\text {div}\,{\varvec{u}}) \nabla p, q) + S (p,q)&= (g, q), \qquad \forall q \in P, \end{aligned}$$
(5b)

where the choice of the spaces \({\varvec{U}}\) and P depends on the boundary conditions, e.g,, \({\varvec{U}}= {\varvec{H}}_0^1(\Omega )\) and \(P=L_0^2(\Omega )\) for \(\Gamma _{{\varvec{u}},D} =\Gamma _{p,N}=\Gamma\). System (5) will be our object of interest in the remainder of this paper.

Remark 1

When hydraulic conductivity K is constant, the model equations become linear. They are a coupled system of elliptic equation for displacement \({\varvec{u}}\) coupled to a linear parabolic equation for p. The linear case has been intensively investigated including its existence, uniqueness, and numerical approximations.

2.2 Fixed-stress split method

The fixed-stress split method can be used to solve iteratively system (5), i.e. for approximating its solution \(({\varvec{u}},p)=({\varvec{u}}_n,p_n)\) at time \(t=t_n\) starting with an arbitrary initial guess \(({\varvec{u}}^0,p^0)\) thereby using an already known approximation of \(({\varvec{u}}_{n-1},p_{n-1})\), which can be computed by the same method. In order to avoid confusion with time-stepping, we will use superscripts for the iteration counters in the studied splitting scheme. Algorithm 1 below describes this iterative process that consists of computing alternatingly an update \(p^{i+1}\) from a stabilized mass-balance equation, assuming a constant volumetric mean stress \(\lambda \text {div}\,{\varvec{u}}^i - L \lambda \alpha ^{-1} p^i\), where L is a stabilization parameter, i.e., solving equation (6) and an update \({\varvec{u}}^{i+1}\) arising from solution of the momentum balance equation (7). The process is continued until a certain convergence criterion is satisfied.

Algorithm 1
figure a

Fixed-stress split method in variational form

Note that the above algorithm is essentially the classical fixed-stress method in which we use the hydraulic conductivity \(K^i\) from the previous iteration in equation (6).

Remark 2

In the linear case (constant K), the iterative splitting schemes have been extensively studied for this multiphysics problem. We refer to [48] for a first convergence analysis, then to [49] for an extension to heterogeneous flow and by using energy norms. The question of an optimal stabilization parameter L (i.e. the value of L which leads to the minimal number of iterations) was discussed in detail in [38, 50], where also the connection between the stability of the discretization and the convergence of the splitting scheme has been made.

Remark 3

The fixed-stress splitting scheme presented above can be seen as a combination between a linearization scheme, the L-scheme (see [51]) and the fixed-stress splitting scheme for linear problems. This was already previously applied for other classes of nonlinear Biot models, as e.g. in [26, 28] or for unsaturated flow in deformable porous media [52]. This type of methods are often accelerated by using the Anderson Acceleration method, see e.g. [52].

3 Convergence analysis

In this section we present the convergence analysis of Algorithm 1 for the iterative solution of the nonlinear poroelasticity problem (5). We start the exposition with stating our main theoretical result in Theorem 1 below, before we collect some auxiliary results in Sect. 3.1, which we will then use to prove Theorem 1 in Sect. 3.2.

Theorem 1

Consider the fixed-stress split iteration according to Algorithm 1 to approximate the exact solution \(({\varvec{u}},p)\) of the nonlinear problem (5) in which the hydraulic conductivity \(K=K({\textrm{div}} \, {\varvec{u}})\) is a function of the dilatation of the solid that satisfies the conditions in Assumption 1. Further, assume that \(\nabla p \in L^\infty (\Omega )\).

Then the iterates \(({\varvec{u}}^i,p^i)\) converge linearly to \(({\varvec{u}},p)\) for a sufficiently small time step \(\tau\). In particular, the following estimates holds:

$$\begin{aligned}{} & {} \Vert e_p^{i+1}\Vert \le \sqrt{ \frac{c_0 + \frac{\tau }{4 {\underline{K}}} \frac{c^2}{(c_K^2+\lambda )^2} }{c_1} }\Vert e_p^i\Vert , \end{aligned}$$
(8)
$$\begin{aligned}{} & {} \left( \Vert \varvec{\epsilon }({\varvec{e}}_{{\varvec{u}}}^{i+1})\Vert ^2 + \lambda \Vert {\textrm{div}} \, {\varvec{e}}_{{\varvec{u}}}^{i+1}\Vert ^2 \right) ^\frac{1}{2} \le \sqrt{\frac{1}{c_K^2+\lambda }} \Vert e_p^{i+1}\Vert , \end{aligned}$$
(9)

where \(c_0:= L/2 < c_1:= L/2 + (\beta _s^{-2}+\lambda )^{-1}/2\) and L is the stabilization parameter in Algorithm 1 and \(\beta _s\) the Stokes inf-sup constant.

3.1 Auxiliary results

In order to analyze the fixed-stress split method, i.e., prove its uniform linear convergence for an arbitrary initial guess \(({\varvec{u}}^0,p^0)\), we define the errors associated with the approximations \({\varvec{u}}^i\) and \(p^i\) after i executions of steps (a) and (b) of Algorithm 1, i.e.,

$$\begin{aligned} {\varvec{e}}_{{\varvec{u}}}^i&:= {\varvec{u}}^i - {\varvec{u}}\in {\varvec{U}}, \end{aligned}$$
(10a)
$$\begin{aligned} e_p^i&:= p^i - p \in P, \end{aligned}$$
(10b)

where \(i=0,1,2,\ldots\), and \(({\varvec{u}},p)\) denotes the exact solution of the coupled problem (5).

Subtracting from equations (6) and (7), which are solved in the \((i+1)\)-st iteration, the equations (5b) and (5a) results in the error equations

$$\begin{aligned}&- \tau (\text {div}\,K^i \nabla p^{i+1}-\text {div}\,K \nabla p, q) + S (e_p^{i+1},q) \nonumber \\&\quad + L (e_p^{i+1},q)= L (e_p^i,q) -(\text {div}\,{\varvec{e}}_{{\varvec{u}}}^i,q), \ \forall q \in P, \end{aligned}$$
(11a)
$$\begin{aligned}&(\varvec{\epsilon }({\varvec{e}}_{{\varvec{u}}}^{i+1}),\varvec{\epsilon }({\varvec{w}})) + \lambda (\text {div}\,{\varvec{e}}_{{\varvec{u}}}^{i+1}, \text {div}\,{\varvec{w}}) = (e_p^{i+1},\text {div}\,{\varvec{w}}), \ \forall {\varvec{w}}\in {\varvec{U}}, \end{aligned}$$
(11b)

where we have used the short notation \(K:=K(\text {div}\,{\varvec{u}})\). Now, using the test functions \(q=e_p^{i+1}\) and \({\varvec{w}}:={\varvec{e}}_{{\varvec{u}}}^{i+1}\) in (11) and adding up the resulting equations (11a) and (11b), we obtain an error identity, which serves as the basis for our analysis, that is,

$$\begin{aligned}&\Vert \varvec{\epsilon }({\varvec{e}}_{{\varvec{u}}}^{i+1}) \Vert ^2 + \lambda \Vert \text {div}\,{\varvec{e}}_{{\varvec{u}}}^{i+1}\Vert ^2 + \tau (K^i \nabla p^{i+1} - K \nabla p, \nabla e_p^{i+1}) \nonumber \\&\quad + S \Vert e_p^{i+1}\Vert ^2 + L ((e_p^{i+1}-e_p^i),e_p^{i+1}) = (\text {div}\,({\varvec{e}}_{{\varvec{u}}}^{i+1}-{\varvec{e}}_{{\varvec{u}}}^i),e_p^{i+1}). \end{aligned}$$
(12)

The following lemma provides an estimate that can be derived from (12), bounding quantities associated with the approximations after \((i+1)\) iterations by the norm of the error \(e_p^i\).

Lemma 2

Consider the approximations \({\varvec{u}}^{i+1}\) and \(p^{i+1}\) generated via Algorithm 1 and the corresponding errors \({\varvec{e}}_{{\varvec{u}}}^{i+1}\) and \(e_p^{i+1}\) defined according to (10), where \(({\varvec{u}},p)\) is the exact solutions of problem (5). Then for a stabilization parameter \(L \ge 1/(d^{-1}+\lambda )=:1/(c_K^2+\lambda )\) there holds the estimate

$$\begin{aligned}&\frac{1}{2}\left( \Vert \varvec{\epsilon }({\varvec{e}}_{{\varvec{u}}}^{i+1}) \Vert ^2 + \lambda \Vert {\textrm{div}} \, {\varvec{e}}_{{\varvec{u}}}^{i+1}\Vert ^2 \right) +\tau (K^i \nabla p^{i+1} - K \nabla p, \nabla e_p^{i+1}) \nonumber \\&\quad + S \Vert e_p^{i+1}\Vert ^2 + \frac{L}{2} \Vert e_p^{i+1}\Vert ^2 \le \frac{L}{2} \Vert e_p^i\Vert ^2. \end{aligned}$$
(13)

Proof

In view of \((e_p^{i+1}-e_p^i,e_p^{i+1})=\frac{1}{2} \left( \Vert e_p^{i+1}- e_p^i\Vert ^2 + \Vert e_p^{i+1}\Vert ^2 - \Vert e_p^i\Vert ^2 \right)\) we can rewrite (12) in the form

$$\begin{aligned}&\Vert \varvec{\epsilon }({\varvec{e}}_{{\varvec{u}}}^{i+1}) \Vert ^2 + \lambda \Vert \text {div}\,{\varvec{e}}_{{\varvec{u}}}^{i+1}\Vert ^2 + \tau (K^i \nabla p^{i+1} - K \nabla p, \nabla e_p^{i+1}) \nonumber \\&\quad + S \Vert e_p^{i+1}\Vert ^2 + \frac{L}{2} \Vert e_p^{i+1}\Vert ^2 + \frac{L}{2} \Vert e_p^{i+1}- e_p^i\Vert ^2 \nonumber \\&\quad = \frac{L}{2} \Vert e_p^i\Vert ^2 +(\text {div}\,({\varvec{e}}_{{\varvec{u}}}^{i+1}- {\varvec{e}}_{{\varvec{u}}}^i), e_p^{i+1}). \end{aligned}$$
(14)

Next, for \({\varvec{w}}={\varvec{e}}_{{\varvec{u}}}^{i+1}-{\varvec{e}}_{{\varvec{u}}}^i\), the error Eq. (11b) gives

$$\begin{aligned} (\text {div}\,({\varvec{e}}_{{\varvec{u}}}^{i+1}- {\varvec{e}}_{{\varvec{u}}}^i), e_p^{i+1})&= (\varvec{\epsilon }({\varvec{e}}_{{\varvec{u}}}^{i+1}),\varvec{\epsilon }({\varvec{e}}_{{\varvec{u}}}^{i+1}-{\varvec{e}}_{{\varvec{u}}}^i)) \nonumber \\&\quad + \lambda (\text {div}\,{\varvec{e}}_{{\varvec{u}}}^{i+1}, \text {div}\,({\varvec{e}}_{{\varvec{u}}}^{i+1}- {\varvec{e}}_{{\varvec{u}}}^i)). \end{aligned}$$
(15)

Now, inserting (15) in (14), we obtain

$$\begin{aligned}&\Vert \varvec{\epsilon }({\varvec{e}}_{{\varvec{u}}}^{i+1}) \Vert ^2 + \lambda \Vert \text {div}\,{\varvec{e}}_{{\varvec{u}}}^{i+1}\Vert ^2 + \tau (K^i \nabla p^{i+1} - K \nabla p, \nabla e_p^{i+1}) \nonumber \\&\quad + S \Vert e_p^{i+1}\Vert ^2 + \frac{L}{2} \Vert e_p^{i+1}\Vert ^2 + \frac{L}{2} \Vert e_p^{i+1}- e_p^i\Vert ^2 \nonumber \\&\quad = \frac{L}{2} \Vert e_p^i\Vert ^2 + (\varvec{\epsilon }({\varvec{e}}_{{\varvec{u}}}^{i+1}),\varvec{\epsilon }({\varvec{e}}_{{\varvec{u}}}^{i+1}-{\varvec{e}}_{{\varvec{u}}}^i)) + \lambda (\text {div}\,{\varvec{e}}_{{\varvec{u}}}^{i+1}, \text {div}\,({\varvec{e}}_{{\varvec{u}}}^{i+1}- {\varvec{e}}_{{\varvec{u}}}^i)) \nonumber \\&\quad \le \frac{L}{2} \Vert e_p^i\Vert ^2 + \frac{1}{2} \left( \Vert \varvec{\epsilon }({\varvec{e}}_{{\varvec{u}}}^{i+1}) \Vert ^2 + \lambda \Vert \text {div}\,{\varvec{e}}_{{\varvec{u}}}^{i+1}\Vert ^2 \right) \nonumber \\&\qquad + \frac{1}{2} \left( \Vert \varvec{\epsilon }({\varvec{e}}_{{\varvec{u}}}^{i+1}- {\varvec{e}}_{{\varvec{u}}}^i) \Vert ^2 + \lambda \Vert \text {div}\,({\varvec{e}}_{{\varvec{u}}}^{i+1}- {\varvec{e}}_{{\varvec{u}}}^i) \Vert ^2 \right) , \end{aligned}$$
(16)

and, after collecting terms,

$$\begin{aligned}&\frac{1}{2} \left( \Vert \varvec{\epsilon }({\varvec{e}}_{{\varvec{u}}}^{i+1}) \Vert ^2 + \lambda \Vert \text {div}\,{\varvec{e}}_{{\varvec{u}}}^{i+1}\Vert ^2 \right) + \tau (K^i \nabla p^{i+1} - K \nabla p, \nabla e_p^{i+1}) \nonumber \\&\quad + S \Vert e_p^{i+1}\Vert ^2 + \frac{L}{2} \Vert e_p^{i+1}\Vert ^2 + \frac{L}{2} \Vert e_p^{i+1}- e_p^i\Vert ^2 \nonumber \\&\quad \le \frac{L}{2} \Vert e_p^i\Vert ^2 \nonumber \\&\quad +\frac{1}{2} \left( \Vert \varvec{\epsilon }({\varvec{e}}_{{\varvec{u}}}^{i+1}- {\varvec{e}}_{{\varvec{u}}}^i) \Vert ^2 + \lambda \Vert \text {div}\,({\varvec{e}}_{{\varvec{u}}}^{i+1}- {\varvec{e}}_{{\varvec{u}}}^i) \Vert ^2 \right) . \end{aligned}$$
(17)

What remains to be done is to estimate the last term on the right-hand side of (17). For this purpose, we subtract the error equation (11b) for the i-th error \({\varvec{e}}_{{\varvec{u}}}^i\) from that for the \((i+1)\)-st error \({\varvec{e}}_{{\varvec{u}}}^{i+1}\) and test with \({\varvec{w}}={\varvec{e}}_{{\varvec{u}}}^{i+1}-{\varvec{e}}_{{\varvec{u}}}^i\), resulting in

$$\begin{aligned}&\Vert \varvec{\epsilon }({\varvec{e}}_{{\varvec{u}}}^{i+1}- {\varvec{e}}_{{\varvec{u}}}^i) \Vert ^2 + \lambda \Vert \text {div}\,({\varvec{e}}_{{\varvec{u}}}^{i+1}- {\varvec{e}}_{{\varvec{u}}}^i) \Vert ^2 \nonumber \\&\quad = (e_p^{i+1}- e_p^i,\text {div}\,({\varvec{e}}_{{\varvec{u}}}^{i+1}- {\varvec{e}}_{{\varvec{u}}}^i)) \nonumber \\&\quad \le \Vert e_p^{i+1}- e_p^i\Vert \Vert \text {div}\,({\varvec{e}}_{{\varvec{u}}}^{i+1}- {\varvec{e}}_{{\varvec{u}}}^i) \Vert . \end{aligned}$$
(18)

Moreover, using the inequality \(\Vert \varvec{\epsilon }({\varvec{w}}) \Vert \ge c_K \Vert \text {div}\,{\varvec{w}}\Vert\), which is valid for all \({\varvec{w}}\in {\varvec{U}}\) for \(c_K = \frac{1}{\sqrt{d}}\) where d is the space dimension, from (18) we get

$$\begin{aligned} (c_K^2+\lambda ) \Vert \text {div}\,({\varvec{e}}_{{\varvec{u}}}^{i+1}- {\varvec{e}}_{{\varvec{u}}}^i) \Vert ^2 \le \Vert e_p^{i+1}- e_p^i\Vert \Vert \text {div}\,({\varvec{e}}_{{\varvec{u}}}^{i+1}- {\varvec{e}}_{{\varvec{u}}}^i) \Vert , \end{aligned}$$

or, equivalently,

$$\begin{aligned} \Vert \text {div}\,({\varvec{e}}_{{\varvec{u}}}^{i+1}- {\varvec{e}}_{{\varvec{u}}}^i) \Vert \le \frac{1}{c_K^2+\lambda } \Vert e_p^{i+1}- e_p^i\Vert . \end{aligned}$$
(19)

Now, combining (18) and (19), we find

$$\begin{aligned} \Vert \varvec{\epsilon }({\varvec{e}}_{{\varvec{u}}}^{i+1}- {\varvec{e}}_{{\varvec{u}}}^i) \Vert ^2 + \lambda \Vert \text {div}\,({\varvec{e}}_{{\varvec{u}}}^{i+1}- {\varvec{e}}_{{\varvec{u}}}^i) \Vert ^2&\le \frac{1}{c_K^2+\lambda } \Vert e_p^{i+1}- e_p^i\Vert ^2 \nonumber \\&\le L \Vert e_p^{i+1}- e_p^i\Vert ^2, \end{aligned}$$
(20)

where the last inequality holds due to the assumption \(L \ge 1/(c_K^2+\lambda )\). Finally, using (20) in (17) yields (13), the estimate we had to prove. \(\square\)

Before we prove the main result of this paper, we present another lemma that will turn out to be useful.

Lemma 3

For the errors associated with the iterates generated by Algorithm 1 there holds the estimate

$$\begin{aligned} (\beta _s^{-2}+\lambda )^{-1} \Vert e_p^{i+1}\Vert ^2 \le \Vert \varvec{\epsilon }({\varvec{e}}_{{\varvec{u}}}^{i+1}) \Vert ^2 + \lambda \Vert {\textrm{div}} \, {\varvec{e}}_{{\varvec{u}}}^{i+1}\Vert ^2 \end{aligned}$$
(21)

where \(\beta _s\) is the constant in the Stokes inf-sup condition

$$\begin{aligned} \inf _{q \in P} \sup _{{\varvec{w}}\in {\varvec{U}}} \frac{({\textrm{div}} \, {\varvec{w}},q)}{\Vert {\varvec{u}}\Vert _1\Vert q \Vert } \ge \beta _s . \end{aligned}$$
(22)

Proof

As one can easily see, the Stokes inf-sup condition (22) implies that for any \(e_p^{i+1}\) there exists \({\varvec{w}}_p \in {\varvec{U}}\) such that

$$\begin{aligned} \text {div}\,{\varvec{w}}_p = e_p^{i+1}\quad \text{ and } \quad \Vert \varvec{\epsilon }({\varvec{w}}_p) \Vert \le \beta _s^{-1} \Vert e_p^{i+1}\Vert . \end{aligned}$$
(23)

Hence, this element \({\varvec{w}}_p\) satisfies the estimate

$$\begin{aligned} \Vert \varvec{\epsilon }({\varvec{w}}_p) \Vert ^2 + \lambda \Vert \text {div}\,{\varvec{w}}_p \Vert ^2 \le (\beta _s^{-2}+\lambda ) \Vert e_p^{i+1}\Vert ^2. \end{aligned}$$

Setting \({\varvec{w}}={\varvec{w}}_p\) in (11b) and using (23), we obtain

$$\begin{aligned} \Vert e_p^{i+1}\Vert ^2= & {} (\varvec{\epsilon }({\varvec{e}}_{{\varvec{u}}}^{i+1}),\varvec{\epsilon }({\varvec{w}}_p)) + \lambda (\text {div}\,{\varvec{e}}_{{\varvec{u}}}^{i+1}, \text {div}\,{\varvec{w}}_p) \\\le & {} (\Vert \varvec{\epsilon }({\varvec{e}}_{{\varvec{u}}}^{i+1}) \Vert ^2 + \lambda \Vert \text {div}\,{\varvec{e}}_{{\varvec{u}}}^{i+1}\Vert ^2)^\frac{1}{2} (\Vert \varvec{\epsilon }({\varvec{w}}_p) \Vert ^2 \\{} & {} + \lambda \Vert \text {div}\,{\varvec{w}}_p \Vert ^2)^\frac{1}{2} \\\le & {} (\Vert \varvec{\epsilon }({\varvec{e}}_{{\varvec{u}}}^{i+1})\Vert ^2 + \lambda \Vert \text {div}\,{\varvec{e}}_{{\varvec{u}}}^{i+1}\Vert ^2)^\frac{1}{2} (\beta _s^{-2}+\lambda )^\frac{1}{2} \Vert e_p^{i+1}\Vert \end{aligned}$$

which shows the desired result. \(\square\)

Remark 4

The above method of contraction uses solution variables and their natural energy norms. This is in the same spirit as the proofs of contraction as carried out in [38, 39, 45, 50]. This is in contrast to the convergence analysis as carried out in [16, 44, 46] where the contraction is proved for composition quantities consisting of both pressure and displacement terms. For example, in case of fixed-stress split scheme, a volumetric mean stress is defined by \(\sigma = {\lambda } \nabla \cdot {\varvec{u}}- {\alpha } p\) and the contraction is proved on this composite quantity [16].

3.2 Proof of the main result

Lemma 2 and Lemma 3 are the key ingredients to establish the uniform convergence of the fixed-stress split method under Assumption 1.

Proof

The inner product \(\tau (K^i \nabla p^{i+1} - K \nabla p, \nabla e_p^{i+1})\) in (13) can be represented as

$$\begin{aligned}&\tau (K(\text {div}\,{\varvec{u}}^i) \nabla p^{i+1} - K (\text {div}\,{\varvec{u}}) \nabla p, \nabla e_p^{i+1}) \nonumber \\&\quad =\tau ( (K(\text {div}\,{\varvec{u}}^i) - K (\text {div}\,{\varvec{u}})) \nabla p, \nabla e_p^{i+1}) \nonumber \\&\qquad + \tau (K (\text {div}\,{\varvec{u}}^i) \nabla e_p^{i+1}, \nabla e_p^{i+1}) \end{aligned}$$
(24)

The two terms in this splitting, due to Assumption 1, can be estimated as follows:

$$\begin{aligned}{} & {} \tau ( (K(\text {div}\,{\varvec{u}}^i) - K (\text {div}\,{\varvec{u}})) \nabla p, \nabla e_p^{i+1}) \nonumber \\{} & {} \quad \le \tau c \Vert \text {div}\,{\varvec{e}}_{{\varvec{u}}}^i\Vert \Vert \nabla e_p^{i+1}\Vert \nonumber \\{} & {} \quad \le \tau c \left( \frac{1}{2 \delta } \Vert \text {div}\,{\varvec{e}}_{{\varvec{u}}}^i\Vert ^2 + \frac{\delta }{2} \Vert \nabla e_p^{i+1}\Vert ^2\right) \end{aligned}$$
(25)
$$\begin{aligned}{} & {} \tau ( (K(\text {div}\,{\varvec{u}}^i) \nabla e_p^{i+1}, \nabla e_p^{i+1}) \ge \tau {\underline{K}} \Vert \nabla e_p^{i+1}\Vert ^2 \end{aligned}$$
(26)

where in the first inequality in (25) we have used the boundedness of \(\nabla p\), i.e., \(\Vert \nabla p \Vert _{L^{\infty }} \le c_\infty\) as well as the Lipschitz continuity of K, i.e.,

$$\begin{aligned} \vert K(\text {div}\,{\varvec{u}}^i) - K (\text {div}\,{\varvec{u}}) \vert \le K_L \vert \text {div}\,{\varvec{u}}^i - \text {div}\,{\varvec{u}}\vert = K_L \vert \text {div}\,{\varvec{e}}_{{\varvec{u}}}^i\vert , \end{aligned}$$

which means that we can choose \(c:= c_\infty K_L\) and the positive constant \(\delta\) in the second inequality in (25) is still at our disposal. To obtain (26) we have used the strict positivity of K, see (2b).

Combining (13) and (21), we obtain

$$\begin{aligned}&\frac{1}{2}(\beta _s^{-2}+\lambda )^{-1} \Vert e_p^{i+1}\Vert ^2 + \tau (K^i \nabla p^{i+1} - K \nabla p, \nabla e_p^{i+1}) \\&\quad + S \Vert e_p^{i+1}\Vert ^2 + \frac{L}{2} \Vert e_p^{i+1}\Vert ^2 \le \frac{L}{2} \Vert e_p^i\Vert ^2 \end{aligned}$$

which implies

$$\begin{aligned}&\frac{1}{2}\left( \frac{1}{\beta _s^{-2}+\lambda }+L\right) \Vert e_p^{i+1}\Vert ^2 + \tau (K^i \nabla p^{i+1} - K \nabla p, \nabla e_p^{i+1}) \nonumber \\&\quad \le \frac{L}{2} \Vert e_p^i\Vert ^2. \end{aligned}$$
(27)

We rewrite the latter estimate as

$$\begin{aligned} c_1 \Vert e_p^{i+1}\Vert ^2 + \tau (K^i \nabla p^{i+1} - K \nabla p, \nabla e_p^{i+1}) \le c_0 \Vert e_p^i\Vert ^2. \end{aligned}$$
(28)

using the definitions \(0< c_0:= L/2 < c_1:= L/2 + (\beta _s^{-2}+\lambda )^{-1}/2\). Taking advantage of the splitting (24) and the estimates (25) and (26), from (28) we find

$$\begin{aligned}&c_1 \Vert e_p^{i+1}\Vert ^2 + \tau {\underline{K}} \Vert \nabla e_p^{i+1}\Vert ^2\nonumber \\&\quad \le c_0 \Vert e_p^i\Vert ^2 + \tau c \Vert \text {div}\,{\varvec{e}}_{{\varvec{u}}}^i\Vert \Vert \nabla e_p^{i+1}\Vert \nonumber \\&\quad \le c_0 \Vert e_p^i\Vert ^2 + \tau c \frac{1}{c_K^2+\lambda } \Vert e_p^i\Vert \Vert \nabla e_p^{i+1}\Vert \nonumber \\&\quad \le c_0 \Vert e_p^i\Vert ^2 + \tau c \frac{1}{c_K^2+\lambda } \left( \frac{1}{2 \delta } \Vert e_p^i\Vert ^2 + \frac{\delta }{2} \Vert \nabla e_p^{i+1}\Vert ^2 \right) . \end{aligned}$$
(29)

where we have also used the error Eq. (11b) in a similar way as in the derivation of (19).

Now, we choose \(\delta := \frac{2 {\underline{K}} (c_K^2 + \lambda )}{c}\), to cancel the terms with \(\Vert \nabla e_p^{i+1}\Vert ^2\) on boths sides of (29) in order to obtain

$$\begin{aligned} c_1 \Vert e_p^{i+1}\Vert ^2&\le \left( c_0 +\frac{\tau }{4 {\underline{K}}} \frac{c^2}{(c_K^2+\lambda )^2} \right) \Vert e_p^i\Vert ^2, \end{aligned}$$
(30)

the latter being equivalent to (8).

Finally, estimate (9) follows in a similar way as (20) (from the error equation (11b) by setting \({\varvec{w}}={\varvec{e}}_{{\varvec{u}}}^{i+1}\) and using \(\Vert \varvec{\epsilon }({\varvec{w}}) \Vert \ge c_K \Vert \text {div}\,{\varvec{w}}\Vert\)). \(\square\)

Remark 5

A simple choice for the stabilization parameter is \(L:=1/(c_K^2+\lambda )=1/(d^{-1}+\lambda )\), which together with the definitions in the Theorem 1, i.e., \(c_0:= L/2\) and \(c_1:= L/2 + (\beta _s^{-2}+\lambda )^{-1}/2\), results in a quotient \(c_0/c_1=1/(1+\frac{1+2 \lambda }{2 \beta _s^{-2} +2 \lambda })\). This means that for small values of \(\tau\) the theoretical bound on the \(L^2\)-error contraction factor approaches \((1+\frac{1+2 \lambda }{2 \beta _s^{-2} +2 \lambda })^{-\frac{1}{2}}\) and for \(\lambda \rightarrow \infty\) its limit is \(1/\sqrt{2}\), which is in accordance with the corresponding estimate for the linear problem, as presented in [53].

Remark 6

The number of iterations is obviously depending on the choice of the parameter L. To find an optimal value for L is typically not an easy task. We refer to the work [50] where this problem has been studied in detail for the splitting scheme for the quasi-static linear Biot model.

4 Numerical results

The aim of this section is to numerically test the performance of the proposed fixed-stress Algorithm 1. To this end, we consider the following test problems of type (1) which differ only in the definition of the permeability coefficient function K, namely

  1. (o)

    \(K=K_0\), i.e., a linear model;

  2. (p)

    \(K = K(\text {div}\,{\varvec{u}}) = K_0 + K_1 (\text {div}\,{\varvec{u}})^2\);

  3. (q)

    \(K= K(\text {div}\,{\varvec{u}}) = (K_0 + K_1 \text {div}\,{\varvec{u}})^2\);

  4. (r)

    \(K= K(\text {div}\,{\varvec{u}})=K_0 e^{K_1\text {div}\,{\varvec{u}}}\),

where the constants \(K_0\) and \(K_1\) are specified within the description of the individual test settings. The different examples of nonlinearities have been inspired by [20], where similar polynomial and exponential dependencies of K on the solid dilatation \(\text {div}\,{\varvec{u}}\) have been motivated.

In all computations we have used homogeneous Dirichlet boundary conditions for \({\varvec{u}}\) and homogeneous Neumann boundary conditions for p. The chosen computational domain \(\Omega\) is the L-shaped region \(\Omega = (0,1)\times (0,1)\setminus [0.5,1)\times [0.5,1)\), which is a standard choice in academic test setting.

The right-hand sides in all tests are specified as

$$\begin{aligned} {\varvec{f}}= & {} -\text {div}\,( \varvec{\epsilon }({\varvec{u}}_{\text {ex}}) + \lambda \text {div}\,{\varvec{u}}_{\text {ex}} I)+ \nabla p_{\text {ex}}\\ g= & {} -\text {div}\,{\varvec{u}}_{\text {ex}}+\tau K_0 \Delta p_{\text {ex}} - S p_{\text {ex}} \end{aligned}$$

where

$$\begin{aligned} p_{\text {ex}}= \, & {} \phi (x,y) - \frac{1}{\vert \Omega \vert }\int _{\Omega }\phi (x,y) \text {d}x \text {d}y \in L_2^0(\Omega ), \\ {\varvec{u}}_{\text {ex}}= \, & {} 0.01 \left( \frac{\partial \phi }{\partial y},\frac{\partial \phi }{\partial x}\right) \end{aligned}$$

and

$$\begin{aligned} \phi = (\sin (2\pi x) \sin (2 \pi y))^2. \end{aligned}$$

Following the theoretical findings, the employed stabilization parameter L in the fixed-stress iteration is

$$\begin{aligned} L: = L^*= \frac{1}{\lambda +1/2}, \end{aligned}$$
(31)

see also Remark 5, unless specified explicitly otherwise.

The numerical tests are performed on meshes with mesh parameter h where all meshes are derived via uniform refinement of the coarse mesh given on the left of Fig. 1 for which \(h=1/16\).

On the right of Fig. 1 we have plotted the solid displacement \({\varvec{u}}\) which has been computed for the linear model for the choice of parameters \(h=1/32\), \(\tau =0.01\), \(S=10^{-4}\), \(K_0=10^{-6}\), and \(\lambda =10^2\). The corresponding solution for p is shown on the left of Fig. 2, whereas the right of the same figure illustrates the solution of the non-linear problem (i) for the same choice of parameters where additionally we have set \(K_1=10^{-1}\). All computations are for the first time step \(t_n=t_1=\tau\).

Fig. 1
figure 1

Left: triangulation of \(\Omega\), \(h=1/16\); right: \({\varvec{u}}\) for model (o), where \(h=1/32\), \(\tau =0.01\), \(S=10^{-4}\), \(K_0=10^{-6}\), and \(\lambda =10^2\)

Fig. 2
figure 2

Left: p for model (o); right: p for model (i). In both cases \(h=1/32\), \(\tau =0.01\), \(S=10^{-4}\), \(K_0=10^{-6}\), and \(\lambda =10^2\); For the nonlinear problem \(K_1=10^{-1}\)

To ascertain the robustness of the proposed fixed-stress method we vary the involved model, discretization and stabilization parameters. In all test settings we have tried to capture the most interesting ranges of the latter and to challenge the theoretical results.

The stopping criterion for the fixed-stress algorithm has been chosen to be

$$\begin{aligned} \Vert x_{k+1}-x_{k}\Vert < 10^{-6}, \end{aligned}$$
(32)

where \(x_{k}\) denotes the k-th iterate of the proposed fixed-stress method.

The numerical experiments have been performed using the FEniCS open-source computing platform for solving partial differential equations, [54, 55].

4.1 Test setting (o)

In the focus of the first group of experiments is the linear model. The main purpose of these tests is to determine how the proposed fixed-stress method behaves in terms of number of iterations when varying the model parameters and later compare with the results obtained for the non-linear models.

Fig. 3
figure 3

Number of iterations for the linear model for fixed time step size \(\tau = 0.01\), \(S=10^{-4}\), varying the mesh size h, \(\lambda\), and K

As can be seen from Fig. 3, the method shows robust behavior in all tested parameter regimes.

4.2 Test setting (i)

Subject of testing in this subsection is the Biot model with non-linear permeability coefficient \(K(\text {div}\,{\varvec{u}}) = K_0 + K_1 (\text {div}\,{\varvec{u}})^2\).

On Fig. 4, the number of iterations is plotted for different model and discretization parameters where two different stopping criteria have been compared. The first is as defined in (32) and the second one is a residual reduction by factor \(10^{6}\), i.e.,

$$\begin{aligned} \frac{\Vert r_k\Vert }{\Vert r_0\Vert }<10^{-6}, \end{aligned}$$
(33)

where \(r_k\) denotes the k-th residual of the fixed-stress scheme. We observe that the number of iterations when using the second stopping criterion is always smaller and, furthermore, that this number is independent of the considered discretization and model parameters. Though slightly changing, the number of iterations that is required to satisfy the stopping criterion (32) also confirms the robustness of the studied iterative method.

Fig. 4
figure 4

Number of iterations for \(K= K(\text {div}\,{\varvec{u}})=K_0 + K_1 (\text {div}\,{\varvec{u}})^2\). Time step size \(\tau = 0.01\), \(S=10^{-4}\), and \(\lambda =10^2\)

For the same nonlinear permeability function, we have additionally performed a series of tests where we have primarily varied \(\tau\). It is interesting to observe on Fig. 5 that though for bigger \(\tau\) we have the smallest number of iterations when solving on the coarser meshes, on the finest mesh the algorithm converges only for the two smallest choices of \(\tau\). This artefact, however, is in accordance with the analysis presented in this paper suggesting that for smaller mesh parameter h we might need a smaller time step \(\tau\) to guarantee the convergence of the fixed-stress split method.

Fig. 5
figure 5

Number of iterations for \(K = K(\text {div}\,{\varvec{u}}) = K_0 + K_1 (\text {div}\,{\varvec{u}})^2\). Missing points indicate no convergence within 100 iterations for the corresponding parameter values

4.3 Test setting (ii)

In this subsection we want to test the effect of the stabilization parameter L on the convergence of the considered iterative scheme. The studied model here involves the nonlinear permeability function \(K = K(\text {div}\,{\varvec{u}}) = (K_0 + K_1 \text {div}\,{\varvec{u}})^2\).

Fig. 6
figure 6

Number of iterations for \(K = K(\text {div}\,{\varvec{u}}) = (K_0 + K_1 \text {div}\,{\varvec{u}})^2\). Time step size \(\tau =0.01\), \(S=10^{-4}\); three different values for the stabilization parameter L. Missing points indicate no convergence within 100 iterations

The results in Fig. 6 demonstrate the expected robust convergent behavior of the method for \(L=L^*\), chosen as in (31), as well as for \(L=2L^*\), which is in accordance with the developed theory. Moreover, when L is too small, as in the example when \(L=L^*/2\), we observe that the algorithm indeed does not converge in some parameter regimes. The tests indicate also that the method performs better when L is smaller but satisfies the theoretical bounds.

4.4 Test setting (iii)

In our last test case, we considered problem (1) for the nonlinear permeability function \(K= K(\text {div}\,{\varvec{u}})=K_0 e^{K_1\text {div}\,{\varvec{u}}}\). Again we varied various model and discretization parameters and tested the fixed-stress method according to Algorithm 1 for its robustness. As can be seen from Fig. 7, the method converges at (an almost) constant rate, which depends only on the size of the Lamé parameter \(\lambda\) in the tested parameter regime, but also behaves well in this respect. The effect, that a large value of \(\lambda\) typically speeds up the convergence of the fixed-stress algorithm is a known phenomenon that is also observed for the linear Biot model. The improved rates of convergence in this situation can be explained by a natural decoupling of the flow and mechanics subproblems when approaching the limit of incompressible solids.

Fig. 7
figure 7

Number of iterations for \(K = K(\text {div}\,{\varvec{u}}) = K_0 e^{K_1\text {div}\,{\varvec{u}}}\), \(S=10^{-4}\), \(K_0\in \{10^{-8},10^{-6},10^{-4},10^{-2}\}\), \(h\in \{1/16,1/32,1/64,1/128\}\). Time step size \(\tau =0.01\)

5 Conclusions

In this paper we have developed a new fixed-stress type splitting method for a nonlinear poroelasticity model in which the permeability depends on the divergence of the displacement. We have proven that for sufficiently small time steps this algorithm converges linearly and the error contraction factor is strictly less than one, independently of all model parameters.

Moreover, our theoretical findings are fully supported and justified by a series of numerical tests which also have shown the robustness and computational efficiency of the proposed fixed-stress method.