INTRODUCTION

This paper is devoted to some algorithmic issues of numerical modeling of the filtration process of a two-phase incompressible fluid in fractured-porous media. Major applications for such models are in oil production technologies based on the processes of oil displacement by water. In what follows the two-phase fluid will be considered as an “oil–water” system. An extensive literature on the development of computational methods for modeling of oil reservoirs has evolved (see, for instance, [16]). Numerous publications provide descriptions of fractured-porous reservoirs, including fluid flow in such media (see, for instance, monograph [7] and reviews [812]). According to the terminology used in [12], the models of processes in fractured-porous media are divided into two main classes: single-continuum and multi-continuum models. In the former, standard equations of (single-phase or multi-phase) filtration are used with some efficient permeability tensor responsible for the presence of a fractured structure along with porous blocks. The multi-continuum models are subdivided into models with an explicit (if information on the geometric characteristics of fracturing is available) and with an implicit representation of fractures. The latter models are presented in the form of continua with a fluid transfer between them that takes place according to a given law. The algorithm considered below is used for a model of this latter kind, which is usually called a dual porosity model.

The dual porosity models originated from the classical papers [13] and [14], which considered the case of a single-phase fluid. The results of these papers were used for multi-phase fluids in [1517], where major attention was given to choosing a function of fluid transfer between the fractures and the pore blocks, which was defined by the difference in the corresponding pressures. There are several papers in which the flow rates and pressures are used to define the exchange function [1820] to better take into account the fractured-porous medium characteristics (for instance, the formation anisotropy).

The numerical solution of filtration problems with a dual porosity model were discussed in detail in [17]. One should mention a recent paper, [21], in which the velocities and pressures were calculated by a mixed finite element method [22] with Raviart–Thomas elements [23], and the saturation equations were approximated by a finite element method in space and an implicit Euler scheme in time. In this case, to eliminate the numerical oscillations an upstream regularization was used by introducing artificial diffusion. Note that the elimination of the nonphysical oscillations at the front of the oil-water contact is one of the main difficulties in constructing computational algorithms for solving problems of oil displacement by water. Various approaches to solving this problem were discussed by us in [24]. Among the many methods for solving this issue, let us mention a class of algorithms that most efficiently, in our opinion, solves the problem of eliminating the oscillations. We mean finite volume methods with an upstream approximation of the convective terms relating scalar functions to grid cells [2528]. In this paper, the above approach is used to numerically solve the problem of filtration of a two-phase incompressible fluid in a fractured-porous medium with the Buckley–Leverett model [29]. This model lacks the natural regularization due to capillary diffusion, and the appearance of numerical oscillations becomes more difficult than in models that take into account capillary forces. A multidimensional two-continuum mathematical model is considered in terms of “velocity–pressure–saturation,” it is numerically implemented by a mixed finite element method [22, 23] to find the velocities and pressures and by a finite volume method with an upstream approximation of the phase velocities in a combination with an explicit Euler scheme in time to find the saturations. In fact, a version of the IMPES method is implemented [30].

Note that the Buckley–Leverett model is characterized by the presence of discontinuous solutions. Therefore, the initial problem will be formulated not in the form of a traditional system of differential equations, but in the form of a system of integral identities. Besides, the three-dimensional model being considered includes injection and production wells with given flow rates, and a zero normal velocity condition is imposed on the outer boundary of the reservoir. Well modeling is performed in accordance with [31]. The solvability of the problem in this formulation is ensured by a condition of mass balance, but there arises a singular Neumann problem for the pressures, which is solved in a mixed formulation. The difficulties caused by the need to solve the problem in a subspace have been overcome for a single-continuum model by using a modification of the Lagrange function described in [31] that allows finding stationary points in the entire space.

The paper is organized as follows. Section 1 presents the equations of filtration of a two-phase incompressible fluid in the form of conservation laws of mass and momentum in integral form for the two-component Buckley–Leverett model. In Section 2, based on a mixed finite element method, an algorithm is presented for calculating the total velocities of fluid flows and pressures at given saturations in the pore blocks and fractures. The above-mentioned method of solving the singular Neumann problem in a mixed formulation is described. In Section 3, with a finite volume method, an upwind algorithm is constructed for calculating the water saturations in the pore blocks and fractures in terms of variables related to grid cells. Section 4 is devoted to a description of the explicit Euler scheme used for calculating the saturations and a study of the monotonicity of this scheme. Section 5 presents the results of some computational experiments, in which primary attention is given to a demonstration of the absence of oscillations at the front of a discontinuity of the water saturation functions.

1. INTEGRAL FORM OF THE DUAL POROSITY MODEL

Let \(\Omega\subset R^3\) be a domain of flow of a two-phase incompressible fluid with outer boundary \(\Gamma\) (it will be described below how wells are taken into account). The mass conservation of each phase in the pore blocks and fractures with a fluid flow between them may be written in the following integral form: for any open set \(\tau\subset \Omega\)

$$\frac{d}{dt}\Big\langle\phi^{(\beta)}S^{(\beta)}_\alpha\Big\rangle_\tau+ \frac{1}{|\tau|}\int\limits_{\partial\tau}\mathbf{v}^{(\beta)}_\alpha\cdot \mathbf{n}_\tau\,d\gamma= \Big\langle r^{(\beta)}_\alpha\Big\rangle_\tau, \quad\alpha=\mathrm{ w,o},\ \ \beta=\mathrm{ b,f,} $$
(1)

where the subscripts \(\mathrm{ w}\) and \(\mathrm{ o}\) are for water and oil, respectively, and the superscripts \(\mathrm{ b}\) and \(\mathrm{ f}\) are for pore blocks and fractures, \(\phi^{(\beta)}\) are the porosities of pore blocks and fractures, \(S^{(\beta)}_\alpha\) and \(\mathbf{ v}^{(\beta)}_\alpha\) are the saturations and phase velocities, respectively, \(\mathbf{n}_\tau\) is the unit vector of the outer normal to the boundary \(\partial\tau\), \(|\tau|\) is the volume of the set \(\tau\), \(r^{(\beta)}_\alpha\) is a function of mass transfer between the pore blocks and fractures, and \(\langle\,\cdot\,\rangle_\tau\) is averaging of a function over the set \(\tau\). A modification of Eqs. (1) with sources of mass from injection and production wells will be presented below. Note that, in contrast to the formulation of mass conservation in the form of differential equations, (1) hold also for the Buckley–Leverett model, in which saturations are, as a rule, discontinuous functions. The entire space in the pore blocks and fractures is assumed to be filled with fluid:

$$S^{(\beta)}_\mathrm{ w}+S^{(\beta)}_\mathrm{ o}=1, \quad \beta=\mathrm{ b,f}. $$
(2)

The mass balance for each phase in terms of the mass transfer function can be written as follows [15]:

$$r^{(\mathrm{ b})}_\alpha+r^{(\mathrm{ f})}_\alpha=0, \quad \alpha=\mathrm{ w,o}. $$
(3)

Assuming that the porosity \(\phi^{(\beta)}\) does not depend on time, from the equalities (1), (2) we have

$$\int\limits_{\partial\tau}\mathbf{v}^{(\beta)}\cdot \mathbf{n}_\tau\,d\gamma= |\tau|\Big\langle r^{(\beta)}\Big\rangle_\tau, \quad \beta=\mathrm{ b,f}, $$
(4)

where \(\mathbf{v}^{(\beta)}=\mathbf{v}^{(\beta)}_\mathrm{ w}+\mathbf{ v}^{(\beta)}_\mathrm{ o}\) and \(r^{(\beta)}=r^{(\beta)}_\mathrm{ w}+r^{(\beta)}_\mathrm{ o}\) are the total velocities and total mass transfer functions in the pore blocks and fractures, respectively. In what follows, according to (3), we will denote \(r^{(\mathrm{ b})}_\alpha=r_\alpha\), \(r^{(\mathrm{ f})}_\alpha=-r_\alpha\) and, correspondingly, \(r^{(\mathrm{ b})}=r\), \(r^{(\mathrm{ f})}=-r\), where \(r=r_\mathrm{ w}+r_\mathrm{ o}\). For smooth solutions the equalities (4) can be rewritten as \(\nabla\cdot\mathbf{v}^{(\mathrm{ b})}=r\) and \(\nabla\cdot\mathbf{v}^{(\mathrm{ f})}=-r\).

Consider Darcy’s law. Before writing it in integral form, we present the boundary conditions and consider the question of including into the model of (injection) and (production) wells. On the external boundary \(\Gamma\), for water and oil we specify the following zero normal velocity conditions of the phase flows:

$$\mathbf{v}^{(\beta)}_\alpha\cdot\mathbf{n}\,|_{\Gamma}=0,\quad \alpha=\mathrm{ w,o},\ \ \beta=\mathrm{ b,f}, $$
(5)

where \(\mathbf{n}\) is the unit vector of the outer-pointing normal for \(\Omega\), which is defined almost everywhere on \(\Gamma\). From (5) we have the zero normal velocity condition for the total flows

$$\mathbf{v}^{(\beta)}\cdot\mathbf{n}\,|_{\Gamma}=0,\quad \beta=\mathrm{ b,f}. $$
(6)

Following [31], we introduce wells in the form of a system of open sets \(\Omega_{d,m}\), \(m=1,\ldots,M_d\), where the subscripts \(d=\,\) in and \(d=\,\) pr correspond to injection and production wells. Here under wells we mean only the perforated fragments of real wells, which are the sources/sinks of the fluid. It will be assumed that \(M_d>0\), \(d=\,\) in, pr, that is, for several given injection wells there is at least one production well. The case \(M_{\mathrm{ in}}=M_{\mathrm{ pr}}=0\) under the condition (5) (the absence of sources/sinks) is of no interest. Assume that

$${\Omega}_d=\bigcup_{m=1}^{M_d}{\Omega}_{d,m},\quad d=\mathrm{ in,pr}, \ \ {\Omega}_{d,m}\cap{\Omega}_{d,l}=\emptyset,\ \ m\neq l, \ \ \overline{\Omega}_{\mathrm{ in}}\cap\overline{\Omega}_{\mathrm{ pr}}=\emptyset. $$
(7)

