Keywords

1 Introduction

Direct mathematical simulation of hydrodynamic processes in heterogeneous porous media is required for solving many applied problems in oil and gas industry and exploration [1,2,3]. Due to sedimentation and geogenesis, geological rocks have a multiscale geometric structure, which essentially complicates the application of computational fluid dynamics methods [4, 5].

The development of modern multiscale finite-element methods in the approximation theory of hydrodynamic mathematical models allows applying full-scale discrete geometric models of heterogeneous media using the results of core computer tomography [6,7,8].

The fundamental mathematical model of hydrodynamic processes is based on the Navier-Stokes equations. Under the assumption of incompressibility and slow fluid flowability of the fluid, this mathematical model can be reduced to the Stokes system [9]. Further application of the averaging theory methods to the Stokes system allows writing down the phenomenological Darcy model for description of flows in homogeneous porous media [10].

Mathematical simulation of fluid flows in heterogeneous porous media requires using specialized multiscale mathematical models.

In this work we consider the system of Stokes-Darcy equations as a mathematical model describing the process of incompressible fluid seepage in a system of channels and voids surrounded by a homogeneous porous medium. Coupling of the mathematical models is performed by the Biver-Joseph-Suffman interface conditions [9,10,11]. We propose a modified non-conforming finite-element discretization of these mathematical models using the computational scheme of the discontinuous Galerkin method.

To build a parallel version of the algorithm for solving this problem, a modified technology of domain decomposition is applied [12,13,14]. The effectiveness of the developed computer program in comparing with the sequential version of the algorithm is shown by solving the incompressible fluid flow problem in a heterogeneous porous medium.

2 Problem Statement

A geological rock has a complex multiscale structure. Direct consideration of all structural features will lead to an explosive increase in the size of problem to be solved. To implement the procedure of mathematical simulation, idealized geometric models of geological media are used.

The idealized geometric model of the rock consists of a matrix and fluid-saturated inclusions. In our research, the rock sample has the cube shape with an edge length of 10 cm uniformly divided into cubic cells with an edge length of 1 cm (see Fig. 1). It is assumed that each discretization cell is characterized by its own set of transport properties.

We will simulate the incompressible fluid flow in the geological rock sample using its discrete geometric model and the domain decomposition principle. The incompressible fluid flow in the heterogeneous porous media is described by the Stokes-Darcy equations. To discretize this model, we apply the discontinuous Galerkin method which allows the solution to be broken on the interfragmentary boundary. The weighted distribution of local problems on computational threads is carried out at the level of subdomains. The algorithm for constructing the discrete geometric model of a rock core based on the results of computer tomography is described in [15].

Fig. 1.
figure 1

Structure of the rock sample and computational domain decomposition.

The sample matrix consists of sandstone and contains inclusions (volume fraction 45%) through which water flows. The inclusion will be understood as a single-connected domain with a closed boundary inside the sample. The physical characteristics are given in Table 1.

Table 1. Physical properties

Each macroscale discretization cell is independently tessellated by a microscale tetrahedral partition (see Fig. 2). Consistency of the microscale mesh at the interfragmentary boundaries is not required when using non-conforming finite-element approximations.

Fig. 2.
figure 2

Examples of microscale mesh partitioning: a – 5% porosity (1328950 tetrahedrons), b – 7% porosity (1659688 tetrahedrons).

3 Methods

3.1 Stokes-Darcy System

We denote the microporous medium as \(\varOmega^{{\text{matrix}}}\), and macropores (voids) as \(\varOmega^{{\text{pores}}}\). The steady-state slow flow of an incompressible fluid in a system of channels and pores is described by the following equations:

