1 Introduction

The process of infiltration through porous media is an important part of hydrological cycle. The modelling of this process has important practical applications in engineering such as water resources management and agriculture. Most numerical models that describe the unsaturated flow in soils use the Richards model [16] which is a highly nonlinear equation. This equation is obtained from Darcy’s law and the conservation of mass [2]. The strong non-linearity of the unsaturated conductivity and the capillary pressure as functions of saturation and the presence of both advection and diffusion terms make the Richards equation more challenging in terms of numerical approximations and require the development of efficient numerical techniques. The unsaturated conductivity and capillary pressure are correlated using empirical models and experiment data such as the van Genuchten [20], Brooks-Corey [4] and Gardner [6] models. Analytical solutions of the Richards equation can only obtained for some cases with special initial and boundary conditions [7, 17,18,19]. Therefore, different numerical techniques are developed to efficiently solve the Richards equation such as, finite-difference, finite-element, and finite-volume methods. For instance, Celia et al. [5] used the mixed form of the Richards equation and proposed a general mass-conservative numerical scheme, and Bause and Knabner [1] developed an adaptive mixed hybrid finite element discretization for the Richards equation. Manzini and Ferraris [15] developed a mass conservative finite volume method using two-dimensional unstructured grids. Although many numerical techniques have been developed to numerically solve the Richards equation, there is still a strong need for more robust numerical techniques for modelling flows in unsaturated soils.

The aim of this work is to develop a new technique based on the localized radial basis function method and the Kirchhoff transformation in order to solve Richards equation in one and two-dimensional homogeneous medium. The proposed technique allows us to avoid mesh generation, which makes the numerical method less expensive in terms of computational cost. The use of localized meshless method has the advantage of flexibility in dealing with complex geometries [3]. The proposed method performs well in terms of accuracy and efficiency for modelling unsaturated flow through soils.

To handle the nonlinearity of the Richards equation, we use the Kirchhoff transformation which allows us to reduce the nonlinearity of the studied problem. We used Picard iterations to solve the problem with the Kirchhoff variable where we used the backward Euler method for temporal discretization. Other numerical techniques using the Kirchhoff transformation to solve the Richards equation can be found in [8]. The performance of the proposed numerical method is assessed using different test cases.

The outline of the paper is as follows. In Sect. 2, we introduce the governing equation and the proposed system using the Kirchhoff transformation. In Sect. 3, we present the proposed meshless method. Numerical simulations are performed in Sect. 4 for modelling water flow through one and two-dimensional unsaturated porous media. Finally, we provide some conclusions in Sect. 5.

2 Governing Equation

2.1 The Mathematical Model

Infiltration of water in unsaturated soils is described by the Richards equation [16] which can be derived from Darcy’s law and the conservation of mass. This equation is given by:

$$\dfrac{\partial \theta }{{\partial t}} + \nabla .\left( {K\nabla h} \right) + \dfrac{\partial K}{{\partial z}} = s\left( {\varvec{x},t} \right), \quad \quad \varvec{x} \in \varOmega , 0 \le t \le T,$$
(1)

where \(\theta \left[ {{\text{L}}^{3} /{\text{L}}^{3} } \right]\) is the moisture content, \(h \left[\mathrm{L}\right]\) is the pressure head, \(K\left[ {{\text{L}}/{\text{T}}} \right]\) is the unsaturated hydraulic conductivity, \({{\varvec{x}}=\left(x,y,z\right)}^{T}\) is the coordinate vector, \(x \left[\mathrm{L}\right]\) and \(y \left[\mathrm{L}\right]\) denote the horizontal dimensions and \(z \left[\mathrm{L}\right]\) denotes the vertical dimension positive down (coordinate in the direction of gravity) and \(s\left({\varvec{x}},t\right)\) is a source or sink term which can depend on space and time and can include evaporation, plant root extraction, etc. In this study, we assume that \(s\left({\varvec{x}},t\right)=0\), \(\varOmega\) is an open set of \({\mathbb{R}}^{d}\left(d=\mathrm{1,2},3\right)\), and \(T\) is the final simulation time.