Let

$$G=\overline{\Omega}\cup{\Omega}_{\mathrm{ in}}\cup{\Omega}_{\mathrm{ pr}},\quad {\Gamma}_{d,m}=\partial{\Omega}_{d,m},\ \ d=\mathrm{ in,pr}.$$

At the wells, we specify boundary conditions of the form

$$p^{(\beta)}|_{{\Gamma}_{d,m}}=c^{(\beta)}_{d,m},\qquad \int\limits_{{\Gamma}_{d,m}}\mathbf{v}^{(\beta)}\cdot\mathbf{n}_{d,m}\,d\gamma=-Q^{(\beta)}_{d,m}, $$
(8)
$$m=1,\dots,M_d,\ \ d=\mathrm{ in,pr}, \ \ \beta=\mathrm{ b,f},$$

where \(\mathbf{n}_{d,m}\) is the unit vector of the normal on \({\Gamma}_{d,m}\) that is inward-pointing for \({\Omega}_{d,m}\) (outer-pointing for \(\Omega\)); \(c^{(\beta)}_{d,m}\) are some unknown constants; \(Q^{(\beta)}_{\mathrm{ in},m}\geq 0\), \(Q^{(\beta)}_{\mathrm{ pr},m}\leq 0\) are the volume flow rates of the injection and production wells for the pore blocks and fractures separately. The well flow rates are specified by the equalities \(Q_{d,m}=Q^{(\mathrm{ b})}_{d,m}+Q^{(\mathrm{ f})}_{d,m}\). A method of their separation for pore blocks and fractures will be presented below in the numerical experiments. In this case, the velocity vectors are outer-pointing for the injection wells and inward-pointing for the production wells.

Let us present some notation needed to formulate Darcy’s law. Here \(p^{(\beta)}\), \(\beta=\mathrm{ b,f}\), denote the pressures in the pore blocks and fractures, which are, together with \(S^{(\beta)}_\alpha\) and \(\mathbf{v}^{(\beta)}\), sought-for functions of the problem under consideration. Note that for the Buckley–Leverett model the phase pressures coincide: \(p^{(\beta)}_\mathrm{ w}=p^{(\beta)}_\mathrm{ o}=p^{(\beta)}\). Let \(\lambda_\alpha\big(S^{(\beta)}_\alpha \big)=k_{r,\alpha}\big(S^{(\beta)}_\alpha \big)/\mu_\alpha\) be the phase mobilities, where \(k_{r,\alpha}\) are the relative phase permeabilities, and \(\mu_\alpha\) are the dynamic viscosities of the phases. Let us denote \(S^{(\beta)}=S^{(\beta)}_\mathrm{ w}\), and, according to the equality (2), \(S^{(\beta)}_\mathrm{ o}=1-S^{(\beta)}\). Next, we introduce total mobilities in the pore blocks and fractures: \(\lambda\big(S^{(\beta)}\big)= \lambda_\mathrm{ w}\big(S^{(\beta)}\big)+\lambda_\mathrm{ o}\big(1-S^{(\beta)}\big)\). Finally, let \(K^{(\beta)}\big(S^{(\beta)}\big)=K^{(\beta)}_0\lambda \big(S^{(\beta)}\big)\), where \(K^{(\beta)}_0\) are the absolute permeability tensors. It is well known that \(\lambda\big(S^{(\beta)}\big)\geq\lambda_0>0\); hence, the tensor \(\big[K^{(\beta)}\big(S^{(\beta)}\big)\big]^{-1}\) exists.

Let us continue the sought-for scalar functions (of saturation and pressure) inside the wells by constants, and thereby we consider these functions as elements of a closed subspace \(W\subset L_2(G)\). We also continue the total velocities to the entire set \(G\), assuming that \(\nabla\cdot\mathbf{v}^{(\beta)}\in W\). Now Darcy’s law can be written for the total velocities in the pore blocks and fractures in integral form. Note that in the present paper the effects of gravitational forces (we consider a rather thin formation) are neglected: to take into account gravity we need a special modification of the algorithm for calculating the saturation, which will be the subject of another paper. For an arbitrary vector-function \(\mathbf{u}\) such that \(\nabla\cdot\mathbf{u}\in W\) and \(\mathbf{u}\cdot\mathbf{n}\,|_{\Gamma}=0\), consider the integral identity

$$\int\limits_{\Omega}\big [K^{(\beta)}\big(S^{(\beta)}\big)\big]^{-1}\,\mathbf{v}^{(\beta)}\cdot\mathbf{u}\,d\mathbf{x}= \int\limits_G p^{(\beta)}\,\nabla\cdot\mathbf{u}\,d\mathbf{x},\quad \beta=\mathrm{ b,f}. $$
(9)

For smooth solutions, from Green’s formula we have the equality

$$\int\limits_G p^{(\beta)}\,\nabla\cdot\mathbf{u}\,d\mathbf{x}= \int\limits_{\Omega} p^{(\beta)}\,\nabla\cdot\mathbf{u}\,d\mathbf{x}\, - \! \! \sum\limits_{d=\mathrm{ in,pr}}\, \sum\limits_{m=1}^{M_d}\, \int\limits_{{\Gamma}_{d,m}}p^{(\beta)}\,\mathbf{u}\cdot\mathbf{n}_{d,m}\,d\gamma= -\int\limits_{\Omega}\,\nabla p^{(\beta)}\cdot\mathbf{u}\,d\mathbf{x}.$$

Since the vector-function \(\mathbf{u}\) is arbitrary, from the above equality and equation (9) we have the following standard representation of Darcy’s law:

$$\mathbf{v}^{(\beta)}=-K^{(\beta)}\big(S^{(\beta)}\big)\nabla p^{(\beta)},\quad\beta=\mathrm{ b,f}. $$
(10)

In this case, for the phase velocities Darcy’s law is written as follows:

$$\mathbf{v}^{(\beta)}_\alpha= -K^{(\beta)}_\alpha\big(S^{(\beta)}_\alpha \big)\nabla p^{(\beta)}, \quad \alpha=\mathrm{ w,o},\ \ \beta=\mathrm{ b,f},$$

where \(K^{(\beta)}_\alpha\big(S^{(\beta)}_\alpha\big) =K^{(\beta)}_0\lambda_\alpha\big(S^{(\beta)}_\alpha\big)\).

It is easy to see that, according to (10),

$$\mathbf{v}^{(\beta)}_\alpha=\sigma_\alpha\big(S^{(\beta)}\big)\,\mathbf{v}^{(\beta)}, \quad \alpha=\mathrm{ w,o},\ \ \beta=\mathrm{ b,f}, $$
(11)

where \(\sigma_\alpha\big(S^{(\beta)}\big) =\lambda_\alpha\big(S^{(\beta)}_\alpha\big)/\lambda\big(S^{(\beta)}\big)\). Thus, for discontinuous solutions we will take Eq. (9) as the initial formulation of Darcy’s law. In this case the phase velocities are specified by formulas (11). In the case of smooth solutions the equalities (9) and (11) are transformed to the classical form of Darcy’s law for each phase.

Let us modify the equalities (4) taking into account the wells. Let \(\tau_{d,m}\) be a subdomain of the domain \(G\) that contains only one injection well, \({\Omega}_{d,m}\). The existence of such a subdomain for any well follows from the conditions (7). Let \(\omega_{d,m}=\tau_{d,m}\setminus{\Omega}_{d,m}\). In this case \(\omega_{d,m}\subset\Omega\). Then we have

$$\int\limits_{\partial\omega_{d,m}}\mathbf{v}^{(\beta)}\cdot \mathbf{n}_{d,m}\,d\gamma= \int\limits_{\partial\tau_{d,m}}\mathbf{v}^{(\beta)}\cdot \mathbf{n}_{d,m}\,d\gamma+ \int\limits_{{\Gamma}_{d,m}}\mathbf{v}^{(\beta)}\cdot\mathbf{n}_{d,m}\,d\gamma, \quad \beta=\mathrm{ b,f}. $$
(12)

According to the boundary conditions (8), the equality (4) takes the following form:

$$\int\limits_{\partial\tau_{d,m}}\mathbf{v}^{(\beta)}\cdot \mathbf{n}_{d,m}\,d\gamma= \int\limits_{\omega_{d,m}}r^{(\beta)}\,d\mathbf{x}+Q^{(\beta)}_{d,m}. $$
(13)

Here the vectors of the normal \(\mathbf{n}_{d,m}\) are outer-pointing for the set \(\omega_{d,m}\); that is, they are outer-pointing for \(\tau_{d,m}\) and inward-pointing for \({\Omega}_{d,m}\), which corresponds to the conditions (8). Thus, for any subdomain \(\tau\subset G\) we have the equalities (4) if \(\tau\) does not have wells and (13) if \(\tau=\tau_{d,m}\) has a single well. For the entire domain \(G\) we have

$$\int\limits_{\Gamma}\mathbf{v}^{(\beta)}\cdot \mathbf{n}\,d\gamma +\sum\limits_{d=\mathrm{ in,pr}} \sum\limits_{m=1}^{M_d} \int\limits_{{\Gamma}_{d,m}}\mathbf{v}^{(\beta)}\cdot\mathbf{n}_{d,m}\,d\gamma =\int\limits_{\Omega}r^{(\beta)}\,d\mathbf{x}, \quad \beta=\mathrm{ b,f}.$$

Then, according to the boundary conditions (6), (8), we have the following necessary solvability condition for the problem (4), (6), (8), (9), (11) under given saturations:

$$\sum\limits_{m=1}^{M_{\mathrm{ in}}}Q^{(\beta)}_{\mathrm{ in},m} +\sum\limits_{m=1}^{M_{\mathrm{ pr}}}Q^{(\beta)}_{\mathrm{ pr},m} =\int\limits_{\Omega}r^{(\beta)}\,d\mathbf{x}, \quad\beta=\mathrm{ b,f}. $$
(14)

