1 Introduction

Water infiltrating into initially dry sandy porous media has been shown to produce saturation overshoot and pressure overshoot in Selker et al. (1992), Shiozawa and Fujimaki (2004), DiCarlo (2004, 2007). Eliassi and Glass (2001) and Egorov et al. (2003) have demonstrated that the traditional Richards equation is unable to describe saturation overshoot. To describe the non-monotonic behaviour, various extensions to the Richards equation have been investigated. Eliassi and Glass (2001) studied three additional forms referred to as hypodiffusive form, hyperbolic form and mixed form; saturation overshoot is obtained by using the hypodiffusive form in Eliassi and Glass (2003). DiCarlo et al. (2008) studied a non-monotonic capillary pressure–saturation relationship and a second-order hyperbolic term, but they mentioned these extensions need a regularization term to produce a unique solution. Cueto-Felgueroso and Juanes (2009) explained the formation of gravity fingers during water infiltration in soil by introducing a fourth-order term to Richards equation. The tip and tail saturations after their phase model have good agreement with the experiments in DiCarlo (2004). Nieber (2003) obtained non-monotonic saturation profiles by supplementing the Richards equation with a non-equilibrium capillary pressure–saturation relationship, as well as including hysteretic effects. Later, Chapwanya and Stockie (2010) studied gravity-driven fingering instabilities based on the work of Nieber (2003), and their results demonstrate that the non-equilibrium Richards equation is capable of reproducing realistic fingering flows for a wide range of physically relevant parameters.

Besides extensions to the Richards equation, other approaches to the characterization of the saturation overshoot have also been proposed, such as the generalized theory by introducing percolating and non-percolating fluid phases into the traditional mathematical model (Hilfer and Besserer 2000; Hilfer et al. 2012; Doster et al. 2010), fractional flow approach (DiCarlo et al. 2012) and moment analysis (Xiong et al. 2012).

Among all the proposed theories and models, the dynamic (or non-equilibrium) capillary pressure relationship proposed by Stauffer (1978), Hassanizadeh and Gray (1993) and Kalaydjian et al. (1992) has received much attention. Results on travelling wave solutions, global existence, phase plane analysis and uniqueness of weak solutions are given in Cuesta et al. (2000), Van Duijn et al. (2007, 2013), Mikelić (2010), Spayd and Shearer (2011) and Cao and Pop (2015). In order to provide accurate simulations, several numerical methods have been proposed in the literature, including a finite difference method with minmod slope limiter in Van Duijn et al. (2007), a cell-centred finite difference method and a locally conservative Eulerian–Lagrangian method in Peszynska and Yi (2008), Godunov-type staggered central schemes in Wang and Kao (2013), two semi-implicit schemes based on equivalent reformulations in Fan and Pop (2013), an adaptive moving mesh method in Zegeling (2015) and the fast explicit operator splitting method in Kao et al. (2015).