We note that the Richards equation can be expressed using the water saturation \(S=\left(\frac{\theta -{\theta }_{r}}{{\theta }_{s}-{\theta }_{r}}\right)\) and the parameter \(\phi ={\theta }_{s}-{\theta }_{r}\) where \({\theta }_{s}\) and \({\theta }_{r}\) are respectively the saturated and residual moisture contents. The unsaturated hydraulic conductivity is given by:

$$K = K_{s} k_{r} ,$$
(2)

where \({k}_{r}\) is the water relative permeability, which accounts for the effect of partial saturation and the saturated hydraulic conductivity is as follows:

$$K_{s} = \dfrac{\rho gk}{\mu },$$
(3)

where \(\rho\) is the water density, \(g\) is the gravitational acceleration, \(k\) is the intrinsic permeability of the medium, and \(\mu\) is the fluid dynamic viscosity. The Richards equation can be rewritten in the following form:

$$\phi \dfrac{\partial S}{{\partial t}} + \nabla .\left( {K_{s} k_{r} \nabla h} \right) + \dfrac{{\partial (K_{s} k_{r} )}}{\partial z} = 0 ,\quad \varvec{x} \in \varOmega , 0 \le t \le T,$$
(4)

Equation (4) is highly non-linear due to the nonlinearity of the hydraulic conductivity and the capillary pressure function. Constitutive relationships are available for the functions \(S\left[ {{\text{L}}^{3} /{\text{L}}^{3} } \right]\) and \(K\left[ {{\text{L}}/{\text{T}}} \right]\) based on experiment. In our study, the numerical techniques will be developed based on Eq. (4) where we will introduce the Kirchhoff transformation in order to reduce the nonlinearity of the equation.

2.2 Capillary Pressure

The pressure head can be expressed as a function of saturation in the following form:

$$h\left( S \right) = h_{cap} J\left( S \right),$$
(5)

where \(J\left(S\right) \left[-\right]\) is a dimensionless capillary pressure function and \({h}_{cap} \left[\mathrm{L}\right]\) is the capillary rise which is given by the classical Leverett scaling [13]:

$$h_{cap} \sim \dfrac{{\gamma \cos {\varvec{\theta}}}}{{pg\sqrt {\dfrac{k}{\phi_{p} }} }},$$
(6)

\(\gamma\) is the surface tension between the fluids, \({\varvec{\theta}}\) is the contact angle and \({\varvec{\phi}}\) is the medium porosity.

2.3 Kirchhoff Transformation

The Kirchhoff integral transformation is defined as:

$$\varphi \left( h \right) = \int\limits_{ + \infty }^{h} {k_{r} \left( s \right)} ds.$$
(7)

By applying this transformation, we can rewrite the Richards equation using the variable \(\varphi\), as explained below:

$$\nabla .\left( {K_{s} k_{r} \nabla h} \right) = K_{s} \nabla^{2} \varphi ,$$
(8)
$$\dfrac{\partial \varphi }{{\partial t}} = k_{r} \dfrac{\partial h}{{\partial t}}, \quad \dfrac{\partial \varphi }{{\partial z}} = k_{r} \dfrac{\partial h}{{\partial z}}.$$
(9)

By transforming the derivative terms \(\frac{\partial S}{\partial t}\) and \(\frac{\partial }{\partial z}\left({K}_{s}{k}_{r}\right)\) using the variable \(\varphi\), we obtain:

$$\dfrac{\partial S}{{\partial t}} = \dfrac{\partial S}{{\partial h}}\dfrac{\partial h}{{\partial t}} = \left( {k_{r}^{ - 1} \dfrac{\partial S}{{\partial h}}} \right)\dfrac{\partial \varphi }{{\partial t}},$$
(10)
$$\frac{\partial }{\partial z}\left( {K_{s} k_{r} } \right) = K_{s } \frac{{\partial k_{r} }}{\partial h}\frac{\partial h}{{\partial z}} = \left( {K_{s } k_{r}^{ - 1} \frac{{\partial k_{r} }}{\partial h}} \right)\frac{\partial \varphi }{{\partial z}}.$$
(11)

We consider the variables:

$$\left\{ \begin{aligned} A & = \dfrac{\phi }{{K_{s} }}\left( {k_{r}^{ - 1} \dfrac{\partial S}{{\partial h}}} \right), \\ B & = \left( {k_{r}^{ - 1} \frac{{\partial k_{r} }}{\partial h}} \right). \\ \end{aligned} \right.$$
(12)

This leads to the following equation:

$$A \dfrac{\partial \varphi }{{\partial t}} + \nabla^{2} \varphi + B \dfrac{\partial \varphi }{{\partial z}} = 0.$$
(13)

Finally, by applying the Kirchhoff transformation, we reduced the nonlinearity of Eq. (4) and obtain Eq. (13) which has many benefits in terms of convergence of the proposed numerical method.

2.4 Initial and Boundary Conditions

For the initial condition, we assume that the pressure head is \(h\left({\varvec{x}},0\right)={h}_{0}\) for each point \({\varvec{x}}\) on the computational domain \(\varOmega\), which can be expressed using the Kirchhoff variable as \(\varphi \left({\varvec{x}},0\right)=\varphi \left({h}_{0}\right)\).

We transform the boundary conditions using the Kirchhoff variable in a similar way:

Dirichlet: \(h({\varvec{x}},t)={h}_{D}\) for each \(\varvec{x} \in \partial\varOmega\) leads to \(\varphi ({\varvec{x}},t)=\varphi \left({h}_{D}\right).\)

Neumann: \({n}_{i}\frac{\partial h}{\partial {{\varvec{x}}}_{{\varvec{i}}}}={h}_{N}\) implies \({n}_{i}\frac{\partial \varphi }{\partial {{\varvec{x}}}_{{\varvec{i}}}}={k}_{r}{h}_{N}\), with \({h}_{D}\) and   \({h}_{N}\) are given functions and \({n}_{i}\) is the unit normal vector to the boundary.

3 The Materials and Proposed Techniques

In this section, we propose an efficient computational technique based on radial basis function collocation method [9, 10]. This method has recently become very popular due to its advantages in terms of approximation properties of solutions and its less computational cost since it does not require mesh generation.

Equation (13) is solved using the localized RBF collocation method and the Picard iteration technique. The temporal discretization of Eq. (13) using the backward Euler method is given by:

$$A ^{n + 1} \dfrac{{\varphi^{n + 1} - \varphi^{n} }}{\Delta t} + \nabla^{2} \varphi^{n + 1} + B^{n + 1} \dfrac{{\partial \varphi^{n + 1} }}{\partial z} = 0,$$
(14)

where \({\varphi }^{n+1}\), \({A }^{n+1}\) and \({B}^{n+1}\) are the approximate values of \(\varphi\), \(A\) and \(B\) at \(t={t}^{n+1}\), respectively. \(\Delta t={t}^{n+1}-{t}^{n}\) is the time setup and the solution is assumed to be known at \({t}^{n}\) and unknown at \({t}^{n+1}\).

Equation (14) is linearized using the Picard iteration method which involves sequential estimation of the unknown \({\varphi }^{n+1}\) using the latest estimates of \({A }^{n+1}\) and \({B}^{n+1}\). If \(m\) identifies iteration levels, then the Picard iteration steps can be written as:

$$A ^{m,n + 1} \dfrac{{\varphi^{m + 1,n + 1} - \varphi^{n} }}{\Delta t} + \nabla^{2} \varphi^{m + 1,n + 1} + B^{m,n + 1} \dfrac{{\partial \varphi^{m + 1,n + 1} }}{\partial z} = 0.$$
(15)

For the sake of simplicity, we consider the following notations:

$${\mathcal{L}}^{m} = \left( {\dfrac{{A ^{m,n + 1} }}{\Delta t}. + \nabla^{2} . + B^{m,n + 1} \dfrac{\partial .}{{\partial z}}} \right),$$
(16)
$$f^{m,n + 1} = A ^{m,n + 1} \dfrac{{\varphi^{n} }}{\Delta t},$$
(17)

\({\mathcal{L}}^{m}\) is a linear operator for each Picard iteration \(m\). Subject to boundary and initial conditions, Eq. (15) can be rewritten in the following form:

$$\left\{ {\begin{array}{*{20}l} {{\mathcal{L}}^{m} \varphi^{m + 1,n + 1} \left( {\varvec{x}} \right) = f^{m,n + 1} \left( {\varvec{x}} \right), \quad \quad \varvec{x} \in \varOmega ,} \\ {\mathcal{B}\varphi^{m + 1,n + 1} \left( {\varvec{x}} \right) = q\left( {\varvec{x}} \right),\quad \quad \quad \varvec{x} \in \partial \varOmega ,} \\ {\varphi^{m + 1,0} \left( {\varvec{x}} \right) = \varphi_{0}^{m + 1} \left( {\varvec{x}} \right), \quad \quad \quad \varvec{x} \in \varOmega ,} \\ \end{array} } \right.$$
(18)

\(\mathcal{B}\) is a border operator, \(q\) is the given function associated with the boundary conditions. For each iteration \(n\), Eq. (18) is solved using localized RBF meshless method at each Picard iteration \(m\) until the stop condition is verified which is given by:

$$\delta^{m} = \left| {\varphi^{m + 1,n + 1} - \varphi^{m,n + 1} } \right| \le Tol,$$
(19)

with \(Tol\) is the error tolerance.

3.1 Localized RBF Meshless Method

In this section, we present the local multiquadric (LMQ) method [11]. This approach is different from the traditional global multiquadric approximation since only local configuration of nodes are used. To recall the localized RBF techniques, let \({\left\{{{\varvec{x}}}_{j}\right\}}_{j=1}^{{n}_{i}}\) and \({\left\{{{\varvec{x}}}_{j}\right\}}_{j={n}_{i}+1}^{N}\) be the collocation points in \(\varOmega\) and \(\partial\varOmega\), respectively. \({n}_{i}\) is the number of interior points and \(N\) the total number of collocation points distributed over the computational domain. For each \(\varvec{x}_{s} \in \varOmega\), we create a localized domain \(\varOmega^{[s]}\) that contains \({n}_{s}\) nearest neighbors interpolation points \({\left\{{{\varvec{x}}}_{k}^{\left[s\right]}\right\}}_{k=1}^{{n}_{s}}\) to \({{\varvec{x}}}_{s}\).

In each localized domain \(\varOmega^{[s]}\), the approximate solution can be written as a linear combination of \({n}_{s}\) multiquadric functions in the following form:

$$\varphi_{\left[ s \right]}^{m + 1,n + 1} \left( {{\varvec{x}}_{s} } \right) = \mathop \sum \limits_{k = 1}^{{n_{s} }} \alpha_{k}^{m + 1,n + 1} \varPhi_{k} \left( \left\| {{\varvec{x}}_{s} - {\varvec{x}}_{k}^{\left[ s \right]} } \right\| \right),$$
(20)

where \(\left\{ {\alpha_{k}^{m + 1,n + 1} } \right\}_{k = 1}^{{n_{s} }}\) unknown coefficients to be determined, \(||.||\) is the Euclidian norm and \(\varPhi_{{k}}\) are the multiquadric radial basis functions defined as:

$$\varPhi_{k} \left( \varvec{x} \right) = \varPhi \left( {r_{k} } \right) = \sqrt {1 + \left( {\varepsilon r_{k} } \right)^{2} } ,$$
(21)

where \(\varepsilon > 0\) is the shape parameter and \(r_{k} = \left\| {{\varvec{x}} - {\varvec{x}}_{k} } \right\|\). Equation (21) can be presented in the matrix form:

$$\varphi_{\left[ s \right]}^{m + 1,n + 1} = \varPhi^{\left[ s \right]} \alpha_{\left[ s \right]}^{m + 1,n + 1} ,$$
(22)

where \(\varphi_{\left[ s \right]}^{m + 1,n + 1} = \left[ { \varphi_{\left[ s \right]}^{m + 1,n + 1} \left( {\varvec{x}_{1}^{\left[ s \right]} } \right),\varphi_{\left[ s \right]}^{m + 1,n + 1} \left( {\varvec{x}_{2}^{\left[ s \right]} } \right), \ldots ,\varphi_{\left[ s \right]}^{m + 1,n + 1} \left( {\varvec{x}_{{n_{s} }}^{\left[ s \right]} } \right)} \right]^{T} ,\) \(\alpha_{\left[ s \right]}^{m + 1,n + 1} = \left[ {\alpha_{\left[ s \right]}^{m + 1,n + 1} \left( {\varvec{x}_{1}^{\left[ s \right]} } \right),\alpha_{\left[ s \right]}^{m + 1,n + 1} \left( {\varvec{x}_{2}^{\left[ s \right]} } \right), \ldots ,\alpha_{\left[ s \right]}^{m + 1,n + 1} \left( {\varvec{x}_{{n_{s} }}^{\left[ s \right]} } \right)} \right]^{T}\) and \(\varPhi^{[s]}\) is an \({n}_{s}\times {n}_{s}\) real symmetric coefficient matrix defined as \(\varPhi^{[s]} = \left[ {\varPhi \left( {\left\| {{\varvec{x}}_{i}^{[s]} - {\varvec{x}}_{j}^{[s]} } \right\|} \right)} \right]_{{1 \le i,j \le n_{s} }}\). The vector \({\alpha }_{\left[s\right]}^{m+1,n+1}\) can be obtained as the following equation:

$$\alpha_{\left[ s \right]}^{m + 1,n + 1} = \left( {\varPhi^{\left[ s \right]} } \right)^{ - 1} \varphi_{\left[ s \right]}^{m + 1,n + 1}.$$
(23)

For \(\varvec{x}_{s} \in \varOmega\), we apply the differential operator \({\mathcal{L}}^{m}\) to Eq. (20) to obtain the following equation:

$$\begin{aligned} {\mathcal{L}}^{m} \varphi_{\left[ s \right]}^{m + 1,n + 1} \left( {\varvec{x}_{s} } \right) & = \mathop \sum \limits_{k = 1}^{{n_{s} }} \alpha_{k}^{m + 1,n + 1} {\mathcal{L}}^{m} \varPhi_{k} \left( \left\|\varvec{x}_{s} - \varvec{x}_{k}^{\left[ s \right]} \right\| \right) = \mathop \sum \limits_{k = 1}^{{n_{s} }} \alpha_{k}^{m + 1,n + 1} \Psi^{m} \left( \left\| \varvec{x}_{s} - \varvec{x}_{k}^{\left[ s \right]} \right\| \right), \\ \varTheta_{\left[ s \right]}^{m} \alpha_{\left[ s \right]}^{m + 1,n + 1} & = \varTheta_{\left[ s \right]}^{m} \left( {\varPhi^{\left[ s \right]} } \right)^{ - 1} \varphi_{\left[ s \right]}^{m + 1,n + 1} = \varLambda_{\left[ s \right]}^{m} \varphi_{\left[ s \right]}^{m + 1,n + 1} = \Lambda^{m} \varphi^{m + 1,n + 1} , \\ \end{aligned}$$
(24)

where \(\varphi^{m + 1,n + 1} = \left[ {\varphi^{m + 1,n + 1} \left( {{\varvec{x}}_{1} } \right),\varphi^{m + 1,n + 1} \left( {{\varvec{x}}_{2} } \right), \ldots ,\varphi^{m + 1,n + 1} \left( {{\varvec{x}}_{N} } \right)} \right]^{T} ,\) \(\varTheta_{\left[ s \right]}^{m} = \left[ {\varPsi^{m} \left( \left\|{\varvec{x}}_{s} - {\varvec{x}}_{1}^{\left[ s \right]} \right\| \right),\varPsi^{m} \left( \left\|{\varvec{x}}_{s} - {\varvec{x}}_{2}^{\left[ s \right]} \right\| \right), \ldots ,\varPsi^{m} \left( \left\|{\varvec{x}}_{s} - {\varvec{x}}_{{n_{s} }}^{\left[ s \right]} \right\| \right)} \right]^{T} ,\) \(\varPsi^{m} = \rm{\mathcal{L}}^{m} \varPhi_{k}\) and \(\varLambda_{\left[ s \right]}^{m} = \varTheta_{\left[ s \right]}^{m} \left( {\varPhi^{\left[ s \right]} } \right)^{ - 1}\).

In order to extend Eq. (24) to be able to use \({\varphi }^{m+1,n+1}\) instead of \({\varphi }_{\left[s\right]}^{m+1,n+1}\), we consider \({\Lambda }^{m}\) as the expansion of \({\Lambda }_{[s]}^{m}\) which can be obtained by padding the local vector with zeros.

Similarly, for \(\varvec{x}_{s} \in \partial\varOmega\), we create an influence domain \(\varOmega^{[s]}\) containing \({{\varvec{x}}}_{s}\). Then we have:

$$\begin{aligned} {\mathcal{B}}\varphi^{m + 1,n + 1} \left( {\varvec{x}_{s} } \right) & = \mathop \sum \limits_{k = 1}^{{n_{s} }} \alpha_{k}^{m + 1,n + 1} {\mathcal{B}}\varPhi_{k} \left( \left\| {\varvec{x}_{s} - \varvec{x}_{k}^{\left[ s \right]} } \right\| \right) = \left( {\rm{\mathcal{B}}\varPhi^{\left[ s \right]} } \right)\alpha_{\left[ s \right]}^{m + 1,n + 1} , \\ & = \left( {\rm{\mathcal{B}}\varPhi^{\left[ s \right]} } \right)\left( {\varPhi^{\left[ s \right]} } \right)^{ - 1} \varphi_{\left[ s \right]}^{m + 1,n + 1} = \sigma^{\left[ s \right]} \varphi_{\left[ s \right]}^{m + 1,n + 1} = \sigma \varphi^{m + 1,n + 1} , \\ \end{aligned}$$
(25)

where \(\sigma^{[s]} = \left( {\rm{\mathcal{B}}\varPhi^{[s]} } \right)\left( {\varPhi^{[s]} } \right)^{ - 1}\), and \(\sigma\) is the expansion of \({\sigma }^{[\mathrm{s}]}\) obtained by completing the local vector with zeros.

We substitute the Eqs. (24) and (25) into Eq. (18) to obtain the following system:

$$\left\{ \begin{array} {*{20}l} {\mathcal{L}}^{m} \varphi^{m + 1,n + 1} \left( {\varvec{x}_{s} } \right) & = \varLambda^{m} \left( {\varvec{x}_{s} } \right)\varphi^{m + 1,n + 1} = f^{m + 1,n + 1} \left( {\varvec{x}_{s} } \right), \\ \mathcal{B}\varphi^{m + 1,n + 1} \left( {\varvec{x}_{s} } \right) & = \sigma \left( {\varvec{x}_{s} } \right)\varphi^{m + 1,n + 1} = q\left( {\varvec{x}_{s} } \right), \\ \end{array} \right.$$
(26)

which leads to the following sparse system:

$$\left( {\begin{array}{*{20}c} {\Lambda^{m} \left( {{\varvec{x}}_{1} } \right)} \\ {\Lambda^{m} \left( {{\varvec{x}}_{2} } \right)} \\ . \\ . \\ . \\ {\Lambda^{m} \left( {{\varvec{x}}_{{n_{i} }} } \right)} \\ {\sigma \left( {{\varvec{x}}_{{n_{i+1} }} } \right)} \\ . \\ . \\ . \\ {\sigma \left( {{\varvec{x}}_{N} } \right)} \\ \end{array} } \right) = \left( {\begin{array}{*{20}c} {\varphi^{m + 1,n + 1} \left( {{\varvec{x}}_{1} } \right)} \\ {\varphi^{m + 1,n + 1} \left( {{\varvec{x}}_{2} } \right)} \\ . \\ . \\ . \\ {\varphi^{m + 1,n + 1} \left( {{\varvec{x}}_{{n_{i} }} } \right)} \\ {\varphi^{m + 1,n + 1} \left( {{\varvec{x}}_{{n_{i} + 1}} } \right)} \\ . \\ . \\ . \\ {\varphi^{m + 1,n + 1} \left( {{\varvec{x}}_{N} } \right)} \\ \end{array} } \right)\left( {\begin{array}{*{20}c} {f^{m + 1,n + 1} \left( {{\varvec{x}}_{1} } \right)} \\ {f^{m + 1,n + 1} \left( {{\varvec{x}}_{2} } \right)} \\ . \\ . \\ . \\ {f^{m + 1,n + 1} \left( {{\varvec{x}}_{{n_{i} }} } \right)} \\ {q\left( {{\varvec{x}}_{{n_{i} + 1}} } \right)} \\ . \\ . \\ . \\ {q\left( {{\varvec{x}}_{N} } \right)} \\ \end{array} } \right).$$
(27)

The matrix generated by the localized RBF is sparse due to the presence of the local configuration in the solution approximation. This allows us to avoid ill-conditioned issues that arise in dense systems of equations generated by the global approach. By solving Eq. (27), we obtain the approximate values of \({\varphi }^{m+1,n+1}\) at all nodes \({\varphi }^{m+1,n+1}\left({{\varvec{x}}}_{s}\right)\), \(s=\mathrm{1,2},...,N\) of the computational domain.

4 Numerical Tests

In this section, we perform numerical experiments for solving the Richards equation by using the obtained Eq. (27) in one and two-dimensional systems. We used the localized RBF method based on the multiquadric radial basis function. For the temporal discretization, we used the backward Euler method.

4.1 One Dimensional Infiltration Problem

In this numerical test, we used the Brooks-Corey model [4] which describes the pressure head and the power law for the relative permeability.

$$J\left( S \right) = S^{{ - {1 \mathord{\left/ {\vphantom {1 \lambda }} \right. \kern-\nulldelimiterspace} \lambda }}} ,\,k_{r} = S^{\beta } = \left\{ {\begin{array}{*{20}l} {\left( {\dfrac{h}{{h_{cap} }}} \right)^{ - \lambda \beta } ,} \hfill & {\text{if} ~ h \ge h_{cap} ,} \hfill \\ 1, \hfill & {\text{if}~ h < h_{cap} .} \hfill \\ \end{array} } \right.$$
(28)

where \(\lambda\) and \(\beta\) are respectively the parameters related to the Brook-Corey model and the power law for the relative permeability. The second (inequality) condition for the capillary pressure in Eq. (28) is introduced to avoid numerical issues [12, 14].

We consider  two different types of soils with a depth \(L\) and their hydraulic parameters are shown in Table 1. We simulate a one-dimensional infiltration problem using the proposed method. In order to verify the effectiveness of the developed numerical model, we compare our numerical results with the numerical solutions of 1D-Hydrus where we consider the following initially and boundary conditions:

$${ }\left\{ {\begin{array}{*{20}c} {\theta \left( {{z},0} \right) = {\theta }_{0} ,} \\ {\theta \left( {0,{t}} \right) = {\theta }_{{s}} ,} \\ {\theta \left( {{L},t} \right) = {\theta }_{0} ,} \\ \end{array} } \right.$$
(29)
Table 1 Hydraulic property parameters of 2 types of soil

Fig. 1 shows the numerical solutions obtained using the proposed method and 1D-Hydrus solutions where we observe good agreement between the solutions.

Fig. 1
figure 1

Time evolution of moisture content for the soils given in Table 1. Left (Sandy clay), right (Loam)

Table 2 presents the root mean squared error (RMSE), the relative error \(({L}_{er}^{1})\) between the numerical solutions and the solutions simulated by 1D-Hydrus. The results confirm the accuracy of the proposed method in modelling unsaturated flow in soils.

Table 2 The RMSE and the \({L}_{er}^{1}\) between the numerical solutions and 1D-Hydrus solutions

4.2 Two-Dimensional Infiltration Problem

In this example, we perform numerical simulations using the proposed method for a two-dimensional infiltration problem where we consider a rectangular domain \([0, l] \times [0, L].\) We used the same hydraulic parameters of test 1 (Table 1) and \(l = L = 100 ~\mathrm{cm}\). We consider the following initial and boundary conditions:

$$\left\{ {\begin{array}{*{20}c} {\theta \left( {x,z,0} \right) = \theta_{0} ,} \\ {\theta \left( {x,0,t} \right) = \theta_{s} ,} \\ {\theta \left( {x,L,t} \right) = \theta_{0} ,} \\ \end{array} } \right.$$
(30)

and no-flux boundary conditions are imposed on the sides \(x = 0\) and \(x = l\) of the domain.

The numerical simulations are performed using \(N_{x} = 200\), \(N_{z} = 200\), \(\Delta t = 0.05\), and the localized RBF parameters \(\varepsilon = 0.6\) and \(n_{s} = 5\). The sandy clay and loam soils are selected in this numerical test to simulate unsaturated flow through a two-dimensional homogeneous medium. The time evolution of the total mass per unit of length of the 2D numerical solutions and the solutions simulated by 1D-Hydrus for a computational domain of unit length (1D problem) are displayed in Fig. 2. We observe good agreement between the solutions, which demonstrates the accuracy of the proposed method in modelling 2D unsaturated flow in soils. Figure 3 shows the time evolution of saturation for the sandy clay and loam considered soils.

Fig. 2
figure 2

Time-evolution of the total mass per unit of length of the sandy clay and loam soils

Fig. 3
figure 3

The time evolution of saturation for the sandy clay (left) and loam (right) soils

The proposed method is efficient and accurate for solving the Richards equation. The method can be used for modelling unsaturated flow through homogeneous soils.

5 Conclusion

This paper focused on the infiltration process in porous media and introduced computational techniques for efficiently solving the Richards equation in one- and two-dimensional homogeneous medium. The proposed techniques using the Kirchhoff transformation allow us to reduce the nonlinearity of the obtained system from the Richards equation. Our approach using a localized radial basis function method avoiding mesh generation allows us to reduce the computational cost. The accuracy of the proposed method was validated using comparison between the numerical solutions and the results of 1D-Hydrus. Our results confirm the accuracy of the proposed techniques and their efficiency in terms of computational cost for solving the Richards equation. The numerical techniques proposed in this study for modelling unsaturated flow through homogeneous porous media is a first step toward developing efficient and accurate numerical methods for modelling unsaturated flows though heterogenous soils.