Grid equidistribution for reaction-diffusion problems in one dimension

Grid equidistribution for reaction-diffusion problems
in one dimension ∗
Natalia Kopteva†, Niall Madden‡ and Martin Stynes§
March 12, 2004
Abstract
The numerical solution of a linear singularly-perturbed reaction-diffusion two-point boundary
value problem is considered. The method used is adaptive movement of a fixed number of mesh
points by equidistribution of a user-chosen monitor function. A partly heuristic argument based
on truncation error analysis leads to several suitable monitor functions, but also shows that
the standard arc-length monitor function is unsuitable for this problem. Numerical results are
provided to bear out these theoretical statements.
1
Introduction
We consider the linear reaction-diffusion two-point boundary value problem
Lu = −ε2 u00 (x) + b(x)u(x) = f (x) for x ∈ (0, 1),
u(0) = u(1) = 0.
(1.1)
where b, f ∈ C 4 [0, 1] and 0 < β < b(x) ≤ b̄ on [0, 1].
When ε is small, the solution u of (1.1) typically exhibits boundary layers at both ends of the
interval [0, 1]. Thus the problem is singularly perturbed. As a consequence, standard numerical
methods for (1.1) may yield inaccurate results. Special numerical methods for (1.1) whose convergence behaviour is uniform in the parameter ε have been discussed in the literature—see, e.g.,
[17, 18, 20]. While special methods give satisfactory numerical results for (1.1), nevertheless some
care is needed in extending them to more general situations such as a system of reaction-diffusion
two-point boundary value problems [14, 16]. For this reason there is great current interest in the
use of adaptive numerical methods for singularly perturbed differential equations in general, as such
methods are intrinsically more general in their nature. Thus the aim of the present paper is to
discuss and analyse an adaptive numerical method for (1.1).
Our adaptive method is based on the idea of grid equidistribution of a user-chosen monitor
function. This technique has already been applied to convection-diffusion problems by several
∗
Research supported by the Boole Centre for Research in Informatics, National University of Ireland, Cork, Ireland
Department of Mathematics and Statistics, University of Limerick, Limerick, Ireland; [email protected]
This paper was written while the first author was visiting the Department of Mathematics, National University
of Ireland, Cork, Ireland
‡
Department of Mathematics, National University of Ireland, Galway, Ireland; [email protected]
§
Department of Mathematics, National University of Ireland, Cork, Ireland; [email protected]
†
researchers (e.g., [3, 9, 12, 15]). In those papers, the numerical algorithm proceeded by equidistributing the arc-length of the computed solution and gave satisfactory results. Nevertheless, for
reaction-diffusion problems such as (1.1), using arc-length equidistribution to drive an adaptive
algorithm may yield a solution that is much less accurate than that generated by the equidistribution of an alternative measure of the computed solution—compare Tables 5.1 and 5.2. This fact is
implicitly recognised by Beckett and Mackenzie [4], where the monitor function used for (1.1) is not
the arc-length monitor function used in earlier papers [3, 15] by the same authors on convectiondiffusion problems, but no reason is given for this change. Our new analysis throws light on why
the arc-length monitor function is unsuitable for (1.1)— see Remark 4.2—and also enables us to
design new monitor functions that yield accurate solutions of (1.1).
We shall use a standard difference scheme on a mesh that is initially uniform, but whose nodes
will later move adaptively. The structure of our paper is as follows: some facts about the solution
u of (1.1) and stability bounds for the computed solution u N (on an arbitrary mesh) are listed
in §2, then in §3 a truncation error analysis yields bounds on the error u − u N in terms of the
mesh spacing. These bounds are used in §4.1 to provide strong heuristic evidence for the choice
of monitor function to be equidistributed in an adaptive algorithm. This Section also shows that
the arc-length monitor function is an unsatisfactory choice for (1.1). Numerical results using an
adaptive algorithm are given in §5 to show that the rate of convergence predicted by our analysis
holds true in practice for those monitor functions that we advocate. Furthermore, this algorithm
can easily be applied to semilinear analogues of (1.1); see §5.3 for an example.
Notation. Throughout the paper, C denotes a generic positive constant that is independent of
ε and of the mesh. It may take different values in different places. When C is subscripted, it is a
fixed constant that is independent of ε and of the mesh. The notation K is used to denote a generic
quantity that depends on the mesh but is bounded by a fixed constant for all meshes. It may take
different values in different places.
2
Preliminary results
The differential operator L satisfies a maximum principle since b(·) > 0. Hence (1.1) has a unique
solution u. Furthermore, an easy extension of [17, Chapter 6, Lemma 1] gives the following bounds
for the derivatives of u.
Lemma 2.1. Let i be a positive integer. Let f (x), b(x) ∈ C 4 [0, 1] and let u be the solution of (1.1).
Then for 0 ≤ k ≤ 4 and for all x ∈ [0, 1],
where e(x, β) =
|u(k) (x)| ≤ C[1 + ε−k e(x, β)]
√
e− βx/ε + e− β(1−x)/ε .
√
For our numerical method we consider arbitrary meshes {x 0 , x1 , . . . , xN } with 0 = x0 < x1 <
· · · < xN = 1, where N , the discretization parameter, is a positive integer. For i = 1, . . . , N , let
hi = xi − xi−1 be the local mesh size. Set h̄i = (hi + hi+1 )/2 for each i and H = maxi hi .
Given a mesh function v = {vi }N
0 , define the discrete difference operators
D − vi = (vi − vi−1 )/hi ,
Dvi = (vi+1 − vi )/h̄i
and δ 2 vi = DD − vi .
N
The computed solution uN = {uN
i }i=0 is required to satisfy the standard finite difference discretization of (1.1):
2 2 N
N
LN uN
i := −ε δ ui + bi ui = fi for i = 1, . . . , N − 1,
2
N
uN
0 = uN = 0,
(2.1)
where bi = b(xi ) and fi = f (xi ). Then LN satisfies a discrete maximum principle and it follows
that (2.1) has a unique solution uN .
For mesh functions {vi }, the following mesh-dependent norms will be used:
|v|1,∞ := maxi |D − vi |,
kvk∞ := maxi |vi |,
kvk−1,∞ := min
max
C∈R i=1,...,N −1
In fact it can be shown [1] that
kvk−1,∞
1
=
2
kvk1,∞;ε2 := ε2 |v|1,∞ + kvk−1,∞ ,
N −1
X
vj h̄j − C .
j=i
N −1
N −1
X
X
vj h̄j .
vj h̄j + max min i
i
(2.2)
j=i
j=i
We now list some stability properties of the discretization (2.1). First, the discrete maximum
principle implies the standard stability result
kuN k∞ ≤ kf k∞ /β.
(2.3)
P
PN
−
−
Recall that b ∈ C 4 [0, 1]. This implies that N
i=1 hi |D bi | ≤ C1 and
i=1 hi |D (1/bi )| ≤ C2 for
some constants C1 and C2 . The second inequality in the next bound is a stability result, while the
first inequality shows that that result is sharp.
Lemma 2.2. [1, Theorem 3.1] The solution u N of (2.1) satisfies
C3 kf k−1,∞ ≤ kuN k1,∞;ε2 ≤ C4 kf k−1,∞ ,
where C3 = (b̄ + C1 + 2)−1 , C4 = 3C2 + 5/β.
The next Lemma will enable us to interpolate between the bounds on |u N |1,∞ and kuN k−1,∞
that are implicit in Lemma 2.2.
Lemma 2.3. [1, Lemma 2.4] Let {vi } be an arbitrary mesh function such that v 0 = vN = 0. Let
µ > 0 be fixed. Then
kvk∞ ≤ 2 µ|v|1,∞ + µ−1 kvk−1,∞
Taking µ = ε in Lemma 2.3 and combining this inequality with Lemma 2.2, we get
Theorem 2.1. [1, Theorem 3.2] The computed solution satisfies the stability inequality
kuN k∞ ≤ 4C4 ε−1 kf k−1,∞ .
3
Truncation error
In this section we begin by imitating the incisive truncation error analysis that Tihonov and
Samarskii [23] (see also [11]) used to prove the supraconvergence of central difference schemes
on nonuniform meshes. This is combined with the stability results of §2 to produce in Corollary
3.1 an error estimate suitable for our needs.
Let ei = uN
i − u(xi ), for i = 0, . . . , N , denote the error at x i in the computed solution. Then
LN ei = r i
for i = 1, . . . , N − 1,
e0 = eN = 0,
where ri := fi − LN ui is the truncation error at xi . Set xi−1/2 = (xi−1 + xi )/2 for each i.
3
Lemma 3.1. For i = 1, . . . , N − 1,
ri = (ε/6)D εh2i u000 (ηi ) + Kε2 h̄2i u(4) (ξi ),
(3.1)
ri = (Lu)i − LN ui = ε2 (δ 2 ui − u00i ) = ε2 D(D − ui − u0i−1/2 ) + ε2 (Du0i−1/2 − u00i ),
(3.2)
where ηi ∈ (xi−1 , xi ) and ξi ∈ (xi−1/2 , xi+1/2 ).
Proof. For each i,
where u00i = u00 (xi ) and u0i−1/2 = u0 (xi−1/2 ). For the first term here we have
D − ui − u0i−1/2 = (h2i /24)u000 (η̂i ),
(3.3)
where η̂i ∈ (xi−1 , xi ). Introducing the notation w := u0 and using Taylor series expansions, we can
rewrite the second term in (3.2) as
Du0i−1/2 − u00i = Dwi−1/2 − wi0 = (hi+1 − hi )wi00 /4 + Kh̄2i w000 (ξ̂i ),
where ξ̂i ∈ (xi−1/2 , xi+1/2 ). But hi+1 − hi = (h2i+1 − h2i )/(2h̄i ) and
00
wi00 = wi+1/2
− (hi+1 /2)w000 (ξi+ ),
00
wi00 = wi−1/2
+ (hi /2)w000 (ξi− ),
where ξi± ∈ (xi−1/2 , xi+1/2 ). Hence for some ξi ∈ (xi−1/2 , xi+1/2 ),
00
00
Du0i−1/2 − u00i = (h2i+1 wi+1/2
− h2i wi−1/2
)/(8h̄i ) + Kh̄2i w000 (ξi )
00
) + Kh̄2i w000 (ξi )
= (1/8)D(h2i wi−1/2
2 (4)
= (1/8)D(h2i u000
i−1/2 ) + Kh̄i u (ξi ).
Combining this with (3.2) and (3.3), for some η i ∈ (xi−1 , xi ) we get
2 2 (4)
ri = ε2 D h2i u000 (η̂i )/24 + ε2 D(h2i u000
i−1/2 /8) + Kε h̄i u (ξi )
= (ε/6)D εh2i u000 (ηi ) + Kε2 h̄2i u(4) (ξi ).
This completes the proof.
Theorem 3.1. There exists a constant C such that
n
kek∞ ≤ C max max εh2i |u000 (x)| + max
i
i
x∈[xi−1 ,xi ]
max
x∈[xi−1/2 ,xi+1/2 ]
o
h̄2i 1 + |(bu)00 (x)| .
(3.4)
Proof. The discrete solution uN can be written as a sum of two mesh functions, where each
corresponds to one of the terms in (3.1). Applying Theorem 2.1 to the first and (2.3) to the second
of these functions, we see that
n
o
kek∞ ≤ C max max εh2i |u000 (x)| + max
max
ε2 h̄2i |u(4) (x)| .
i
i
x∈[xi−1 ,xi ]
x∈[xi−1/2 ,xi+1/2 ]
Differentiating (1.1) yields ε2 u(4) = (bu)00 − f 00 , and the desired result follows.
In fact one can rewrite (3.4) in terms of lower-order derivatives:
4
Corollary 3.1. There exists a constant C such that
n
kek∞ ≤ C max max h2i |u00 (x)| + max
i
i
x∈[xi−1 ,xi ]
max
x∈[xi−1/2 ,xi+1/2 ]
o
h̄2i 1 + |(bu)00 (x)| .
(3.5)
p
p
Proof. Set b0 = b(0) and b1 = b(1). A standard asymptotic analysis shows that the solution
u(x) of (1.1) can be written as
f (x) f (0) −b0 x/ε f (0)b0 (0) b0 x
−
e
+
+ x e−b0 x/ε
(3.6)
u(x) =
b(x)
b(0)
4b2 (0)
ε
f (1) −b1 (1−x)/ε f (1)b0 (1) b1 (1 − x)
−
e
+
+
1
−
x
e−b1 (1−x)/ε + ε2 R(x),
b(1)
4b2 (1)
ε
where R(0) and R(1) are exponentially small and
LR(x) = g(x, ε),
(3.7)
with
00
x 2 b00 (η ) f (0)b0 (0)b0 (η ) b x
f
1
2
0
(x) +
g(x, ε) = −
−
+
+ 1 e−b0 x/ε
b
ε
2
4b2 (0)
ε
00
1−x 2
b (η3 ) f (1)b0 (1)b0 (η4 ) b1 (1 − x)
+
+ 1 e−b1 (1−x)/ε ,
−
+
ε
2
4b2 (1)
ε
and η1 (x), η2 (x) ∈ (0, x) while η3 (x), η4 (x) ∈ (1 − x, 1). These assertions can be verified by applying
L to the right-hand side of (3.6) and writing down Taylor expansions of b(x) − b(0).
It is easy to see that |g(x, ε)| ≤ C for 0 ≤ x ≤ 1 and 0 < ε ≤ 1. By [18, Lemmas 2.2 and 2.3],
|R(i) (x)| ≤ Cε−i
for 0 ≤ x ≤ 1 and i = 0, 1.
It then follows from (3.7) and differentiating (3.7) that
|R(i) (x)| ≤ Cε−i
for 0 ≤ x ≤ 1 and i = 2, 3.
(3.8)
Differentiating (3.6) three times and invoking (3.8), we see that for some constant C,
ε|u000 (x)| ≤ C(1 + |u00 (x)|)
for 0 ≤ x ≤ 1.
(3.9)
This inequality, max{h2i , h2i+1 } ≤ 4h̄2i , and Theorem 3.1 yield (3.5).
The proof of (3.9) can easily be modified to yield
Corollary 3.2. There exists a constant C such that
h
i
ε1/2 |u000 (x)|1/2 ≤ C 1 + |u000 (x)|1/3
4
4.1
for 0 ≤ x ≤ 1.
Monitor functions
The choice of monitor function
Monitor functions are used by many authors (see, e.g., [4, 5, 6, 7, 9, 12, 19, 20]) to drive adaptive
algorithms that produce layer-resolving meshes in solving differential equations. We first give a
5
general description of this methodology, then use the theoretical results of §3 to choose monitor
functions that are appropriate for (1.1).
A monitor function M (x) is an arbitrary non-negative function defined on Ω. A mesh {x i } is
said to equidistribute M (·) if
xi
1
M (x) dx =
N
xi−1
Z
Z
1
M (x) dx
for i = 1, . . . , N.
(4.1)
0
Adaptive algorithms based on M aim to construct a mesh that equidistributes M . This is done
by computing a solution {uN
i } on the current mesh, forming an approximation (e.g., a piecewise
constant function) M̃ (·) of M (·) on this mesh, then choosing new mesh points that equidistribute
M̃ on [0,1].
N
Thus the equidistribution problem is to find {(x i , uN
i )}, with the {ui } computed from the {xi }
by means of (2.1), such that
N
1 X
hi M̃i =
hj M̃j
N
for i = 1, 2, . . . , N.
(4.2)
j=1
It is significant here that both the {x i } and {uN
i } are a priori unknown. Consequently, even though
(1.1) is linear, the equidistribution problem requires the simultaneous solution of (2.1) and (4.2)
and so is nonlinear.
For fixed N , the accuracy of a solution computed on an equidistributing mesh depends strongly
on the choice of M (·). When an upwinded finite difference scheme is used to solvepa convectiondiffusion analogue of (1.1), one should use the arc-length monitor function M (x) = 1 + (u0 (x))2 ,
as is shown in [9], which is based on the a posteriori bound of [8, Theorem 3.2]. As solutions of
reaction-diffusion problem have layers not dissimilar to those encountered in convection-diffusion
problems, one might expect that the same monitor function would be suitable for (1.1), but we
shall see that this is not true; a fundamentally different monitor function must be used if one is to
expect a solution of the equidistribution problem to be an accurate approximation of the solution
of (1.1).
A rigorous theoretical proof that a given monitor function will yield a satisfactory numerical
method for (1.1) is extremely complicated—see the analysis in [9] for the convection-diffusion case.
Thus we confine ourselves here to a more heuristic argument based on the a priori bounds of
Theorem 3.1 and Corollary 3.1. (A posteriori bounds such as those of [8] are needed for a rigorous
argument.) To be precise, we make the reasonable assumption that the following discrete analogues
of (3.4) and (3.5) hold true and give sharp bounds on the error in the computed solution:
2
3 N
(4.3)
kek∞ ≤ C max h̄2i 1 + |δ 2 (bi uN
i )| + hi ε|δ ui |
i
and
2
N
kek∞ ≤ C max h̄2i 1 + |δ 2 uN
i | + |δ (bi ui )| ,
i
− 2 N
where δ 3 uN
i = D δ ui .
(4.4)
Thus to make the error kek∞ as small as possible, one should aim to construct a mesh that
minimizes the right-hand side of (4.3) or (4.4). Let’s consider (4.4) first. On our optimal mesh the
sum
2
N
(4.5)
h̄2i 1 + |δ 2 uN
i | + |δ (bi ui )|
6
should be approximately independent of i, as otherwise one could adjust the mesh to decrease
the right-hand side of (4.4). (This resembles the construction of Bakhvalov’s mesh [2], where the
truncation error is approximately the same at all nodes.) One might regard this as requiring
h2i 2
N
2 N
2
N
1 + |δ 2 uN
i−1 | + |δ (bi−1 ui−1 )| + |δ ui | + |δ (bi ui )|
2
(4.6)
to be approximately independent of i.
To achieve (4.6) in the context of monitor functions, one could for each i associate the value
1/2
Mi = 1 + |δ 2 uN
+ |δ 2 (buN )i |1/2
i |
(4.7)
with the node xi , then define the piecewise constant M̃i = (Mi−1 + Mi )/2 on the interval [xi−1 , xi ].
For then on an equidistributing mesh, for all i and j we have h i M̃i = hj M̃j , so h2i M̃i2 = h2j M̃j2 ,
which agrees with the conclusion above that the sum in (4.5) should be essentially independent of
i. The scaling of (4.7), where a square root is taken compared with (4.4),P
is chosen so that
R 1 the first
N
term there is independent of the mesh. Furthermore, with this scaling,
h
M̃
≈
j
j
j=1
0 M (x) dx
neither
blows
up
nor
approaches
zero
when
ε
→
0
(Lemma
2.1
shows
that
the
layer
component
of
R 1 00
r
0 |u (x)| dx has this property only when r = 1/2).
Remark 4.1. Many equivalent monitor functions M i follow from (4.4), and we have chosen the
most easily implemented one.
Similarly, (4.3) leads to the choice of monitor function
1/2
Mi = 1 + ε1/2 |δ 3 uN
+ |δ 2 (buN )i |1/2 .
i |
(4.8)
The presence of the constant 1 in (4.7) and (4.8), which follows naturally from our truncation
error analysis, prevents “mesh starvation” (i.e., too coarse a mesh) on any subinterval of [0,1] where
u00 ≈ 0.
Remark 4.2. (The arc-length monitor function) For constant b(·), one can express kek ∞ in terms
of first-order derivatives by imitating the argument of Corollary 3.1 and invoking the inequality
ε|u00 (x)| ≤ C(1 + |u0 (x)|), obtaining
(4.9)
kek∞ ≤ C max
max
h̄2i 1 + ε−1 |u0 (x)| .
i
x∈[xi−1 ,xi+1 ]
To justify the use of the arc-length monitor function one would need an inequality of the form
kek∞ ≤ C max
max
h̄2i 1 + |u0 (x)|2 .
(4.10)
i
x∈[xi−1 ,xi+1 ]
√
But (4.9) √
is weaker than (4.10): near x = 0 we expect that |u 0 (x)| ≈ Cε−1 e− b(0)x/ε , so |u0 (x)|2 ≈
C 2 ε−2 e−2 b(0)x/ε , which decays more rapidly than ε−1 |u0 (x)|. Thus one would not expect the arclength monitor function to yield satisfactory numerical results.
4.2
An alternative monitor function
Beckett and Mackenzie [4] consider monitor functions based on a Shishkin-type decomposition of
the solution, and a user-chosen parameter that is tuned by numerical experiment. We now describe
their approach.
7
Decompose the solution to (1.1) as u(x) = v(x)+w(x), where v(x) = f (x)/b(x) is the solution to
the reduced equation and w(x) is a layer component that decays sharply away from the boundary.
The monitor function of [4] is based on
M (x) = α(m) + |w 00 (x)|1/m ,
where
α(m) := mε
(m−2)/m
and m > 0 is a parameter to be determined.
v(0)1/m
v(1)1/m
+
,
b(0)(2−m)/2m
b(1)(2−m)/2m
(4.11a)
(4.11b)
In [4] it is shown that, in an idealised situation where the mesh is chosen a priori to equidistribute
−2 for all i if m ≥ 2.
a known solution of (1.1), the computed solution satisfies |u(x i ) − uN
i | ≤ CN
Our choice (4.7) corresponds to taking m = 2. The numerical results in [4], on the other hand, use
m = 3 so α = C5 ε1/3 for some C5 . Then (4.11) yields
M (x) = C5 ε1/3 + |w00 (x)|1/3 = ε1/3 C5 + ε−1/3 |w00 (x)|1/3 ;
(4.12)
here the external multiplicative factor ε 1/3 (which is independent of x) will have no effect on mesh
equidistribution, so the monitor function is the same
as M (x) =R C 5 + ε−1/3 |w00 (x)|1/3 , and now
PN −1
1
00
the scaling of w ensures that as ε → 0, the sum j=1 h̄j Mj ≈ 0 M (x) dx neither blows up nor
approaches zero.
The approach of (4.7) and (4.8) has several advantages over (4.11):
• There is no user-chosen, problem-dependent term.
• Implementing (4.11) entails generating an approximation of the layer component w(x). While
this is not difficult, it introduces an unorthodox extra step into computing an approximation
of u.
• The formulae (4.7) and (4.8) are easier to implement.
• The motivation for these formulae is quite clear, and the crucial scaling relative to ε is
transparent from the analysis of §3.
When the solution of (1.1) is a pure layer function, some detailed calculations [4, §3.3] of the
properties of the mesh points show that for a particular choice of α, the constant m is related to
the location of the “transition point” on a Shishkin mesh. We now present a shorter argument that
leads to a related conclusion but without any hypothesis on α.
An equidistributing mesh for the solution u of (1.1) can be interpreted as a mapping x(ξ) from
the computational coordinate ξ ∈ [0, 1] to the physical coordinate x ∈ [0, 1] that is defined by
Z x(ξ)
Z 1
M (t) dt = ξ
M (t) dt.
(4.13)
0
0
Thus x(i/N ) = xi for each i and x(ξ) is a strictly increasing function.
If the solution u of (1.1) is a pure layer function associated with x = 0, any equidistributing
mesh will be graded, i.e., hi < hi+1 for all i. Equivalently (assuming that x(ξ) is differentiable),
x0 (ξ) is a strictly increasing function. By the mean value theorem, there exists a point ξ̂ ∈ (0, 1)
such that x0 (ξ̂) = 1, and the strictly increasing property of x 0 implies that this point is unique. Set
x̂ = x(ξ̂). We call x̂ the transition point of the mesh. Intuitively, it is where the mesh changes from
fine (hi < 1/N ) to coarse (hi > 1/N ).
8
Lemma 4.1. Suppose that the monitor function (4.11a) is used to equidistribute the mesh for (1.1),
where we assume that
√
u(x) = e− b(0) x/ε
(4.14)
is a pure layer function. (The form chosen is typical for layer components of solutions of (1.1).)
Then for small ε, the transition point of this mesh satisfies
!
p
b(0)
mε
ln
.
(4.15)
x̂ ≈ p
mε
b(0)
Proof. Differentiating (4.13) with respect to ξ then substituting (4.11a), we obtain
α + |u00 (x)|1/m
dx
= α + Φ,
dξ
R1
where Φ = 0 |u00 (t)|1/m dt. Now dx/dξ = 1 at the transition point x̂, so |u 00 (x̂)|1/m = Φ. Both sides
of this equation can be evaluated using (4.14). This yields
b(0)
ε2
i.e.,
e−
1/m
e
√
−
√
b(0) x̂/(εm)
b(0) x̂/(εm)
=
Z
1
0
b(0)
ε2
1/m
e−
√
b(0) t/(εm)
dt,
i
√
mε h
mε
=p
1 − e− b(0)/(εm) ≈ p
,
b(0)
b(0)
where the exponentially small term was neglected. Taking the logarithm of both sides, we get
(4.15).
The result of Lemma 4.1 is of the form O(ε| ln ε|), instead of the O(ε ln N ) obtained in [4],
because it deals only with the continuous problem (1.1) and does not involve the discretization
used to solve (1.1). The Lemma shows that the main effect of m is to act as a multiplier of the
location of the transition point of the mesh, which in the case of Shishkin and Bakhvalov meshes
is well known to affect the quality of computed solutions; see [21] and [4, Fig. 2].
5
Numerical results
In order to validate the theoretical results above, we apply the monitor functions of §4.1 to several
test problems. In §5.1 we consider a simple linear problem for which the true solution is available.
In §5.2 we look at a problem with a variable coefficient of the zero-order term. Results for a
semilinear problem are presented in §5.3.
In order to compute the equidistributed mesh and corresponding solution, we use a variant of
the algorithm of [9, § 2]. When the monitor function M i depends only on estimates for the second
derivative of the computed solution (as in (4.7) and (4.11)), we proceed as follows:
1. Let {x(0) }N
i=0 be an initial uniform mesh with N intervals. Choose a constant γ > 1 that
controls when the algorithm terminates.
2. For a given mesh {x(k) } and computed solution u(k) (x), set
(k)
(k)
M̃i
(k)
M
+ Mi
= i−1
2
9
for i = 1, . . . N,
(5.1)
(k)
where Mi is the value of the monitor function computed at the ith interior node of the
(k)
(k)
(k)
(k)
current mesh, and we set M0 = M1 and MN = MN −1 .
(k)
3. Set hi
(k)
= xi
(k)
− xi−1 for each i. If
(k)
(k)
max hi M̃i
i=1,...,N
≤
N
γ X (k) (k)
hj M̃j ,
N
(5.2)
j=1
then we have finished. Otherwise
P
(k)
(k)
4. Set L0 = 0 and Li = ij=0 hj M̃j for i = 1, . . . , N . Set Yi = iLN /N for i = 0, . . . , N .
Interpolate to the points (Li , xi ). Then the new mesh {x(k+1) } is obtained by evaluating this
interpolant at the Yi for i = 0, . . . , N . Return to Step 2.
Remark 5.1. In [9] piecewise linears are used for the interpolation in Step 4 of the algorithm. The
numerical experiments below use instead piecewise cubic Hermite interpolation; this yields meshes
that are more smoothly graded and the algorithm then takes fewer iterations to converge.
If, as in (4.8), an estimate for the third derivative is required, we modify the algorithm slightly.
− 2 N
3 N
3 N
3 N
To estimate u000 (xi−1 + xi )/2 , set δ 3 uN
i = D δ ui for i = 2, . . . , N − 1 and δ u1 = δ u2 , δ uN =
3
N
δ uN −1 . Then for (4.8) compute
(k)
Mi
= 1 + |δ 2 (buN )i |1/2
and M̂i
(k)
on the current mesh, and change the definition of M̃i
(k)
(k)
M̃i
(k)
1/2
= ε1/2 |δ 3 uN
i |
in (5.1) to
(k)
M
+ Mi
= i−1
2
(k)
+ M̂i
for i = 1, . . . N.
(5.3)
In general we imitate [9] by taking γ = 2. The consequences of taking alternative values are
investigated in Table 5.3.
5.1
Example 1: a linear problem
The first problem that we consider is:
−ε2 u00 + u = ex
on (0, 1),
u(0) = 0, u(1) = 0.
(5.4)
The solution u(x) of (5.4) can easily be written down and exhibits layers near x = 0 and x = 1.
Recalling that uN is the solution of the discrete problem (2.1), we compute the errors
keN k := max |u(xi ) − uN
i |,
i
where the xi are the points in the mesh ΩN such that (ΩN , uN ) satisfies the equidistribution problem
for a given monitor function. Rates of convergence are computed in the usual way:
ρN := log keN k/keN +1 k / log(2).
10
First, consider an implementation of the arc-length monitor function similar to that used for
convection-diffusion problems: in (5.3), set
(k)
(k)
Mi−1 = Mi
= 0,
(k)
M̂i
= 1 + |D − uN
i |
for each i.
(5.5)
Table 5.1 displays the errors and the rates of convergence for the computed solutions. The
errors are large relative to the monitor functions we shall test later, and second-order convergence
is not achieved. The quantity EN in each column is the maximum error seen in that column; it is
an indicator of the robustness of the algorithm as ε varies over a wide range.
ε2
1
ρN
1e-04
ρN
1e-08
ρN
1e-12
ρN
1e-16
ρN
EN
N = 26
7.45e-06
2.00
2.38e-02
1.20
3.72e-02
0.15
3.43e-02
-0.25
7.31e-02
1.01
7.31e-02
N = 27
1.86e-06
2.00
1.04e-02
1.24
3.35e-02
1.09
4.06e-02
1.34
3.62e-02
1.06
4.06e-02
N = 28
4.65e-07
2.00
4.41e-03
1.56
1.57e-02
1.39
1.61e-02
1.65
1.74e-02
1.23
1.74e-02
N = 29
1.16e-07
2.00
1.50e-03
1.93
6.02e-03
1.17
5.15e-03
-0.02
7.40e-03
0.55
7.40e-03
N = 210
2.91e-08
2.00
3.92e-04
1.97
2.68e-03
5.28
5.20e-03
1.04
5.04e-03
0.93
5.20e-03
N = 211
7.27e-09
2.00
1.00e-04
1.98
6.91e-05
-0.64
2.53e-03
1.09
2.65e-03
1.06
2.65e-03
N = 212
1.82e-09
2.54e-05
1.08e-04
1.19e-03
1.27e-03
1.27e-03
Table 5.1: Errors and rates of convergence using arc-length monitor function (5.5)
Next, in Table 5.2, the errors in the computed solutions for the monitor function (4.7) are displayed. They are much smaller than those of Table 5.1 and, for a given N , do not vary significantly
with ε. Some variation in the results is to be expected since the equidistribution problem (4.2) is
not solved exactly; instead, we merely require that (5.2) be satisfied.
ε2
1
ρN
1e-02
ρN
1e-04
ρN
1e-06
ρN
1e-08
ρN
1e-10
ρN
1e-12
ρN
1e-14
ρN
1e-16
ρN
EN
N = 26
7.45e-06
2.00
3.76e-04
1.99
3.94e-04
1.21
1.21e-03
1.73
2.03e-03
2.46
1.43e-03
1.35
1.42e-03
1.14
1.96e-03
2.44
1.48e-03
1.94
2.03e-03
N = 27
1.86e-06
2.00
9.48e-05
2.00
1.70e-04
1.35
3.64e-04
2.19
3.68e-04
2.10
5.61e-04
2.49
6.41e-04
2.50
3.62e-04
2.26
3.86e-04
1.23
6.41e-04
N = 28
4.65e-07
2.00
2.38e-05
2.00
6.66e-05
1.95
7.97e-05
3.97
8.56e-05
1.92
9.99e-05
2.07
1.14e-04
2.17
7.55e-05
0.97
1.65e-04
2.90
1.65e-04
N = 29
1.16e-07
2.00
5.94e-06
2.00
1.72e-05
1.88
5.10e-06
0.89
2.26e-05
1.90
2.38e-05
2.11
2.52e-05
1.74
3.85e-05
2.23
2.21e-05
1.07
3.85e-05
N = 210
2.91e-08
2.00
1.49e-06
2.00
4.67e-06
1.94
2.76e-06
1.60
6.07e-06
2.22
5.52e-06
1.90
7.57e-06
2.14
8.19e-06
2.25
1.05e-05
2.06
1.05e-05
N = 211
7.27e-09
2.00
3.72e-07
2.00
1.22e-06
1.92
9.12e-07
1.61
1.31e-06
3.71
1.48e-06
2.03
1.72e-06
1.86
1.72e-06
1.94
2.52e-06
2.25
2.52e-06
N = 212
1.82e-09
9.29e-08
3.22e-07
2.99e-07
9.95e-08
3.62e-07
4.75e-07
4.49e-07
5.30e-07
5.30e-07
Table 5.2: Errors and rates of convergence using monitor function (4.7)
The choice of γ in the stopping criterion (5.2) determines how closely we approximate solving
(4.2). In [9] the authors take γ = 2. When computing solutions to (5.4), a value of γ closer to
11
1 usually yields results that are slightly more accurate and vary even less with ε, but many more
iterations may be required. This is demonstrated in Table 5.3. For γ = 2, 1.3 and 1.2 we show both
the error in the computed solutions to (5.4) and k ? , the number of iterations that the algorithm
took to satisfy (5.2). For all other Tables of §5 the value γ = 2 is used.
ε2
1e-08
1e-09
1e-10
1e-11
1e-12
1e-13
1e-14
1e-15
1e-16
γ=2
6.07e-06
6.30e-06
5.52e-06
6.75e-06
7.57e-06
7.84e-06
8.19e-06
1.04e-05
1.05e-05
k?
3
4
4
4
4
5
5
5
5
γ = 1.3
4.90e-06
6.30e-06
5.52e-06
6.75e-06
4.56e-06
6.75e-06
7.41e-06
7.03e-06
6.35e-06
k?
4
4
4
4
10
7
7
13
9
γ = 1.2
4.90e-06
6.30e-06
4.73e-06
4.82e-06
4.70e-06
6.44e-06
6.70e-06
6.65e-06
6.35e-06
k?
4
4
6
6
16
9
9
25
9
Table 5.3: Errors with N = 1024 and various γ ; k ? is the number of iterations of the algorithm
1/2 000
1/2
00 (x)|1/2 . Corollary
The monitor function (4.8) corresponds
to M (x)
= 1 + ε |u (x)| + |u 000
1/2
000
1/2
000
1/3
3.2 states that ε |u (x)|
≤ C 1 + |u (x)|
, and Lemma 2.1 yields ku (x)k∞ ≤ C[1 +
−3
1/2
ε e(x, β)]. Thus the explicit reference to Rε
can be removed, while maintaining the scaling
1
requirement that the corresponding term in 0 M (x) dx tends neither to zero nor infinity as ε → 0,
by replacing ε1/2 |u000 (x)|1/2 by |u000 (x)|1/3 . That is, instead of (4.8), one can in (5.3) try
Mi = 1 + |δ 2 (buN )i |1/2 ,
1/3
M̂i = |δ 3 uN
.
i |
(5.6)
Errors in computed solutions to (5.4) using both (4.8) and (5.6) are shown in Table 5.4.
ε2
1
ρN
1e-02
ρN
1e-04
ρN
1e-06
ρN
1e-08
ρN
1e-10
ρN
1e-12
ρN
1e-14
ρN
1e-16
ρN
N = 28
4.65e-07
2.00
2.22e-05
2.00
4.24e-05
1.92
5.17e-05
2.00
6.81e-05
1.60
9.95e-05
2.46
1.07e-04
2.23
9.60e-05
2.17
8.28e-05
1.87
Monitor Function (4.8)
N = 29 N = 210
1.16e-07 2.91e-08
2.00
2.00
5.56e-06 1.39e-06
2.00
2.00
1.12e-05 2.84e-06
1.98
1.99
1.29e-05 2.17e-06
2.57
1.59
2.25e-05 3.40e-06
2.73
2.05
1.80e-05 5.06e-06
1.83
1.76
2.28e-05 4.98e-06
2.19
1.88
2.13e-05 5.00e-06
2.09
2.13
2.27e-05 5.26e-06
2.11
2.18
N = 211
7.27e-09
2.00
3.47e-07
2.00
7.12e-07
2.00
7.19e-07
1.88
8.22e-07
2.00
1.49e-06
2.29
1.36e-06
2.08
1.14e-06
1.64
1.16e-06
2.06
N = 28
4.65e-07
2.00
1.41e-05
2.00
2.81e-05
1.88
3.52e-05
1.38
2.99e-05
1.76
3.70e-05
1.58
3.92e-05
2.08
4.61e-05
2.34
4.17e-05
1.93
Monitor Function (5.6)
N = 29 N = 210 N = 212
1.16e-07 2.91e-08 7.27e-09
2.00
2.00
2.00
3.53e-06 8.83e-07 2.21e-07
2.00
2.00
2.00
7.65e-06 1.95e-06 4.91e-07
1.97
1.99
2.00
1.35e-05 1.25e-06 4.67e-07
3.44
1.42
1.82
8.84e-06 2.24e-06 5.60e-07
1.98
2.00
2.00
1.24e-05 2.26e-06 5.59e-07
2.46
2.02
1.99
9.27e-06 2.27e-06 5.63e-07
2.03
2.01
2.00
9.14e-06 2.29e-06 5.69e-07
1.99
2.01
2.02
1.10e-05 2.32e-06 5.65e-07
2.24
2.04
2.00
Table 5.4: Errors and rates of convergence using monitor functions (4.8) and (5.6)
Finally, results are given in Table 5.5 for the discrete analogue
Mi = α(m) + |δ 2 wi |1/m
(5.7)
of the monitor function (4.11), where w i = ui − f (xi )/b(xi ). Recall that m ≥ 2 is a user-chosen
parameter. This monitor function works reasonably well but its accuracy and rate of convergence
depend strongly on the choice of m.
12
ε2
1
ρN
1e-02
ρN
1e-04
ρN
1e-06
ρN
1e-08
ρN
1e-10
ρN
1e-12
ρN
1e-14
ρN
1e-16
ρN
N = 28
4.65e-07
2.00
7.34e-06
1.99
7.64e-05
1.94
1.26e-04
2.00
1.17e-04
1.77
3.44e-04
2.57
3.18e-04
2.09
3.98e-04
2.77
4.91e-04
1.85
m=2
N = 29
1.16e-07
2.00
1.84e-06
2.00
1.99e-05
1.99
3.16e-05
2.23
3.43e-05
1.98
5.78e-05
1.55
7.45e-05
1.09
5.83e-05
1.38
1.37e-04
2.32
N = 210
2.91e-08
2.00
4.61e-07
2.00
5.03e-06
2.00
6.74e-06
1.84
8.68e-06
2.00
1.97e-05
2.79
3.51e-05
2.92
2.24e-05
2.42
2.73e-05
1.96
N = 28
4.65e-07
2.00
6.42e-05
2.00
2.31e-05
1.71
5.02e-05
0.08
5.46e-05
2.09
5.48e-05
2.02
5.73e-05
2.08
5.67e-05
2.05
5.81e-05
1.97
m=3
N = 29
1.16e-07
2.00
1.61e-05
2.00
7.08e-06
1.92
4.76e-05
3.61
1.28e-05
1.96
1.35e-05
2.01
1.35e-05
2.02
1.37e-05
2.01
1.48e-05
2.10
N = 210
2.91e-08
2.00
4.02e-06
2.00
1.87e-06
1.98
3.91e-06
2.56
3.31e-06
2.00
3.36e-06
2.01
3.35e-06
2.00
3.39e-06
2.00
3.46e-06
2.00
Table 5.5: Errors and rates of convergence using (4.11) for m = 2 and m = 3.
5.2
Example 2: non-constant coefficient
Consider (1.1), but with a non-constant coefficient of the zero-order term:
b(x) = exp(sin(πx)).
(5.8)
We apply our algorithm using the monitor functions s (4.7), (4.8) and (5.6). The true solution
of the problem is unavailable, so in each case the computed solution is compared with the piecewise
linear interpolant to the solution computed on a piecewise uniform Shishkin mesh (see, e.g., [17,
Chap. 6]) that uses N = 217 points.
The results are presented in Table 5.6. Although there is some variation in the results obtained
by the different monitor functions, it is clear that the rates of convergence are approximately 2,
and that the errors do not depend strongly on ε.
5.3
Example 3: a nonlinear problem
Consider the semilinear reaction-diffusion problem
−εu00 + p(x, u) = 0,
u(0) = u(1) = 0.
(5.9)
Sun and Stynes [22] used a Shishkin mesh to solve this problem, with certain hypotheses on p(·, ·)
that permitted (5.9) to have multiple solutions. They showed that their numerical method was
almost second-order convergent. More recently, Kopteva and Stynes [10] studied (5.9) on Shishkin
and Bakhvalov meshes.
The numerical test problem in [10, 22] is
ε2 u00 − (u2 + u − 0.75)(u2 + u − 3.75) = 0,
u(0) = 0, u(0) = 0.
(5.10)
It has two solutions that are stable in the sense of [22]. We now apply the equidistribution approach
to compute an approximation to the stable solution u that, away from the boundary, satisfies
u ≈ −1.5.
13
ε2
1
ρN
1e-02
ρN
1e-04
ρN
1e-06
ρN
1e-08
ρN
1e-10
ρN
1e-12
ρN
1e-14
ρN
1e-16
ρN
Mi
N = 28
6.92e-07
2.00
1.93e-05
1.99
7.20e-05
1.87
8.45e-05
3.66
1.30e-04
2.12
1.24e-04
1.64
2.08e-04
2.50
1.35e-04
1.35
1.81e-04
2.62
given in (4.7)
N = 29 N = 210
1.73e-07 4.31e-08
2.00
2.01
4.84e-06 1.21e-06
2.00
2.00
1.97e-05 5.08e-06
1.95
1.99
6.69e-06 3.60e-06
0.89
1.43
2.99e-05 6.54e-06
2.19
1.99
3.96e-05 7.95e-06
2.32
2.04
3.68e-05 7.46e-06
2.30
1.78
5.32e-05 1.17e-05
2.19
2.21
2.94e-05 1.37e-05
1.10
2.09
Mi
N = 28
6.92e-07
2.00
1.07e-05
1.99
3.94e-05
1.92
6.35e-05
2.30
9.34e-05
2.45
8.19e-05
1.96
1.07e-04
2.14
8.22e-05
1.98
1.06e-04
2.45
given in (4.8)
N = 29 N = 210
1.73e-07 4.31e-08
2.00
2.01
2.68e-06 6.69e-07
2.00
2.01
1.04e-05 2.65e-06
1.97
1.96
1.29e-05 2.18e-06
2.57
1.59
1.71e-05 4.85e-06
1.82
2.24
2.11e-05 6.90e-06
1.61
2.67
2.44e-05 4.54e-06
2.43
1.90
2.08e-05 4.88e-06
2.10
2.07
1.94e-05 5.32e-06
1.87
2.24
Mi
N = 28
6.92e-07
2.00
4.71e-06
2.00
2.99e-05
1.87
4.24e-05
1.36
3.52e-05
1.70
4.57e-05
2.03
4.53e-05
1.98
5.72e-05
2.30
4.78e-05
1.81
given in (5.6)
N = 29 N = 210
1.73e-07 4.31e-08
2.00
2.01
1.18e-06 2.94e-07
2.00
2.02
8.17e-06 2.13e-06
1.94
1.89
1.65e-05 1.52e-06
3.44
1.35
1.08e-05 2.79e-06
1.96
1.93
1.12e-05 2.55e-06
2.13
1.81
1.15e-05 2.83e-06
2.02
1.94
1.16e-05 2.89e-06
2.01
1.96
1.36e-05 2.83e-06
2.27
1.92
Table 5.6: Errors and rates of convergence for problem (1.1) with b(x) as given in (5.8)
The true solution is unknown so we take as our reference solution U (x), the piecewise linear
interpolant to the numerical solution to (5.10) computed on a Bakhvalov mesh with N = 2 16
intervals. See [10, §3.4.1] for details of how to construct this mesh. The error in each computed
solution is then
kei k := max |U (xi ) − uN
i |.
i
Table 5.7 gives the results obtained using the monitor functions (4.7), (4.8) and (5.6). In those
formulae, the expression |δ 2 (bu)i )|1/2 is replaced by |δ 2 p(xi , ui )|1/2 .
The method is quite successful; in particular for larger values of N , the errors are robust with
respect to ε, and the convergence rates are close to 2. Although the errors and rates in some
columns of Table 5.7 do vary with ε, this variation is greatly diminished if one chooses γ much
closer to 1 (at the cost of increasing the number of iterations taken by the algorithm).
6
Conclusions
From the numerical results of §5, we see that each of the monitor functions (4.7), (4.8) and (5.6)
can be successfully applied to a variety of singularly perturbed reaction-diffusion problems.
For the linear problems of §5.1 and §5.2, the results obtained from the monitor function (5.6)
are more accurate than those of (4.7) and (4.8) and are less dependent on the singular perturbation
parameter. For the semilinear problem of §5.3, there is little to choose between the methods.
Among these monitor functions, as (4.7) is the easiest to implement, we recommend it as the best
choice for reaction-diffusion problems in general.
14
ε2
1
ρN
1e-02
ρN
1e-04
ρN
1e-06
ρN
1e-08
ρN
1e-10
ρN
1e-12
ρN
1e-14
ρN
1e-16
ρN
Mi
N = 28
1.66e-06
2.00
4.31e-05
1.96
2.52e-05
1.35
5.32e-05
2.13
6.03e-05
2.25
6.33e-05
2.26
1.41e-04
2.90
6.31e-05
1.01
4.90e-05
1.40
given in (4.7)
N = 29 N = 210
4.15e-07 1.04e-07
2.00
2.00
1.11e-05 2.79e-06
1.99
1.98
9.88e-06 2.74e-06
1.85
1.94
1.22e-05 3.03e-06
2.00
2.93
1.27e-05 3.42e-06
1.89
2.16
1.32e-05 3.29e-06
2.01
2.09
1.88e-05 3.64e-06
2.37
2.18
3.14e-05 6.08e-06
2.37
2.81
1.86e-05 4.75e-06
1.97
1.98
Mi
N = 28
1.66e-06
2.00
3.42e-05
1.97
2.40e-05
1.60
3.81e-05
2.03
4.32e-05
1.89
4.53e-05
2.19
6.28e-05
2.22
3.85e-05
0.90
4.05e-05
2.02
given in (4.8)
N = 29 N = 210
4.15e-07 1.04e-07
2.00
2.00
8.72e-06 2.20e-06
1.99
1.99
7.93e-06 2.18e-06
1.87
1.94
9.34e-06 2.37e-06
1.98
2.00
1.16e-05 2.64e-06
2.14
2.14
9.92e-06 2.71e-06
1.87
1.94
1.35e-05 3.80e-06
1.82
2.40
2.07e-05 3.16e-06
2.71
2.23
9.99e-06 5.06e-06
0.98
2.47
Mi
N = 28
1.66e-06
2.00
4.20e-05
1.96
2.69e-05
1.52
4.77e-05
2.01
4.92e-05
2.01
5.52e-05
2.18
5.80e-05
2.06
1.08e-04
3.01
5.43e-05
0.76
given in (5.6)
N = 29 N = 210
4.15e-07 1.04e-07
2.00
2.00
1.08e-05 2.73e-06
1.98
1.98
9.41e-06 2.65e-06
1.83
1.92
1.18e-05 2.98e-06
1.99
1.99
1.22e-05 3.00e-06
2.03
1.99
1.21e-05 3.03e-06
2.00
2.00
1.39e-05 3.10e-06
2.16
2.03
1.35e-05 3.34e-06
2.01
2.10
3.20e-05 3.24e-06
3.30
2.03
Table 5.7: Errors and rates of convergence for (5.10)
References
[1] V.B. Andreev, On the uniform convergence on arbitrary meshes of the classical difference scheme
for a one-dimensional singularly perturbed reaction-diffusion problem, Ž. Vyčisl. Mat. i Mat.
Fiz. 3 (2004) 474–489 (in Russian).
[2] N. S. Bakhvalov, Towards optimization of methods for solving boundary value problems in the
presence of a boundary layer, Zh. Vychisl. Mat. Mat. Fiz., 9 (1969), 841–859 (in Russian).
[3] G. Beckett and J. A. Mackenzie, Convergence analysis of finite difference approximations to a
singularly perturbed boundary value problem, Appl. Numer. Math., 35 (2000) 87–109.
[4] G. Beckett and J. A. Mackenzie, On a uniformly accurate finite difference approximation of a
singularly perturbed reaction-diffusion problem using grid equidistribution, J. Comput. Appl.
Math., 131 (2001) 381–405.
[5] W. Cao, W. Huang and R. D. Russell, A study of monitor functions for two-dimensional adaptive
mesh generation, SIAM J. Sci. Comput. 20 (1999) 1978–1994.
[6] T.-F. Chen and H.-D. Yang, Numerical construction of optimal adaptive grids in two spatial
dimensions, Computers Math. Applic. 39 (2000) 101–120.
[7] W. Huang and D. M. Sloan, A simple adaptive grid in two dimensions, SIAM J. Sci. Comput.
15 (1994) 776–797.
[8] N. Kopteva, Maximum norm a posteriori error estimates for a one-dimensional convectiondiffusion problem, SIAM J. Numer. Anal., 39 (2001) 423–441.
[9] N. Kopteva and M. Stynes, A robust adaptive method for a quasilinear one-dimensional
convection-diffusion problem, SIAM J. Numer. Anal. 39 (2001) 1446–1467.
15
[10] N. Kopteva and M. Stynes, Numerical analysis of singularly perturbed nonlinear reactiondiffusion problem with multiple solutions. Preprint No. 18 (2003), Boole Centre for Research in
Informatics, National University of Ireland, Cork, 2003; http : //www.bcri.ucc.ie/BCRI 18.pdf
[11] H.-O. Kreiss, T.A. Manteuffel, B. Swartz, B. Wendroff and A.B. White, Supra-convergent
schemes on irregular grids, Math. Comp. 47 (1986) 537–554.
[12] T. Linß, Uniform pointwise convergence of finite difference schemes using grid equidistribution,
Computing 66 (2001) 27–39.
[13] T. Linß, The necessity of Shishkin decompositions, Appl. Math. Lett. 14 (2001) 891–896.
[14] T. Linß and N. Madden, A finite element analysis of a coupled system of singularly perturbed
reaction-diffusion equations, Appl. Math. Comput. 148 (2004) 869–880.
[15] J. A. Mackenzie, Uniform convergence analysis of an upwind finite-difference approximation
of a convection-diffusion boundary value problem on an adaptive grid, IMA J. Numer. Anal. 19
(1999) 233–249.
[16] N. Madden and M. Stynes, A uniformly convergent numerical method for a coupled system
of two singularly perturbed linear reaction-diffusion problems, IMA J. Numer. Anal. 23 (2003)
627–644.
[17] J. J. H. Miller, E. O’Riordan and G. I. Shishkin, Solution of Singularly Perturbed Problems
with ε-uniform Numerical Methods — Introduction to the Theory of Linear Problems in One
and Two Dimensions, World Scientific, Singapore, 1996.
[18] E. O’Riordan and M. Stynes, A uniformly accurate finite element method for a singularly
perturbed one-dimensional reaction-diffusion problem, Math. Comp. 47 (1986) 555–570.
[19] Y. Qiu and D. M. Sloan, Analysis of difference approximations to a singularly perturbed twopoint boundary value problem on an adaptive grid, J. Comput. Appl. Math. 101 (1999) 1–25.
[20] H.-G. Roos, M. Stynes and L. Tobiska, Numerical Methods for Singularly Perturbed Differential Equations, Volume 24, Springer Series in Computational Mathematics, Springer-Verlag,
Berlin, 1996.
[21] M. Stynes and L. Tobiska, A finite difference analysis of a streamline diffusion method on a
Shishkin mesh, Numer. Algorithms 18 (1998) 337–360.
[22] G. Sun and M. Stynes, A uniformly convergent method for a singularly perturbed semilinear
reaction-diffusion problem with multiple solutions, Math. Comput. 65 (1996) 1085–1109.
[23] A.N. Tihonov and A.A. Samarskiı̆, Homogeneous difference schemes on irregular meshes, Ž.
Vyčisl. Mat. i Mat. Fiz. (1962) 812–832 (in Russian).
16