In the previous studies of saturation overshoot, the dynamic capillary pressure model with a constant dynamic coefficient usually brought oscillations behind the drainage front (DiCarlo 2005; Sander et al. 2008; van Duijn et al. 2013). The hysteretic non-equilibrium model proposed in Beliaev and Hassanizadeh (2001) postulates that the dynamic capillary effects are significant only outside the main hysteresis loop. Following this idea, Nieber (2003) adopted a saturation- and pressure-dependent dynamic coefficient \(\tau = \tau _s^0 P'_w(s) (p_0 - p)_+^\gamma \). In this treatment, the Mualem hysteresis model was restricted only to the two-stage wetting–drainage process: trajectories for the wetting stage were located within \(H_w\) (domain above the main wetting curve), while trajectories for the drainage stage were limited to \(H_0\) (main hysteresis loop region). In the wetting stage, \(\tau _s^0 = \tau _w\), and in the drainage stage, \(\tau _s^0 = 0\) (in the numerical simulation, the value was a small constant \(=10^{-3}\)). Recently, the hysteretic dynamic capillary pressure effect has been reported in Sakaki et al. (2010). Mirzaei and Das (2013) show that the dynamic effect in the relationship between capillary pressure and saturation is hysteretic in nature. In this contribution, we consider the hysteresis effects in capillary pressure and study the saturation overshoot and pressure overshoot by adding dynamic capillary pressure, capillary pressure hysteresis and hysteretic dynamic coefficient to a traditional fractional flow equation.

Two-phase flow models in porous media usually consist of coupled, nonlinear partial differential equations. Many reliable discretizations have been proposed for the Richards equation, for instance, the Galerkin finite elements in Arbogast et al. (1993), the multipoint flux approximation in Klausen et al. (2008). The space and time discretizations usually lead to a large system of nonlinear equations, which makes the numerical simulation of two-phase flow a challenging task. Some popular methods used for the Richards equation are the Newton method (Radu et al. 2006), Picard method (Zarba et al. 1990) or L-scheme (Radu et al. 2015); for an extensive review, we refer to List and Radu (2016). The appearance of the dynamic capillary pressure term in the two-phase flow model adds additional difficulty to the numerical treatment. In Sander et al. (2008), a reformulation of the non-equilibrium two-phase flow equation, which consists of an elliptic equation and an ODE, is shown to be effective for numerical simulations, Fan and Pop (2013) also presented a reliable and efficient semi-implicit scheme for a similar form. In this paper, we present our schemes based on this reformulation. Because of the conservation property and easy implementation of the Castillo–Grone’s mimetic (CGM) operators, we apply the mimetic finite difference method to the elliptic equation in the space direction and then integrate the system in the time direction with the implicit trapezoidal rule.

The rest of the paper is organized as follows. In Sect. 2, we first derive the traditional equation for one-dimensional two-phase flow, and then we present the extended models in Sects. 2.1, 2.2 and 2.3 by incorporating the dynamic capillary pressure term and hysteresis effects. Section 3.1 is devoted to presenting the CGM operators. In Sect. 3.2, we apply the CGM operators in the space direction and an implicit trapezoidal integrator in the time direction to discretize the system. In Sect. 4, numerical experiments are carried out to show the effectiveness and reliability of the extended models. Section 5 summarizes the conclusions.

2 Mathematical Models

Two-phase flow in porous media can be characterized by the saturation and pressure in each phase. The saturation in each phase is defined as the fraction of the pore volume occupied by the phase and is denoted as \(S_\alpha \), where \(\alpha = w, n\) is an index for wetting and non-wetting phases. For the derivation of the fractional flow equation, we refer to Hilfer and Steinle (2014). Let the gravity act in the positive x-direction; for each phase, the mass conservation law is represented by the equation

$$\begin{aligned} \frac{\partial \left( \phi \rho _\alpha S_\alpha \right) }{\partial t} + \frac{\partial }{\partial x} (\rho _\alpha v_\alpha ) = \rho _\alpha F_\alpha , \quad \alpha = n, w, \end{aligned}$$
(1)

where \(\phi \) is the porosity of the porous medium, \(\rho _\alpha , v_\alpha \) and \(F_\alpha \) are the density, volumetric velocity and source of each phase.

In Darcy scale, the balance of momentum of each phase is given by the Darcy’s law

$$\begin{aligned} v_\alpha&= - \frac{k_{r \alpha } K }{\mu _\alpha } \frac{\partial }{\partial x} (p_\alpha - \rho _\alpha g x) \nonumber \\&= - \lambda _\alpha \left( \frac{\partial p_\alpha }{\partial x} - \rho _\alpha g\right) ,\quad \alpha = n, w, \end{aligned}$$
(2)

where K is the intrinsic permeability of the porous medium, g is the gravitational acceleration constant, \(k_{r \alpha }, \mu _\alpha , \lambda _\alpha = \frac{k_{r \alpha } K}{\mu _\alpha }\) and \(p_\alpha \) are the relative permeability function, viscosity, mobility and pressure of phase \(\alpha \), respectively.

For the two-phase system, the following constitutive relation holds:

$$\begin{aligned} S_w + S_n = 1. \end{aligned}$$
(3)

Then \(k_{rn}\) and \( \lambda _{n}\) can be written as functions of \(S_w\). The total velocity is given by

$$\begin{aligned} v_T = v_n + v_w. \end{aligned}$$
(4)

Using Eqs. (2), (3) and (4), the velocity of the wetting phase can be expressed in terms of the phase mobilities, total velocity and phases pressure difference as

$$\begin{aligned} v_w = v_T \frac{\lambda _w}{\lambda _T}\left[ 1 + \frac{\lambda _n}{v_T} \left( \frac{\partial }{\partial x} (p_n - p_w) + (\rho _w - \rho _n) g\right) \right] . \end{aligned}$$
(5)

Assuming \(\phi \) and temperature are constant, the phases are incompressible, by substituting Eq. (5) into Eq. (1) for the wetting phase, we obtain a nonlinear equation for the wetting phase

$$\begin{aligned} \phi \frac{\partial {S}_w}{\partial t} + \frac{\partial }{\partial x} \left[ v_T \frac{\lambda _w}{\lambda _T}\left[ 1 + \frac{\lambda _n}{v_T} \left( \frac{\partial }{\partial x} (p_n - p_w) + (\rho _w - \rho _n)g \right) \right] \right] = F_w. \end{aligned}$$
(6)

In DiCarlo (2004), the experiments were conducted in thin tubes, and water was injected into the tubes with different flux rates. Since the medium is homogeneous and the initial saturation is constant, the experiments are viewed as one-dimensional. Reminding that our aim is to simulate these experiments, we set the source term \(F_w = 0\) and consider a flux boundary condition at \(x_{\mathrm{L}}\) and a Dirichlet boundary condition at \(x_{\mathrm{R}}\). Let \(f(S_w) = \frac{\lambda _w}{\lambda _w + \lambda _n} = \frac{\lambda _w}{\lambda _T}\), then we have

$$\begin{aligned} \phi \frac{\partial {S}_w}{\partial t} + \frac{\partial }{\partial x} \left[ q f(S_w) + \lambda _n(S_w) f(S_w) \left( \frac{\partial }{\partial x} (p_n - p_w) + (\rho _w - \rho _n) g\right) \right] = 0, \end{aligned}$$
(7)

with boundary conditions

$$\begin{aligned} \left\{ \begin{array}{ll} v_w = q f(S_w) + \lambda _n(S_w)f(S_w)\left[ \frac{\partial }{\partial x} (p_n - p_w)+ (\rho _w - \rho _n) g\right] = q, &{} \mathrm {at~}x_{\mathrm{L}},\\ S_w = S_{w}^{\mathrm{R}}, &{} \mathrm {at~}x_{\mathrm{R}}, \end{array}\right. \end{aligned}$$
(8)

where q is the flux value used in DiCarlo (2004, 2007) and \(S_{w}^{\mathrm{R}}\) is the initial water saturation at \(x_{\mathrm{R}}\).

Integrating Eq. (7) over \([x_{\mathrm{L}}, x_{\mathrm{R}}]\times [0, T]\), we obtain

$$\begin{aligned} \int _0^\mathrm{T} \int _{x_{\mathrm{L}}}^{x_{\mathrm{R}}} \left[ \phi \frac{\partial S_w}{\partial t} + \frac{\partial v_w }{\partial x}\right] \mathrm {d}x\mathrm {d} t&= \int _{x_{\mathrm{L}}}^{x_{\mathrm{R}}} \phi S_w(x,T) \mathrm {d}x - \int _{x_{\mathrm{L}}}^{x_{\mathrm{R}}} \phi S_w(x,0) \mathrm {d}x + [v_w(S_w(x_{\mathrm{R}}))\nonumber \\&\quad -\,v_w((S_w(x_{\mathrm{L}}))] T \nonumber \\&= \int _{x_{\mathrm{L}}}^{x_{\mathrm{R}}} \phi S_w(x,T) \mathrm {d}x - \int _{x_{\mathrm{L}}}^{x_{\mathrm{R}}} \phi S_w(x,0) \mathrm {d}x + \left[ v_w\left( S_w^{\mathrm{R}}\right) - q\right] T \nonumber \\&= 0, \end{aligned}$$
(9)

In Sect. 3, we will test the conservation property of the numerical schemes using this formula.

2.1 Dynamic Capillary Pressure Model

Under equilibrium conditions, traditional models suggest the difference in phases pressure is equal to the capillary pressure. In the microscale, the capillary pressure is defined as the interfacial tension between two phases, and in Darcy scale, it is usually given as a function of the wetting phase saturation:

$$\begin{aligned} p_n - p_w = p_c = P_c(S_w). \end{aligned}$$
(10)

For non-equilibrium conditions, Stauffer (1978), Hassanizadeh and Gray (1990) and Kalaydjian et al. (1992) proposed that the phases pressure difference can be written as a function of the capillary pressure under equilibrium condition minus the product of the saturation rate with a dynamic coefficient \(\tau \,\text {(Pa s)}\):

$$\begin{aligned} p_n - p_w = P_c(S_w) - \tau \frac{\partial {S}_w}{\partial t}. \end{aligned}$$
(11)

The parameter \(\tau \) is also known as damping coefficient and may still be a function of saturation (Joekar-Niasar et al. 2010). Adding the dynamic capillary pressure term to Eq. (7), we obtain

$$\begin{aligned} \phi \frac{\partial {S}_w}{\partial t} + \frac{\partial }{\partial x}\left[ q f(S_w) + \lambda _n(S_w) f(S_w) \left( \frac{\partial }{\partial x}\left( P_c(S_w) - \tau \frac{\partial S_w}{\partial t}\right) + (\rho _w - \rho _n) g\right) \right] = 0. \end{aligned}$$
(12)

In the following, we mark this model as Model 1.

2.2 Play-Type Capillary Pressure Hysteresis Model

Many studies, Morrow et al. (1965) and Jerauld and Salter (1990), in recent decades have shown non-uniqueness in the relationship between capillary pressure and saturation, which can depend both on the history of flow displacement and on the rate of change of saturation. The dependency of \(p_c\)\(S_w\) on the history of flow is known as capillary pressure hysteresis. Displacement of flow differentiates between drainage and imbibition. The process of drainage describes when the non-wetting phase displaces the wetting phase. Vice versa, imbibition describes the process when the wetting phase displaces the non-wetting phase. In general, for a given saturation \(S_w, p_c\) can lie anywhere within the primary drainage curve \(P_c^{\mathrm{dr}}\) and the primary imbibition curve \(P_c^{\mathrm{im}}\), depending on the saturation history. Some typical plots of hysteretic capillary pressure curves are presented in Fig. 1. In Parlange (1976), Beliaev and Hassanizadeh (2001) and Brokate et al. (2012), different kinds of hysteresis models have been discussed for two-phase flows; in our work, we adopt the play-type hysteresis model presented in Brokate et al. (2012).

Fig. 1
figure 1

Schematic plots of capillary pressure and hysteresis loops as functions of water saturation. Cyan and magenta lines are the equilibrium imbibition and drainage capillary pressure obtained by the Brooks–Corey model as shown in Table 2; blue, dashed blue and dash-dotted blue lines illustrate an imbibition hysteresis curve, a drainage hysteresis curve and a play-type hysteresis curve

Assume \(p_c\) depends only on \(S_w\) and this relationship is described by the hysteresis operator

$$\begin{aligned} P_c^{\mathrm{hyst}}{:}\,S_w(\cdot ) \rightarrow p_c(\cdot ). \end{aligned}$$
(13)

Note that \(P_c^{\mathrm{hyst}}\) operates on \(S_w\) as a function of time. In the drainage process, when \(S_w\) decreases, \(p_c\) follows the drainage pressure–saturation curve \(P_c^{\mathrm{dr}}(S_w)\). In the imbibition process, when \(S_w\) increases, \(p_c\) follows the imbibition pressure–saturation curve \(P_c^{\mathrm{im}}(S_w)\). In this hysteresis model, between the drainage and imbibition curves, \(p_c\) and \(S_w\) evolve as

$$\begin{aligned} \frac{\partial p_c}{\partial t} = -\beta \frac{\partial S_w}{\partial t}, \end{aligned}$$
(14)

where \(\beta \) is the opposite slope of the hysteresis curve with dimension \(\text {(Pa)}\). \(\beta \) is usually chosen to be very large, which means the hysteresis curve is very steep and the hysteresis pressure can move quickly from one equilibrium curve to another when the saturation direction changes. This hysteretic capillary pressure curve is illustrated in Fig. 1 (dashed-dotted blue line).

Since \(P_c^{\mathrm{hyst}}\) acts on the history of \(S_w\), it is not possible to compute \(p_c\) at a given time from \(S_w\) at that time alone. Consider the system after time discretization, denote \(p_c\) and \(S_w\) from the previous time step as \(p_c^{n-1}\) and \(S_w^{n-1}\), respectively. The discrete form of Eq. (14) is

$$\begin{aligned} p_c^{n} = p_c^{n - 1} - \beta \left( S_w^n - S_w^{n-1}\right) . \end{aligned}$$
(15)

The algorithm for computing \(p_c\) is as follows

  1. 1.

    Set \(p_c^{n}= p_c^{n-1} - \beta (S_w^n - S_w^{n-1})\).

  2. 2.

    If \(p_c^{n} < P_{c}^{\mathrm{im}}(S_w^n)\), set \(p_c^{n} = P_c^{\mathrm{im}}(S_w^n)\).

  3. 3.

    If \(p_c^{n} > P_c^{\mathrm{dr}}(S_w^n)\), set \(p_c^{n} = P_c^{\mathrm{dr}}(S_w^n)\).

In the numerical simulations, we denote the above algorithm as \(p_c^n = P_c^{\mathrm{hyst}}(S_w^n)\).

Combining capillary pressure hysteresis with the dynamic capillary pressure (11), we obtain

$$\begin{aligned} p_n - p_w = P_c^{\mathrm{hyst}}(S_w) - \tau \frac{\partial S_w}{\partial t}. \end{aligned}$$
(16)

Substituting Eq. (16) into Eq. (7), we get a model with dynamic capillary pressure effect and play-type capillary pressure hysteresis; in the following, this model is marked as Model 2.

2.3 Hysteretic Dynamic Capillary Pressure Model with Play-Type Capillary Pressure Hysteresis

Sakaki et al. (2010) conducted a series of experiments to measure values of the dynamic capillary coefficient \(\tau \) for a porous medium. Their result suggests that \(\tau \) is hysteretic. Mirzaei and Das (2013) investigated the hysteretic behaviour between \(\tau \) and \(S_w\). The experiments demonstrate that the value of \(\tau \) for imbibition is generally larger as compared to the \(\tau \) value for drainage at the same saturation. Thus, it is reasonable to introduce hysteresis in the \(\tau \)\(S_w\) relationship. We assume in the imbibition process \(\tau = \tau ^{\mathrm{im}}\); in the hysteresis process, \(\tau \) decreases from \(\tau ^{\mathrm{im}}\) to \(\tau ^{\mathrm{dr}}\); and at the tail, the dynamic coefficient is \(\tau ^{\mathrm{dr}}\). To the best of our knowledge, the ratio \({\tau ^{\mathrm{dr}}}{/}{\tau ^{\mathrm{im}}}\) has not been investigated in the literature. In this work, we follow Van Duijn et al. (2007) to show the influence of \(\tau \) by using the travelling ansatz.

Equation (12) can be rewritten as

$$\begin{aligned} \frac{\partial S_{w}}{\partial t} + \frac{\partial F(S_w) }{\partial x}= - \frac{\partial }{\partial x} \left[ H(S_w) \frac{\partial }{\partial x} \left( P_c(S_w) - \tau \frac{\partial S_{w}}{\partial t}\right) \right] , \end{aligned}$$
(17)

where the flux \(F(S_w)\) and the capillary-induced diffusion (Cuesta et al. 2006) \(H(S_w)\) are given by

$$\begin{aligned} F(S_w) = \frac{ 1}{\phi }f(S_w) \left[ v_T + \lambda _n(S_w) (\rho _w - \rho _n) g\right] , \quad H(S_w) = \frac{1}{\phi } \lambda _n(S_w) f(S_w). \end{aligned}$$
(18)

In order to find a travelling wave solution for Eq. (17), we introduce the new variable \(\eta = x - st \). Substituting \(S_w(\eta )\) into (17) results in a third-order ordinary differential equation (ODE)

$$\begin{aligned} \begin{aligned}&-s S_w' + [F(S_w)]' = - \left[ H(S_w) P'_c(S_w) S_w'\right] ' - s \tau [H(S_w)S_w'']',\\ \end{aligned} \end{aligned}$$
(19)

where prime denotes differentiation with respect to \(\eta \). This equation is to be solved subject to the boundary conditions at infinities,

$$\begin{aligned} S_w(-\infty ) = S_w^{\mathrm{L}}, \quad S_w(\infty ) = S_w^{\mathrm{R}}, \quad S_w^{\mathrm{L}}, S_w^{\mathrm{R}} \in [0, 1]. \end{aligned}$$
(20)

Integrating Eq. (17) over \((\eta , \infty )\) and assuming

$$\begin{aligned} \left[ H(S_w) (P'_c (S_w) S_w' - s \tau S_w'')\right] (\pm \infty ) = 0, \end{aligned}$$
(21)

yields the second-order ODE:

$$\begin{aligned} \left\{ \begin{aligned}&- s(S_w - S_w^{\mathrm{R}}) + \left[ F(S_w) - F(S_w^{\mathrm{R}})\right] = -H(S_w) P'_c(S_w) S_w' - s \tau H(S_w) S_w'', \\&S_w(-\infty ) = S_w^{\mathrm{L}}, \quad S_w(\infty ) = S_w^{\mathrm{R}}, \end{aligned} \right. \end{aligned}$$
(22)

with s determined by the Rankine–Hugoniot condition

$$\begin{aligned} s = \frac{F(S_w^{\mathrm{L}}) - F(S_w^{\mathrm{R}})}{S_w^{\mathrm{L}} - S_w^{\mathrm{R}}}. \end{aligned}$$
(23)

When gravity is included into the flux function \(F(S_w)\), with different values of \(v_T, F(S_w)\) may be non-monotone. For simplicity, we only consider \((S_w^{\mathrm{L}}, S_w^{\mathrm{R}})\) pairs that satisfy \(s > 0\).

Next, we write Eq. (22) as a first-order system of ODEs:

$$\begin{aligned} \left\{ \begin{aligned}&S_w' = v, \\&v' = \frac{1}{s \tau H(S_w)} \big [s(S_w- S_w^{\mathrm{R}}) - [F(S_w) - F(S_w^{\mathrm{R}})] - H(S_w)P'_c(S_w) v \big ]. \end{aligned}\right. \end{aligned}$$
(24)

Let \(S_w^\alpha \) be the unique root of the equation

$$\begin{aligned} F'(S_w) = \frac{F(S_w) - F(S_w^0)}{S_w- S_w^0}, \end{aligned}$$
(25)

where \(S_w^0\) is the initial water saturation ahead of the wetting front.

The Jacobian of (24) reads

$$\begin{aligned} A = \left[ \begin{array}{ll} 0 &{}\quad 1\\ \frac{s - F'(S_w) }{s \tau H(S_w) } &{}\quad -\frac{H(S_w)P_c'(S_w)}{s \tau H(S_w) } \end{array} \right] \end{aligned}$$
(26)

and has eigenvalues

$$\begin{aligned} \lambda _{\pm } = \frac{1}{2 s \tau } \left[ - P'_c(S_w) \pm \sqrt{\left( P'_c(S_w)\right) ^2 - 4 s \tau \frac{ F'(S_w) -s )}{H(S_w)}} \right] . \end{aligned}$$
(27)

For the case where saturation plateau appears, consider a travelling wave connecting \(S_w^{\mathrm{L}} = S_w^{\mathrm{B}}\) (equilibrium boundary saturation) and \(S_w^{\mathrm{R}} = \bar{S}_w^{\mathrm{P}}\) (plateau saturation) with wave speed

$$\begin{aligned} s = \frac{F(S_w^{\mathrm{L}}) - F(S_w^{\mathrm{R}})}{S_w^{\mathrm{L}} - S_w^{\mathrm{R}}}. \end{aligned}$$
(28)

Then we can prove \((S_w^{\mathrm{B}}, 0)\) is an equilibrium of system (24). Using (27), if \(\tau > \tau _s = \frac{H(S_w^{\mathrm{L}}) P'_c(S_w^{\mathrm{L}})^2 }{4 s (F'(S_w^{\mathrm{L}}) - s)}\), the equilibrium \((S_w^{\mathrm{B}}, 0)\) is a spiral, oscillation will appear near \(S_w^{\mathrm{L}} = S_w^{\mathrm{B}}\). When only saturation overshoot appears, consider a travelling wave connecting \(S_w^{\mathrm{L}} = S_w^{\mathrm{B}}\) and \(S_w^{\mathrm{R}} = S_w^0\), if \(\tau > \tau _s = \frac{H(S_w^{\mathrm{L}}) P'_c(S_w^{\mathrm{L}})^2 }{4 s (F'(S_w^{\mathrm{L}}) - s)}\), the equilibrium \((S_w^{\mathrm{B}}, 0)\) is a spiral.

From the analysis above, we can conclude that when \(\tau < \tau _s\), saturation oscillation will not appear at the drainage front, which means \(\partial S_w/ \partial t \rightarrow 0^-\). Therefore, the phase pressure difference \(p_n - p_w\) will tend to \(P_c^{\mathrm{dr}}\) at equilibrium.

Denoting the hysteretic dynamic coefficient as \(\tau ^{\mathrm{hyst}}\), since \(\tau ^{\mathrm{hyst}}\) may possibly be due to the hysteresis in the retention curve (Sakaki et al. 2010), for simplicity, we introduce \(\tau ^{\mathrm{hyst}}\) as the linear interpolation between \(\tau ^{\mathrm{dr}}\) and \(\tau ^{\mathrm{im}}\) by utilizing the capillary pressure hysteresis,

$$\begin{aligned} \tau ^{\mathrm{hyst}} = (\tau ^{\mathrm{im}} - \tau ^{\mathrm{dr}}) \left[ \frac{ P_c^{\mathrm{hyst}}(S_w) - \frac{1}{2} \left( P_c^{\mathrm{im}}(S_w) + P_c^{\mathrm{dr}} (S_w)\right) }{P_c^{\mathrm{im}}(S_w) - P_c^{\mathrm{dr}}(S_w)} + \frac{1}{2}\right] + \tau ^{\mathrm{dr}}. \end{aligned}$$
(29)

Substituting Eqs. (16) and (29) into Eq. (7) will result in a model with hysteretic dynamic capillary pressure and capillary pressure hysteresis. This model is marked as Model 3.

3 Numerical Scheme

In this section, we present the numerical scheme based on a reformulation of the non-equilibrium equation; the method of lines is then applied to this reformulation. Denoting \(p = p_n - p_w\), Eq. (12) can be rewritten as

$$\begin{aligned} \left\{ \begin{aligned}&\phi \frac{P_c(S_w) - p}{\tau } + \frac{\partial }{\partial x} \left[ q f(S_w) + \lambda _n(S_w) f(S_w) \left( \frac{\partial p}{\partial x} + (\rho _w - \rho _n) g\right) \right] = 0, \\&\frac{\partial S_w}{\partial t} = \frac{P_c(S_w) - p}{\tau }. \end{aligned} \right. \end{aligned}$$
(30)

Since Model 2 and Model 3 are incorporated with the capillary pressure hysteresis, we replace \(P_c(S_w)\) in Eq. (30) by \(P_c^{\mathrm{hyst}}(S_w)\) when solving these two models and replace \(\tau \) by \(\tau ^{\mathrm{hyst}}\) when solving Model 3.

3.1 Castillo–Grone’s Mimetic Operators

To discretize Eq. (30) in the space direction, we adopt the mimetic finite difference method which satisfies the discrete version of continuum conservation law. Castillo and Grone (2003) developed a set of mimetic operators knows as Castillo–Grone’s mimetic (CGM) operators. CGM operators have been used in many fields, such as seismic studies (Rojas et al. 2008), electrodynamics (Runyan 2011) and image processing (Bazan et al. 2011). Numerical results in these fields validate the high efficiency and reliability of the CGM operators.

The main features of CGM operators are that they preserve symmetry properties of the continuum and have overall high-order accuracy. The CGM operators can be implemented as efficient as the standard finite difference schemes. Here, we briefly describe the CGM operators in one dimension as applied in this work. The CGM 2-D operators can be obtained by the Kronecker products of block matrices. For more details, see Castillo and Miranda (2013) and references therein.

In the one-dimensional situation, the Green–Gauss–Stokes theorem reads

$$\begin{aligned} \int _{x_{\mathrm{L}}}^{x_{\mathrm{R}}} \left( f \frac{\partial v}{\partial x} + \frac{\partial f}{\partial x} v\right) \mathrm {d}x = f(x_{\mathrm{R}}) v(x_{\mathrm{R}}) - f(x_{\mathrm{L}}) v(x_{\mathrm{L}}), \end{aligned}$$
(31)

where f and v are two smooth real-valued functions defined in interval \(\varOmega = [x_{\mathrm{L}}, x_{\mathrm{R}}]\). Let \(L = x_{\mathrm{R}} - x_{\mathrm{L}}\), and the step size \(\Delta x = L{/}N\), then \(\varOmega \) can be partitioned into N equal-sized cells \([x_i, x_{i+1}]\), where \(0 \le i \le N-1\). The cell centres can be indexed as \(x_{i+1/2} = \frac{1}{2} (x_i + x_{i+1})\) for \(0 \le i \le N-1\). The cell nodes \(x_i\) and cell centres \(x_{i+1/2}\) build up the uniform staggered grid. We discretize v at the cell nodes:

$$\begin{aligned} \bar{v} = \left[ v(x_0), v(x_1), \ldots , v(x_{N-1}), v(x_N)\right] ^\mathrm{T}, \end{aligned}$$
(32)

and f at the cell centres and the boundary nodes:

$$\begin{aligned} \hat{f} = \left[ f(x_0), f(x_{1/2}), \ldots , f(x_{N-1/2}), f(x_N)\right] ^\mathrm{T}. \end{aligned}$$
(33)

Let \(\hat{D}_{(N+2)\times (N+1)}\) denote the CGM divergence operator and \(G_{(N+1)\times (N+2)}\) denote the CGM gradient operator, then the discrete version of the conservation law (31) reads

$$\begin{aligned} \langle \hat{D} \bar{v}, \hat{f}\rangle _Q + \langle \bar{v}, G \hat{f}\rangle _P = \langle \hat{B} \bar{v}, \hat{f}\rangle _I, \end{aligned}$$
(34)

where \(\langle x, y\rangle _A = y^\mathrm{T} A x\) is the inner product, I is the \((N+2) \times (N+2)\) identity matrix, and Q and P are the weight matrices for \(\hat{D}\) and G, respectively. The matrix \(\hat{B} = Q \hat{D} + G^\mathrm{T} P\) embodies the global conservation requirement for the discrete conservation law and is called the boundary operator. Castillo and Yasuda (2005) presented the second-order divergence mimetic operator as

$$\begin{aligned} \hat{D} = \left[ \begin{array}{lll} 0 &{}\quad \ldots &{}\quad 0 \\ &{}\quad D &{}\quad \\ 0 &{}\quad \ldots &{}\quad 0 \end{array} \right] \in R^{(N+2)\times (N+1)}, \end{aligned}$$
(35)

where

$$\begin{aligned} D = \frac{1}{\Delta x}\left[ \begin{array}{llllll} -1 &{}\quad 1 &{}\quad 0 &{}\quad \ldots &{}\quad \ldots &{}\quad 0 \\ 0 &{}\quad -1 &{}\quad 1 &{}\quad 0 &{}\quad \ldots &{}\quad \vdots \\ 0 &{}\quad \ddots &{}\quad \ddots &{}\quad \ddots &{}\quad \ddots &{}\quad \vdots \\ \vdots &{}\quad \ddots &{}\quad 0 &{}\quad -1 &{}\quad 1 &{}\quad 0\\ 0 &{}\quad \ldots &{}\quad \ldots &{}\quad 0&{}\quad -1 &{}\quad 1 \end{array} \right] \in R^{N \times (N+1)}. \end{aligned}$$
(36)

For this second-order mimetic divergence matrix \({\hat{D}}\), the weights matrix Q is the \((N+2) \times (N+2) \) identity matrix. The second-order CGM gradient operator reads as

$$\begin{aligned} G = \frac{1}{\Delta x} \left[ \begin{array}{llllll} -8/3 &{}\quad 3 &{}\quad -1/3 &{}\quad 0 &{}\quad \ldots &{}\quad 0\\ 0 &{}\quad -1 &{}\quad 1 &{}\quad 0 &{}\quad \ldots &{}\quad \vdots \\ 0 &{}\quad \ddots &{}\quad \ddots &{}\quad \ddots &{}\quad \ddots &{}\quad \vdots \\ \vdots &{}\quad \ddots &{}\quad 0 &{}\quad -1 &{}\quad 1 &{}\quad 0\\ 0 &{}\quad \ldots &{}\quad 0 &{}\quad 1/3&{}\quad -3 &{}\quad 8/3 \end{array} \right] \in R^{(N+1) \times (N+2)}, \end{aligned}$$
(37)

with weight matrix

$$\begin{aligned} P = \left[ \begin{array}{lllllll} 3/8 &{}\quad 0 &{}\quad \ldots &{}\quad \ldots &{}\quad \ldots &{}\quad \ldots &{}\quad 0 \\ 0 &{}\quad 9/8 &{}\quad \ddots &{}\quad &{}\quad &{}\quad &{}\quad \vdots \\ \vdots &{}\quad \ddots &{}\quad 1 &{}\quad \ddots &{}\quad &{}\quad &{}\quad \vdots \\ \vdots &{}\quad &{}\quad \ddots &{}\quad \ddots &{}\quad \ddots &{}\quad &{}\quad \vdots \\ \vdots &{}\quad &{}\quad &{}\quad \ddots &{}\quad 1 &{}\quad \ddots &{}\quad \vdots \\ \vdots &{}\quad &{}\quad &{}\quad &{}\quad \ddots &{}\quad 9/8 &{}\quad 0 \\ 0 &{}\quad \ldots &{}\quad \ldots &{}\quad \ldots &{}\quad \ldots &{}\quad 0 &{}\quad 3/8\\ \end{array}\right] \in R^{(N+1) \times (N+1)}. \end{aligned}$$
(38)

Applying the discrete conservation law (34) with matrices D and G, the boundary operator \(\hat{B}\) can be written as

$$\begin{aligned} \hat{B} = \left[ \begin{array}{llllllll} -1 &{}\quad 0 &{}\quad 0 &{}\quad \ldots &{}\quad \ldots &{}\quad 0 &{}\quad 0 &{}\quad 0 \\ 1/8&{}\quad -1/8 &{}\quad 0 &{}\quad \ldots &{}\quad \ldots &{}\quad 0 &{}\quad 0 &{}\quad 0 \\ -1/8 &{}\quad 1/8 &{}\quad 0 &{}\quad \ldots &{}\quad \ldots &{}\quad 0&{}\quad 0 &{}\quad 0\\ 0 &{}\quad 0 &{}\quad 0 &{}\quad \ddots &{}\quad &{}\quad 0 &{}\quad 0 &{}\quad 0 \\ \vdots &{}\quad \vdots &{}\quad \vdots &{}\quad \ddots &{}\quad \ddots &{}\quad \vdots &{}\quad \vdots &{}\quad \vdots \\ 0 &{}\quad 0 &{}\quad 0 &{}\quad &{}\quad \ddots &{}\quad 0 &{}\quad 0 &{}\quad 0 \\ 0 &{}\quad 0 &{}\quad 0 &{}\quad \ldots &{}\quad \ldots &{}\quad 0 &{}\quad -1/8 &{}\quad 1/8 \\ 0 &{}\quad 0 &{}\quad 0 &{}\quad \ldots &{}\quad \ldots &{}\quad 0 &{}\quad 1/8 &{}\quad -1/8 \\ 0 &{}\quad 0 &{}\quad 0 &{}\quad \ldots &{}\quad \ldots &{}\quad 0 &{}\quad 0 &{}\quad 1 \end{array} \right] \in R^{(N+2)\times (N+1)}. \end{aligned}$$
(39)

3.2 Mimetic Discretizations for the Two-Phase Flow Equations

Using the uniform staggered grid presented in Sect. 3.1, we discretize \(S_w\) and p at the centres as \(\bar{S}_w = [S_{w0}, S_{w\frac{1}{2}}, \ldots , S_{w\frac{N-1}{2}}, S_{wN}]\) and \(\bar{p} = [p_{0}, p_{\frac{1}{2}}, \ldots , p_{\frac{N-1}{2}}, p_{N}]\). Then, we use linear interpolation to get \(S_w\) at the nodes

$$\begin{aligned} \hat{S}_{wi} = \frac{1}{2}\left( S_{wi-\frac{1}{2}} + S_{wi+ \frac{1}{2}}\right) , \quad i = 1, \cdots , N-1, \end{aligned}$$
(40)

At the boundary \(\hat{S}_{w0} = S_{w0}, \hat{S}_{wN} = S_{wN}\).

Introducing coefficients matrix \(K\in R^{(N+1)\times (N+1)}\) with zero non-diagonal elements, the diagonal elements are given by

$$\begin{aligned} K_{ii}&= \lambda _n(\hat{S}_{wi-1}) f(\hat{S}_{wi-1}), \quad i= 1, 2 \ldots , N+1. \end{aligned}$$
(41)

In the numerical simulations, since fully implicit time discretizations allowing large time steps are preferred for solving long-time scale problems, thus we apply the implicit trapezoidal integration to (30) in the time direction. Discretizing (30) and boundary condition (8) with the CGM operators in the space direction, we obtain

$$\begin{aligned} \begin{aligned}&(\phi \hat{I} - \tau \hat{I} \hat{D} K G + K_{11} B G + A) \bar{p}^{n+1} = \phi \hat{I} {P}_c\left( \bar{S}_w^{n+1}\right) \\&\quad +\,\tau \hat{D} \left[ q f\left( \hat{S}_w^{n+1}\right) + \lambda _n\left( \hat{S}_w^{n+1}\right) f\left( \hat{S}_w^{n+1}\right) \left( \rho _w - \rho _n\right) g\right] + \bar{b}\left( \bar{S}_w^{n+1}\right) , \end{aligned} \end{aligned}$$
(42)

and

$$\begin{aligned} \begin{aligned} \bar{S}^{n+1}_w = \bar{S}_w^n + \frac{\Delta t }{2} \left[ \frac{P_c(\bar{S}_w^n) - \bar{p}^n)}{\tau } + \frac{P_c\left( \bar{S}_w^{n+1}\right) - \bar{p}^{n+1}}{\tau }\right] . \end{aligned} \end{aligned}$$
(43)

In (42), \(\hat{I}\) is a \((N+2)\times (N+2)\)-dimensional matrix with \(\hat{I}_{11} = 0, \hat{I}_{N+2,N+2} = 0, \hat{I}_{ii} = 1, \text {for~} i = 2, 3, \ldots , N+1\), the matrices AB and vector \(b(\bar{S}_w^{n+1})\) represent the boundary conditions. As a result of the flux boundary condition at \(x_{\mathrm{L}}\) and the Dirichlet boundary condition at \(x_{\mathrm{R}}\), the only nonzero element in A is \(A_{N+2,N+2} = 1\), and B differs from \(\hat{B}\) in the last three rows,

$$\begin{aligned} B = \left[ \begin{array}{llllllll} -1 &{}\quad 0 &{}\quad 0 &{}\quad \ldots &{}\quad \ldots &{}\quad 0 &{}\quad 0 &{}\quad 0 \\ 1/8&{}\quad -1/8 &{}\quad 0 &{}\quad \ldots &{}\quad \ldots &{}\quad 0 &{}\quad 0 &{}\quad 0 \\ -1/8 &{}\quad 1/8 &{}\quad 0 &{}\quad \ldots &{}\quad \ldots &{}\quad 0&{}\quad 0 &{}\quad 0\\ 0 &{}\quad 0 &{}\quad 0 &{}\quad \ddots &{}\quad &{}\quad 0 &{}\quad 0 &{}\quad 0 \\ \vdots &{}\quad \vdots &{}\quad \vdots &{}\quad \ddots &{}\quad \ddots &{}\quad \vdots &{}\quad \vdots &{}\quad \vdots \\ 0 &{}\quad 0 &{}\quad 0 &{}\quad &{}\quad \ddots &{}\quad 0 &{}\quad 0 &{}\quad 0 \\ 0 &{}\quad 0 &{}\quad 0 &{}\quad \ldots &{}\quad \ldots &{}\quad 0 &{}\quad 0 &{}\quad 0 \\ 0 &{}\quad 0 &{}\quad 0 &{}\quad \ldots &{}\quad \ldots &{}\quad 0 &{}\quad 0 &{}\quad 0 \\ 0 &{}\quad 0 &{}\quad 0 &{}\quad \ldots &{}\quad \ldots &{}\quad 0 &{}\quad 0 &{}\quad 0 \end{array} \right] \in R^{(N+2)\times (N+1)}, \end{aligned}$$
(44)

The \((N+2)\times 1\) column vector \(\bar{b}(\bar{S}_w^{n+1})\) reads

$$\begin{aligned} {b}\left( \bar{S}_w^{n+1}\right) = \left[ \begin{array}{c} q - q f\left( S_{w0}^{n+1}\right) - \lambda _n\left( S_{w0}^{n+1}\right) f\left( S_{w0}^{n+1}\right) (\rho _w - \rho _n) g \\ 0 \\ \vdots \\ 0 \\ P_c(S_w^{\mathrm{R}}) \\ \end{array}\right] . \end{aligned}$$
(45)

In order to solve (42) and (43), we apply the iteration method. By introducing the superscript l as an iteration counter, the algorithm for each time step is as follows:

  1. 1.

    Set \(\bar{S}_w^{n+1,0} = \bar{S}_w^n, \bar{p}^{n+1,0} = \bar{p}^n, P_c(\bar{S}_w^{n+1, 0}) = P_c(\bar{S}_w^{n})\) [or \(P_c^{\mathrm{hyst}}(\bar{S}_w^{n+1,0})=P_c^{\mathrm{hyst}}(\bar{S}_w^n\))], \(l = 0\).

  2. 2.

    Update \(\bar{S}_w^{n+1,l+1} = \bar{S}_w^n + \frac{\Delta t }{2} \left[ \frac{P_c(\bar{S}_w^n) - p^n)}{\tau } + \frac{P_c(\bar{S}_w^{n+1,l}) - \bar{p}^{n+1,l}}{\tau }\right] \), solve (42) for \(\bar{p}^{n+1,l+1}\), and update \(P_c(\bar{S}_w^{n+1,l+1})\) [or \(P_c^{\mathrm{hyst}}(\bar{S}_w^{n+1,l+1})\)].

  3. 3.

    \(l = l+1\).

  4. 4.

    Repeat steps 2 and 3 until \(|\bar{S}_w^{n+1,l+1} - \bar{S}_w^{n+1, l}| < \mathrm {tol}\).

  5. 5.

    Set \(\bar{S}_w^{n+1} = \bar{S}_w^{n+1,l+1}, p^{n+1} = p^{n+1,l+1}\).

In step 2, Eq. (42) is a linear system in \(\bar{p}^{n+1}\) which can be solved by a linear solver; in this work, we adopt the built-in backslash operator of MATLAB (The Mathworks, Inc. 2014) to solve \(\bar{p}^{n+1}\).

Remark

The application of MFD to partial differential equations constitutes an active filed of research (Lipnikov et al. 2014). Formal analysis of MFD for the Richards equation can be achieved by combining the convergence results in Brezzi et al. (2005), with the equivalence between MFD and multipoint flux approximation (MPFA) established in Stephansen (2012) and the convergence proof of MPFA for Richards equation in Klausen et al. (2008). However, difficulties arise when establishing convergence for (30), because of the nonlinearity and the reformulation. In Sect. 3, we present numerical results to demonstrate the convergence of the method.

4 Numerical Experiments

DiCarlo (2004, 2007) presented snapshots of the saturation and capillary pressure profiles for different fluxes in initially dry 20 / 30 sand. The physical parameters of the 20 / 30 sand (DiCarlo 2004; Schroth et al. 1996) as well as the constants and Brooks–Corey models (Brooks and Corey 1966) are listed in Tables 1 and 2. DiCarlo observed that for the highest [\(q = 2.0\text {e}{-}3\,\mathrm {(m~s^{-1})}\)) and lowest [\(q = 1.32\text {e}{-}07\,\mathrm {(m~s^{-1})}\)] fluxes, the saturation profiles are monotonic with distance and no saturation overshoot is observed, while all of the intermediate fluxes exhibit saturation overshoots. In this section, we will study the numerical behaviours of the three models presented in Sect. 2.

Table 1 Physical parameters for 20 / 30 sand
Table 2 Constants and Brooks–Corey models

In Eq. (7) when \(S_w = 0\) or \(S_w = 1\), the equation is degenerate. From Fig. 1 in DiCarlo (2007), we get the initial capillary pressure \(p_c^{0} \approx 1600 \text {(Pa)}\); using the Brooks–Corey capillary pressure model in Table 2, we can find for the imbibition process, when water saturation \(S_w = 0.003\), the Brooks–Corey capillary pressure \(p_{c}(S_w) = 1566\,(\text {Pa})\). So in the numerical simulations, we set \(S^{\mathrm{R}}_w = 0.003\) and \(S^{\mathrm{max}}_w = 1 - 1.0\text {e}{-}03\). The initial saturation is given by

$$\begin{aligned} S_w(x, 0) = S_{w}^{\mathrm{R}} + (S_{w}^{\mathrm{L}} - S_{w}^{\mathrm{R}}) (1 - \tanh (200x)), \end{aligned}$$
(46)

where \(S_w^{\mathrm{L}} = 0.025\) and the initial phases pressure difference is \(p_n - p_w = P_c(S_w(x,0))\). The reason we set \(S_w^{\mathrm{L}} > S_w^{\mathrm{R}}\) is that, when \(S_w^{\mathrm{L}} = 0.003\), in Eq. (43) we have \(\lambda _n(0.003)f(0.003) \approx 6.7\text {e-16} \), and then the boundary saturation obtained by solving (30) will exceed 1; when \(S_w\) is big enough, for example \(S_w^{\mathrm{L}} = 0.025\), we have \(\lambda _n(0.025)f(0.025) \approx 9.1\text {e-13}\), the boundary saturation will not exceed 1, see Fig. 4a. For the numerical simulations, \(S_w^{\mathrm{L}}\) is small enough and will not influence the behaviour of the models. Before we carry out the numerical simulations, the parameters \(\beta \) and \(\tau ^{\mathrm{dr}}\) that appear in Eqs. (14) and (29) have to be decided. Here we choose \(\beta =1.0\text {e05}\), and the ratio \(\tau ^{\mathrm{dr}}/\tau ^{\mathrm{im}}\) is set to be 0.2.

First, we test the accuracy of schemes (42) and (43). Since exact solutions of Eq. (12) are not known, the numerical solutions on fine grids are taken as reference solutions. For space and time accuracy tests, the reference grids are \(N = 1024, \Delta t = 0.01\) and \(N = 512, \Delta t= 0.001\), respectively. Setting \(S_w^{\mathrm{L}} = 0.45, S_w^{\mathrm{R}} = 0.3, q = 1.32\text {e}{-}04, \tau = 4.0\text {e03}\), fixing time or space step size, the \(L^2\) errors and orders are obtained in Tables 3 and 4. Table 3 shows that in the space direction, schemes (42) and (43) are second order when applying to different models, and the \(L^2\) errors of the three models are consistent. However, as a result of the hysteresis effects, in the time direction the \(L^2\) errors increase when schemes (42) and (43) are applied to Model 2 and Model 3, and also the convergence rates drop from two to about one.

Table 3 Space accuracy test of schemes (42) and (43) at \(T = 100\,(\Delta t = 0.01)\)
Table 4 Time accuracy test of schemes (42) and (43) at \(T = 100\, (N = 256)\)
Fig. 2
figure 2

Numerical results of Models 1, 2, 3 with \(q = 1.32\text {e}{-}04, \tau = 4.0\text {e03}\); the volumetric saturation is defined by \(\phi S_w\). ac Black, blue, dashed blue, cyan and magenta lines denote experimental saturation, numerical saturation, numerical capillary pressure, equilibrium imbibition and drainage pressure, respectively. d Cyan and magenta lines are equilibrium imbibition and drainage capillary pressure curves obtained by Brooks–Corey model. Red cross, green line and dashed blue line denote phases pressure difference–saturation relationship obtained by Models 1, 2 and 3, respectively. a Model 1, \(t=425~\text {(s)}\), b Model 2, \(t = 460~\text {(s)}\), c Model 3, \(t=460~\text {(s)}\), d phases pressure difference–saturation, \(t = 460~\text {(s)}\)

Setting \(S_w^{\mathrm{L}} = 0.025, S_w^{\mathrm{R}} = 0.003, q = 1.32\text {e}{-}04, \tau = 4.0\text {e03}\), the saturation and pressure profiles obtained by Models 1, 2 and 3 are presented in Fig. 2. The imbibition fronts obtained by the three models are similar, but the saturations and pressures at the plateaus and behind drainage fronts are different. For Model 1, the value of the plateau saturation is constant and behind the drainage front, oscillations appear and the phases pressure difference follows the imbibition capillary pressure. For Model 2, the plateau saturations decrease a little from the imbibition front to the drainage front and behind the drainage front, there is a slight oscillation in the saturation profile and the phase pressure difference moves to the imbibition capillary pressure. For Model 3, because of the hysteresis in the capillary pressure and the dynamic coefficient, no oscillation appears in the saturation profile. As a result, the pressure keeps constant and follows the drainage capillary pressure. The phases pressure difference–saturation curves are presented in Fig. 2d. The result obtained by Model 3 shows similar behaviour as the measured data in Fig. 6 in DiCarlo (2007).

Figure 3 shows that schemes (42) and (43) preserve Eq. (9) with high accuracy for all three models. The evolutions of saturation and pressure at the left boundary are presented in Fig. 4. Figure 4a shows the saturation obtained by Model 1 drops to the tail saturation after it reaches a high value, while the saturations of Model 2 and Model 3 keep the high values for a while. This phenomenon can be explained by the capillary pressure hysteresis in Model 2 and Model 3 as is shown in Fig. 4b. From \(t = 0\) to \(t \approx 100\), the hysteretic pressures in Model 2 and 3 increase, the pressure gradients keep the saturations stay at high values, when phases pressure differences reach the equilibrium drainage pressure, the pressure gradients vanish, and the saturations move to the asymptotic tail values. The pressure curves obtained by Model 2 and Model 3 are also different. In Model 3, when pressure moves to the equilibrium drainage pressure, the hysteretic dynamic coefficient \(\tau ^{\mathrm{hyst}}\) also decreases from \(\tau ^{\mathrm{im}}\) to \(\tau ^{\mathrm{dr}}\) and thus keeps the saturation constant at the tail and the pressure stays at the equilibrium drainage pressure. The evolutions of the boundary saturation and pressure of Model 3 have good agreement with the observed and calculated profiles in Shiozawa and Fujimaki (2004).

Fig. 3
figure 3

Errors of Eq. (9) using Models 1, 2 and 3 with \(q = 1.32\text {e}{-}04, \tau = 4.0\text {e}03, N = 256\)

Fig. 4
figure 4

Saturation and phases pressure difference at left boundary, with \(q = 1.32\text {e}{-}04, \tau = 4.0\mathrm {e}03\). a Saturation at left boundary over time, b phases pressure difference at left boundary over time

Before we apply different fluxes q to the three models, we have to know the end times for the simulations. In DiCarlo (2004), the end times for the experiments are not given, but the inner diameter of the tube is given as \(d = 1.27\text {e}{-}02 (\mathrm{m})\), then the total volume of water injected into each tube can be calculated by \(\hbox {Volume} = \phi \pi \big (\frac{d}{2}\big )^2 \sum _{k = 0}^{N-1} (x_{k+1} - x_{k}) \frac{S_w(x_k) + S_w(x_{k+1})}{2}\), where \(x_k\) is the sample point in DiCarlo (2004). Thus, we can calculate the end times using \(T_{\mathrm{end}} = \frac{\mathrm{Volume}}{q \pi (d/2)^2} \text {(s)}\).

Table 5 Parameters for different fluxes

To the best of our knowledge, the \(\tau \) values are not known for the 20/30 sand; thus, we have to first try different values of \(\tau \) and then find the best match with the experiments. DiCarlo (2004) observed at the highest \(2.0\text {e}{-}03\) and lowest \(1.32\text {e}{-}07\) fluxes the saturation profiles are monotonic with distance and no saturation overshoot is observed. In order to find suitable values of \(\tau \) for the highest and lowest fluxes, in Fig. 6a we plot \(\tau \) as a function of q using a log–log diagram. Realizing the near log–log relationship between \(\tau \) and q, we set \(\tau = 40\) for \(q = 2.0\text {e}{-}03, \tau = 2.0\text {e06}\) for \(q = 1.32\text {e}{-}07\). The number of nodes used in space is \(N = 256\), and the values of \(\tau (\tau ^{\mathrm{im}}), \tau ^{\mathrm{dr}}, \tau _s\), time steps as well as the end times are presented in Table 5. As can be seen, the end times for simulations are near to the calculated times except when \(q = 1.32\text {e}{-}07\), we will explain this later. For all three models, when the flux q is \(1.32\text {e}{-}03\), the imbibition front moves quickly, while the change in hysteretic capillary pressure is slow. In order to show the overshoot saturation phenomenon, we have to enlarge the interval to [0, 1]. In Fig. 5, we compare the numerical solutions with the experiments.

Fig. 5
figure 5

Solutions obtained by Models 1, 2, 3 for different fluxes q. ac Cyan, red, green, blue, yellow and magenta lines are saturation profiles obtained when \(q = 1.32\text {e}{-}07, 1.32\text {e}{-}06, 1.32\text {e}{-}05, 1.32\text {e}{-}04, 1.32\text {e}{-}03, 2.0\text {e}{-}03\), respectively. Black lines denote experimental saturation. d Cyan and magenta lines are the equilibrium imbibition and drainage capillary pressure curves obtained by the Brooks–Corey model. Cyan, red, green, blue, yellow and magenta dashed lines are obtained by Model 3 for different fluxes. e Red cross, green line and dashed blue line are saturations obtained by Models 1, 2 and 3 when \(q = 1.32\text {e}{-}03\). f Blue, dashed blue, cyan and magenta lines denote numerical saturation, numerical capillary pressure, equilibrium imbibition and drainage pressure, respectively. a Model 1, b Model 2, c Model 3, d phases pressure difference of Model 3 versus water saturation, e solutions of Models 1, 2 and 3 when \(q = 1.32\text {e}{-}03\), f solutions of Model 3 with \(q = 1.32\text {e}-07\)

Figure 5a–c shows that all three models can obtain saturation overshoots for \(q = 1.32\text {e}{-}06, q = 1.32\text {e}{-}05, q = 1.32\text {e}{-}04, q = 1.32\text {e}{-}03\). From Fig. 5a, we can see oscillations behind the drainage fronts when \(q = 1.32\text {e}{-}06, q = 1.32\text {e}{-}05\) and \(q = 1.32\text {e}{-}04\), while Fig. 5b only presents weaker oscillations for \(q = 1.32\text {e}{-}04\) and \(1.32\text {e}{-}05\) and there is no oscillation behind the drainage fronts in Fig. 5c. Although Table 5 shows that for \(q = 1.32\text {e}{-}04, 1.32\text {e}{-}05\) and \(.32\text {e}{-}06\), the \(\tau ^{\mathrm{dr}}\) values are slightly larger than \(\tau _s\), no oscillation appears behind the drainage fronts. This may be caused by the hysteresis in the capillary pressure, because in Fig. 5b the oscillations are weaker than Fig. 5a even without hysteresis in dynamic capillary coefficient.

In Fig. 5d, we plot the relationship between phases pressure difference and saturation obtained by Model 3 for all fluxes. At the imbibition front, the phases pressure difference is smaller than the equilibrium imbibition pressure. Behind the front, the pressure–saturation follows the equilibrium drainage pressure and finally stops at the tail saturation. This figure shows similar pressure–saturation behaviour as the experiments presented in Fig. 6 in DiCarlo (2007). As can be seen, at the lowest flux, significant pressure overshoot can still be obtained by Model 3. This phenomenon was also observed in the experiment in DiCarlo (2007). Selker et al. (1992) shows that saturation overshoot is associated with pressure overshoot. Thus, we guess even that at low flux, Model 3 can still produce saturation overshoot. Let the space interval be [0, 1] and \(T_{\mathrm{end}} = 96{,}000\), and the saturation and pressure profiles computed by Model 3 are presented in Fig. 5f. It shows that at \(q = 1.32\text {e}{-}07\), very small saturation overshoot appears.

Figure 5a–c also shows that the computed saturations at the left boundary differ from the experiments especially when \(q = 1.32\text {e}{-}07\). We ascribe this to the limitation of the Brooks–Corey model. Assuming that after a long time, the saturation at the boundary reaches the equilibrium state, we set \(\frac{\partial S_w}{\partial t}|_{x = 0} = 0, \frac{\partial S_w}{\partial x}|_{x = 0} = 0\). Then, we obtain

$$\begin{aligned} q f(S_w) + \lambda _n(S_w) f(S_w) (\rho _w - \rho _n)g = q. \end{aligned}$$
(47)

Using the parameters for imbibition process in Table 1 and the Brooks–Corey model in Table 2, from Eq. (47), we get

$$\begin{aligned} S_w = \left( \frac{\mu _w q }{K (\rho _w - \rho _n)g}\right) ^{\frac{\lambda }{2 + 3\lambda }}. \end{aligned}$$
(48)

The saturations obtained by Eq. (48), the numerical simulations and experiments at \(x = 0\) are presented in Table 6. The measured volumetric water saturation at \(q = 1.32\text {e}{-}07\) is twice as high as the analytical one. Thus, the end time of the numerical simulation is much shorter than the calculated time.

Table 6 Saturations at \(x = 0\) obtained by Eq. (48) and numerical simulations
Fig. 6
figure 6

Parameters and numerical results of Model 3. a Red, green and blue triangles denote values of \(\tau , T_{\mathrm{end}}\) and \(\Delta t\). Solid triangles denote the parameters used in Fig. 5c; open triangles are obtained by interpolating solid triangles. These values are used in bf; b cyan and magenta lines denote the values of \(\tau \) at the imbibition front and the tail; c experimental data are from DiCarlo (2004). Cyan squares and magenta solid circles are the tip and tail saturation obtained by Model 3. Blue line denotes the tail saturation obtained by Eq. (48). d Red circles are tip lengths for different fluxes. e Cyan and magenta lines are the equilibrium imbibition and drainage capillary pressures obtained by the Brooks–Corey model. Cyan and magenta circles are phases pressure differences at the imbibition front and the tail. f Cyan and magenta circles denote phases pressure difference at the imbibition front and the tail and red circles are the overshoot. a \(\tau , T_{\mathrm{end}}\) and \(\Delta t\) for different fluxes, b \(\tau \) as functions of tip and tail saturation, c tip and tail saturation versus experiment, d tip length as a function of flux, e phases pressure difference and saturation at the imbibition front and the tail, f phases pressure difference and the overshoot for different fluxes

Since Fig. 5c shows more realistic profiles than Fig. 5a, b, we will focus on this model and apply more fluxes to test its effectiveness. In Fig. 6a, we plot \(\tau , T_{\mathrm{end}}, \Delta t\) and q used in Fig. 5 with solid triangles. Then, we use logarithmic interpolation to get the values of \(\tau , T_{\mathrm{end}}\) and \(\Delta t\) for intermediate fluxes, these parameters are plotted using open triangles. Figure 6b plots the values of \(\tau \) as functions of tip and tail saturations. For both imbibition and drainage, the values of \(\tau \) increase as water saturations decrease. This trend seems to agree with the measured data in Manthey et al. (2005), Das and Mirzaei (2012) and Mirzaei and Das (2013).

In Fig. 6c, the computed tip and tail saturations from Model 3 are compared with the measured data in DiCarlo (2004). As the flux increases, the tip saturation increases very fast for flux value in interval \([1.0\text {e}{-}06, 1.0\text {e}{-}04]\), while the tip saturation increases slowly when flux q is above \(1.32\text {e}{-}04\). For tail saturations, both the experimental data and computed results follow the analytical curve given by Eq. (48) when flux is bigger than \(1.0\text {e}{-}06\).

Figure 6d plots the tip length versus flux obtained by Model 3. For flux values between \(1.0\text {e}{-}05\) and \(1.0\text {e}{-}03\), the tip length increases monotonically with the flux. This trend matches Fig. 12 in DiCarlo (2004).

Figure 6e presents the phases pressure differences at the imbibition front and the tail obtained by Model 3. For intermediate fluxes, the phases pressure differences at the tail follow the equilibrium drainage capillary pressure, while the phases pressure differences at the imbibition front are below the equilibrium imbibition capillary pressure as a result of the dynamic capillary pressure effect.

DiCarlo (2007) defined the overshoot in capillary pressure, and the overshoot of phases pressure difference is given as

$$\begin{aligned} \mathrm {Overshoot}(p_n - p_w) = \mathrm {Tail}(p_n - p_w) - \mathrm {Front}(p_n - p_w). \end{aligned}$$
(49)

Figure 6f plots the phases pressure differences as well as the overshoots for different fluxes. The phases pressure differences at the imbibition front are higher at low flux values than at high flux values. At \(q \approx 1\text {e}{-}05\), the phases pressure difference at the imbibition front reaches a minimum while the pressure overshoot reaches a maximum.

5 Conclusion

In this study, we applied the Castillo–Grone’s mimetic operators and the implicit trapezoidal rule to solve two-phase flow models including dynamic capillary pressure (with constant and hysteretic coefficient) and capillary pressure hysteresis in porous media. Numerical simulations show that the second-order mimetic operators mimic the Green–Gauss–Stokes theorem with high accuracy for all three models. The hysteretic dynamic capillary pressure model with capillary pressure hysteresis produces realistic saturation overshoot and pressure overshoot phenomena as observed in DiCarlo (2004, 2007).