The non-zero right-hand side of (14) is a peculiarity of the dual porosity model: a water source can only be related to pore blocks, and oil can come into production wells only from fractures. Nevertheless, from (3) and (14) we have the following general condition of balance:

$$\sum\limits_{m=1}^{M_{\mathrm{ in}}}Q_{\mathrm{ in},m} +\sum\limits_{m=1}^{M_{\mathrm{ pr}}}Q_{\mathrm{ pr},m}=0. $$
(15)

A requirement for the initial data of the problem is the equality (15); (14) means that if the well flow rates \(Q^{(\beta)}_{d,m}\) do not depend on time, the integral of the mass transfer function in the right-hand side of the equality (14) also does not depend on time and is equal to a given value. Supplementing equations (1) by equations in the wells will be considered in Section 3 when discussing a numerical method of finding the saturations.

Let us consider choosing of the mass transfer functions \(r^{(\beta)}_\alpha\). Following [19], we use the total hybrid mass transfer function

$$r=k^{(\mathrm{ b,f})}\eta^{(\mathrm{ b,f})}\big(p^{(\mathrm{ f})}-p^{(\mathrm{ b})}\big), $$
(16)

where \(k^{(\mathrm{ b,f})}\) is a nondimensional parameter characterizing the permeability between the pore blocks and fractures. According to [13] and [15], \(k^{(\mathrm{ b,f})}\sim k_0/\nu^2\), where \(k_0\) is an average value of absolute permeability of the pore blocks, and \(\nu\) is the ratio of a characteristic volume to the total surface of fractures contained in the volume. Following [21], let

$$\eta^{(\mathrm{ b,f})}=\frac{1}{2}\Big(\lambda\big(S^{(\mathrm{ b})}\big)+\lambda\big(S^{(\mathrm{ f})}\big)\Big).$$

The mass transfer functions in the equations for phase saturations are given by the equality