$$ \begin{gathered} \nabla p_1 = \nabla \cdot \mu \left( {\nabla {{\varvec{v}}}_1 + \left( {\nabla {{\varvec{v}}}_1 } \right)^T } \right) + \rho {{\varvec{g}}}{\text{ in }}\varOmega^{{\text{pores}}} , \\ \nabla \cdot {{\varvec{v}}}_1 = 0{\text{ in }}\varOmega^{{\text{pores}}} , \\ \end{gathered} $$
(1)
$$ \begin{gathered} {{\varvec{v}}}_2 = - \frac{{{\varvec{K}}}}{\mu } \cdot \left( {\nabla p_2 + \rho {{\varvec{g}}}} \right){\text{ in }}\varOmega^{{\text{matrix}}} , \\ \nabla \cdot {{\varvec{v}}}_2 = 0\,{\text{ in }}\varOmega^{{\text{matrix}}} , \\ \end{gathered} $$
(2)

ρ is fluid density [kg/m3], µ is dynamic viscosity [Pa \(\cdot\) sec], K is absolute permeability tensor [m2], p1 is fluid pressure in the macropores and voids [Pa], p2 is fluid pressure in the microporous medium [Пa], v1 is flow velocity in macropores [m/sec], v2 is flow velocity in the microporous medium [m/sec], g is a gravitational acceleration vector.

The notation Г12 means a boundary between the microporous medium and cavern. The ideal contact conditions for the normal component of the velocity and pressure should be satisfied [9]:

$$ \left. {{{\varvec{v}}}_1 \cdot {\bf{n}}_{12} } \right|_{\Gamma_{{12}} } = \left. {{{\varvec{v}}}_2 \cdot {\bf{n}}_{12} } \right|_{\Gamma_{{12}} } , $$
(3)
$$ \left. {\left[ {p_1 {\bf{I}} - \rm{\mu }\left( {\left( {\nabla {\bf{v}}_1 } \right)^T + \nabla {\bf{v}}_1 } \right)} \right] \cdot {\bf{n}}_{12} \cdot {\bf{n}}_{12} } \right|_{\Gamma_{{12}} } = \left. {p_2 } \right|_{\Gamma_{{12}} } , $$
(4)

n12 is a unit external normal vector with respect to the channel wall and macropores.

The seepage boundary may not be smooth, then the friction condition is realized by using the Biver-Joseph-Suffman law [9]:

$$ \left. {{\bf{v}}_1 \cdot {\boldsymbol{\tau }}_{12} } \right|_{\Gamma_{{12}} } = - m\rm{\mu }\left( {\left( {\nabla {\bf{v}}_1 } \right)^T + \nabla {\bf{v}}_1 } \right) \cdot {\bf{n}}_{12} \cdot \left. {{\boldsymbol{\tau }}_{12} } \right|_{\Gamma_{{12}} } , $$
(5)

where τ12 is a unit tangential vector; m is a friction coefficient, which depends on the surface roughness and Reynolds number.

If the motion of the fluid is caused by a pressure difference on the Sinlet and Soutlet faces, the boundary conditions are formulated as:

$$ \left. {\left[ { - p_1 {{\varvec{I}}} + \mu \left( {\left( {\nabla {{\varvec{v}}}_1 } \right)^T + \nabla {{\varvec{v}}}_1 } \right)} \right] \cdot {{\varvec{n}}}} \right|_{S_{{\text{inlet}}} } = {{\varvec{t}}}_{{\text{inlet}}} , $$
(6)
$$ \left. {\left[ { - p_1 {{\varvec{I}}} + \mu \left( {\left( {\nabla {{\varvec{v}}}_1 } \right)^T + \nabla {{\varvec{v}}}_1 } \right)} \right] \cdot {{\varvec{n}}}} \right|_{S_{{\text{outlet}}} } = {{\varvec{t}}}_{{\text{outlet}}} , $$
(7)
$$ \left. {p_2 } \right|_{S_{{\text{inlet}}} } = {{\varvec{t}}}_{{\text{inlet}}} \cdot {{\varvec{n}}}, $$
(8)
$$ \left. {p_2 } \right|_{S_{{\text{outlet}}} } = {{\varvec{t}}}_{{\text{outlet}}} \cdot {{\varvec{n}}}, $$
(9)

n is the unit external normal vector with respect to the outer boundaries.

On the impermeable outer boundary Swall, which does not intersect with the Sinlet and Soutlet faces, the boundary conditions are given:

