1 Introduction

In this paper we consider the numerical resolution of parabolic initial and boundary value problems posed as follows: Find \(\mathbf {u}(x,t):[0,1]\times [0,T]\rightarrow \mathcal {R}^{n}\) solution of

$$ \left \{ \begin{array}{l} L_{\mathbf{\varepsilon}} (\mathbf{u}) \equiv \frac{\partial \mathbf{u}}{\partial t}(x,t) + \mathcal{L}_{x,\mathbf{\varepsilon}} \mathbf{u}(x,t){+\mathbf{A}(x,t,\mathbf{u}) }= \mathbf{0}, \ (x,t) \in Q \equiv \varOmega \times (0,T], \\ \mathbf{u}(0,t) ={\mathbf{g_{0}}(t), \ \mathbf{u}(1,t) = \mathbf{g_{1}}(t),} \ \forall \ t \in [0,T], \ \mathbf{u}(x,0) = \mathbf{\mathbf{\varphi}}(x), \ \forall \ x \in \overline{\varOmega}, \end{array} \right. $$
(1)

where Ω = (0,1) and the spatial differential operator \({\mathcal{L}}_{x,\mathbf {\varepsilon }}\) is defined by

$$ \mathcal{L}_{x,\mathbf{\varepsilon}} \equiv - {\mathcal D}_{\mathbf{\varepsilon}} \frac{\partial^{2} }{\partial x^{2}}, \text{ with } {\mathcal D}_{\mathbf{\varepsilon}}=\text{ diag }(\varepsilon_{1},\varepsilon_{2},\ldots,\varepsilon_{n}). $$
(2)

Let us denote by u = (u1,u2,…,un)T the exact solution of the continuous problem, g0 = (g10,g20,…,gn0)T,g1 = (g11,g21,…,gn1)T the boundary data, A(x,t,u) = (a1(x,t,u),a2(x,t,u),…,an(x,t,u))T the reaction term and ε = (ε1,ε2,…,εn)T. We assume that the εk,k = 1,…,n, can be very small, they can have different orders of magnitude and satisfy 0 < ε1ε2 ≤… ≤ εn ≤ 1. As well, we assume that the terms ak(x,t,u), k = 1,…,n, are composed of sufficiently smooth functions and that sufficient compatibility conditions among the data of the problem hold, in order to uC4,2([0,1] × [0,T]), (see [15, 17] for a detailed discussion).

In many previous works (see [4, 6, 8, 10,11,12, 18, 19] and references therein), a linear version of problem (1) was considered. In those works, different numerical methods were proposed and their uniform convergence was proven. Our main interest here is to develop similar studies for the semilinear problem given in (1).

Less often, semilinear problems have been considered in the context of singularly perturbed problems. In [2, 14], scalar one-dimensional elliptic problems with a semilinear reaction term were studied, with and without interior layers in their solutions respectively. In [3], the case of a scalar three-dimensional semilinear elliptic reaction-diffusion problem was analyzed. In [13], a one-dimensional semilinear parabolic reaction-diffusion problem was considered. In all of these works, efficient numerical methods were developed to solve the considered problems. To our knowledge, the analysis of parameter robust methods used to solve problems of type (1) was firstly considered in [1]; in that work, a nonlinear finite difference scheme is defined and a monotone iterative method, which constructs sequences of ordered upper and lower solutions, is used to construct a numerical solution; moreover, the method is a first order in time and almost first order in space uniformly convergent scheme.

In general, the computational cost of the numerical methods used to solve singularly perturbed systems is high due to the coupling of the components of the discrete solution. To reduce this computational cost, in [4, 5] additive schemes were used to solve parabolic linear systems of reaction-diffusion type for one- and two-dimensional linear problems respectively, and in [7] a decomposition technique, named splitting by components, was used for parabolic one-dimensional linear systems of reaction-diffusion type. Both techniques permit one to decouple the process of approximating the components of the discrete solution. On the other hand, in the case of considering nonlinear systems, the computational cost of fully implicit methods increases because iterative methods must be used to solve the nonlinear systems involved in the time integration processes.

To compute more efficient solutions, we combine two techniques: on the one hand, we perform a splitting by components following the ideas proposed in [7]; on the other hand, we use a local linearization of the nonlinear reaction term, which permits us to obtain the numerical solution without using any iterative method.

For simplicity, we only give the full details for the case n = 2; nevertheless, as we show in the last section, the technique can be applied for coupled systems having an arbitrary number of equations. In fact, the numerical method proposed here becomes more advantageous as long as the number of equations in the system increases.

The paper is structured as follows. In Section 2, we describe in detail the asymptotic behavior of the exact solution of the continuous problem with respect to the diffusion parameters in the case n = 2 and we give appropriate bounds of its derivatives. In Section 3, we define the spatial discretization of (1) and we prove that if suitable nonuniform meshes are used for it, then the scheme is uniformly convergent. In Section 4, we describe the time integration process, which combines a locally linearized fractional implicit Euler method joint to a splitting by components of the discrete diffusion-reaction operator. We prove that this integration process is uniformly convergent of first order. Moreover, we prove that the fully discrete algorithm, which results of combining both the space and time discretizations, is a uniformly convergent method. In Section 5, we show the numerical results obtained for some test problems. We finish with some concluding remarks.

Henceforth, C denotes a generic positive constant independent of the diffusion parameters εk, k = 1,…,n, and also of the discretization parameters N and M. As well, vw will means that vkwk, k = 1,…,n, \(\vert \mathbf {v} \vert = (\vert v_{1} \vert ,\dots , \vert v_{n} \vert )^{T}\) and \(\Vert \mathbf {f} \Vert _{G}=\max \limits \{\Vert f_{1} \Vert _{G}, \ldots ,\Vert f_{n} \Vert _{G}\}\), where ∥fG is the maximum norm of f on the closed set G; we will use vC meaning that vkC, k = 1,…,n.

2 Asymptotic behavior of the exact solution

In this section we describe the asymptotic behavior of the solution of (1), deducing some estimates for it and its derivatives which are useful below for the analysis of the uniform convergence of the numerical method. To do that, we assume that the coefficients of the reaction matrix satisfy

$$ \begin{array}{l} {{\frac{\partial a_{k}}{\partial u_{k}}}(x,t,\mathbf{v}) \ge \beta > 0, \ \frac{{\partial a_{k}}}{\partial u_{j}} (x,t,\mathbf{v}) \le 0, \ k \ne j, \ k, j= 1,\ldots, n,} \\ {\min_{-\infty \le \mathbf{v} \le \infty}\sum\limits_{j=1}^{n} \frac{{\partial a_{k}}}{\partial u_{j}}(x,t,\mathbf{v}) \ge \alpha > 0, \ { k} =1,\ldots, n.} \end{array} $$
(3)

Then, problem (1) has a unique solution (see Theorem 3.1, Chap. 8 in [17]). Moreover, following [1], by using the mean-value theorem, we have

$$ {{a_{k}(x,t,\mathbf{u}) = a_{k}(x,t,\mathbf{0})} + \sum\limits_{j=1}^{n} \frac{{\partial a_{k}}}{\partial u_{j}}(x,t, {\mathbf{v_{k}}}) u_{j}, \ k = 1,\ldots,n.} $$
(4)

Using this result, it is immediate that u can be described as the solution of a linear reaction-diffusion system and, taking into account the hypotheses (3), the following two results are deduced (see [7] for more details).

Lemma 1

If −A(x,t,0),g0(t),g1(t),φ(x) have non-negative components, then u(x,t) has non-negative components.

Lemma 2

The solution of (1) satisfies

$$ \Vert\mathbf{u}(x,t)\Vert \le \max\{ \Vert\mathbf{g}_{0}\Vert, \Vert\mathbf{g}_{1}\Vert, \Vert\mathbf{\mathbf{\varphi}}\Vert, \frac{\Vert\mathbf{A}(x,t,\mathbf{0})\Vert}{\alpha} \} $$

Analogously, the time derivatives of u are solution of suitable linear parabolic systems of reaction-diffusion type and the following bounds can be deduced

$$ \left\Vert {\frac{\partial^{l} \mathbf{u}{(x,t)}}{\partial t^{l}}} \right\Vert \le C, \ \ {(x,t)\in \overline{Q}}, \ { l} = 0,1,2. $$
(5)

The same reasonings can be applied to obtain suitable bounds for the spatial derivatives of u (see [12] for more details). For simplicity, we only describe in detail the asymptotic behavior of u for the case n = 2.

In this case, using (4), problem (1) can be rewritten as

$$ \left \{ \begin{array}{l} {\frac{\partial u_{1}}{\partial t} (x,t) - \varepsilon_{1} \frac{\partial^{2} u_{1}}{\partial x^{2}}(x,t) + \frac{\partial a_{1}}{\partial u_{1}}(x,t,\mathbf{v_{1}}) u_{1} + \frac{\partial a_{1}}{\partial u_{2}}(x,t,\mathbf{v_{1}}) u_{2}= - a_{1}(x,t,\mathbf{0}),} \\ {\frac{\partial u_{2}}{\partial t} (x,t) - \varepsilon_{2} \frac{\partial^{2} u_{2}}{\partial x^{2}}(x,t) + \frac{\partial a_{2}}{\partial u_{1}}(x,t,\mathbf{v_{2}}) u_{1} + \frac{\partial a_{2}}{\partial u_{2}}(x,t,\mathbf{v_{2}}) u_{2}= - a_{2}(x,t,\mathbf{0}),} \\ \mathbf{u}(0,t) ={\mathbf{g_{0}}(t), \ \mathbf{u}(1,t) = \mathbf{g_{1}}(t),} \ \forall \ t \in [0,T], \ \mathbf{u}(x,0) = \mathbf{\mathbf{\varphi}}(x), \ \forall \ x \in \overline{\varOmega}. \end{array} \right. $$
(6)

Now, taking into account the hypotheses (3), we can follow [11] to decompose the solution of (6) as u = v + w where v is the regular component and w is the singular component; both of them are bounded vector functions with bounded time derivatives up to second order. Moreover, for v = (v1,v2)T it holds

$$ \begin{array}{@{}rcl@{}} &&\left\vert\frac{\partial^{l} v_{k} (x,t)}{\partial x^{l}} \right\vert \le C, l = 0,1,2, \end{array} $$
(7)
$$ \begin{array}{@{}rcl@{}} &&\left\vert\frac{\partial^{l} v_{k} (x,t)}{\partial x^{l}} \right\vert \le C \varepsilon_{k}^{1-k/2}, l = 3,4, \ k=1,2. \end{array} $$
(8)

As well, the singular component, w = (w1,w2)T satisfies

$$ \begin{array}{l} \left\vert {w_{k}} \right\vert \le C B_{\varepsilon_{2}}(x), \ { k} = 1,2, \\ {\left\vert \frac{\partial w_{1} (x,t)}{\partial x} \right\vert \le C \left( \varepsilon_{1}^{-1/2} B_{\varepsilon_{1}}(x) + \varepsilon_{2}^{-1/2} B_{\varepsilon_{2}}(x)\right), \ \left\vert \frac{\partial w_{2} (x,t)}{\partial x} \right\vert \le C \varepsilon_{2}^{-1/2} B_{\varepsilon_{2}}(x),}\\ {\left\vert \frac{\partial^{2} w_{1} (x,t)}{\partial x^{2}} \right\vert \le C \left( \varepsilon_{1}^{-1} B_{\varepsilon_{1}}(x) + \varepsilon_{2}^{-1} B_{\varepsilon_{2}}(x)\right), \ \left\vert \frac{\partial^{2} w_{2} (x,t)}{\partial x^{2}} \right\vert \le C \varepsilon_{2}^{-1} B_{\varepsilon_{2}}(x),} \\ {\left\vert \frac{{\partial^{l}} w_{1} (x,t)}{{\partial x^{l}}} \right\vert \le C\left( \varepsilon_{1}^{-l/2}B_{\varepsilon_{1}}(x) + \varepsilon_{2}^{-l/2} B_{\varepsilon_{2}}(x)\right),\ { l} = 3,4,}\\ {\left\vert \frac{{\partial^{l}} w_{2} (x,t)}{{\partial x^{l}}} \right\vert \le C \varepsilon_{2}^{-1} \left( \varepsilon_{1}^{(l-2)/2}B_{\varepsilon_{1}}(x) + \varepsilon_{2}^{(l-2)/2} B_{\varepsilon_{2}}(x)\right), \ { l} = 3,4,} \end{array} $$
(9)

where

$$ {B_{\gamma}(x) = e^{-x\sqrt{\alpha/\gamma}}+e^{-(1-x)\sqrt{\alpha /\gamma}}}, $$
(10)

where γ is a generic positive constant and α is the parameter defined in (3).

3 The spatial discretization on a Shishkin mesh

To construct the fully discrete method, which discretizes the continuous problem (1), first we discretize in space. From (7)–(9) it follows that, in the case n = 2, two overlapping parabolic boundary layers can appear at x = 0 and x = 1. Because of this, we consider special nonuniform meshes which concentrate the grid points in the boundary layer regions. Concretely, we use piecewise uniform meshes of Shishkin type, which are defined as follows. Let N be a positive integer multiple of 8; then, the grid points of the mesh \(\overline {\varOmega }_{N} \equiv \{0 = x_{0} < x_{1} < {\ldots } < x_{N} = 1\}\) are given by

$$ x_{i} = \left\{ \begin{array}{ll} ih_{\varepsilon_{1}}, & i = 0,\ldots, N/8, \\ x_{N/8} + (i-N/8)h_{\varepsilon_{2}}, & i = N/8+1,\ldots,N/4, \\ x_{N/4} + (i-N/4)H, & i = N/4+1,\ldots,3N/4, \\ x_{3N/4} + (i-3N/4)h_{\varepsilon_{2}}, & i = 3N/4+1,\ldots,7N/8, \\ x_{7N/8} + (i-7N/8)h_{\varepsilon_{1}}, & i = 7N/8+1, \ldots, N, \end{array} \right. $$
(11)

where \(h_{\varepsilon _{1}} = 8\sigma _{\varepsilon _{1}}/N,\ h_{\varepsilon _{2}} = 8(\sigma _{\varepsilon _{2}}-\sigma _{\varepsilon _{1}})/N, \ H = 2(1-2\sigma _{\varepsilon _{2}})/N \), and

$$ \sigma_{\varepsilon_{2}} = \min{\left \{1/4, \sigma_{0} \sqrt{\varepsilon_{2}}\ln {N} \right \}}, \quad \sigma_{\varepsilon_{1}} = \min{\left \{\sigma_{\varepsilon_{2}}/2, \sigma_{0} \sqrt{\varepsilon_{1}}\ln {N} \right\}}, $$
(12)

are the transition parameters which separate the coarser and the finer parts of the nonuniform mesh, being σ0 a constant which will be fixed later on. Below we denote by hi = xixi− 1, i = 1,…,N, the step sizes of the mesh and by \(\overline {h}_{i} = (h_{i} + h_{i+1})/2, \ \ i = 1, \ldots , N-1\).

On the mesh just defined, to approximate u(xi,t) ≡ (u1(xi,t),u2(xi,t))T, for \(x_{i}\in \overline {\varOmega }_{N}\) and t ∈ [0,T], we use the semidiscrete functions

$$ \mathbf{U}_{N}(t) \equiv (\mathbf{U}_{N,0}(t), \mathbf{U}_{N,1}(t), \ldots, \mathbf{U}_{N,N}(t)), $$

where \(\mathbf {U}_{N,i}(t)=({U_{N,i,1}(t), U_{N,i,2}(t)})^{T}:[0,T]\rightarrow \mathcal {\mathbf {R}}^{2}, \ i=0, 1, \ldots , N\).

Let \({{\mathcal{L}}_{N,\mathbf {\varepsilon }}\mathbf {U}_{N}(t) \equiv ({ {\mathcal{L}}_{N,\mathbf {\varepsilon },1}}\mathbf {U}_{N}(t),{{\mathcal{L}}_{N,\mathbf {\varepsilon },2}}\mathbf {U}_{N}(t))^{T}}\), where

$$ \begin{array}{l} {(\mathcal{L}_{N,\mathbf{\varepsilon},k} \mathbf{U}_{N} (t))_{i} \equiv -\varepsilon_{k} (\delta_{xx} {U_{N,k}})_{i} =} \\ {- \frac{\varepsilon_{k}}{\overline{h}_{i}}\left( \frac{U_{N,i+1,k} - U_{N,i,k}}{h_{i+1}} - \frac{U_{N,i,k} - U_{N,i-1,k}}{h_{i}}\right)}, \ i = 1,{\ldots} N-1, \ k=1,2, \end{array} $$

are central differences which discretize the diffusion terms of (1) on the nonuniform mesh \(\overline {\varOmega }_{N}\). We define the operator

$$ (L_{N.\varepsilon}(\mathbf{U}_{N}(t)))_{i}\equiv {\frac {d }{dt}\mathbf{U}_{N,i}(t) + (\mathcal{L}_{N,\mathbf{\varepsilon}}\mathbf{U}_{N}(t))_{i}+\mathbf{A}(x_{i},t,\mathbf{U}_{N,i}(t)), \ i = 1,\ldots, N-1.} $$

Then, UN,i(t) are the solutions of the family of initial value problems

$$ \left \{ \begin{array}{l} (L_{N.\varepsilon}(\mathbf{U}_{N}(t)))_{i} = \mathbf{0}, \ i = 1,\ldots, N-1,\\ \mathbf{U}_{N,0}(t) = \mathbf{g}_{0}(t), \ \mathbf{U}_{N,N}(t) = \mathbf{g}_{1}(t),\\ \mathbf{U}_{N}(0) = (\mathbf{\mathbf{\varphi}}(x_{0}),\ldots,\mathbf{\mathbf{\varphi}}(x_{N}))^{T}. \end{array} \right. $$
(13)

Again we can make use of the mean-value theorem to rewrite the nonlinear reaction terms in the form

$$ a_{k}(x_{i},t,\mathbf{U}_{N,i}(t))=a_{k}(x_{i},t,\mathbf{0})+ \frac{\partial a_{k}} {\partial u_{1}}(x_{i},t,\mathbf{V_{k}})U_{N,i,1}(t)+ \frac{\partial a_{k}}{\partial u_{2}}(x_{i},t,\mathbf{V_{k}})U_{N,i,2}(t) $$
(14)

for k = 1,2 and, following [7], we can prove the next result which is the discrete analogue of Lemma 1.

Lemma 3

Assuming that all of the data (−A(xi,t,0),g0(t),g1(t),φ(xi)), i = 0,…,N, of problem (13) have non-negative values in their components then, the components of UN(t) has only non-negative values.

From Lemma 3, choosing suitable semidiscrete barrier functions on a linearized rewriting of (13), making use of (14), it follows

$$ \begin{array}{l} \| \mathbf{U}_{N} (t)\|_{\overline{\varOmega}_{N}} \le \\ \max\{\|\mathbf{g_{0}}(t)\|_{[0,T]},\|\mathbf{g_{1}}(t)\|_{[0,T]}, \|[\mathbf{\mathbf{\varphi}}(x)]_{N}\|_{\overline{\varOmega}_{N}}, \ \frac {\|[-\mathbf{A}(x,t,\mathbf{0})]_{N} \|_{\varOmega_{N} \times[0,T]}}{\alpha}\}, \end{array} $$
(15)

t ∈ [0,T], where [.]N denotes the restriction of a function defined on \(\overline {\varOmega }\) to \( \overline {\varOmega }_{N}\). Therefore, problem (13) is well-posed independently of ε and N. This result can be viewed as a uniform stability property of the spatial discretization process.

As well, by deriving in time problem (13), we can describe \(\mathbf {V}_{N}(t) = \frac {d \mathbf {U}_{N}}{dt} \) as the solution of a linear initial value problem of the form

$$ \left \{ \begin{array}{l} {\frac {d }{dt}\mathbf{V}_{N}(t) + \mathcal{L}_{N,\mathbf{\varepsilon}}\mathbf{V}_{N}(t) + \frac {\partial \mathbf{A}_{N}}{\partial \mathbf{u}}(t,\mathbf{U}_{N})\mathbf{V}_{N}(t) + \frac {\partial \mathbf{A}_{N}}{\partial t}(t,\mathbf{U}_{N}) = \mathbf{0},} \\ \mathbf{V}_{N,0}(t) = \mathbf{g}^{\prime}_{0}(t), \ \mathbf{V}_{N,N}(t) = \mathbf{g}^{\prime}_{1}(t),\\ \mathbf{V}_{N}(0) = - \mathcal{L}_{N,\mathbf{\varepsilon}}[\mathbf{\varphi}]_{N} - \mathbf{A}_{N} (0,[\mathbf{\varphi}]_{N}), \end{array} \right. $$
(16)

being AN,i(t,UN) = A(xi,t,UN,i),i = 1,2,…,N − 1. Now, we can use the same reasonings developed in [7] for spatial discretizations of suitable linear reaction-diffusion systems for proving that

$$ \| \mathbf{V}_{N} (t)\|_{\overline{\varOmega}_{N}} \le C. \\ $$

In similar way, it is proven that \( \frac {d^{2} \mathbf {U}_{N}}{dt^{2}}\) is uniformly bounded.

To prove the uniform convergence of the spatial discretization, first we study the local error at any time t ∈ [0,T], at the grid point \(x_{i} \in \overline {\varOmega }_{N}, \ i = 1,\ldots , N-1\), which is given by

$$ \mathbf{\upsilon}_{N,i}(t) \equiv L_{\mathbf{\varepsilon}} (\mathbf{u})(x_{i},t) - {(L_{\mathbf{\varepsilon},N} ([\mathbf{u}(x,t)]_{N}))_{i}}. $$
(17)

Clearly the contributions of the time derivatives and the reaction terms in the local error are zero; therefore,

$$ \mathbf{\upsilon}_{N,i}(t) = - {\mathcal D}_{\mathbf{\varepsilon}} \left( \frac{\partial^{2} \mathbf{u}}{\partial x^{2}}(x_{i}) - (\delta_{xx} [\mathbf{u}]_{N})_{i}\right). $$

In the simplest case, when \(\sigma _{\varepsilon _{1}} = 1/8, \sigma _{\varepsilon _{2}} = 1/4\), the mesh is uniform and it holds \(\varepsilon _{k}^{-1/2} \le C \ln N, k = 1,2\). Then, using appropriate Taylor expansions and the estimates (8)–(9), for the first component u1(x,t) we have

$$ \begin{array}{l} {\vert \upsilon_{N,i,1}(t) \vert \le C \varepsilon_{1} {h_{i}^{2}} \left\Vert \frac{\partial^{4} u_{1}}{\partial x^{4}} \right\Vert_{[x_{i-1},x_{i+1}]} \le} \\ {C \varepsilon_{1} {h_{i}^{2}}\left( \varepsilon_{1}^{-1} + \varepsilon_{1}^{-2} B_{\varepsilon_{1}}(x_{i-1}) + \varepsilon_{2}^{-2} B_{\varepsilon_{2}}(x_{i-1})\right) \le C N^{-2} \ln^{2} N,} \end{array} $$

and similarly for the second component u2(x,t) we have

$$ \begin{array}{l} {\vert \upsilon_{N,i,2}(t) \vert \le C \varepsilon_{2} {h_{i}^{2}} \left\Vert \frac{\partial^{4} u_{2}}{\partial x^{4}} \right\Vert_{[x_{i-1},x_{i+1}]} \le} \\ {C \varepsilon_{2} {h_{i}^{2}}\left( \varepsilon_{2}^{-1} + \varepsilon_{2}^{-1}(\varepsilon_{1}^{-1} B_{\varepsilon_{1}}(x_{i-1}) + \varepsilon_{2}^{-1} B_{\varepsilon_{2}}(x_{i-1}))\right) \le C N^{-2} \ln^{2} N.} \end{array} $$

In second place, we assume that \(\sigma _{\varepsilon _{1}} = \sigma _{0} \sqrt {\varepsilon _{1}}\ln {N}, \sigma _{\varepsilon _{2}} = \sigma _{0} \sqrt {\varepsilon _{2}}\ln {N}\) which is the most interesting case in practice. Let us assume that σ0 is chosen satisfying that \(\sigma _{0} \sqrt {\alpha }\ge 2\). We only show the details for grid points xi,1 ≤ iN/2, and similarly we can proceed for xi,N/2 ≤ iN − 1. Note that for these points, in (10) the exponentials which have large influence in the local error are \(e^{-x\sqrt {\alpha /\varepsilon _{k}}}\), because \( \varepsilon _{k}^{-l} e^{-(1-x_{i+1})\sqrt {\alpha /\varepsilon _{k}}}\le N^{-\sigma _{0} \sqrt {\alpha }}\) for k = 1,2 and l any positive integer.

We distinguish five cases depending on the location of the mesh point xi.

Case 1. We assume that \(0 < x_{i} < \sigma _{\varepsilon _{1}}\). Then, \(h_{i}=h_{i+1}=8\sigma _{0}\sqrt {\varepsilon _{1}} N^{-1}\ln N\), and therefore

$$ \begin{array}{l} {\vert \upsilon_{N,i,1}(t) \vert \le C \varepsilon_{1} {h_{i}^{2}} \left\vert \frac{\partial^{4} u_{1}}{\partial x^{4}} \right\vert \le} \\ {C {h_{i}^{2}} \left( 1 + \varepsilon_{1}^{-1} e^{-x_{i-1}\sqrt{\alpha/\varepsilon_{1}}} + \varepsilon_{1} \varepsilon_{2}^{-2} e^{-x_{i-1}\sqrt{\alpha/\varepsilon_{2}}}\right) + C N^{-\sigma_{0} \sqrt{\alpha}} \le C N^{-2} \ln^{2} N,} \end{array} $$

and

$$ \begin{array}{l} {\vert \upsilon_{N,i,2}(t) \vert \le C \varepsilon_{2} {h_{i}^{2}} \left\vert \frac{\partial^{4} u_{2}}{\partial x^{4}} \right\vert \le} \\ {C {h_{i}^{2}} \left( 1 + \varepsilon_{1}^{-1} e^{-x_{i-1}\sqrt{\alpha/\varepsilon_{1}}} + \varepsilon_{2}^{-1} e^{-x_{i-1}\sqrt{\alpha/\varepsilon_{2}}}\right) + C N^{-\sigma_{0} \sqrt{\alpha}} \le C N^{-2} \ln^{2} N,} \end{array} $$

Case 2. We assume that \(\sigma _{\varepsilon _{2}} < x_{i} \le 1/2 \). Then, \(x_{i-1} \ge \sigma _{\varepsilon _{2}}\), \(x_{i-1} - h_{i} \ge \sigma _{\varepsilon _{2}} - h_{N/4} \ge \sigma _{\varepsilon _{1}}\) and therefore it holds

$$ e^{-x_{i-1}\sqrt{\alpha/\varepsilon_{k}}} \le N^{-\sigma_{0} \sqrt{\alpha}}, \ e^{-(x_{i-1}-h_{i})\sqrt{\alpha/\varepsilon_{k}}} \le N^{-\sigma_{0} \sqrt{\alpha}}, k=1,2. $$
(18)

Using (18) it follows

$$ \begin{array}{l} {\vert \upsilon_{N,i,1}(t) \vert \le C \varepsilon_{1} {h_{i}^{2}} \left\vert \frac{\partial^{4} u_{1}}{\partial x^{4}} \right\vert \le} \\ {C {h_{i}^{2}} \left( 1 + \varepsilon_{1}^{-1} e^{-x_{i-1}\sqrt{\alpha/\varepsilon_{1}}} + \varepsilon_{1} \varepsilon_{2}^{-2} e^{-x_{i-1}\sqrt{\alpha/\varepsilon_{2}}}\right) + C N^{-\sigma_{0} \sqrt{\alpha}} \le C N^{-2},} \end{array} $$

and

$$ \begin{array}{l} {\vert \upsilon_{N,i,2}(t) \vert \le C \varepsilon_{2} {h_{i}^{2}} \left\vert \frac{\partial^{4} u_{2}}{\partial x^{4}} \right\vert \le} \\ {C {h_{i}^{2}} \left( 1 + \varepsilon_{1}^{-1} e^{-x_{i-1}\sqrt{\alpha/\varepsilon_{1}}} + \varepsilon_{2}^{-1} e^{-x_{i-1}\sqrt{\alpha/\varepsilon_{2}}}\right) + C N^{-\sigma_{0} \sqrt{\alpha}} \le C N^{-2},} \end{array} $$

taking into account that \(p^{l} e^{-\sqrt {\alpha } p} \le C\) for p any positive number and l any positive integer.

To find appropriate estimates in the other three cases we decompose the local error of (13) as υN,i(t) = υv,N,i(t) + υw,N,i(t) where υv,N,i(t) and υw,N,i(t) are the contributions of the regular and singular components (v and w) of u respectively, i.e., (see [11] for details)

$$\begin{array}{l} {\mathbf{\upsilon}_{v,N,i}(t) = - {\mathcal D}_{\mathbf{\varepsilon}}\left( \frac{\partial^{2} \mathbf{v}}{\partial x^{2}}(x_{i},t) - (\delta_{xx} [\mathbf{v}]_{N})_{i}\right),}\\ {\mathbf{\upsilon}_{w,N,i}(t) = - {\mathcal D}_{\mathbf{\varepsilon}}\left( \frac{\partial^{2} \mathbf{w}}{\partial x^{2}} (x_{i},t) - (\delta_{xx} [\mathbf{w}]_{N})_{i}\right).} \end{array} $$

Case 3. We assume that \(\sigma _{\varepsilon _{1}} < x_{i} < \sigma _{\varepsilon _{2}} \). For the regular component, from (8) easily we can obtain

$$ \vert \upsilon_{v,N,i,k}(t) \vert \le C \varepsilon_{k} {h_{i}^{2}} \left\vert \frac{\partial^{4} v_{k}}{\partial x^{4}} \right\vert \le C N^{-2}, k = 1,2. $$

For the singular component w we follow [16], where two more precise decompositions are made; concretely, the first one is \(\mathbf {w}=\tilde {\mathbf {w}}_{\varepsilon _{1}} + \tilde {\mathbf {w}}_{\varepsilon _{2}}\) and it holds

$$ \varepsilon_{1}\left\vert\frac{\partial^{2} \tilde{\mathbf{w}}_{\varepsilon_{1},1}}{\partial x^{2}}\right\vert + \varepsilon_{2}\left\vert \frac{\partial^{2} \tilde{\mathbf{w}}_{\varepsilon_{1},2}}{\partial x^{2}}\right\vert \le C B_{\varepsilon_{1}}(x),\ \left\vert\frac{\partial^{3} \tilde{\mathbf{w}}_{\varepsilon_{2},1}}{\partial x^{3}}\right\vert + \left\vert \frac{\partial^{3} \tilde{\mathbf{w}}_{\varepsilon_{2},2}}{\partial x^{3}}\right\vert \le C \varepsilon_{2}^{-3/2}B_{\varepsilon_{2}}(x), $$
(19)

and the second one \(\mathbf {w}=\bar {\mathbf {w}}_{\varepsilon _{1}} + \bar {\mathbf {w}}_{\varepsilon _{2}}\) and it holds

$$ \varepsilon_{1}\left\vert\frac{\partial^{2} \bar{\mathbf{w}}_{\varepsilon_{1},1}}{\partial x^{2}}\right\vert + \varepsilon_{2}\left\vert \frac{\partial^{2} \bar{\mathbf{w}}_{\varepsilon_{1},2}}{\partial x^{2}}\right\vert \le C B_{\varepsilon_{1}}(x),\ \varepsilon_{1}\left\vert\frac{\partial^{4} \bar{\mathbf{w}}_{\varepsilon_{2},1}}{\partial x^{4}}\right\vert + \varepsilon_{2}\left\vert \frac{\partial^{4} \bar{\mathbf{w}}_{\varepsilon_{2},2}}{\partial x^{4}}\right\vert \le C \varepsilon_{2}^{-1}B_{\varepsilon_{2}}(x), $$
(20)

For the first component, using the second decomposition and (20) it holds

$$ \begin{array}{l} {\vert \upsilon_{\bar{\mathbf{w}}_{\varepsilon_{1},1},N,i}(t) \vert \le C \varepsilon_{1} \left\vert \frac{\partial^{2} \bar{\mathbf{w}}_{\varepsilon_{1},1}}{\partial x^{2}} \right\vert \le C N^{-2},} \end{array} $$

and

$$ \begin{array}{l} {\vert \upsilon_{\bar{\mathbf{w}}_{\varepsilon_{2},1},N,i}(t) \vert \le C \varepsilon_{1} {h_{i}^{2}} \left\vert \frac{\partial^{4} \bar{\mathbf{w}}_{\varepsilon_{2},1}}{\partial x^{4}} \right\vert \le C N^{-2} \ln^{2} N,} \end{array} $$

using that \(h_{i}/\sqrt {\varepsilon _{2}} \le C N^{-1} \ln N\). Similarly, for the second component, using the first decomposition and (19) it holds

$$ \begin{array}{l} {\vert \upsilon_{\tilde{\mathbf{w}}_{\varepsilon_{1},2},N,i}(t) \vert \le C \varepsilon_{2} \left\vert \frac{\partial^{2} \tilde{\mathbf{w}}_{\varepsilon_{1},1}}{\partial x^{2}} \right\vert \le C N^{-2},} \end{array} $$

and

$$ \begin{array}{l} {\vert \upsilon_{\tilde{\mathbf{w}}_{\varepsilon_{2},2},N,i}(t) \vert \le C \varepsilon_{2} h_{i} \left\vert \frac{\partial^{3} \tilde{\mathbf{w}}_{\varepsilon_{2},2}}{\partial x^{3}} \right\vert \le C N^{-2} \ln^{2} N.} \end{array} $$

Case 4. We assume that \(x_{i} = \sigma _{\varepsilon _{2}}\). Again we use the decomposition u = v + w of the exact solution. For the regular component, from (8) easily we can obtain

$$ \vert \upsilon_{v,N,i,k}(t) \vert \le C \varepsilon_{k} h_{i} \left\vert \frac{\partial^{3} v_{k}}{\partial x^{3}} \right\vert \le C \varepsilon_{k}^{1/2} N^{-1}, k = 1,2. $$
(21)

For the singular component, using (9)we have

$$ \vert \upsilon_{w,N,i,1}(t) \vert \le C \varepsilon_{1} \left\vert \frac{\partial^{2} w_{1}}{\partial x^{2}} \right\vert \le C (B_{\varepsilon_{1}} (x_{i-1}) + B_{\varepsilon_{2}} (x_{i-1})) \le C N^{-2}, $$

and

$$ \vert \upsilon_{w,N,i,2}(t) \vert \le C \varepsilon_{1} \left\vert \frac{\partial^{2} w_{2}}{\partial x^{2}} \right\vert \le C B_{\varepsilon_{2}} (x_{i-1}) \le C N^{-2}. $$

Case 5. We assume that \(x_{i} = \sigma _{\varepsilon _{1}}\). We again use the decomposition u = v + w of the exact solution. Then, for the regular component, as in Case 4 we obtain the estimates (21).

For the singular component we decompose \(\mathbf {w}=\tilde {\mathbf {w}}_{\varepsilon _{1}} + \tilde {\mathbf {w}}_{\varepsilon _{2}}\). So, proceeding as in Case 4 it holds

$$ \begin{array}{l} {\vert \upsilon_{\tilde{\mathbf{w}}_{\varepsilon_{1},k},N,i}(t) \vert \le C \varepsilon_{k} \left\vert \frac{\partial^{2} \tilde{\mathbf{w}}_{\varepsilon_{1},k}}{\partial x^{2}} \right\vert \le C N^{-2}, k=1,2} \end{array} $$

and

$$ \begin{array}{l} {\vert \upsilon_{\tilde{\mathbf{w}}_{\varepsilon_{2},k},N,i}(t) \vert \le C \varepsilon_{k}(h_{i}+ h_{i+1}) \left\vert \frac{\partial^{3} \tilde{\mathbf{w}}_{\varepsilon_{2},k}}{\partial x^{3}} \right\vert \le C \varepsilon_{k} \varepsilon_{3-k}^{-1} N^{-1}, k=1,2.} \end{array} $$

Theorem 1

The global error \({\mathbf {e}^{\mathbf {s}\mathbf {p}}}_{N}(t) \equiv [\mathbf {u}(x,t)]_{N}- \mathbf {U}_{N} (t)\), associated to the spatial discretization (13) on the Shishkin mesh, satisfies

$$ \Vert{\mathbf{e}^{\mathbf{s}\mathbf{p}}}_{N}(t) \Vert_{\overline{\varOmega}_{N}}\le C N^{-2} \ln^{2} N, \quad \forall \ t \in [0,T], $$
(22)

where C is a positive constant independent of ε and the discretization parameter N.

Proof

Firstly, let us prove that the global error \({\mathbf {e}^{\mathbf {s}\mathbf {p}}}_{N}(t)\) is the solution of a parabolic linear system of the form

$$ {\left( \frac{d}{d t} - {\mathcal D}_{\mathbf{\varepsilon}} \delta_{xx} + \frac{\partial \mathbf{A}}{\partial \mathbf{u} }\right) {\mathbf{e}^{\mathbf{s}\mathbf{p}}}_{N}(t) = \mathbf{\upsilon}_{N}(t),} $$
(23)

where the right-hand side is the local error and the term \(\frac {\partial \mathbf {A}}{\partial \mathbf {u} }\) is an M-matrix which contains derivatives of the reaction terms, with initial and boundary conditions obviously equal to zero. To see that, we consider the operators

$$ {\widetilde{L_{\mathbf{\varepsilon}}} \equiv \frac{\partial \mathbf{u}}{\partial t} - {\mathcal D}_{\mathbf{\varepsilon}} \frac{\partial^{2} }{\partial x^{2}},\ \ \widetilde{L_{\mathbf{\varepsilon},N}} \equiv \frac{d \mathbf{u}}{d t} - {\mathcal D}_{\mathbf{\varepsilon}} \delta_{xx}.} $$

Then, UN(t) satisfies the differential system

$$ \widetilde{L_{\mathbf{\varepsilon},N}} \mathbf{U}_{N}(t) + \mathbf{A}_{N}(t,\mathbf{U}_{N}(t)) = 0, $$

where AN(t,UN(t)) contains the evaluations of the reaction term in the mesh points. Using the mean-value theorem we decompose such evaluations as

$$\begin{array}{l} {a_{k}(x_{i},t,\mathbf{U}_{N,i}(t)) = a_{k}(x_{i},t,\mathbf{u}(x_{i},t)) +}\\ {\left[\frac{\partial a_{k}}{\partial u_{1} }(x_{i},t,\mathbf{\xi}_{N,i,k})\left( U_{N,i,1}(t) - u_{1}(x_{i},t)\right) + \frac{\partial a_{k}}{\partial u_{2} }(x_{i},t,\mathbf{\xi}_{N,i,k,})\left( U_{N,i,2}(t) - u_{2}(x_{i},t)\right)\right],}\\ \qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad{ k=1,2,i=1,{\ldots} N-1.} \end{array} $$

In this way, regrouping these evaluations, we denote

$$ \mathbf{A}_{N}(t,\mathbf{U}_{N}(t)) = \mathbf{A}_{N}(t,[\mathbf{u}]_{N}) + \frac{\partial \mathbf{A}_{N}}{\partial \mathbf{u}}(t,\mathbf{\xi}_{N})\left( \mathbf{U}_{N}(t) - [\mathbf{u}]_{N}\right) $$

On the other hand, from the continuous problem it follows

$$ \mathbf{A}_{N}(t,[\mathbf{u}]_{N}) = - \left[\widetilde{L_{\mathbf{\varepsilon}}} [u]\right]_{N}, $$

and therefore, it holds

$$ {\widetilde{L_{\mathbf{\varepsilon},N}} \mathbf{U}_{N}(t) - \left[\widetilde{L_{\mathbf{\varepsilon}}} [u]\right]_{N} + \frac{\partial \mathbf{A}_{N}}{\partial \mathbf{u}}(t,\mathbf{\xi}_{N})\left( \mathbf{U}_{N}(t) - [\mathbf{u}]_{N}\right) = 0}. $$

Adding and subtracting \(\widetilde {L_{\mathbf {\varepsilon },N}} [\mathbf {u}]_{N}\) to this equation we have

$$\begin{array}{l} {\widetilde{L_{\mathbf{\varepsilon},N}} \mathbf{U}_{N}(t)\left( \mathbf{U}_{N}(t) - [\mathbf{u}]_{N}\right) - \left[\widetilde{L_{\mathbf{\varepsilon}}} [u]\right]_{N} +} \\ {\widetilde{L_{\mathbf{\varepsilon},N}} [\mathbf{u}]_{N} + \frac{\partial \mathbf{A}_{N}}{\partial \mathbf{u}}(t,\mathbf{\xi}_{N})\left( \mathbf{U}_{N}(t) - [\mathbf{u}]_{N}\right) = 0.} \end{array} $$

From this, (23) follows.

Using the decomposition of the exact solution in its regular and singular components, we split the global error in the form \({\mathbf {e}^{\mathbf {s}\mathbf {p}}}_{N}(t)= {\mathbf {e}^{\mathbf {s}\mathbf {p}, \mathbf {v}}}_{N}(t) + {\mathbf {e}^{\mathbf {s}\mathbf {p}, \mathbf {w}}}_{N}(t)\), where \({\mathbf {e}^{\mathbf {s}\mathbf {p}, \mathbf {v}}}_{N}(t) \equiv [\mathbf {v}(x,t)]_{N}- \mathbf {V}_{N} (t)\) and \({\mathbf {e}^{\mathbf {s}\mathbf {p}, \mathbf {w}}}_{N}(t) \equiv [\mathbf {w}(x,t)]_{N}-\mathbf {W}_{N} (t)\) are the solution of the linear systems

$$ \begin{array}{l} {\left( \frac{d}{d t} - {\mathcal D}_{\mathbf{\varepsilon}} \delta_{xx} + \frac{\partial \mathbf{A}_{N}}{\partial \mathbf{u}}\right) {\mathbf{e}^{\mathbf{s}\mathbf{p}, \mathbf{v}}}_{N}(t) = \mathbf{\upsilon}_{v,N}(t),} \\ {\left( \frac{d}{d t} - {\mathcal D}_{\mathbf{\varepsilon}} \delta_{xx} + \frac{\partial \mathbf{A}_{N}}{\partial \mathbf{u}}\right) {\mathbf{e}^{\mathbf{s}\mathbf{p}, \mathbf{w}}}_{N}(t) = \mathbf{\upsilon}_{w,N}(t),} \end{array} $$

where the υv,N(t) and υw,N(t) are the local errors associated to the regular and singular components respectively, joint to initial and boundary conditions equal to 0. Then, using that the operator

$$ {\left( \frac{d}{d t} - {\mathcal D}_{\mathbf{\varepsilon}} \delta_{xx} + \frac{\partial \mathbf{A}_{N}}{\partial \mathbf{u} }\right),} $$

satisfies a semidiscrete maximum principle (see [7] for more details), it is proven that all of the estimates satisfied for the local errors υv,N(t) and υw,N(t) are also satisfied for the global errors \({\mathbf {e}^{\mathbf {s}\mathbf {p}, \mathbf {v}}}_{N}(t)\) and \({\mathbf {e}^{\mathbf {s}\mathbf {p}, \mathbf {w}}}_{N}(t)\). Moreover, taking appropriate barrier functions, in the same way as in the case of linear systems of reaction-diffusion type (see [11, 16] for full details), these estimates can be refined and the result of the theorem follows. □

4 The fully discrete scheme: uniform convergence

The second step to construct our numerical algorithm consists of integrating in time, with appropriate ODE solvers, the families of initial value problems of type (13) described in previous sections. In fact, in this section we describe such integration processes for a generalization to n components of these initial value problems which can be written as follows:

Find UN(t) ≡ (UN,0(t),UN,1(t),…,UN,N(t)), with \(\mathbf {U}_{N,i}(t):[0,T]\rightarrow \mathcal {\mathbf {R}}^{n}, \ i=0, 1, \ldots , N\), solution of the following initial value problem

$$ \left \{ \begin{array}{l} {\frac {d }{dt}\mathbf{U}_{N,i}(t) + (\mathcal{L}_{N,\mathbf{\varepsilon}}\mathbf{U}_{N}(t))_{i}+ \mathbf{A}(x_{i},t,\mathbf{U}_{N,i}(t)) = \mathbf{0}, \ i = 1,\ldots, N-1,}\\ \mathbf{U}_{N,0}(t) = \mathbf{g}_{0}(t), \ \mathbf{U}_{N,N}(t) = \mathbf{g}_{1}(t),\\ \mathbf{U}_{N}(0) = (\mathbf{\mathbf{\varphi}}(x_{0}),\ldots,\mathbf{\mathbf{\varphi}}(x_{N}))^{T} \end{array} \right. $$
(24)

Here, the semidiscrete solutions UN,i(t) = (UN,i,1(t),…,UN,i,n(t))T are approximations of u(xi,t), being xi the grid points of the Shishkin mesh defined in the previous section and \({{\mathcal{L}}_{N,\mathbf {\varepsilon }}\mathbf {U}_{N}(t) \equiv ({ {\mathcal{L}}_{N,\mathbf {\varepsilon },1}}\mathbf {U}_{N}(t),\ldots , {{\mathcal{L}}_{N,\mathbf {\varepsilon },n}}\mathbf {U}_{N}(t))^{T}}\) is the discretization, via central differences, of the diffusion term \({\mathcal{L}}_{x,\mathbf {\varepsilon }} \mathbf {u}(x,t)\). Let us assume that the Shishkin mesh \(\overline {\varOmega }_{N}\) has been chosen appropriately, in such way that (22) is satisfied. Notice that in the previous section we have constructed an appropriate \(\overline {\varOmega }_{N}\) and proven (22) only for the case n = 2.

Now, let us denote by \(\mathbf {U}_{N}^{m} = (U_{N,1}^{m}, U_{N,2}^{m},\ldots ,U_{N,n}^{m} )^{T}\) the approximations to u(tm) = (u1(tm),u2(tm),…,un(tm))T on the grid points of \(\overline {\varOmega }_{N}\) at each time level tm,m = 0,1,…,M, where, for the sake of simplicity, we consider a uniform mesh \(\overline {w}_{M} = \{t_{m} = m \tau , \ m = 0, 1, \ldots , M\}\), with τ = T/M.

Then, our fully discrete scheme can be written as follows:

$$ \left\{\begin{array}{l} \mathbf{U}_{N}^{0} = (\mathbf{\mathbf{\varphi}}(x_{0}),\ldots, \mathbf{\mathbf{\varphi}}(x_{N}))^{T} ,\\ \text{ For }m = 0, 1, \ldots, M -1,\\ \begin{array}{l} \text{ For }j = 1, \ldots, n\\ \left \{\begin{array}{l} U_{N,0,j}^{m+j/n} = g_{j0}(t_{m+1}),\\ {\frac {U_{N,i,j}^{m+j/n}-U_{N,i,j}^{m+(j-1)/n}}{\tau} }+(\mathcal{L}_{N,\mathbf{\varepsilon},j} \mathbf{U}_{N}^{m+j/n})_{i} + a_{j}\left( x_{i},t_{m+1},\mathbf{U}_{N,i}^{m+(j-1)/n}\right) +\\ \ {\frac{\partial a_{j}}{\partial u_{j}} \left( x_{i},t_{m+1},\mathbf{U}_{N,i}^{m+(j-1)/n}\right)\left( U_{N,i,j}^{m+j/n} - U_{N,i,j}^{m+(j-1)/n}\right)}\!= 0, i = 1,\ldots, N-1,\\ \ U_{N,N,j}^{m+j/n} = g_{j1}t_{m+1}), \end{array} \right.\\ U_{N,i,k}^{m+j/n} = U_{N,i,k}^{m+(j-1)/n}, \ i = 0,\ldots, N, k=1,\ldots,n,\ k\ne j. \end{array} \end{array}\right. $$
(25)

This scheme combines the technique of splitting by components proposed in [7] and a local linearization of the nonlinear reaction terms. To clarify the qualities of the method as well as to complete the analysis in a simpler form, we rewrite it as follows:

$$ \left\{\begin{array}{l} \mathbf{U}_{N}^{0} = (\mathbf{\mathbf{\varphi}}(x_{0}),\ldots, \mathbf{\mathbf{\varphi}}(x_{N}))^{T} ,\\ \text{ For }m = 0, 1, \ldots, M -1,\qquad ! M \text{ time steps}\\ \begin{array}{l} \text{ For }j = 1, \ldots, n \qquad\qquad\qquad ! n \text{ fractional steps}, \\ \left \{\begin{array}{l} U_{N,0,j}^{m+j/n} = g_{j0}(t_{m+1}),\\ {U_{N,i,j}^{m+j/n} + \tau(\mathcal{L}_{N,\mathbf{\varepsilon},j} \mathbf{U}_{N}^{m+j/n})_{i} } + {\tau \frac{\partial a_{j}}{\partial u_{j}} \left( x_{i},t_{m+1},\mathbf{U}_{N,i}^{m+(j-1)/n}\right) U_{N,i,j}^{m+j/n} = } \\ {U_{N,i,j}^{m+(j-1)/n} - \tau a_{j}\left( x_{i},t_{m+1},\mathbf{U}_{N,i}^{m+(j-1)/n}\right) +} \\ {\tau \frac{\partial a_{j}}{\partial u_{j}} \left( x_{i},t_{m+1},\mathbf{U}_{N,i}^{m+(j-1)/n}\right) U_{N,i,j}^{m+(j-1)/n}, i = 1,\ldots, N-1,}\\ \ U_{N,N,j}^{m+j/n} = g_{j1}(t_{m+1}), \end{array} \right.\\ U_{N,i,k}^{m+j/n} = U_{N,i,k}^{m+(j-1)/n}, \ i = 0,\ldots, N, k=1,\ldots,n,\ k\ne j. \end{array} \end{array}\right. $$
(26)

Now, our algorithm shows clearly many advantages from a numerical point of view. On the one hand, the linearization process which we have chosen avoids having to solve any nonlinear system to find the numerical solution at each time level; on the other hand, this splitting decouples the approximation of the components of the solution, in such way that only a tridiagonal linear system of size N − 1 must be solved at each fractional step. The combination of these facts makes that the computational cost of the algorithm is considerably smaller than the associated one to classical implicit schemes, specially when the number of components n is large.

Next, we state the main theoretical results which permit one to prove that this method is unconditionally and uniformly convergent of first order in time.

Lemma 4

Under the assumptions (3), the resolution of the fractional steps defined in (26) involves linear systems of the form

$$ M_{N,j} U_{N,j}^{m+j/n}=b_{N,j},\ j = 1,2,\ldots,n, $$

where \(M_{N,j}\in \mathcal {R}^{N-1\times N-1}\) are tridiagonal, inverse positive and they satisfy

$$ \|(M_{N,j})^{-1}\|_{\infty}\le \frac{1}{1+\beta\tau}, \ j=1,2,\ldots,n. $$
(27)

This result plays a main role to obtain the uniform and unconditional stability, as well as the uniform and unconditional consistency of first order for method given by (25). Such properties are stated in the following three Lemmas.

Lemma 5

Assuming (3) and the following Lipschitz type restrictions on the reaction terms

$$ \begin{array}{c} \frac {\partial a_{j}}{\partial u_{j}}(x,t,\mathbf{u})\le c_{1}, \quad -\frac {\partial a_{j}}{\partial u_{k}}(x,t,\mathbf{u}) \le c_{2} ,\quad j,k=1,2,\ldots,n, k\ne j, \end{array} $$
(28)

it holds

$$ \| \mathbf{U}^{m}_{N} (t)\|_{\overline{\varOmega}_{N}} \le C, $$
(29)

where the constant C depends on c1, c2, \(\|[\mathbf {\mathbf {\varphi }}(x)]_{N}\|_{\overline {\varOmega }_{N}}, \)\(\max \limits _{1\le m\le M}\{\|\mathbf {g_{0}}(t_{m})\| ,\|\mathbf {g_{1}}(t_{m})\|\}\) and \(\max \limits _{1\le m\le M} \|[-\mathbf {A}(x,t_{m},\mathbf {0})]_{N} \|_{\varOmega _{N}}\).

Proof

To prove (29), we use an inductive reasoning on the fractional steps. We only show full details to obtain suitable estimates for the first fractional step; for the rest of fractional steps the reasoning is completely analogue.

Firstly, \(U_{N}^{1/n}\) is the solution of the linear system

$$ \begin{array}{l} \left \{\begin{array}{l} U_{N,0,1}^{1/n} = g_{10}(t_{1}),\\ {U_{N,i,1}^{1/n} + \tau(\mathcal{L}_{N,\mathbf{\varepsilon},j} \mathbf{U}_{N}^{1/n})_{i} } + {\tau \frac{\partial a_{1}}{\partial u_{1}} \left( x_{i},t_{1},\mathbf{\mathbf{\varphi}}(x_{i})\right) U_{N,i,1}^{1/n} = } \\ {\varphi_{1}(x_{i}) - \tau a_{1}\left( x_{i},t_{1},\mathbf{\mathbf{\varphi}}(x_{i})\right) +} {\tau \frac{\partial a_{1}}{\partial u_{1}} \left( x_{i},t_{1},\mathbf{\mathbf{\varphi}}(x_{i})\right) \varphi_{1}(x_{i}),} \ \ i = 1,\ldots, N-1,\\ \ U_{N,N,1}^{m+j/n} = g_{11}(t_{1}), \end{array} \right.\\ U_{N,i,k}^{1/n} = \varphi_{k}(x_{i}), \ i = 0,\ldots, N, k=2,\ldots,n.,\ \end{array} $$
(30)

where t1 = τ. Now, we can resort again to the mean-value theorem to rewrite the term \(a_{1}\left (x_{i},t_{1},\mathbf {\mathbf {\varphi }}(x_{i})\right )\) in the form

$$ {a_{1}(x_{i},t_{1},\mathbf{\mathbf{\varphi}}(x_{i})) = a_{1}(x_{i},t_{1},\mathbf{0}) + \sum\limits_{j=1}^{n} \frac{\partial a_{1}}{\partial u_{j}}(x_{i},t_{1}, \tilde{\mathbf{\mathbf{\varphi}}}) \varphi_{j}(x_{i}).} $$
(31)

From it, taking into account (3) and (28) , it follows

$$ \vert a_{1}(x_{i},t_{1},\mathbf{\mathbf{\varphi}}(x_{i})) \vert \le \vert a_{1}(x_{i},t_{1},\mathbf{0}) \vert + c \|\mathbf{\mathbf{\varphi}}(x_{i})\| $$

and now, using classical discrete barrier function techniques, we can prove that it holds

$$ \|U_{N,1}^{1/n}\|\le \max \{ | g_{10}(t_{1}) |, |g_{11}(t_{1})| ,\frac {(1+c\tau)\| [\mathbf{\mathbf{\varphi}}]_{N}\| + \tau \|[a_{1}(x,t_{1},\mathbf{0})]_{N} \|_{\varOmega_{N} } } {1+\beta \tau} \}, $$

and

$$ \|U_{N,k}^{1/n}\| \le \| [\mathbf{\mathbf{\varphi}}]_{N}\|, \ k=2,{\ldots} n. $$

From these last two bounds, as c > β, we can deduce the coarser but simpler bound

$$\begin{array}{l} \|\mathbf{U}_{N}^{1/n} \| \le \\ { \max\{ \|\mathbf{g}_{0}(t_{1}) \|,\|\mathbf{g}_{1}(t_{1}) \|, \frac {(1+c\tau)\| [\mathbf{\mathbf{\varphi}}]_{N}\| + \tau \|[\mathbf{A}(x,t_{1},\mathbf{0})]_{N} \|_{\varOmega_{N} } } {1+\beta \tau}\}.} \end{array} $$

Analogously, for the rest of fractional steps we deduce

$$\begin{array}{l} \|\mathbf{U}_{N}^{m+j/n} \| \le \\ {\max\{ \|\mathbf{g}_{0}(t_{m+1}) \|,\|\mathbf{g}_{1}(t_{m+1}) \|, \frac {(1+c\tau)\| \mathbf{U}_{N}^{m+(j-1)/n} \| +\tau \|[\mathbf{A}(x,t_{m+1},\mathbf{0})]_{N} \|_{\varOmega_{N} } } {1+\beta \tau}\}.} \end{array} $$

From this estimate the required result follows. □

Lemma 6 (Uniform stability)

. Assuming (3), (28) and

$$ \begin{array}{c} \left|\frac {\partial^{2} a_{j}}{\partial u_{k} \partial u_{j}}(x,t,\mathbf{u}) \right| \le c_{3}, \quad j,k=1,2,\ldots,n, \end{array} $$
(32)

two solutions of (26), obtained with τ ∈ (0,τ0] from different initial conditions \({\mathbf {U}_{N}^{0}}\) and \(\widetilde {\mathbf {U}}_{N}^{0}\), satisfy

$$ \|\mathbf{U}^{m+1}_{N}-\widetilde{\mathbf{U}}^{m+1}_{N}\|_{\varOmega_{N}}\le \left( \frac{1+c\tau}{1+\beta \tau}\right)^{n} \|{\mathbf{U}^{m}_{N}}-\widetilde{\mathbf{U}}^{m}_{N}\|_{\varOmega_{N}}, $$
(33)

where c (c > β) depends of c1,c2 and c3 and it is independent of τ, N and ε.

Proof

We proceed by induction on the fractional steps j. Let j = 1 be. On the one hand, it is obvious that \(U_{N,k}^{m+1/n}=U_{N,k}^{m}\) and \(\widetilde {U}_{N,k}^{m+1/n}=\widetilde {U}_{N,k}^{m}\) for k = 2,…,n; therefore, \(U_{N,k}^{m+1/n} - \widetilde {U}_{N,k}^{m+1/n} =U_{N,k}^{m}- \widetilde {U}_{N,k}^{m}\) for k = 2,…,n. On the other one, using (28), (32), \(U_{N,1}^{m+1/n} - \widetilde {U}_{N,1}^{m+1/n}\) can be described as the solution of a linear system of the form

$$ M_{N,1} (U_{N,1}^{m+1/n} - \widetilde{U}_{N,1}^{m+1/n})= U_{N,1}^{m}- \widetilde{U}_{N,1}^{m}+\tau\ \mathcal{O} (U_{N,1}^{m}- \widetilde{U}_{N,1}^{m}) . $$

Combining these two facts and (27), it is immediate that

$$ \|\mathbf{U}^{m+1/n}_{N}-\widetilde{\mathbf{U}}^{m+1/n}_{N}\|_{\varOmega_{N}}\le \frac{1+c\tau}{1+\beta \tau} \|{\mathbf{U}^{m}_{N}}-\widetilde{\mathbf{U}}^{m}_{N}\|_{\varOmega_{N}}. $$

Now, let us suppose that for 1 < j < n it holds

$$ \|\mathbf{U}^{m+j/n}_{N}-\widetilde{\mathbf{U}}^{m+j/n}_{N}\|_{\varOmega_{N}}\le \left( \frac{1+c\tau}{1+\beta \tau}\right)^{j} \|{\mathbf{U}^{m}_{N}}-\widetilde{\mathbf{U}}^{m}_{N}\|_{\varOmega_{N}}. $$

Again, it is obvious that \(U_{N,k}^{m+(j+1)/n} - \widetilde {U}_{N,k}^{m+(j+1)/n} =U_{N,k}^{m+j/n}- \widetilde {U}_{N,k}^{m+j/n}\) for k = 1,…,n,kj + 1. Moreover, from (28) and (32) it follows \(U_{N,j+1}^{m+(j+1)/n} - \widetilde {U}_{N,j+1}^{m+(j+1)/n}\) can be described as the solution of a linear system of the form

$$ M_{N,j+1} (U_{N,1}^{m+(j+1)/n} - \widetilde{U}_{N,j+1}^{m+(j+1)/n})= U_{N,j+1}^{m+j/n}- \widetilde{U}_{N,j+1}^{m+j/n}+\tau\ \mathcal{O} (U_{N,j+1}^{m+j/n}- \widetilde{U}_{N,j+1}^{m+j/n}) . $$

Combining these two facts and (27), it holds

$$ \|\mathbf{U}^{m+(j+1)/n}_{N}-\widetilde{\mathbf{U}}^{m+(j+1)/n}_{N}\|_{\varOmega_{N}}\le \left( \frac{1+c\tau}{1+\beta \tau}\right)^{j+1} \|{\mathbf{U}^{m}_{N}}-\widetilde{\mathbf{U}}^{m}_{N}\|_{\varOmega_{N}}, $$

which is the required result. □

To study the consistency of the time discretization, we introduce in a standard way the concept of the local error at time tm+ 1, denoted by \(\mathbf {e}_{N}^{m+1}\), as the difference \(\mathbf {U}_{N}(t_{m+1}) - \widehat {\mathbf {U}}_{N}^{m+1}\), being \(\widehat {\mathbf {U}}_{N}^{m+1} \) the result of the (m + 1)-th step of scheme (25), but changing \(\mathbf {U}_{N}^{m} \) by UN(tm). Then, the following consistency result follows.

Lemma 7

Under the smoothness and compatibility assumptions made for the data of (1), it holds

$$ \|\mathbf{e}_{N}^{m+1}\|_{\varOmega_{N}}\le C M^{-2},\quad \forall \tau \ \in (0,\tau_{0}], \ m = 0, 1, \ldots, M-1. $$
(34)

Proof

To simplify, we introduce the following notation

$$ \widetilde{\mathbf{U}}_{N}^{m+j/n} \equiv (\widetilde{U}_{N,1}^{m+j/n}, \widetilde{U}_{N,2}^{m+j/n},\ldots,\widetilde{U}_{N,n}^{m+j/n})^{T}, $$

where \(\widetilde {U}_{N,k}^{m+j/n}={U}_{N,k}(t_{m+1}), \ k=1,\ldots ,j, \ \widetilde {U}_{N,k}^{m+j/n}={U}_{N,k}(t_{m}), \ k=j+1,\ldots ,n\). Clearly, \(\widetilde {\mathbf {U}}_{N}^{m} = \mathbf {U}_{N}(t_{m})\) and \(\widetilde {\mathbf {U}}_{N}^{m+1} = \mathbf {U}_{N}(t_{m+1})\).

Using Taylor’s expansion we obtain

$$ {{U}_{N,i,1}(t_{m}) = {U}_{N,i,1}(t_{m+1}) - \tau \frac{d{U}_{N,i,1}(t_{m+1})}{d t} + \mathcal{O}(\tau^{2}), \ i=1,\ldots,N-1,} $$

where, for i = 1,…,N − 1, we have

$$\begin{array}{l} { \frac{d U_{N,i,1}(t_{m+1})}{d t} = - (\mathcal{L}_{N,\mathbf{\varepsilon},1} \mathbf{U}_{N}(t_{m+1}))_{i} - a_{1}(x_{i},t_{m+1}, \mathbf{U}_{N,i}(t_{m+1}))= }\\ {- (\mathcal{L}_{N,\mathbf{\varepsilon},1} \mathbf{U}_{N}(t_{m+1}))_{i}- a_{1}(x_{i},t_{m+1}, \mathbf{U}_{N,i}(t_{m})) -} \\ {\frac{\partial a_{1}(x_{i},t_{m+1}, \mathbf{U}_{N,i}(t_{m}))}{\partial u_{1}}\left( U_{N,i,1}(t_{m+1}) - U_{N,i,1}(t_{m})\right) + \mathcal{O}(\tau^{2}).} \end{array} $$

Therefore, \(U_{N,1}(t_{m+1})\equiv \widetilde {U}_{N,1}^{m+1/n}\) can be described as solution of

$$ \left \{ \begin{array}{l} \widetilde{U}_{N,0,1}^{m+1/n} = g_{10}(t_{m+1}),\\ {\tilde{U}_{N,i,1}^{m+1/n} + \tau(\mathcal{L}_{N,\mathbf{\varepsilon},1} \tilde{\mathbf{U}}_{N}^{m+1/n})_{i} } + {\tau \frac{\partial a_{1}}{\partial u_{1}} \left( x_{i},t_{m+1},\widetilde{\mathbf{U}}_{N,i}^{m}\right) \widetilde{U}_{N,i,1}^{m+1/n} = \widetilde{U}_{N,i,1}^{m} - }\\ \ { \tau a_{1}\left( x_{i},t_{m+1},\tilde{\mathbf{U}}_{N,i}^{m}\right) + \tau \frac{\partial a_{1}}{\partial u_{1}} \left( x_{i},t_{m+1},\tilde{\mathbf{U}}_{N,i}^{m}\right) \widetilde{U}_{N,i,1}^{m} + \mathcal{O}(\tau^{2}), i = 1,\ldots, N - 1,}\\ \ \widetilde{U}_{N,N,1}^{m+1/n} = g_{11}(t_{m+1}). \end{array}\right.$$

A similar reasoning applied to \(U_{N,j}(t_{m+1})\equiv \widetilde {U}_{N,j}^{m+1/n}, \ j=2,\ldots ,n\), permits one to deduce that \(\mathbf {U}_{N}(t_{m+1})\equiv \widetilde {\mathbf {U}}_{N}^{m+1}\) can be described as solution of the following algorithm:

$$ \begin{array}{l} \text{ For }j = 1, \ldots, n,\\ \left \{\begin{array}{l} \widetilde{U}_{N,0,j}^{m+j/n} = g_{j0}(t_{m+1}),\\ {\tilde{U}_{N,i,j}^{m+j/n} + \tau(\mathcal{L}_{N,\mathbf{\varepsilon},j} \widetilde{\mathbf{U}}_{N}^{m+j/n})_{i} } + {\tau \frac{\partial a_{j}}{\partial u_{j}} \left( x_{i},t_{m+1},\widetilde{\mathbf{U}}_{N,i}^{m+(j-1)/n}\right) \widetilde{U}_{N,i,j}^{m+j/n} = }\\ \ {\widetilde{U}_{N,i,j}^{m+(j-1)/n} - \tau a_{j}\left( x_{i},t_{m+1},\widetilde{\mathbf{U}}_{N,i}^{m+(j-1)/n}\right) + }\\ {\tau \frac{\partial a_{j}}{\partial u_{j}} \left( x_{i},t_{m+1},\widetilde{\mathbf{U}}_{N,i}^{m+(j-1)/n}\right) \widetilde{U}_{N,i,j}^{m+(j-1)/n} + \mathcal{O}(\tau^{2}), i = 1,\ldots, N-1,}\\ \ \widetilde{U}_{N,N,j}^{m+j/n} = g_{j1}(t_{m+1}), \end{array} \right.\\ \widetilde{U}_{N,i,k}^{m+j/n} = \widetilde{U}_{N,i,k}^{m+(j-1)/n}, \ i = 0,\ldots, N, k=1,\ldots,n,\ k\ne j. \end{array} $$
(35)

Finally, comparing this algorithm and the one which defines \(\widehat {\mathbf {U}}_{N}^{m+1}\), we deduce that the local error \(\mathbf {e}_{N}^{m+1}\) can be defined as the solution of

$$ \begin{array}{l} \text{ For }j = 1, \ldots, n,\\ \left \{\begin{array}{l} e_{N,0,j}^{m+j/n} = 0,\\ {e_{N,i,j}^{m+j/n} + \tau(\mathcal{L}_{N,\mathbf{\varepsilon},j} \mathbf{e}_{N}^{m+j/n})_{i} } + {\tau \frac{\partial a_{j}}{\partial u_{j}} \left( x_{i},t_{m+1},\widetilde{\mathbf{U}}_{N,i}^{m+(j-1)/n}\right) e_{N,i,j}^{m+j/n} = }\\ \ {e_{N,i,j}^{m+(j-1)/n} + \mathcal{O}(\tau^{2}), \ i = 1,\ldots, N-1,}\\ \ e_{N,N,j}^{m+j/n} = 0, \end{array} \right.\\ e_{N,i,k}^{m+j/n} = e_{N,i,k}^{m+(j-1)/n}, \ i = 0,\ldots, N, k=1,\ldots,n,\ k\ne j, \end{array} $$
(36)

being \(\mathbf {e}_{N}^{m}=0\) only in this formula; applying now (27), the required result follows. □

To conclude the analysis of the time integration process we introduce the global error in time at time level tm+ 1 as \(E_{N}^{m+1}\equiv \mathbf {U}_{N}(t_{m+1})-\mathbf {U}_{N}^{m+1}\). Then, combining the last two results, the following uniform and unconditional first order convergence result can be deduced.

Theorem 2

Under the hypotheses of Lemmas 6 and 7, the global error of the time discretization satisfies

$$ \| E_{N}^{m+1}\|_{\varOmega_{N}}\le C M^{-1}, \ m = 0,1,\ldots, M-1. $$
(37)

Finally, taking into account. the results (22) and (37), we are ready to state the main result for our numerical algorithm.

Theorem 3

Under the same hypotheses of the previous Theorem, the global errors for the fully discrete method (25) satisfy

$$ \max_{1\le m \le M, \ 1\le i \le N-1} \| \mathbf{U}_{N,i}^{m} - \mathbf{u}(x_{i},t_{m})\| \le C \left( N^{-2} \ln^{2} N+ M^{-1}\right), $$
(38)

being C a positive constant independent of ε and the discretization parameters N and M.

5 Numerical results

In this section we show the numerical results obtained with the proposed algorithm to solve successfully some problems of type (1). All results have been obtained in a PC with an Intel(R) Core(TM) i5-3470 running @3.20 GHz processor with four cores. The computations have been performed in only one core using GNU Fortran with optimization -O2. The tridiagonal linear systems involved in our method are solved by using our own implementation of the Thomas algorithm.

The data for the first test problem are

$$ \begin{array}{l} n=2,\ T=1,\\ a_{1}(x,t,\mathbf{u}) = 3 u_{1} - 2 u_{2} + t^{2} (e^{-{u_{1}^{2}}} + \sin(u_{2}) ) + t(1 - e^{3t})\sin(\pi x) ,\\ a_{2}(x,t,\mathbf{u}) = -t^{2} u_{1} (1 + \frac{1}{1+{u_{1}^{2}}}) + 3 u_{2} - 10 t^{2} (1 - \cos(2\pi x)), \\\mathbf{\mathbf{\varphi}}(x) = (1,1)^{T}, \\ \mathbf{g_{0}}(t) = (8 t^{3} - 1.5 t^{2} + t + 1,4.5t^{2} + 3 t + 1)^{T}, \ \mathbf{g_{1}}(t) =(20 t^{3} + e^{t} - 2 t^{2}, e^{3t})^{T}. \end{array} $$
(39)

Figure 1 displays the numerical approximation for both components, showing the boundary layers at x = 0 and x = 1.

Fig. 1
figure 1

Components 1 (left) and 2 (right) of problem (39) for ε1 = 10− 6, ε2 = 10− 4 with N = M = 32

As the exact solution is unknown, to approximate the maximum errors for each component uk, given by

$$ \max_{0\le m \le M } \max_{0\le i \le N}| U^{m}_{N,i,k}-u_{k}(x_{i},t_{m}) |, k=1,2, $$

we use a variant of the double-mesh principle (see [9] for instance); we calculate

$$ { d}^{N,M}_{\mathbf{\varepsilon},k} = \max_{0\le m \le M } \max_{0\le i \le N}| U^{m}_{N,i,k}- \widehat{U}^{2m}_{2N,2i,k}|, \ { d}^{N,M}_{k} = \max_{\varepsilon} { d}^{N,M}_{\mathbf{\varepsilon},k}, k=1,2, $$
(40)

where \(\{\widehat {\mathbf {U}}^{m}_{2N,j}\}\) is the numerical solution on a finer mesh \(\{(\hat x_{j},\hat {t}_{m})\}\) that consists of the mesh points of the coarse mesh and their midpoints. From the double-mesh differences computed in (40), we obtain the corresponding orders of convergence by

$$ { p_{k}}=\log ({d}^{N,M}_{\mathbf{\varepsilon},k}/{d}^{2N,2M}_{\mathbf{\varepsilon},k})/\log 2, \ { p}^{uni}_{k}=\log ({d}^{N,M}_{k}/{ d}^{2N,2M}_{k})/\log 2, k=1,2. $$
(41)

Table 1 shows the maximum errors and their corresponding orders of convergence for some values of diffusion parameter ε2, for all of the values of ε1 which belong to the set R = {ε1;ε1 = ε2,2− 2ε2,…,2− 32} and for different values of the discretization parameters N and M = N/2, taking σ0 = 2 in (12). Concretely, for each value of ε2 the first two rows show errors and numerical orders associated with u1 and the following two rows to u2. From it, we see that the order of convergence for each value of ε2 is one in the first component; in the second component, for large values of ε2 the order is also one and for small values of ε2 the order is almost two.

Table 1 Maximum errors and orders of convergence for problem (39)

To show the efficiency of our algorithm, we compare the CPU times when solving (39) with a classical method and our algorithm for some values of N,M = N/2 and fixed values of the diffusion parameters. Such classical method combines the implicit Euler method to discretize in time, which does not decouple the components of the system, with the central differences scheme defined on the same Shishkin mesh. Besides, to compute the numerical approximation of both components at each time step, a nonlinear system must be solved. For that, we use Newton’s method with the following stopping criterion

$$ {\Vert \mathbf{U}_{N}^{m,k+1} - \mathbf{U}_{N}^{m,k} \Vert \le 10^{-1} \min\{M^{-2}, M^{-1} N^{-2} \ln^{2} N\},} $$
(42)

being \(\mathbf {U}_{N}^{m,k}\) the approximation of \({\mathbf {U}_{N}^{m}}\) given by the iteration k of Newton’s method. In all cases, the initial iteration of Newton’s method is taken as \(\mathbf {U}_{N}^{m,0}=\mathbf {U}_{N}^{m-1}\).

Table 2 shows the maximum errors and their corresponding orders of convergence obtained, for the same values of the diffusion parameters as before, but now using the classical method. If we compare Tables 1 and 2, we observe that the computed errors and the numerical orders of convergence for both methods are similar. In this example comparing most of the cells, mainly those ones related to not very small values of ε2, the classical method give smaller errors for the first component and the new method gives smaller errors for the second one. Nevertheless, in other examples the opposite occurs. The important fact to note here is that both methods always show a similar behavior with respect to the order of uniform convergence with respect to the diffusion parameters.

Table 2 Maximum errors and orders of convergence for problem (39) using the classical method

Table 3 shows the required CPU time in seconds using our algorithm and the classical method described previously. From it, we see that our algorithm is faster than the classical one as it was expected.

Table 3 CPU time for problem (39) with ε2 = 2− 16 and ε1 = 2− 20

For a second test, we have chosen a system with three equations, given by

$$ \left\{\begin{array}{l} \begin{array}{l} \frac{\partial u_{1}}{\partial t} - \varepsilon_{1} \frac{\partial^{2} u_{1}}{\partial x^{2}} + 4 u_{1} - u_{2} - u_{3} + \cos(u_{2} + u_{3}) - 2 t (x - x^{2} + \sin(\pi x)) - 4 = 0, \\ \frac{\partial u_{2}}{\partial t} - \varepsilon_{2} \frac{\partial^{2} u_{2}}{\partial x^{2}} - (u_{1} + \sin(u_{1})) + 7 u_{2} + \sin^{2}(u_{2}) - (u_{3} - \cos(u_{3})) - (1 + x t) = 0, \\ \frac{\partial u_{3}}{\partial t} - \varepsilon_{3} \frac{\partial^{2} u_{3}}{\partial x^{2}} - u_{1} - u_{2} + 4 u_{3} - \sin(u_{3}) + 8 (e^{t} - 1) x = 0, \end{array}\\ \mathbf{u}(0,t) = \mathbf{u}(1,t) = (10 t \sin(t), 10 \cos(t) (1 - e^{-t}), 10\sin^{2}(t))^{T}, \ t \in [0,1], \\ \mathbf{u}(x,0) = 0, \ x \in [0,1], \end{array}\right. $$
(43)

whose exact solution is again unknown. Figure 2 displays the numerical approximation for the three components, showing boundary layers at x = 0 and x = 1.

Fig. 2
figure 2

Components of problem (43) for ε1 = 10− 6ε2 = 10− 4,ε3 = 10− 2, with N = 36,M = 32 (left up u1, right up u2, bottom u3)

Now, in general, three overlapping boundary layers appear in the exact solution of the continuous problem; because of that, the Shishkin mesh is constructed as follows. We define three transition parameters by

$$ \begin{array}{c} \sigma_{\varepsilon_{3}} = \min{\left \{1/4, \sigma_{0} \sqrt{{\varepsilon_{3}}}\ln {N} \right \}}, \sigma_{\varepsilon_{2}} = \min{\left \{\sigma_{\varepsilon_{3}}/2, \sigma_{0} \sqrt{\varepsilon_{2}}\ln {N} \right\}}, \\ \sigma_{\varepsilon_{1}} = \min{\left \{\sigma_{\varepsilon_{2}}/2, \sigma_{0} \sqrt{\varepsilon_{1}}\ln {N} \right\}}, \end{array} $$
(44)

and, taking N a positive integer multiple of 12, the grid points are given by

$$ x_{i}= \left\{ \begin{array}{ll} ih_{\varepsilon_{1}}, & i=0,\ldots, N/12, \\ x_{N/12}+(i-N/12)h_{\varepsilon_{2}}, & i=N/12+1,\ldots,N/6, \\ x_{N/6}+(i-N/6)h_{\varepsilon_{3}}, & i=N/6+1,\ldots,N/4, \\ x_{N/4}+(i-N/4)H, & i=N/4+1,\ldots,3N/4, \\ x_{3N/4}+(i-3N/4)h_{\varepsilon_{3}}, & i=3N/4+1,\ldots,10N/12, \\ x_{10N/12}+(i-10N/12)h_{\varepsilon_{2}}, & i=10N/12+1, \ldots, 11N/12,\\ x_{11N/12}+(i-11N/12)h_{\varepsilon_{1}}, & i=11N/12+1, \ldots, N, \end{array} \right. $$

where \(h_{\varepsilon _{1}}=12\sigma _{\varepsilon _{1}}/N,\ h_{\varepsilon _{2}}=12(\sigma _{\varepsilon _{2}}-\sigma _{\varepsilon _{1}})/N, h_{\varepsilon _{3}}=12(\sigma _{\varepsilon _{3}}-\sigma _{\varepsilon _{2}})/N, \ H=2(1-2\sigma _{\varepsilon _{3}})/N\).

We use again the double-mesh principle to estimate the maximum errors. Table 4 shows the maximum errors and their corresponding numerical orders of convergence for the three components, choosing some values of ε3, of the discretization parameters N and M = N/2 and σ0 = 2 in (44). Besides ε2 covers the set R2 = {ε2;ε2 = ε3,2− 2ε3,…,2− 22} and ε1 the set R1 = {ε1;ε1 = ε2,2− 2ε2,…,2− 26}. For each value of ε3, the first and second rows correspond to errors and orders for the first component, the third and the fourth ones to the second component and the fifth and sixth ones to the third component. From it, we observe uniform convergence of almost second order.

Table 4 Maximum errors and orders of convergence for problem (43)

We compare again the CPU times of our method and the same classical method as in the first example, when solving the problem (43) for some values of N,M = N/2 and fixed values for the diffusion parameters εi, i = 1,2,3. We have used the same stopping criterion given in (42) for Newton’s method. Table 5 shows the required CPU time in seconds using our algorithm and the classical method. From it, we see a speedup for our algorithm respect to the classical one, due to the increase of n, as it was expected.

Table 5 CPU time for problem (43) with ε3 = 2− 12,ε2 = 2− 16 and ε1 = 2− 20

6 Conclusions

In this work, we have designed and analyzed an efficient and uniformly convergent numerical method for solving semilinear parabolic singularly perturbed systems of reaction-diffusion type. The method combines central differences on Shishkin meshes to discretize in space and a splitting linearly implicit method to integrate in time, in such way that only small linear tridiagonal systems must be solved to advance in time. The numerical algorithm has uniform and unconditional convergence of first order in time and almost second order in space. Some numerical experiences show its approximation qualities as well as its computational advantages, compared with other classical choice. Such advantages are more remarkable when the number of components of the system is large.