$$r_\alpha= \left\{\begin{array}{ll} \sigma_\alpha\big(S^{(\mathrm{ b})}\big)\,r, & p^{(\mathrm{ f})}\leq p^{(\mathrm{ b})}, \\[1ex] \sigma_\alpha\big(S^{(\mathrm{ f})}\big)\,r, & p^{(\mathrm{ f})} > p^{(\mathrm{ b})}, \\ \end{array}\right. \quad\alpha=\mathrm{ w,o}. $$
(17)

Finally note that the operator of the boundary value problem for the total velocities and pressures (4), (6), (9), (13) has a one-dimensional kernel: the pressures are determined up to a constant that is common to both pressures. Let \(p^{(\mathrm{ b})}\), \(p^{(\mathrm{ f})}\) be a solution to the problem. It follows from Darcy’s law (9) that the functions \(\hat p^{(\mathrm{ b})}=p^{(\mathrm{ b})}+c^{(\mathrm{ b})}\) and \(\hat p^{(\mathrm{ f})}=p^{(\mathrm{ f})}+c^{(\mathrm{ f})}\) are also solutions, where \(c^{(\mathrm{ b})}\) and \(c^{(\mathrm{ f})}\) are arbitrary numbers. Substituting these functions to equation (4) and taking into account the form of the mass transfer function (16) gives the equality

$$\int\limits_\tau\eta^{\mathrm{ b,f}}\big(c^{(\mathrm{ b})}-c^{(\mathrm{ f})}\big)\,d\mathbf{x}=0.$$

Hence, \(c^{(\mathrm{ b})}=c^{(\mathrm{ f})}=c\). Thus, the difference between the pressures in the pore blocks and fractures is determined uniquely. Then we have the following obvious representations:

$$\hat p^{(\mathrm{ b})}=(q+c)+\frac{1}{2}\big(p^{(\mathrm{ b})}-p^{(\mathrm{ f})}\big), \qquad \hat p^{(\mathrm{ f})}=(q+c)-\frac{1}{2}\big(p^{(\mathrm{ b})}-p^{(\mathrm{ f})}\big),$$

where \(q=\big(p^{(\mathrm{ b})}+p^{(\mathrm{ f})}\big)/2\), that is, the sum of the pressures is determined only up to a constant. To eliminate the above ambiguity, we require that the following condition of orthogonality of the sum of the pressures to the constant be satisfied:

$$p^{(\mathrm{ b})}+p^{(\mathrm{ f})}\in W^\perp, \quad W^\perp=\bigg\{ q\in W,\ \int\limits_Gq\,d\mathbf{x}=0\bigg\}. $$
(18)

2. CALCULATION OF THE TOTAL VELOCITIES AND PRESSURES

To numerically solve the problem (4), (9), (13) at each time level \(t_n\), we use a mixed finite element method [22] with Raviart–Thomas elements of the lowest order [23]. For simplicity, as the domain \(G\) we take a parallelepiped with a cubic grid of spacing \(h\): for natural numbers \(M_x\), \(M_y\), \(M_z\) let \(G = [0, L_x] \times[0, L_y]\times[0,L_z]\), where \(L_x=M_xh\), \(L_y=M_yh\), \(L_z=M_zh\). Let \(\mathcal T\) be the set of all grid cells:

$$\tau=[x_{i-1},x_i]\times[y_{j-1},y_j]\times[z_{k-1},z_k], \quad i=1,\dots,M_x, \ \ j=1,\dots,M_y,\ \ k=1,\dots,M_z.$$

To approximate the pressures \(p^{(\beta)}\), we construct a space of piecewise constant functions, \(W_h\subset W\). Let us introduce a set of cells whose union contains the injection and production wells:

$$\mathcal{ T}_{d,m}=\big\{\,\tau\in\mathcal{ T}\ |\ \tau\bigcap{\Omega}_{d,m}\neq\emptyset\,\big\}, \quad m=1,\dots,M_d,\quad d=\mathrm{ in,pr}.$$

We denote

$$\mathcal{ T}_d=\bigcup^{M_d}_{m=1}\mathcal{ T}_{d,m},\quad d=\mathrm{ in,pr}, \qquad \mathcal{ T}_0=\mathcal{ T}\setminus(\mathcal{ T}_{\mathrm{ in}}\cup\mathcal{ T}_{\mathrm{ pr}}).$$

In this case \({\Omega}_{d,m}\subset\tau_{d,m}\), \({\Omega}_d\subset\tau_d\), the set \(\mathcal{ T}_0\) consists of the cells \(\tau\subset{\Omega}\) not containing wells. The space \(W_h\) is defined as follows:

$$W_h=\bigg\{ q=\sum\limits_{\tau\in\mathcal{ T}_0}q_\tau\chi(\tau)+ \sum\limits^{M_{\mathrm{ in}}}_{m=1}q_{\mathrm{ in},m}\chi(\tau_{\mathrm{ in},m})+ \sum\limits^{M_{\mathrm{ pr}}}_{m=1}q_{\mathrm{ pr},m}\chi(\tau_{\mathrm{ pr},m}) \bigg\}, $$
(19)

where \(\chi(\tau)\) and \(\chi(\tau_{d,m})\) are the characteristic functions of the sets \(\tau\) and \(\tau_{d,m}\), respectively. Consider a grid analog of the space \(W^\perp\) which was introduced in the condition (18):

$$W^\perp_h=\bigg\{ q\in W_h\ \bigg\vert\ \sum\limits_{\tau\in\mathcal{ T}_0}|\tau|\,q_\tau+ \sum\limits^{M_{\mathrm{ in}}}_{m=1}|\tau_{\mathrm{ in},m}|\,q_{\mathrm{ in},m}+ \sum\limits^{M_{\mathrm{ pr}}}_{m=1}|\tau_{\mathrm{ pr},m}|\,q_{\mathrm{ pr},m}=0 \bigg\}. $$
(20)

It is easy to see that \(W_h\subset W\) and \(W^\perp_h\subset W^\perp\).

Consider the space of grid vector functions \(\mathbf{ RT}_{[0]}\) with a Raviart–Thomas basis of the lowest order in which the components of an arbitrary vector \(\mathbf{u}\in\mathbf{ RT}_{[0]}\) have the form

$$\begin{aligned} &&u_x(\mathbf{x})= \sum\limits_{i=0}^{M_x}\,\sum\limits_{j=1}^{M_y}\,\sum\limits_{k=1}^{M_z} u_{i,j-1/2,k-1/2}\,\varphi_i(x)\chi_{j-1/2}(y)\,\chi_{k-1/2}(z),\\ &&u_y(\mathbf{x})= \sum\limits_{i=1}^{M_x}\,\sum\limits_{j=0}^{M_y}\,\sum\limits_{k=1}^{M_z} u_{i-1/2,j,k-1/2}\,\chi_{i-1/2}(x)\,\varphi_j(y)\,\chi_{k-1/2}(z),\\ &&u_z(\mathbf{x})= \sum\limits_{i=1}^{M_x}\,\sum\limits_{j=1}^{M_y}\,\sum\limits_{k=0}^{M_z} u_{i-1/2,j-1/2,k}\,\chi_{i-1/2}(x)\,\chi_{j-1/2}(y)\,\varphi_k(z),\end{aligned}$$

where \(\chi_{l-1/2}(\xi)\) are the characteristic functions of the sets \([\xi_{l-1},\xi_l]\), and \(\varphi_l(\xi)\) are the piecewise linear hat functions with supports \((\xi_{l-1},\xi_{l+1})\), \(l=1,\dots,N_\xi-1\). The supports of the functions \(\varphi_0(\xi)\) and \(\varphi_{N_\xi}(\xi)\) are the intervals \((0,h)\) and \((L_\xi-h,L_\xi)\).

The grid vector functions, \(\mathbf{v}^{(\beta)}\), are sought for as elements of the space

$$\mathbf{ V}_h=\{\,\mathbf{u}\in\mathbf{ RT}_{[0]}\ \big\vert\ \nabla\cdot\mathbf{u}\in W_h\,\}.$$

For the grid functions we will use the notation from Section 1. A grid function \(p^{(\beta)}\) is sought for as an element of the space \(W_h\) and, according to (19), (20)

$$p^{(\beta)}=\sum\limits_{\tau\in\mathcal{ T}_0}p^{(\beta)}_\tau\chi(\tau)+ \sum\limits^{M_{\mathrm{ in}}}_{m=1}p^{(\beta)}_{\mathrm{ in},m}\chi(\tau_{\mathrm{ in},m})+ \sum\limits^{M_{\mathrm{ pr}}}_{m=1}p^{(\beta)}_{\mathrm{ pr},m}\chi(\tau_{\mathrm{ pr},m}),$$

and according to (18) we have

$$\sum\limits_{\tau\in\mathcal{ T}_0}|\tau|\big(p^{(\mathrm{ b})}_\tau+p^{(\mathrm{ f})}_\tau\big)+ \sum\limits_{d=\mathrm{ in,pr}}\, \sum\limits^{M_d}_{m=1}|\tau_{d,m}|\big(p^{(\mathrm{ b})}_{d,m}+p^{(\mathrm{ f})}_{d,m}\big)=0, $$
(21)

that is, \(p^{(\mathrm{ b})}+p^{(\mathrm{ f})}\in W^\perp_h\). Then the grid analog of (9) is the equation

$$\int\limits_{\Omega}\Big[K^{(\beta)}\big(S^{(\beta)}\big)\Big]^{-1} \,\mathbf{v}^{(\beta)}\cdot\mathbf{u}\,d\mathbf{x}= \sum\limits_{\tau\in\mathcal{ T}_0}|\tau|\,p^{(\beta)}_\tau(\nabla\cdot\mathbf{u})_\tau+ \sum\limits_{d=\mathrm{ in,pr}}\, \sum\limits^{M_d}_{m=1}|\tau_{d,m}|\,p^{(\beta)}_{d,m}(\nabla\cdot\mathbf{u})_{d,m}, $$
(22)

which holds for an arbitrary vector function \(\mathbf{u}\in\mathbf{ V}_h\), where \(\mathbf{v}^{(\beta)}\in\mathbf{ V}_h\), \(p^{(\beta)}\in W_h\), \(S^{(\beta)}\in W_h\)(at a fixed time), and \(p^{(\mathrm{ b})}+p^{(\mathrm{ f})}\in W^\perp_h\).

Let \(r^{(\beta)}\) be the approximation of a mass transfer function given by the equality (16):

$$r^{(\mathrm{ b})}_\tau=r_\tau,\qquad r^{(\mathrm{ f})}_\tau=-r_\tau$$

and

$$r_\tau=k^{(\mathrm{ b,f})}\eta^{(\mathrm{ b,f})}_\tau\big(p^{(\mathrm{ f})}_\tau-p^{(\mathrm{ b})}_\tau\big), $$
(23)

where \(\eta^{(\mathrm{ b,f})}_\tau=\Big(\lambda\big(S^{(\mathrm{ b })}_\tau\big) +\lambda\big(S^{(\mathrm{ f})}_\tau \big)\Big)/2\), \(S^{(\beta)}_\tau\) is the value of the grid function \(S^{(\beta)}\) in the cell \(\tau\). Then the approximation of Eqs. (4), (13) can be written in the form of the following equalities:

$$\big(\nabla\cdot\mathbf{v}^{(\beta)}\big)_\tau=r^{(\beta)}_\tau, \quad\tau\in\mathcal{ T}_0, $$
(24)
$$\big(\nabla\cdot\mathbf{v}^{(\beta)}\big)_{d,m} =\frac{1}{|\tau_{d,m}|} \Bigg( \ \int\limits_{\omega_{d,m}}r^{(\beta)}\,d\mathbf{x}+Q^{(\beta)}_{d,m}\Bigg), \quad m=1,\dots,M_d,\ \ d=\mathrm{ in,pr}, $$
(25)

where \(\omega_{d,m}=\tau_{d,m}\setminus{\Omega}_{d,m}\). Recall that \(\nabla\cdot\mathbf{v}^{(\beta)}\in W_h\).

Let us present the vector-matrix form of the problem (22), (24), (25). Let \(M_0\) be the number of cells in \(\mathcal{ T}_0\). Let us introduce an Euclidean space \(\mathcal{ E}_M\) of dimension \(M=M_0+M_\mathrm{ in}+M_\mathrm{ pr}\) with inner product \([\,\cdot\,,\cdot\,]\) and norm \(\|\cdot\|\). Note that \(M<M_xM_yM_z\), since each well is located in several cells of the set \(\mathcal T\). In this case \(M=\mathrm{ dim}\,W_h\). The elements of the space \(\mathcal{ E}_M\) are the column vectors \(\overline q\) with components \((q)_\tau\) and \((q)_{d,m}\). Following [24], we establish the following relationship between the elements of a column vector \({\overline q}\in\mathcal{ E}_M\) and the values of the grid function \(q_h\in W_h\):

$$(q)_\tau=\sqrt{|\tau|}\,q_\tau,\ \ \tau\in\mathcal{ T}_0, \qquad (q)_{d,m}=\sqrt{|\tau_{d,m}|}\,q_{d,m},\ \ m=1,\dots,M_d,\ d=\mathrm{ in,pr}. $$
(26)

Equations (22), (24), (25) take the following vector-matrix form:

$$\left(\begin{array}{cccc} \mathbf{ D}^{(\mathrm{ b})} & \mathbf{ B} & \mathbf{ 0} & \mathbf{ 0} \\ \mathbf{ B}^t \ \ & -P & 0 & P \\ \mathbf{ 0}\ \ \ & 0^t & \ \ \mathbf{ D}^{(\mathrm{ f})} & \mathbf{ B} \\ \mathbf{ 0}^t \ \ & P & \mathbf{ B}^t & - P \ \ \end{array}\!\! \right) \left(\begin{array}{c} {\overline{\mathbf{v}}}^{(\mathrm{ b})} \\ {\overline p}^{(\mathrm{ b})}\\{\overline{\mathbf{v}}}^{(\mathrm{ f})} \\ {\overline p}^{(\mathrm{ f})} \end{array}\right)=\left(\begin{array}{l} {\overline{\mathbf{ 0}}} \\ {\overline Q}^{(\mathrm{ b})}\\{\overline{\mathbf{ 0}}} \\ {\overline Q}^{(\mathrm{ f})} \end{array}\!\! \right). $$
(27)

Here \(P\) is the square symmetric positive definite matrix that corresponds to the grid mass transfer function \(r_h\) given by the equality (23) with formulas (26).

Let us introduce a column vector \({\overline e}\in\mathcal{ E}_M\) with components

$$(e)_\tau=\sqrt{|\tau|},\ \ \tau\in\mathcal{ T}_0, \qquad (e)_{d,m}=\sqrt{|\tau_{d,m}|},\ \ m=1,\dots,M_d,\ \ d=\mathrm{ in,pr}.$$

It is easy to see that \(\mathbf{ B}\,{\overline e}=\overline{\mathbf{0}}\), and the matrix of the system (27) is singular with a one-dimensional kernel of the form \(c\,(\,{\overline{\mathbf{0}}}\ \,{\overline e}\ \,{\overline{\mathbf{ 0}}}\ \,{\overline e}\,)^t\), where \(c\) is an arbitrary constant. Then the orthogonality condition (21) \(\big(p^{(\mathrm{ b})}+p^{(\mathrm{ f})}\in W^\perp_h \big)\) takes the form

$$\big[\, {\overline p}^{(\mathrm{ b})}+{\overline p}^{(\mathrm{ f})},\,{\overline e}\, \big]=0. $$
(28)

Let

$$\mathcal{ E}^\perp_M =\big\{{\overline q}\in\mathcal{ E}_M \mid [\,{\overline q},\,{\overline e}\,]=0 \big \}.$$

In the subspace \(\mathcal{ E}^\perp_M\) the symmetric matrix of the system (27) is positive definite. Similarly to [24], we regularize the system (27); as a result, it becomes uniquely solvable. Let us consider the single-rank matrix \(C={\overline e}\cdot{\overline e}^{\,t}\). It is easy to see that for an arbitrary column vector \({\overline q}\in\mathcal{ E}_M\) we have the equality \(C{\overline q}=[\,{\overline q},\,{\overline e}\,]\,{\overline e}\), from which, in particular, it follows that the matrix \(C\) is positive semi-definite in \(\mathcal{ E}_M\): \([\,C{\overline q},\,{\overline q}\,]=[\,{\overline q},\,{\overline e}\,]^2\geq 0\). Consider the following system:

$$\left(\begin{array}{lclc} \mathbf{ D}^{(\mathrm{ b})} & \mathbf{ B} & \mathbf{ 0} & \mathbf{ 0} \\ \mathbf{ B}^t & -P-\varepsilon C & 0 & P-\varepsilon C\\ \mathbf{ 0} & 0^t & \mathbf{ D}^{(\mathrm{ f})} & \mathbf{ B} \\ \mathbf{ 0}^t & P-\varepsilon C & \mathbf{ B}^t & -P-\varepsilon C \end{array}\!\!\right) \left(\begin{array}{c} {\overline{\mathbf{v}}}^{(\mathrm{ b})} \\ {\overline p}^{(\mathrm{ b})}\\ {\overline{\mathbf{v}}}^{(\mathrm{ f})} \\ {\overline p}^{(\mathrm{ f})} \end{array}\right)=\left(\begin{array}{l} {\overline{\mathbf{0}}} \\ {\overline Q}^{(\mathrm{ b})}\\ {\overline{\mathbf{0}}} \\ {\overline Q}^{(\mathrm{ f})} \end{array}\!\!\right), $$
(29)

where \(\varepsilon>0\) is a positive parameter. Let us show that the system (29) is uniquely solvable and its solution is a solution to the problem (27), (28). For this, the velocities \({\overline{\mathbf{v}}}^{(\beta)}\) are removed from (29). As a result, we obtain a system of equations for determining the column vector \({\overline p}\in\mathcal{ E}_M\times\mathcal{ E}_M\):

$$SH\,{\overline p}=-{\overline Q},$$

where \(SH=SH_0+SH_P+\varepsilon SH_C\),

$$SH_0=\left(\!\begin{array}{cc} \mathbf{ B}^t (\mathbf{ D}^{(\mathrm{ b})})^{-1}\mathbf{ B} & 0 \\ 0^t & \mathbf{ B}^t (\mathbf{ D}^{(\mathrm{ f})})^{-1}\mathbf{ B} \end{array}\right),\quad SH_P=\left(\begin{array}{rr} P & -P \\ -P & P \end{array}\right),\quad SH_C=\left(\begin{array}{cc} C & C \\ C & C \end{array}\! \right),$$
$${\overline p}=\left(\!\! \begin{array}{c} {\overline p}^{(\mathrm{ b})} \\ {\overline p}^{(\mathrm{ f})} \end{array}\!\!\right),\qquad {\overline Q}=\left(\!\! \begin{array}{c} {\overline Q}^{(\mathrm{ b})} \\ {\overline Q}^{(\mathrm{ f})} \end{array}\!\!\right).$$

Consider an arbitrary column vector \({\overline q}\in\mathcal{ E}_M\times\mathcal{ E}_M\) with components \({\overline q}^{(\beta)}\in\mathcal{ E}_M\), \(\beta=\mathrm{ b,f}\). The rectangular matrix \(\mathbf{ B}\) has a one-dimensional kernel \(\mathrm{ Ker} \mathbf{ B}=\{\,\xi{\overline e},\;\;\xi\in R\,\}\). Hence, the column vectors \({\overline q}^{(\beta)}\) can be presented in the form

$${\overline q}^{(\beta)}={\overline q}^{(\beta)}_0+\xi^{(\beta)}{\overline e},\quad \big[{\overline q}^{(\beta)}_0,{\overline e}\big]=0.$$

There is a grid analogue of the Poincare inequality (see, for instance, [22]) from which we have the inequality

$$[[SH_0{\overline q},{\overline q}]]\geq c_0[[{\overline q}_0,{\overline q}_0]], $$
(30)

where \({\overline q}_0\in\mathcal{ E}_M\times\mathcal{ E}_M\) is the column vector with components \({\overline q}^{(\mathrm{ b})}_0\) and \({\overline q}^{(\mathrm{ f})}_0\). Hereinafter \([[\,\cdot,\cdot\,]]\) is the inner product in \(\mathcal{ E}_M\times\mathcal{ E}_M\). Since the matrix \(P\) is positive definite and the vectors \({\overline q}^{(b)}_0-{\overline q}^{(f)}_0\) and \({\overline e}\) are orthogonal, we have

$$[[SH_P{\overline q},{\overline q}]]= \big[P({\overline q}^{(\mathrm{ b})}-{\overline q}^{(\mathrm{ f})}), {\overline q}^{(\mathrm{ b})}-{\overline q}^{(\mathrm{ f})}\big] \geq c_P\big\|{\overline q}^{(\mathrm{ b})}-{\overline q}^{(\mathrm{ f})}\big\|^2 \geq c_P\big(\xi^{(\mathrm{ b})}-\xi^{(\mathrm{ f})}\big)^2\|{\overline e}\|^2. $$
(31)

It is easy to see that

$$[[SH_C{\overline q},{\overline q}]]= \big[C({\overline q}^{(\mathrm{ b})}+{\overline q}^{(\mathrm{ f})}), {\overline q}^{(\mathrm{ b})}+{\overline q}^{(\mathrm{ f})}\big]= \big[{\overline q}^{(\mathrm{ b})}+{\overline q}^{(\mathrm{ f})},{\overline e}\big]^2 =\big(\xi^{(\mathrm{ b})}+\xi^{(\mathrm{ f})}\big)^2\|{\overline e}\|^4.$$

Here we used the orthogonality of the vectors \({\overline q}^{(b)}_0+{\overline q}^{(f)}_0\) and \({\overline e}\). Let \(c_1=\) \(\min(c_P,\varepsilon\|{\overline e}\|^2)\). From the above equality and the inequality (31) we have

$$[[(SH_P+\varepsilon SH_C){\overline q},{\overline q}]] \geq 2c_1\big[\big(\xi^{(\mathrm{ b})}\big)^2+\big(\xi^{(\mathrm{ f})}\big)^2\big]\,\|{\overline e}\|^2. $$
(32)

From the inequalities (30) and (32) we have positive definiteness of the matrix \(SH\):

$$[[SH{\overline q},{\overline q}]]\geq c [[{\overline q},{\overline q}]],$$

where \(c=\min(c_0,2c_1)\). Thus, we have established unique solvability of the system of equations (29) in \(\mathcal{ E}_M\).

The solution to the system (29) is a solution to the system (27) in the subspace defined by the condition (28). Let us take the inner product of the system (29) and the column vector \((\,{\overline{\mathbf{0}}}\ \,{\overline e}\ \,{\overline{\mathbf{ 0}}}\ \,{\overline e}\,)^t\). As a result of simple calculations we have

$$\varepsilon\,\big[C\big({\overline p}^{(\mathrm{ b})}+{\overline p}^{(\mathrm{ f})}\big),{\overline e}\big]+ \big[\,{\overline Q}^{(\mathrm{ b})}+ {\overline Q}^{(\mathrm{ f})}, {\overline e}\big]=0.$$

In vector-matrix form the condition (15) can be written as \(\big[\,{\overline Q}^{(\mathrm{ b})}+{\overline Q}^{(\mathrm{ f})}, {\overline e}\big]=0\), and, hence, \(\big[C({\overline p}^{(\mathrm{ b})}+{\overline p}^{(\mathrm{ f})}),{\overline e}\big]= \big[{\overline p}^{(\mathrm{ b})}+{\overline p}^{(\mathrm{ f})},{\overline e}\big] [{\overline e},{\overline e}]=0\). Thus, the solution to the system (29) satisfies the condition (28). Also, \(C\big({\overline p}^{(\mathrm{ b})}+{\overline p}^{(\mathrm{ f})}\big)= \big[{\overline p}^{(\mathrm{ b})}+{\overline p}^{(\mathrm{ f})},{\overline e}\big]\,{\overline e} ={\overline 0}\), from which it immediately follows that the solution to the system (29) is a solution to the system (27).

3. THE UPWIND SCHEME

The computational algorithm for solving Eqs. (1) at \(\alpha=\mathrm{ w}\) is constructed on the basis of upwind schemes. As noted above, the spatial approximations of the water saturation functions are represented by piecewise constant functions \(S^{(\beta)}\in W_h\). Recall that for the grid functions we use the same notation as in Section 1. We have

$$S^{(\beta)}=\sum\limits_{\tau\in\mathcal{ T}_0}S^{(\beta)}_\tau\chi(\tau)+ \sum\limits^{M_\mathrm{ in}}_{m=1}S^{(\beta)}_{\mathrm{ in},m}\chi(\tau_{\mathrm{ in},m})+ \sum\limits^{M_\mathrm{ pr}}_{m=1}S^{(\beta)}_{\mathrm{ pr},m}\chi(\tau_{\mathrm{ pr},m}), \quad \beta=\mathrm{ b,f}.$$

Then

$$\big\langle\phi^{(\beta)}S^{(\beta)}\big\rangle_\tau= \phi^{(\beta)}_\tau S^{(\beta)}_\tau, \quad\tau\in\mathcal{ T}_0.$$

Here for a nonhomogeneous formation we set \(\phi^{(\beta)}\in W_h\). Then the semi-discreet analog of Eq. (1) with formulas (11) takes the form

$$\phi^{(\beta)}_\tau\frac{d S^{(\beta)}_\tau}{dt}+ \frac{1}{|\tau|}\int\limits_{\partial\tau}\,\mathbf{v}^{(\beta)}_\mathrm{ w}\cdot \mathbf{n}_\tau\, d\gamma=r^{(\beta)}_{\mathrm{ w},\tau}, \quad\beta=\mathrm{ b,f},\ \ \tau\in\mathcal{ T}_0. $$
(33)

Note that \(r^{(\beta)}_\mathrm{ w}\in W_h\) and \(r^{(\beta)}_{\mathrm{ w},\tau}=\big\langle r^{(\beta)}_\mathrm{ w}\big\rangle_\tau\). Recall that \(r^{(\mathrm{ b})}_{\mathrm{ w},\tau}=-r^{(\mathrm{ f})}_{\mathrm{ w},\tau}=r_{\mathrm{ w},\tau}\), where, in contrast to (17), we use a grid function specified by the equality (23):

$$r_{\mathrm{ w},\tau}=\left\{\begin{array}{ll} \sigma_\mathrm{ w}\big(S^{(\mathrm{ b})}_\tau\big)\,r_\tau, & p^{(\mathrm{ f})}_\tau\leq p^{(\mathrm{ b})}_\tau, \\[1ex] \sigma_\mathrm{ w}\big(S^{(\mathrm{ f})}_\tau\big)\,r_\tau, & p^{(\mathrm{ f})}_\tau>p^{(\mathrm{ b})}_\tau. \end{array} \right. $$
(34)

The construction of the upwind scheme is reduced to an upwind approximation of the second term in the left-hand side of Eq. (33). Formula (34), in fact, implements an upwind approximation for the fluid flow between pore blocks and fractures: when the flow is directed from pores to fractures \(\big(p^{(\mathrm{ f})}\leq p^{(\mathrm{ b})}\big)\), in a cell \(\tau\) we take \(\sigma_\mathrm{ w}\big(S^{(\mathrm{ b})}_\tau\big)\) as the coefficient at \(r_\tau\), and when the flow is directed from fractures to pores \(\big(p^{(\mathrm{ f})}>p^{(\mathrm{ b})}\big)\), we use \(\sigma_\mathrm{ w}\big(S^{(\mathrm{ f})}_\tau\big)\). That is, an upwind scheme taking into account mass transfer is specified by the initial definition of the mass transfer function (16), (17).

Let \(e\) be one of the faces of a cell \(\tau\). Assume that \(e\) is an inner face, that is, it is not a part of the outer boundary \(\Gamma\) on which, according to (5), \(\big\langle \mathbf{v}^{(\beta)}_\mathrm{ w}\big\rangle_e\cdot\mathbf{n}_{e,\tau}=0\). Hereinafter \(\mathbf{ n}_{e,\tau}\) is the unit vector of the normal (that is outward pointing for \(\tau\)) on the face \(e\). To approximate the second term in the left-hand side of Eq. (33), for each face of the cell \(\tau\) we need to calculate \(\big\langle \mathbf{v}^{(\beta)}_\mathrm{ w}\big\rangle_e\cdot\mathbf{n}_{e,\tau}\), where \(\langle\,\cdot\,\rangle_e\) is averaging of a vector over the face \(e\). In what follows \(\tau_e\) will mean the cell that is adjacent to \(\tau\): \(\tau_e\cap\tau=e\). Let

$$\big(\sigma^{(\beta)}_\mathrm{ w}\big)^+_e=\sigma_\mathrm{ w}\big(S^{(\beta)}_\tau\big),\qquad \big(\sigma^{(\beta)}_\mathrm{ w}\big)^-_e=\sigma_\mathrm{ w}\big(S^{(\beta)}_{\tau_e}\big), \quad \beta=\mathrm{ b,f}. $$
(35)

According to formulas (11), we assume that

$$\begin{array}{ll} \big\langle\mathbf{v}_\mathrm{ w}^{(\beta)} \big\rangle_e\cdot\mathbf{n}_{e,\tau} = \big(\sigma^{(\beta)}_\mathrm{ w}\big)^+_e\, \big\langle\mathbf{v}^{(\beta)}\big\rangle_e\cdot\mathbf{n}_{e,\tau}, \qquad \big\langle\mathbf{v}^{(\beta)}\big\rangle_e\cdot\mathbf{n}_{e,\tau}\geq 0\,, \\ \\ \big\langle\mathbf{v}_\mathrm{ w}^{(\beta)}\big\rangle_e\cdot\mathbf{n}_{e,\tau} = \big(\sigma^{(\beta)}_\mathrm{ w}\big)^-_e\, \big\langle\mathbf{v}^{(\beta)}\big\rangle_e\cdot\mathbf{n}_{e,\tau}, \qquad \big\langle\mathbf{v}^{(\beta)}\big\rangle_e\cdot\mathbf{n}_{e,\tau}<0\,, \end{array} \quad\beta=\mathrm{ b,f}. $$
(36)

Note that in different media the flow directions may be different. Figure 1 is a 2D illustration of flow directions for the cells (shown by dots) in which the corresponding saturation-dependent coefficients are calculated. The large dot shows the cell in which the coefficient of the mass transfer function is calculated.

For a cell \(\tau_{d,m}\) containing an injection or production well \({\Omega}_{d,m}\) (a fragment of perforation), Eqs. (33) for the saturation hold on the set \(\omega_{d,m}=\tau_{d,m}\setminus{\Omega}_{d,m}\):

$$|\omega_{d,m}|\,\phi^{(\beta)}_{d,m}\frac{d S^{(\beta)}_{d,m}}{dt}+ \int\limits_{\partial\omega_{d,m}}\mathbf{v}^{(\beta)}_\mathrm{ w}\cdot \mathbf{n}_{d,m}\,d\gamma= \int\limits_{\omega_{d,m}}r^{(\beta)}_\mathrm{ w}. $$
(37)
Fig. 1
figure 1

Flow directions in the dual porosity model.

Similarly to (12), we have the inequality

$$\int\limits_{\partial\omega_{d,m}}\mathbf{v}^{(\beta)}_\mathrm{ w}\cdot \mathbf{n}_{d,m}\,d\gamma= \int\limits_{\partial\tau_{d,m}}\mathbf{v}^{(\beta)}_\mathrm{ w}\cdot \mathbf{n}_{d,m}\,d\gamma+ \int\limits_{{\Gamma}_{d,m}}\mathbf{v}^{(\beta)}_\mathrm{ w}\cdot\mathbf{n}_{d,m}\,d\gamma.$$

On the boundary \({\Gamma}_{\mathrm{ in},m}\) of an injection well \({\Omega}_{\mathrm{ in},m}\) we set \(S^{(\beta)}_{\mathrm{ in},m}=S^*\), and, hence, \(\sigma_w(S^{(\beta)}_{\mathrm{ in},m})=1\). Then, according to (11) and (8), we have

$$\int\limits_{{\Gamma}_{\mathrm{ in},m}}\mathbf{v}^{(\beta)}_\mathrm{ w}\cdot \mathbf{n}_{\mathrm{ in},m}\,d\gamma=-Q^{(\beta)}_{\mathrm{ in},m}, \qquad \int\limits_{{\Gamma}_{\mathrm{ pr},m}}\mathbf{v}^{(\beta)}_\mathrm{ w}\cdot \mathbf{n}_{\mathrm{ pr},m}\,d\gamma= -\sigma_\mathrm{ w}(S^{(\beta)}_{\mathrm{ pr},m})\,Q^{(\beta)}_{\mathrm{ pr},m}.$$

Substituting these formulas into the above equality and the result into Eq. (37), we obtain

$$|\omega_{\mathrm{ in},m}|\,\phi^{(\beta)}_{\mathrm{ in},m}\frac{d S^{(\beta)}_{\mathrm{ in},m}}{dt}+ \int\limits_{\partial\tau_{\mathrm{ in},m}}\mathbf{v}^{(\beta)}_\mathrm{ w}\cdot \mathbf{n}_{\mathrm{ in},m}\,d\gamma= \int\limits_{\omega_{\mathrm{ in},m}}r^{(\beta)}_\mathrm{ w}+Q^{(\beta)}_{\mathrm{ in},m}, $$
(38)
$$|\omega_{\mathrm{ pr},m}|\,\phi^{(\beta)}_{\mathrm{ pr},m}\frac{d S^{(\beta)}_{\mathrm{ pr},m}}{dt}+ \int\limits_{\partial\tau_{\mathrm{ pr},m}}\mathbf{v}^{(\beta)}_\mathrm{ w}\cdot \mathbf{n}_{\mathrm{ pr},m}\,d\gamma= \int\limits_{\omega_{\mathrm{ pr},m}}r^{(\beta)}_\mathrm{ w} +\sigma_\mathrm{ w}(S^{(\beta)}_{\mathrm{ pr},m})\,Q^{(\beta)}_{\mathrm{ pr},m}. $$
(39)

The second term in the left-hand sides of the equalities (38) and (39) is calculated by formulas (35) and (36). Note that before water flooding of a production, well when the equality \(\big\langle\mathbf{v}^{(\beta)}_\mathrm{ w}\big\rangle\cdot\mathbf{ n}_{pr,m}=0\) holds on \(\partial\tau_{pr,m}\) and \(S^{(\beta)}_{\mathrm{ pr},m}=S_*\) in \(\tau_{\mathrm{ pr},m}\), and, hence, \(\sigma_w\big(S^{(\beta)}_{\mathrm{ pr},m}\big)=0\) and \(r^{(\beta)}_w=0\), Eq. (38) takes the form \(d S^{(\beta)}_{\mathrm{ pr},m}/dt=0\). This equality may hold for pore blocks and for fractures at different times.

4. THE EXPLICIT SCHEME AND THE MAXIMUM PRINCIPLE

Consider a discretization of the problem in time. Let the water saturation \(S^{(\beta),n}_\tau\) at the time level \(t_n=n\Delta t\) be known. The values, \(S^{(\beta),0}_\tau\), are initial data for the problem. They are used to calculate the total velocities and pressures in the pore blocks and fractures. Then formulas (34)–(36) are used to determine the mass transfer function and the phase velocities. In what follows the superscript \(n\) will be omitted. Equation (33) will be approximated in time by using an explicit Euler scheme:

$$S^{(\beta),n+1}_\tau=S^{(\beta),n}_\tau-\frac{\Delta t}{\phi^{(\beta)}_\tau|\tau|} \mathit{\Phi}^{(\beta)}_\tau\Big(S^{(\beta),n}_\tau,{\overline S}^{(\beta),n}_\tau\Big) + \frac{\Delta t}{\phi^{(\beta)}_\tau}\, r^{(\beta)}_{w,\tau}\Big(S^{(\mathrm{ b}),n}_\tau,S^{(\mathrm{ f}),n}_\tau\Big), \quad\beta=\mathrm{ b,f},\ \ \tau\in\mathcal{ T}_0, $$
(40)

where \({\overline S}^{(\beta)}_{\tau}=\big\{S^{(\beta)}_{\tau_e},\;\; e\in E_\tau\big\}\), \(E_\tau\) is the set of all internal faces of a cell \(\tau\); according to (11), (35), and (36)

$$\mathit{\Phi}^{(\beta)}_\tau\big(S^{(\beta)}_\tau,{\overline S}^{(\beta)}_\tau\big)= \sigma_\mathrm{ w}\big(S^{(\beta)}_\tau\big) \sum\limits_{e\in E^{(\beta),+}_\tau}|e|\, \big\langle\mathbf{v}^{(\beta)}\big\rangle_e\cdot\mathbf{n}_{e,\tau}- \sum\limits_{e\in E^{(\beta),-}_\tau}|e|\,\sigma_\mathrm{ w}\big(S^{(\beta)}_{\tau_e}\big) \big|\big\langle\mathbf{v}^{(\beta)}\big\rangle_e\cdot\mathbf{n}_{e,\tau}\big|,$$
$$E^{(\beta),+}_\tau=\big\{\,e\in E_\tau\,\big\vert\,\big\langle\mathbf{v}^{(\beta)}\big\rangle_e \cdot\mathbf{n}_{e,\tau}>0 \big\}, \qquad E^{(\beta),-}_\tau=\big\{\,e\in E_\tau\,\big\vert\, \big\langle\mathbf{v}^{(\beta)}\big\rangle_e\cdot\mathbf{n}_{e,\tau}<0\big\}.$$

Next, we will establish a weak maximum principle for the scheme (40); at a sufficiently small step \(\Delta t\), from the condition \(S_*\leq S^{(\beta),n}_\tau\leq S^*\) we have the following estimates:

$$S_*\leq S^{(\beta),n+1}_\tau\leq S^*,\quad \beta=\mathrm{ b,f},\ \ \tau\in\mathcal{ T}_0. $$
(41)

According to the equality (24), the function \(\mathit{\Phi}^{(\beta)}_\tau\big(S^{(\beta)}_\tau,{\overline S}^{(\beta)}_\tau\big)\) by simple transformations can be rewritten as follows:

$$\mathit{\Phi}^{(\beta)}_\tau\big(S^{(\beta)}_\tau,{\overline S}^{(\beta)}_\tau\big)= \sum\limits_{e\in E^{(\beta),-}_\tau}|e|\,\frac{d\sigma_\mathrm{ w}}{d S}({\widetilde S}^{(\beta)}) \big(S^{(\beta)}_\tau-S^{(\beta)}_{\tau_e}\big)\big| \big\langle\mathbf{v}^{(\beta)}\big\rangle_e\cdot\mathbf{n}_{e,\tau}\big|+ |\tau|\sigma_\mathrm{ w}\big(S^{(\beta)}_\tau\big)\,r^{(\beta)}_\tau,$$

where \({\widetilde S}^{(\beta)}\) are some values of the water saturations between \(S^{(\beta)}_\tau\) and \(S^{(\beta)}_{\tau_e}\). Taking into account this equality, equation (40) can be written as

$$S^{(\beta),n+1}_\tau =S^{(\beta),n}_\tau-\frac{\Delta t}{\phi^{(\beta)}_\tau|\tau|}\Big( \mathit{\Phi}^{(\beta)}_{\tau,1}\big(S^{(\beta),n}_\tau,{\overline S}^{(\beta),n}_\tau\big)+ \mathit{\Phi}^{(\beta)}_{\tau,2}\big(S^{(\mathrm{ b}),n}_\tau,S^{(\mathrm{ f}),n}_\tau\big)\Big), $$
(42)

where

$$\mathit{\Phi}^{(\beta)}_{\tau,1}\big(S^{(\beta)}_\tau,{\overline S}^{(\beta)}_\tau\big) = \sum\limits_{e\in E^{(\beta),-}_\tau}|e|\,\frac{d\sigma_\mathrm{ w}}{d S}({\widetilde S}^{(\beta)}) \big(S^{(\beta)}_\tau-S^{(\beta)}_{\tau_e}\big) \big|\big\langle\mathbf{v}^{(\beta)}\big\rangle_e\cdot\mathbf{n}_{e,\tau}\big|, $$
(43)
$$\mathit{\Phi}^{(\beta)}_{\tau,2}\big(S^{(\mathrm{ b})}_\tau,S^{(\mathrm{ f})}_\tau\big) = |\tau|\Big(\sigma_\mathrm{ w}\big(S^{(\beta)}_\tau\big)\,r^{(\beta)}_\tau \big(S^{(\mathrm{ b})}_\tau,S^{(\mathrm{ f})}_\tau\big)-r^{(\beta)}_{w,\tau}\big(S^{(\mathrm{ b})}_\tau,S^{(\mathrm{ f})}_\tau\big)\Big). \quad $$
(44)

In what follows we will need a specific form of the relative permeabilities, which will be assumed the same for the pore blocks and fractures. The following functions are often used as \(k_{r,\alpha}(S_\alpha)\) (see, for instance, [5]):

$$k_{r,\alpha}(S_\alpha)= \left\{\begin{array}{cc} 0, & 0\leq S_\alpha \leq S_*, \\ \displaystyle \left(\frac{S_\alpha-S_*}{S^*-S_*}\right)^d, & S_*< S_\alpha < S^*,\\ 1,& S^*\leq S_\alpha \leq 1,\\ \end{array}\right. \qquad \alpha=\mathrm{ w,o},\ \ d\geq 1. $$
(45)

Recall that \(\sigma_\mathrm{ w}(S)=\mu k_{r,\mathrm{ w}}(S)/\big(\mu k_{r,\mathrm{ w}}(S)+k_{r,\mathrm{ o}}(1-S)\big)\), \(\mu=\mu_\mathrm{ o}/\mu_\mathrm{ w}\geq 1\). Simple calculations show that at \(S_*\leq S\leq S^*\)

$$\frac{d\sigma_\mathrm{ w}(S)}{d S}(S)\geq 0. $$
(46)

We denote \(A^{(\beta)}=\sum\limits_{e\in E^{(\beta),-}_\tau}|e|\, \frac{d\sigma_\mathrm{ w}}{d S}\big({\widetilde S}^{(\beta)}\big) \big|\big\langle\mathbf{v}^{(\beta)}\big\rangle_e\cdot\mathbf{ n}_{e,\tau}\big|.\)

Let the inequalities \(S_*\leq S^{(\beta)}_\tau\leq S^*\) hold for an arbitrary cell \(\tau\in\mathcal{ T}_0\). Specifically, these inequalities hold when considering a fixed cell \(\tau\) for \(S^{(\beta)}_{\tau_e}\). Then, according to (43), (46), we have the inequalities

$$A^{(\beta)}\big(S^{(\beta)}_\tau-S^*\big) \leq \mathit{\Phi}^{(\beta)}_{\tau,1}\big(S^{(\beta)}_\tau,{\overline S}^{(\beta)}_\tau\big) \leq A^{(\beta)}\big(S^{(\beta)}_\tau-S_*\big). $$
(47)

Consider the function \(\mathit{\Phi}^{(\beta)}_{\tau,2}\big(S^{(\mathrm{ b})}_\tau,S^{(\mathrm{ f})}_\tau\big)\). Let \(\beta=\mathrm{ b}\). In the case of \(p^{(\mathrm{ f})}_\tau\leq p^{(\mathrm{ b})}_\tau\) it immediately follows from formulas (34) and (44) that \(\mathit{\Phi}^{(\mathrm{ b})}_{\tau,2}\big(S^{(\mathrm{ b})}_\tau,S^{(\mathrm{ f})}_\tau\big)=0\). Then, using the estimates (47) in Eq. (42), we obtain

$$\Bigg(1-\frac{\Delta t}{\phi^{(\mathrm{ b})}_\tau|\tau|}A^{(\beta)}\Bigg)S^{(\mathrm{ b}),n}_\tau+ \frac{\Delta t}{\phi^{(\mathrm{ b})}_\tau|\tau|}A^{(\beta)}S_* \leq S^{(\mathrm{ b}),n+1}_\tau \leq \Bigg(1-\frac{\Delta t}{\phi^{(\mathrm{ b})}_\tau|\tau|}A^{(\beta)}\Bigg)S^{(\mathrm{ b}),n}_\tau+ \frac{\Delta t}{\phi^{(\mathrm{ b})}_\tau|\tau|}A^{(\beta)}S^*.$$

Let the Courant–Friedrichs–Lewy (CFL) condition be satisfied:

$$\Delta tA^{(\beta)}\leq \phi^{(\mathrm{ b})}_\tau|\tau|. $$
(48)

Then the assumption \(S_*\leq S^{(\mathrm{ b}),n}_\tau\leq S^*\) immediately results in the estimates (41) at \(\beta=\mathrm{ b}\) and

\(p^{(\mathrm{ f})}_\tau\leq p^{(\mathrm{ b})}_\tau\).

Consider the case of \(p^{(\mathrm{ f})}_\tau> p^{(\mathrm{ b})}_\tau\). According to (34), (44) we have

$$\mathit{\Phi}^{(\mathrm{ b})}_{\tau,2}\big(S^{(\mathrm{ b})}_\tau,S^{(\mathrm{ f})}_\tau\big)= |\tau|\,r_\tau\Big(\sigma_\mathrm{ w}(S^{(\mathrm{ b})}_\tau)-\sigma_\mathrm{ w}(S^{(\mathrm{ f})}_\tau)\Big).$$

Here \(r_\tau\) is given by formula (23), and \(r_\tau\geq 0\). It is easy to obtain the following inequality:

$$\mathit{\Phi}^{(\mathrm{ b})}_{\tau,2}\big(S^{(\mathrm{ b})}_\tau,S^{(\mathrm{ f})}_\tau\big) = |\tau|\,r_\tau\Bigg(\frac{d\sigma_\mathrm{ w}}{d S}\big(\widetilde S^{(\mathrm{ b})}_1\big) \big(S^{(\mathrm{ b})}_\tau-S_*\big)-\sigma_\mathrm{ w}\big(S^{(\mathrm{ f})}_\tau\big)\Bigg) \leq B^{(\mathrm{ b})}_1\big(S^{(\mathrm{ b})}_\tau-S_*\big), $$
(49)

where \({\widetilde S}^{(\mathrm{ b})}_1\in\big[S_*,S^{(\mathrm{ b})}_\tau\big]\), \(B^{(\mathrm{ b})}_1=|\tau|\,r_\tau d\sigma_\mathrm{ w}/dS\big({\widetilde S}^{(\mathrm{ b})}_1\big) \geq 0\). On the other hand, we have the following representation of the function \(\mathit{\Phi}^{(\mathrm{ b})}_{\tau,2}\big(S^{(\mathrm{ b})}_\tau,S^{(\mathrm{ f})}_\tau\big)\):

$$\mathit{\Phi}^{(\mathrm{ b})}_{\tau,2}\big(S^{(\mathrm{ b})}_\tau,S^{(\mathrm{ f})}_\tau\big)= |\tau|\,r_\tau\Bigg(\frac{d\sigma_\mathrm{ w}}{d S} \big({\widetilde S}^{(\mathrm{ b})}_2\big)\big(S^{(\mathrm{ b})}_\tau-S^*\big)+ \frac{d\sigma_\mathrm{ w}}{d S}\big({\widetilde S}^{(\mathrm{ f})}_2\big) \big(S^*-S^{(\mathrm{ f})}_\tau\big)\Bigg),$$

where \({\widetilde S}^{(\mathrm{ b})}_2\in \big[S^{(\beta)}_\tau,S^*\big]\), \(\beta=\mathrm{ b,f}\). According to (46), from this representation we obtain the inequality

$$\mathit{\Phi}^{(\mathrm{ b})}_{\tau,2}\big(S^{(\mathrm{ b})}_\tau,S^{(\mathrm{ f})}_\tau\big) \geq B^{(\mathrm{ b})}_2\big(S^{(\mathrm{ b})}_\tau-S^*\big), $$
(50)

where \(B^{(b)}_2=|\tau|\,r_\tau d\sigma_\mathrm{ w}/dS\big({\widetilde S}^{(\mathrm{ b})}_2\big)\geq 0\). Thus, the estimates (49) and (50) are analogs of the two-sided inequality (47) for the function \(\mathit{\Phi}^{(\mathrm{ b})}_{\tau,2}\big(S^{(\mathrm{ b})}_\tau,S^{(\mathrm{ f})}_\tau\big)\). Using the estimates (47), (49), and (50) in Eq. (42), we obtain the following inequalities:

$$\begin{aligned} && \Bigg(1-\frac{\Delta t}{\phi^{(\mathrm{ b})}_\tau|\tau|}\big(A^{(\mathrm{ b})} +B^{(\mathrm{ b})}_1\big)\Bigg)S^{(\mathrm{ b}),n}_\tau+ \frac{\Delta t}{\phi^{(\mathrm{ b})}_\tau|\tau|}\big(A^{(\mathrm{ b})}+B^{(\mathrm{ b})}_1\big)S_* \\ && \leq S^{(\mathrm{ b}),n+1}_\tau \leq \Bigg(1-\frac{\Delta t}{\phi^{(\mathrm{ b})}_\tau|\tau|} \big(A^{(\mathrm{ b})}+B^{(\mathrm{ b})}_2\big)\Bigg)S^{(\mathrm{ b}),n}_\tau +\frac{\Delta t}{\phi^{(\mathrm{ b})}_\tau|\tau|}\big(A^{(\mathrm{ b})}+B^{(\mathrm{ b})}_2\big)S^*.\end{aligned}$$

In the case under consideration, \(\big(p^{(\mathrm{ f})}_\tau> p^{(\mathrm{ b})}_\tau\big)\), the Courant–Friedrichs–Lewy condition is

$$\Delta t\Big(A^{(\mathrm{ b})}+\max\big\{B^{(\mathrm{ b})}_1,B^{(\mathrm{ b})}_2\big\}\Big) \leq \phi^{(\mathrm{ b})}_\tau|\tau|. $$
(51)

From this condition the estimates (41) immediately follow at \(\beta=\mathrm{ b}\). Note that, owing to the condition (51), the condition (48) is automatically satisfied, that is, (51) ensures that the inequality (41) is satisfied for \(\beta=\mathrm{ b}\) at any sign of the difference \(p^{(\mathrm{ f})}_\tau- p^{(\mathrm{ b})}_\tau\).

The case of \(\beta=\mathrm{ f}\) is investigated in a similar way with superscripts \(\mathrm{ b}\) and \(\mathrm{ f}\) interchanged in all notation, starting with \(r_\tau\) in formula (23). As a result, we obtain the inequalities (41) if the following condition (as well as the condition (51)) is satisfied:

$$\Delta t\Big(A^{(\mathrm{ f})}+\max\big\{B^{(\mathrm{ f})}_1,B^{(\mathrm{ f})}_2\big\}\Big) \leq \phi^{(\mathrm{ f})}_\tau|\tau|.$$

Finally note that the above Courant–Friedrichs–Lewy conditions depend on the grid functions \(\mathbf{v}^{(\beta)}\) and \(p^{(\beta)}\) found at the \(n\) th level. Hence, it is desirable to have some estimates of these functions. A method of obtaining such estimates can be found in [22], and the effects of wells on these estimates are studied in [32].

5. COMPUTATIONAL EXPERIMENTS

Fig. 2
figure 2

Water saturation in pore blocks (a) and fractures (b) with a mass transfer coefficient of \(10^{-15}\).

Fig. 3
figure 3

Dynamics of water saturation in pore blocks (a), (b) and in fractures (b), (d) with a mass transfer coefficient of \(10^{-15}\).

Fig. 4
figure 4

Dynamics of water saturation in pore blocks (a), (b) and in fractures (b), (d) with a mass transfer coefficient of \(10^{-13}\).

Here we present the results of computational experiments for the model of filtration in a fractured-porous medium to illustrate the performance of the algorithm being considered in this paper. The main purpose of the experiments is to demonstrate the absence of oscillations in the vicinity of the water-oil contact in the Buckley–Leverett problem for the above dual porosity model. An example with one injection well and one production well is considered. The formation is assumed to have homogeneous porosity and absolute permeability distributions in the vertical direction, and the wells are assumed to be of ideal completion. These assumptions mean that the calculations may be made for the 2D problem. All experimental results presented below have been obtained at the following values of the physical parameters of the filtration process:

$$\begin{array}{c} \phi^{(\mathrm{ b})}=0.375,\qquad \phi^{(\mathrm{ f})}=0.05,\qquad k_0=3.06\cdot 10^{-13}\ \mathrm{ m}^2, \qquad S_*=0.2,\qquad S^*=0.8,\\[0.5ex] \mu_\mathrm{ w}=1.15\cdot 10^{-4}\ \mathrm{ Pa}\cdot\mathrm{ s},\qquad\mu_o=9.28\cdot 10^{-4}\ \mathrm{ Pa}\cdot\mathrm{ s}, \\[0.5ex] Q^{(\mathrm{ b})}=2\cdot 10^{-5}\ \mathrm{ m}^3/\mathrm{ s},\qquad Q^{(\mathrm{ f})}=2\cdot 10^{-5}\ \mathrm{ m}^3/\mathrm{ s}. \end{array}$$

Here \(k_0\) is the scalar absolute permeability of the formation, which is the same for the pore blocks and the fractures, and the absolute permeability tensors due to anisotropy are given as

$$K^{(\mathrm{ b})}_0=k_0\left(\begin{array}{cc}10 & 0 \\ 0 & 1\end{array}\right),\qquad K^{(\mathrm{ f})}_0=k_0\left(\begin{array}{cc}1 & 0 \\ 0 & 10\end{array}\right).$$

The quantity \(k^{(\mathrm{ b,f})}\) will vary in the experiments. In what follows the calculation domain \(\Omega\subset R^2\) will be related to a Cartesian system of coordinates: \({\Omega}=(0,L_x)\times(0,L_y)\), where \(L_x=L_y=50\,\mathrm{ m}\). The coordinates of the well centers are as follows: \(x_\mathrm{ in}=10\,\mathrm{ m}\), \(y_\mathrm{ in}=25\,\mathrm{ m}\), \(x_{\mathrm{ pr}}=40\,\mathrm{ m}\), \(y_{\mathrm{ pr}}=25\,\mathrm{ m}\). In all experiments, a formation with zero water mobility is taken as initial data for the water saturation: \(S(0,\mathbf{x})=S_*\), \(\mathbf{x}\in\Omega\). All calculations are made on a square grid at the following values of the grid parameters: \(M_x=M_y=200\), \(\Delta t=250\,\)s. The time step for the Courant–Friedrichs–Lewy condition was chosen experimentally.

The first experiment illustrates the absence of oscillations at the front of the water-oil contact. Figure 2 presents the water saturation values in the pore blocks and fractures at various times for \(k^{(\mathrm{ b,f})}=10^{-15}\). The numerical solution has the form of a propagating discontinuity, which corresponds to one-dimensional analytical solutions of the Buckley–Leverett problem. The above upwind technology ensures the absence of nonphysical oscillations at the front of the discontinuity.

Another series of experiments illustrates the behavior of water saturation at different intensities of mass transfer between the pore blocks and fractures at the initial stage of the process of oil displacement with water and at the stage of production well flooding. The corresponding results are shown in Figs. 3 and 4.

If the mass transfer between the pore blocks and fractures (Fig. 3) is weak, the water flow in the fractures reaches the production well almost simultaneously with the flow propagating in the pore blocks. This takes place despite the anisotropy of the formation, which prevents the water in the fractures to flow in the direction of the production well. The well flooding begins when a significant amount of undisplaced oil remains in the pore blocks. The situation is different at a significant increase in the mass transfer intensity (Fig. 4). The water flow in the fractures greatly contributes to the oil displacement in the pore blocks. A peculiarity of the process in this case is a local increase in the water saturation in the fractures in the vicinity of the production well due to the water in the pore blocks.

6. CONCLUSIONS

In this paper, a method for solving a 3D problem of filtration of a two-phase incompressible fluid in a fractured-porous medium using the Buckley–Leverett model was considered. The model was formulated in the form of integral conservation laws in terms of the total velocities, pressures, and saturation in the pore blocks and wells. The injection and production wells ensured the inflow and outflow of the two-phase fluid with given total flow rates. Assuming a condition of impermeability on the external boundary of the formation for the total velocities and pressures, a Neumann problem for a system of four first-order equations was formulated. A condition of unique solvability of this problem has been obtained: the sum of pressures in the pore blocks and fractures is to be orthogonal to a constant. A uniquely solvable modification of this problem has been proposed. Another peculiarity of the algorithm proposed in this paper is the fact that an upwind technology was used not only for the convective terms, but also for the mass transfer function. As a result, the calculated total speeds and pressures have allowed establishing Courant–Friedrichs–Lewy conditions that provide stability and monotonicity of the explicit scheme used for calculating the water saturations. The performance of the algorithm was illustrated by computational experiments.

FUNDING

This work was supported by the Russian Science Foundation (project no. 19-11-00048).