$$ \left. {{{\varvec{v}}}_1 \cdot {{\varvec{n}}}} \right|_{S_{{\text{wall}}} } = 0,\left. {{{\varvec{v}}}_2 \cdot {{\varvec{n}}}} \right|_{S_{{\text{wall}}} } = 0. $$
(10)

Problems (1)–(10) can be solved in parallel on each decomposition cell. In accordance with the Schwarz method, an iterative procedure is implemented. Conditions (3)–(9) are formulated on the interface with respect to the solution obtained in an adjacent decomposition cell through an adjacent face. We assume that the macro-partition is consistent.

We denote the microporous medium in the l-th macroscale cell as \(\varOmega_l^{{\text{matrix}}}\), and macropores (voids) as \(\varOmega_l^{{\text{pores}}}\). The steady-state slow flow of an incompressible fluid in in the l-th macroscale cell is described by the following equations:

$$ \begin{gathered} \nabla p_1 = \nabla \cdot \mu \left( {\nabla {{\varvec{v}}}_1 + \left( {\nabla {{\varvec{v}}}_1 } \right)^T } \right) + \rho {{\varvec{g}}}{\text{ in }}\varOmega_l^{{\text{pores}}} , \\ \nabla \cdot {{\varvec{v}}}_1 = 0{\text{ in }}\varOmega_l^{{\text{pores}}} , \\ \end{gathered} $$
(11)
$$ \begin{gathered} {{\varvec{v}}}_2 = - \frac{{{\varvec{K}}}}{\mu } \cdot \left( {\nabla p_2 + \rho {{\varvec{g}}}} \right){\text{ in }}\varOmega_l^{{\text{matrix}}} , \\ \nabla \cdot {{\varvec{v}}}_2 = 0\,{\text{ in }}\varOmega_l^{{\text{matrix}}} , \\ \end{gathered} $$
(12)

On the boundary of the microporous medium and the cavern Г12, the conditions of ideal contact for the normal component of the velocity and the pressure should be satisfied as (3) and (4). The friction conditions are also realized in the form (5).

Let an iterative process be realized, and k be the number of the current iteration. On the boundaries between the cells of the macro-partition, the following conditions take place:

$$ \left. {{\bf{v}}_1^k \cdot {\bf{n}}_{12} } \right|_{\Gamma_{{12}} } - \left. {{\bf{v}}_2^k \cdot {\bf{n}}_{12} } \right|_{\Gamma_{{12}} } = \left. {{\bf{v}}_1^{k - 1} \cdot {\bf{n}}_{12} } \right|_{\Gamma_{{12}} } - \left. {{\bf{v}}_2^{k - 1} \cdot {\bf{n}}_{12} } \right|_{\Gamma_{{12}} } , $$
(13)
$$ \begin{gathered} \left. {\left[ {p_1^k {\bf{I}} - \rm{\mu }\left( {\left( {\rm{\nabla }{\bf{v}}_1^k } \right)^T + \nabla {\bf{v}}_1^k } \right)} \right] \cdot {\bf{n}}_{12} \cdot {\bf{n}}_{12} } \right|_{\Gamma_{{12}} } - \left. {p_2^k } \right|_{\Gamma_{{12}} } \\ = \left. {\left[ {p_1^{k - 1} {\bf{I}} - \rm{\mu }\left( {\left( {\nabla {\bf{v}}_1^{k - 1} } \right)^T + \nabla {\bf{v}}_1^{k - 1} } \right)} \right] \cdot {\bf{n}}_{12} \cdot {\bf{n}}_{12} } \right|_{\Gamma_{{12}} } - \left. {p_2^{k - 1} } \right|_{\Gamma_{{12}} } , \\ \end{gathered} $$
(14)
$$ \left. {{\bf{v}}_1^k \cdot {\bf{\tau }}_{12} } \right|_{\Gamma_{{12}} } = - m{\bf{\mu }}\left( {\left( {\nabla {\bf{v}}_1^{k - 1} } \right)^T + \nabla {\bf{v}}_1^{k - 1} } \right) \cdot {\bf{n}}_{12} \cdot \left. {{\bf{\tau }}_{12} } \right|_{\Gamma_{{12}} } . $$
(15)

The boundary conditions on the outer faces have the same form (6)–(10). The iterative process is repeated as long as there is inconsistency of the physical fields on the internal interfragmentary boundaries:

$$ \frac{{\left\| {\left. {{\bf{v}}_1^k \cdot {\bf{n}}_{12} } \right|_{\Gamma_{{12}} } - \left. {{\bf{v}}_1^{k - 1} \cdot {\bf{n}}_{12} } \right|_{\Gamma_{{12}} } } \right\|_{{\bf{H}}({\text{div}})} }}{{\left\| {\left. {{\bf{v}}_1^k \cdot {\bf{n}}_{12} } \right|_{\Gamma_{{12}} } } \right\|_{{\bf{H}}({\text{div}})} }} > \rm{\varepsilon }{,}\frac{{\left\| {\left. {{\bf{v}}_2^k \cdot {\bf{n}}_{12} } \right|_{\Gamma_{{12}} } - \left. {{\bf{v}}_2^{k - 1} \cdot {\bf{n}}_{12} } \right|_{\Gamma_{{12}} } } \right\|_{{\bf{H}}({\text{div}})} }}{{\left\| {\left. {{\bf{v}}_2^k \cdot {\bf{n}}_{12} } \right|_{\Gamma_{{12}} } } \right\|_{{\bf{H}}({\text{div}})} }} > \rm{\varepsilon } $$
(16)

In the paper, we use ε = 10–5. Criterion (16) is sufficient, since the solution of the Stokes-Darcy equations is reduced to the solution of the saddle point problem and the definition of pairs \(\left( {{{\varvec{v}}}_1 ,p_1 } \right)\) and \(\left( {{{\varvec{v}}}_2 ,p_2 } \right)\).

3.2 Variational Formulation of the Discontinuous Galerkin Method for the Stokes-Darcy System

On a non-empty set \(\varOmega \subset R^3\), we consider a finite union of subsets \(M_h \left( \varOmega \right) = \mathop \cup \limits_i K_i\), and \(\rm{\mathfrak{I}}_n \left( {K_i } \right)\) as a space of polynomials of degree n. On the union \(M_h \left( \varOmega \right)\), we introduce discrete function spaces for approximation of pressure and velocity:

$$ P^h = \left\{ {p^h |p^h \in L_0^2 \left( \varOmega \right):p^h \in \mathfrak{I}_{n - 1} \left( {K_i } \right)\forall K_i \in M_h \left( \varOmega \right),\int_{K_i } {p^h dK_i } = 0} \right\}, $$
(17)
$$ {{\varvec{V}}}^h = \left\{ {{{\varvec{v}}}^h |{{\varvec{v}}}^h \in {{\varvec{H}}}_0 ({\text{div}},\varOmega ):{{\varvec{v}}} \in \left[ {\mathfrak{I}_n \left( {K_i } \right)} \right]^3 \forall K_i \in M_h \left( \varOmega \right),\left. {{{\varvec{v}}} \cdot {{\varvec{n}}}} \right|_{\partial K_i } = 0} \right\}. $$
(18)

On the set \(\Gamma = \mathop \cup \limits_i \partial K_i\), a trace space is defined as

$$ {\text{Tr}}\left( \Gamma \right) = \prod_{\varOmega_i \in M_h \left( \varOmega \right)} {L^2 \left( {\partial K_i } \right)} . $$
(19)

Now, we denote by the \(\Gamma_0 = \Gamma \backslash \partial \varOmega\) a set of interior boundaries. It is convenient to express the traces of ambiguous functions on interfragmentary boundaries through the mean {⋅} and jump [⋅]. For functions v \(\in\) [Tr(Г)]3, p \(\in\) Tr(Г) and T \(\in\) Tr(Г), the mean {⋅} and jump [⋅] on the outer boundaries ∂Ω are defined as:

$$ \begin{array}{*{20}c} {\left. {\underline{{[{\mathbf{v}}]}} } \right|_{{\partial \varOmega }} = {\mathbf{v}} \otimes {\mathbf{n}},{\text{ }}\left. {[{\mathbf{v}}]} \right|_{{\partial \varOmega }} = {\mathbf{v}} \cdot {\mathbf{n}},\left. {{\text{\{ }}{\mathbf{v}}\} } \right|_{{\partial \varOmega }} = {\mathbf{v}},} \\ {\left. {[p]} \right|_{{\partial \varOmega }} = p{\mathbf{n}},\left. {\{ p\} } \right|_{{\partial \varOmega }} = p,\left. {[T]} \right|_{{\partial \varOmega }} = T{\mathbf{n}},\left. {\{ q\} } \right|_{{\partial \varOmega }} = T,} \\ \end{array} $$
(20)

on the outer faces \(\Gamma_0 = \partial K_i \cap \partial K_j\) we have:

$$ \begin{array}{*{20}c} {\underline{{\left. {[{\mathbf{v}}]} \right|}} _{{\Gamma _{0} }} = {\mathbf{v}}_{i} \otimes {\mathbf{n}}_{i} + {\mathbf{v}}_{j} \otimes {\mathbf{n}}_{j} ,\left. {[{\mathbf{v}}]} \right|_{{\Gamma _{0} }} = {\mathbf{v}}_{i} \cdot {\mathbf{n}}_{i} + {\mathbf{v}}_{j} \cdot {\mathbf{n}}_{j} ,\left. {{\text{\{ }}{\mathbf{v}}\} } \right|_{{\Gamma _{0} }} = \left( {{\mathbf{v}}_{i} + {\mathbf{v}}_{j} } \right)/2,} \\ {\left. {[p]} \right|_{{\Gamma _{0} }} = p_{i} {\mathbf{n}}_{i} + p_{j} {\mathbf{n}}_{j} ,\left. {\{ p\} } \right|_{{\Gamma _{0} }} = \left( {p_{i} + p_{j} } \right)/2,} \\ {\left. {[T]} \right|_{{\Gamma _{0} }} = T_{i} {\mathbf{n}}_{i} + T_{j} {\mathbf{n}}_{j} ,\left. {\{ T\} } \right|_{{\Gamma _{0} }} = \left( {T_{i} + T_{j} } \right)/2.} \\ \end{array} $$
(21)

The variational formulation of the Stokes-Darcy problem based on the discontinuous Galerkin method has the form: to find \({{\varvec{v}}}_1^h \in {{\varvec{V}}}^h\), \(p_1^h \in P^h\), \(p_2^h \in P^h\), \(\forall {{\varvec{w}}}_1^h \in {{\varvec{V}}}^h\), \(q_1^h \in P^h\) and \(q_2^h \in P^h\):

$$ \begin{array}{*{20}c} {a_1 \left( {{\bf{w}}_1^h ,{\bf{v}}_1^h } \right) + b\left( {{\bf{w}}_1^h ,p_1^h } \right) + \Lambda \left( {{\bf{w}}_1^h ,p_2^h } \right) = \left( {{\bf{w}}_1^h ,{\bf{F}}} \right),} \\ { - b\left( {{\bf{v}}_1^h ,q_1^h } \right) + d\left( {q_1^h ,p_1^h } \right) = 0,} \\ {a_2 \left( {p_2^h ,q_2^h } \right) + \rm{\Lambda }\left( {{\bf{v}}_1^h ,q_2^h } \right) = \left( {q_2^h ,f} \right),} \\ \end{array} $$
(22)
$$ \begin{gathered} a_1 \left( {{\bf{w}}_1^h ,{\bf{v}}_1^h } \right) = \sum_K {\int_{\varOmega_K } {\rm{\mu }\left( {\left( {\nabla {\bf{v}}_1^h } \right)^T + \nabla {\bf{v}}_1^h } \right):\nabla {\bf{w}}_1^h } + } \\ + \sum_{\Gamma_K \in \Gamma_{12} } {\int_{\Gamma_K } {\frac{\rm{\mu }}{m}\left( {{\bf{v}}_1^h \cdot_{12} } \right)\left( {{\bf{w}}_1^h \cdot_{12} } \right)dS} } - \\ - \sum_K {\int_{\partial \varOmega_K } {\left\{ {\rm{\mu }\left( {\left( {\nabla {\bf{v}}_1^h } \right)^T + \nabla {\bf{v}}_1^h } \right)} \right\}:\underline {\left[ {{\bf{w}}_1^h } \right]} } } + \\ + \left\{ {\rm{\mu }\left( {\left( {\nabla {\bf{w}}_1^h } \right)^T + \nabla {\bf{w}}_1^h } \right)} \right\}:\underline {\left[ {{\bf{v}}_1^h } \right]} - \tau_1^{DG} \underline {\left[ {{\bf{v}}_1^h } \right]} :\underline {\left[ {{\bf{w}}_1^h } \right]} \, dS, \\ \end{gathered} $$
(23)
$$ b\left( {{{\varvec{v}}}_1^h ,q_1^h } \right) = - \sum_K {\int_{\varOmega_K } {\nabla \cdot {{\varvec{v}}}_1^h q_1^h d\varOmega_K } } + \sum_K {\int_{\partial \varOmega_K } {\left\{ {q_1^h } \right\}\left[ {{{\varvec{v}}}_1^h } \right]dS} } , $$
(24)
$$ \Lambda \left( {{\bf{w}}_1^h ,p_2^h } \right) = \sum_{\Gamma_K \in \Gamma_{12} } {\int_{\Gamma_K } {p_2^h \left( {{\bf{w}}_1^h \cdot {\bf{n}}_{12} } \right)dS} } , $$
(25)
$$ \left( {{\bf{w}}^h ,{\bf{F}}} \right) = \sum_K {\int_{\varOmega_K } {\rm{\rho }{\bf{g}} \cdot {\bf{w}}^h d\varOmega_K } } + \sum_{\Gamma_K \in S_{{\text{inlet}}} } {\int_{\Gamma_K } {{\bf{t}}_{{\text{inlet}}} \cdot {\bf{w}}^h dS} + \sum_{\Gamma_K \in S_{{\text{outlet}}} } {\int_{\Gamma_K } {{\bf{t}}_{{\text{outlet}}} \cdot {\bf{w}}^h dS} } ,} $$
(26)
$$ d\left( {q_1^h ,p_1^h } \right) = \sum_{\Gamma_K \in \Gamma_0 } {\tau^{DG} \int_{\Gamma_K } {\left[ {q_1^h } \right] \cdot \left[ {p_1^h } \right]} } , $$
(27)
$$ \begin{gathered} a_2 \left( {p_2^h ,q_2^h } \right) = \sum_K {\int_{\varOmega_K } {\frac{{\bf{K}}}{\rm{\mu }} \cdot \nabla p_2^h \cdot \nabla q_2^h d\varOmega_K } } + \sum_{\Gamma_K \in \Gamma_{12} } {\int_{\Gamma_K } {\left( {{\bf{v}}_2^h \cdot {\bf{n}}_{12} } \right)q_2^h \, dS} } \\ - \sum_K {\int_{\partial \varOmega_K } {\left\{ {\frac{{\bf{K}}}{\rm{\mu }} \cdot \nabla p_2^h } \right\} \cdot \left[ {q_2^h } \right] + \left\{ {\frac{{\bf{K}}}{\rm{\mu }} \cdot \nabla q_2^h } \right\}:\left[ {p_2^h } \right] - \tau_2^{DG} \left[ {p_2^h } \right] \cdot \left[ {q_2^h } \right]dS,} } \\ \end{gathered} $$
(28)
$$ \begin{gathered} \left( {q_2^h ,f} \right) = \sum_K {\int_{K \in S_{{\text{outlet}}} } {{\bf{t}}_{{\text{outlet}}} \cdot {\bf{n}}q_2^h + \frac{{\bf{K}}}{\rm{\mu }} \cdot {\bf{t}}_{{\text{outlet}}} \nabla q_2^h + \tau_2^{DG} {\bf{t}}_{{\text{outlet}}} \cdot {\bf{n}}q_2^h dS} } \\ + \sum_K {\int_{K \in S_{{\text{inlet}}} } {{\bf{t}}_{{\text{inlet}}} \cdot {\bf{n}}q_2^h + \frac{{\bf{K}}}{\rm{\mu }} \cdot {\bf{t}}_{{\text{inlet}}} \nabla q_2^h + \tau_2^{DG} {\bf{t}}_{{\text{inlet}}} \cdot {\bf{n}}q_2^h dS.} } \\ \end{gathered} $$
(29)

The uniqueness of solving the Stokes-Darcy problem is determined by a suitable choice of bases in the spatial approximation of the velocity and pressure. To approximate the velocity, we use the full second-order basis of the \({{\varvec{H}}}\left( {{\text{div}},{\varOmega }} \right)\) -space. To approximate the pressure, we use the first-order hierarchical basis of the \(H^1 \left( \varOmega \right)\) -space. Information about these bases can be found in [16]. In the matrix-vector form, the variational formulation (21) has the form:

$$ \left( {\begin{array}{*{20}c} {{\text{A}}_1 } & {\text{B}} & {\Lambda^T } \\ { - {\text{B}}^T } & D & 0 \\ \Lambda & 0 & {{\text{A}}_2 } \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {{{\varvec{v}}}_1 } \\ {p_1 } \\ {p_2 } \\ \end{array} } \right) = \left( {\begin{array}{*{20}c} {{\varvec{F}}} \\ 0 \\ f \\ \end{array} } \right) $$
(30)

To solve the system (21), we apply the Krylov methods (generalized minimal residual method) and preconditioner technologies described in [17].

4 Results

We consider the flow of incompressible fluid (water) at the pressure drop 1 Atm across the height of the sample. Figure 3 and Fig. 4 show the results of solving this problem in three cells of global domain decomposition.

Fig. 3.
figure 3

Modulus of fluid flow velocity: a – 5% porosity, b – 7% porosity, c – 9% porosity.

Fig. 4.
figure 4

Pressure in section Y = 0.002: a – 5% porosity, b – 7% porosity, c – 9% porosity.

Calculations were performed using AMD Ryzen 9 3950X 16-Core Processor 3.49 GHz, 64 GB RAM, OS Windows 10 (x64). Parallelization of the algorithm was performed using OpenMP technology. Table 2 summarizes the time required to solve a full-scale problem using different decomposition schemes and number of computational threads.

By the solution error δ we mean the next value:

$$ {\updelta } = \frac{{\left\| {\left\langle {{\varvec{v}}} \right\rangle - \left\langle {{\varvec{v}}} \right\rangle^* } \right\|_{{{\varvec{H}}}\left( {{\text{div}},\varOmega } \right)} }}{{\left\| {\left\langle {{{\varvec{v}}}^* } \right\rangle } \right\|_{{{\varvec{H}}}\left( {{\text{div}},\varOmega } \right)} }} \cdot 100\% , $$
(31)

where \(\left\langle{{\varvec{v}}}\right\rangle\)is averaged flow velocity calculated using the domain decomposition method with regular coordinated mesh partition, \(\left\langle{{\varvec{v}}}\right\rangle_v^*\) is averaged flow velocity calculated without domain decomposition (coordinated micro-scale tetrahedral partition was only used).

Table 2. Cost of computational resources and errors

5 Conclusion

To solve the problem of incompressible fluid flow in multiscale incompressible heterogeneous porous media, a parallel version of a non-conforming finite-element discretization of the Stokes-Darcy problem was proposed using a variation of the domain decomposition technique.

Based on the results of computational experiments, it was found that the cost of time resources is reduced by a factor of 19. However, there is an increase in the error of solving the full-scale direct Stokes-Darcy problem due to the accumulation of computational error in implementing the iterative procedure of the domain decomposition method.

The magnitude of the computational error depends on the number of the macroscale partition cells. The full-scale problem is solved less accurately when more cells in decomposition are used.