A Discontinuous Galerkin Method For Two-Phase Ow I

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 21

A discontinuous Galerkin method for two-phase

ow in a porous medium enforcing H(div) velocity


and continuous capillary pressure
Todd Arbogast, Mika Juntunen, Jamie Pool, and Mary F. Wheeler
April 16, 2012
Abstract
We solve the slightly compressible two-phase ow problem in a
porous medium with capillary pressure. The problem is solved using
the implicit pressure, explicit saturation method (IMPES), and the
convergence is accelerated with iterative coupling of the equations.
We use discontinuous Galerkin to discretize both the pressure and the
saturation equation. We propose two improvements, namely projecting
the ux to the mass conservative H(div)-space and penalizing the jump
in capillary pressure in the saturation equation. We also discuss the
need and use of slope limiters, and the choice of primary variables in
discretization. The methods are veried with numerical examples. The
results show that the proposed modications stabilize the method and
improve the solution considerably.
1 Introduction
We consider the problem of slightly compressible two-phase ow in a porous
medium, which is the simplest equation for subsurface ow in carbonate
reservoir modeling. Solving this problem eectively and accurately is req-
uisite for solving the more elaborate models of, e.g., CO
2
sequestration or
enhanced oil recovery [5]. We assume that the each phase has its own pres-
sure, so there is capillary pressure between the phases. Taking this eect into
account is essential for the validity of the model in subsurface applications
[9]. We describe our problem in more detail in section 2.1.
In this article we solve the system using the implicit pressure, explicit
saturation method (IMPES) [4]. In this approach the problem is decoupled
to pressure and saturation equations, and then solved sequentially. To re-
duce the error of decoupling, and thereby allow larger time steps, we use
iterative coupling to solve the pair of decoupled equations. The eectivness
of this iterative coupling was demonstrated in, e.g., [6, 12, 11, 10]. We recall
the IMPES algorithm in section 2.2. We also discuss the delicate issue of
1
choosing the reference pressure for the problem, a choice which turns out to
have a profound eect on the solution when capillary pressure is present.
We choose to discretize the equations using discontinuous Galerkin (DG)
for both of the decoupled equations. This DG-DG-method is briey de-
scribed in section 3, see, e.g., [11, 7] for more detailed derivation. Another
popular method is to solve the pressure equation using mixed nite elements
(MFE), and use DG only for the saturation equation. For more details on
the MFE-DG-method, see, e.g., [13, 2]. In section 3.2 we show how the
ux coming from the DG-DG approach can be post processed into a locally
mass conservative H(div)-space ux, imitating the MFE-DG approach. This
post processing stabilizes the saturation part of the problem in our DG-DG
approach.
In section 3.3, we propose a new technique for maintaining the continuity
of capillary pressure. We introduce a penalty for the jump in capillary pres-
sure in the saturation equation. In the case of only one capillary pressure
curve throughout the domain, this forces the saturation to be continuous,
which is physically correct. In the case of multiple capillary pressure curves,
this improvement allows the saturation to jump at the interface between
distinct capillary pressure curves, and instead enforces the physically rele-
vant continuity of capillary pressure. This method is able to capture the
discontinuity of saturation even when the absolute dierence in capillary
pressures is small. Our approach has similarities with [8].
Finally, in section 4 we demonstrate the numerical performance of our
proposed method using several examples. The examples are computed with
a research code developed at the Center for Subsurface Modeling [1] of the
University of Texas at Austin.
2 Problem formulation
In this section we recall the two-phase Darcy problem modeling subsurface
ow and the IMPES algorithm used for solving the non-linear equations.
The presentation is brief; for more details see, e.g., [4].
2.1 The continuous problem
Our model problem is for slightly compressible two-phase ow. The mass
conservation equation states that

i
S
i
t
+ u
i
= f
i
, i = w, n, (1)
in which is the porosity,
i
is the density, S
i
is the saturation, u
i
is the
ux, f
i
is the source/sink, and subscripts w and n stand for the wetting and
2
non-wetting phases respectively. Darcys law gives
u
i
=
k
i
K
i

i
(p
i

i
gD), (2)
in which k
i
is the relative permeability, K is the permeability,
i
is the vis-
cosity, p
i
is the pressure, g is the gravity, and D denes the direction of
gravity (being the gradient of depth D). The equations are coupled nonlin-
early through relative permeability, capillary pressure, and density. Relative
permeability is a known function of saturation
k
i
= k
i
(S
w
). (3)
The capillary pressure function models the pressure dierence between the
wetting and non-wetting phases. It is also a known function of saturation
p
c
= p
n
p
w
= p
c
(S
w
). (4)
We assume slight compressibility, so

i
=
i
(p
i
) =
ref,i
e
c
i
p
i
, (5)
in which c
i
is the known compressibility coecient and
ref,i
is the reference
density.
The model assumes that all the pores are lled with uid,
S
w
+ S
n
= 1, (6)
and in what follows, we assume that porosity and viscosity
i
are constants
for simplicity of exposition.
2.2 The IMPES algorithm with iterative coupling
The IMPES algorithm decouples the equations and solves them sequentially.
For completeness we present the IMPES equations below. The rst step is
to sum the mass conservation equations (1) for both phases
(u
w
+u
n
) = f
w
+ f
n

_

w
S
w
t
+

n
S
n
t
_
. (7)
In practice, the mass conservation equations (1) are scaled with the reference
density
ref,i
. If we suppose for the moment that the densities were constant,
equation (6) shows that the last term above disappears, i.e.,

w
S
w
t
+

n
S
n
t
= 0, (8)
and hence
(u
w
+u
n
) = f
w
+ f
n
. (9)
3
With the slight compressibility assumption, the last term in (7) is indeed
very small and is often neglected. For simplicity, we will assume in the
derivation that this term vanishes. However, we emphasize that in our
numerical examples, this term is present.
Next we modify (9) by using Darcys law (2) and the denition of cap-
illary pressure (4) to obtain
(
t
Kp
w
+
n
Kp
c
()
t
gKD) = f
t
(10)
in which
i
= k
i

i
/
i
,
t
=
w
+
n
, ()
t
=
w

w
+
n

n
, and f
t
=
f
w
+f
n
. The subscript t stands for total. Above we have chosen the wetting
phase pressure p
w
to be the primary variable. We will discuss the choice of
reference pressure in more detail at the end of this section.
Assume we know the solution of the pressure and saturation at time t
k
,
that is, we know p
k
w
and S
k
w
. To compute the pressure p
k+1
w
at time t
k+1
we
time lag the saturation to compute
k
i
and p
k
c
, and time lag pressure to get
density
k
i
. Rearranging the terms gives
(
k
t
Kp
k+1
w
) = f
t
+ (
k
n
Kp
k
c
()
k
t
gKD), (11)
in which all the unknowns are on the left and the right hand side in known.
This is the equation for the implicit pressure step of the IMPES algorithm,
although we will modify it to the form (13) later.
Once we have the wetting phase pressure at time t
k+1
, we solve for
the saturation at time t
k+1
using an explicit time stepping in the mass
conservation equation (1)

k+1
w
S
k+1
w
t
= f
w
u
k+1
w
+

k
w
S
k
w
t
, (12)
in which t = t
k+1
t
k
and the velocity u
k+1
w
is computed using Darcys
law (2). How to compute the velocity properly is discussed in more detail
in section 3.2. The previous equation (12) is the explicit saturation step of
the IMPES algorithm.
2.3 Enhancing the IMPES algorithm
In this section we discuss enhancements to the IMPES algorithm to make it
more eective in practice. The enhancements are iterative coupling, taking
shorter saturation steps, and choosing the reference pressure.
Iterative coupling. The IMPES algorithm decouples the non-linear equa-
tions and solves them sequentially; hence, the results are sometimes inaccu-
rate. There may be a loss of mass balance and a mismatch in the acquired
pressure and saturation. If either of these is detected a simple improvement
is to iterate by redoing the time step using the new pressure and saturation
in equation (11). The pseudo code for this algorithm is:
4
1. Given p
k
w
and S
k
w
, solve for p
k+1
k
using (11);
2. Given p
k+1
w
and S
k
w
, solve for S
k+1
w
using (12);
3. Check for convergence; and if converged, continue to next time step,
and otherwise reset p
k+1
w
p
k
w
and S
k+1
w
S
k
w
, and go to step 1.
In the numerical examples presented in this article, we always use this iter-
ative coupling technique.
Shorter saturation steps. In reservoir simulation it is often the case that
the saturation part of the IMPES algorithm has much more rapid changes
than the pressure part. In fact, the pressure is almost independent of time
if the wells are operated with constant pressure or constant ow. Therefore
it is well-known to be useful to take shorter time steps in the saturation
equation. For example, if the time step in the pressure equation is t,
one can take N saturation time steps of length t/N before taking a new
pressure step. In the intermediate steps, the pressure is interpolated linearly.
Taking several saturation steps can speed up the simulation considerably
since the saturation equation is explicit, which is much easier to solve than
the implicit pressure equation. In the numerical examples presented in this
paper we have used roughly 10 saturation steps for each pressure step. This
has been a favorable ratio in terms of how long it takes to run the simulation.
Choosing the reference pressure. In the IMPES algorithm described
above we have used the wetting phase pressure and saturation as the refer-
ence variables. The choice between the reference saturations seems irrelevant
by (6). One can simply choose the saturation that is easiest to implement.
However the choice of reference pressure is a more delicate issue. If one
chooses the non-wetting phase pressure as the reference pressure, equation
(11) becomes
(
k
t
Kp
k+1
n
) = f
t
+ (
k
w
Kp
k
c
()
k
t
gKD). (13)
The dierence between equations (11) and (13) is in the capillary pres-
sure term, involving
k
n
p
k
c
for the wetting phase and
k
w
p
k
c
for the
non-wetting phase reference pressure. Near the residual saturation for the
wetting phase, that is, at S
w,r
, the relative permeability for the wetting
phase vanishes, k
w
(S
w,r
) = 0, and the relative permeability for the non-
wetting phase assumes its highest value, k
n
(S
w,r
) 1. At the same time
the capillary pressure, however, tends to innity, p
c
(S
w,r
) . Combin-
ing these observations, shows that the term
k
n
p
k
c
, needed when using the
wetting phase pressure as reference, tends to innity. However, the term

k
w
p
k
c
, needed when using the non-wetting phase as reference pressure,
stays bounded. The conclusion is that, numerically, it is better to use the
non-wetting phase pressure as the reference pressure. We will study the
eect of reference pressure with numerical examples in section 4.
5
3 Discretization
3.1 DG-DG two-phase ow
We present the discrete form of the problem (1)-(6) in this section, in the
form of (11) and (12) using the discontinuous Galerkin, (DG), method. For
a more detailed derivation of DG methods for ows in porous media see,
e.g., [11, 7] and the citations therein.
Assume we are solving the problem in the domain that has piecewise
smooth boundary . For simplicity, we assume the boundary is divided
into three non-overlapping pieces:
in
denotes the inow boundary where
both pressure p
in
w
and saturation S
in
w
are dened,
out
denotes the outow
boundary where only pressure p
out
w
needs to be given, and
0
denotes the
no-ow boundary where the total normal ow is zero.
We assume the domain is divided into a set of non-overlapping ele-
ments E, and the collection of elements, the mesh, is denoted by T
h
, where
h denotes the maximum diameter of the elements. We assume the mesh is
quasi-uniform, i.e. the mesh diameter is bounded from below. We denote by
G
h
the collection of edges/faces of the mesh T
h
. The subset G
int
h
denotes the
internal edges, and the subsets G
in
h
, G
out
h
, and G
0
h
denote the inow, outow
and no-ow boundary edges, respectively.
The approximation spaces for the solution are
W
l
= {v L
2
() : v|
E
P
l
(E) , E T
h
}, (14)
meaning that we use piecewise polynomials of order l and the space is dis-
continuous between elements. In the numerical examples, we use space W
1
for pressure and either W
0
or W
1
for the saturation.
On an edge e between elements E
1
and E
2
, {{v}} = (v
1
+v
2
)/2 denotes
the average, [[v]] = v
1
v
2
denotes the jump, denotes the outer normal of
element E
1
. On a boundary edge, denotes the outer normal of the domain.
Now we are ready to form the weak form of the pressure step (11). Find
6
p
k+1
w
W
l
, l 1 such that

ET
h
_

k
t
Kp
k+1
w
, q
_
E
+

eG
int
h
_

{{
k
t
Kp
k+1
w
}}, [[q]]
_
e

{{
k
t
Kq }}, [[p
k+1
w
]]
_
e
+

h
e

[[
k
t
K

p
k+1
w
]], [[q]]
_
e
_
+

eG
in
h
G
out
h
_

k
t
Kp
k+1
w
, q
_
e

k
t
Kq , p
k+1
w
_
e
+

h
e

k
t
K

p
k+1
w
, q
_
e
_
=

ET
h
_
_
f
t
, q
_
E

_

k
n
Kp
k
c
()
k
t
gKD, q
_
E
_
+

eG
int
h

{{(
k
n
Kp
k
c
()
k
t
gKD) }}, [[q]]
_
e
+

eG
in
h
G
out
h
_

k
n
Kp
k
c

_

_
k
t
gKD
_
, q
_
e
(15)
+

eG
in
h
_

k
t
Kq , p
in
w
_
e
+

h
e

k
t
K

p
in
w
, q
_
e
_
+

eG
out
h
_

k
t
Kq , p
out
w
_
e
+

h
e

k
t
K

p
out
w
, q
_
e
_
(16)
for all q W
l
, > 0 is the stability parameter, K

=
T
K is the
permeability in the normal direction, and parameter = 1, 0, 1 denes the
method. The three values of theta correspond to NIPG, IIPG, and SIPG
1
,
respectively.
Formally, the weak form for the saturation step (12) is: Find S
k+1
w
W
m
,
m 0, such that

ET
h
_

k+1
w
S
k+1
w
t
, z
_
E
=

ET
h
_
_

k
w
S
k
w
t
, z
_
E
+
_
f
w
, z
_
E

_
u
k+1
w
, z
_
E
_
(17)
for all z W
m
. Since we only solve for the wetting phase pressure, p
k+1
w
,
we do not directly have the wetting phase velocity u
k+1
w
. Instead, we need
to construct the velocity using Darcys law (2). To this end, we integrate
1
The acronyms stand for non-symmetric (N), incomplete (I), and symmetric (S) interior
penalty Galerkin (IPG).
7
by parts in the last term to obtain

ET
h
_

k+1
w
S
k+1
w
t
, z
_
E
=

ET
h
_
_

k
w
S
k
w
t
, z
_
E
+
_
f
w
, z
_
E
+
_
u
k+1
w
, z
_
E
_

eG
int
h
G
in
h
G
out
h
u
k+1
w
, z
e
. (18)
Inside the elements we can use Darcys law, but on the edges e we need to
take into account the discontinuities, that is, the numerical ux. On internal
edges, the ux is computed as
u
k+1
w
= (
k
w
K)
up
{{(p
k+1
w

k+1
w
gD) }} + (

t
)
up

h
e
[[p
k+1
w
]], (19)
in which ()
up
means that the quantities are upwinded. Upwinding means
that on an edge e, the values are computed using the data of the outow
element. On in/outow boundaries the ux is computed in similar manner;
the dierence is that we do not need to use the mean value, and that the jump
is computed against the given boundary data. Using (19), the saturation
step (17) becomes

ET
h
_

k+1
w
S
k+1
w
t
, z
_
E
(20)
=

ET
h
_
_

k
w
S
k
w
t
, z
_
E
+
_
f
w
, z
_
E
+
_
(
k
w
K)
up
(p
k+1
w

k+1
w
gD), z
_
E
_

eG
int
h
_
(
k
w
K)
up
{{(p
k+1
w

k+1
w
gD) }} +
_

t
_
up

h
e
[[p
k+1
w
]], z
_
e

eG
in
h
_
(
k
w
K)
up
(p
k+1
w

k+1
w
gD) +
_

t
_
up

h
e
(p
k+1
w
p
in
w
), z
_
e

eG
out
h
_
(
k
w
K)
up
(p
k+1
w

k+1
w
gD) +
_

t
_
up

h
e
(p
k+1
w
p
out
w
), z
_
e
.
The basic overall discrete system is given by (16) and (20). Below we
discuss two important modications.
3.2 Projection to H(div)-space
In this section we show an alternative way of handling the ux needed in
the pressure step (17) when l = 1. The idea is to project the ux into the
H(div, )-space. In practice, we project the ux onto the space dened by
the lowest order Raviart-Thomas elements (RT
0
). For more details on mixed
elements see, e.g., [3].
8
We look for the ux in the space spanned by RT
0
-elements
V = {v H(div, ) : v|
E
RT
0
(E) , E T
h
}. (21)
Using the divergence theorem,
_
v, 1)
E
= v , 1
E
(22)
and the fact that for RT
0
elements the divergence inside the elements is
constant, as are the normal uxes over each edge, gives
u|
E
=
1
|E|
u , 1
E
(23)
for all u V. Using equation (19) we get
u
k+1
w
|
E
=
1
|E|
_
(
k
w
K)
up
{{(p
k+1
w

k+1
w
gD) }} +
_

t
_
up

h
e
[[p
k+1
w
]], 1
_
E
.
(24)
For edges on the no-ow boundary, the integral is zero. For edges on either
the inow or outow boundaries, we do not use the mean value, and the
jump is against the given boundary data, similar to equation (20). After
this local, intermediate step between the pressure and saturation steps, we
now have divergence of the wetting phase ux in each element. Therefore,
the saturation step becomes: Find S
k+1
w
W
m
, m > 0, such that

ET
h
_

k+1
w
S
k+1
w
t
, z
_
E
=

ET
h
_
_
k
w
S
k
w
t
, z
_
E
+
_
f
w
, z
_
E

_
u
k+1
w
, z
_
E
_
(25)
for all z W
m
. This is our alternative to (20).
Remark 3.1. If we use piecewise constant saturations, S
w
W
0
, we will
naturally project the uxes to RT
0
. This is because on E the test function
z = 1, and hence z = 0 in equation (20). Meaning that the alteration (25)
is equivalent to the original formulation (20).
Remark 3.2. Suppose the saturation S
k
w
is piecewise constant, and that the
data is piecewise constant. Then using projected uxes (25) will give piece-
wise constant S
k+1
w
, even if S
w
W
m
, m 1. This is because the saturation
step is, in this particular case, just an L
2
-projection onto piecewise constants.
9
3.3 Penalty for discontinuity in capillary pressure
In the formulation above, the eect of capillary pressure appears explicitly
only in the pressure step (16). In the saturation step, (20) or (25), the capil-
lary eect appears implicitly through the ux that depends on the pressure.
We propose that the capillary eect is taken into account explicitly also in
the saturation step. The idea is to add a penalty to discontinuity of the cap-
illary pressure. This is a valid addition, since the capillary pressure should
be continuous. Recall that the saturation is not necessarily continuous if
the capillary pressure curves are dierent.
For simplicity we will work with saturation step (25) but the exact same
procedure works for (20), as well. We propose to add to (25) the term

eG
int
h


(1 +{{p
k
c
}}) t
[[p
k+1
c
]], [[z]]
e
, (26)
in which > 0 is a penalty parameter. The negative sign comes from the
fact that capillary pressure is often a decreasing function of wetting phase
saturation, and z is a test function for wetting phase saturation. Hence this
term is positive, which corresponds to a sign convention chosen in equations
(25) and (20). The scaling 1/
_
1 +{{p
k
c
}}
_
ensures that the penalty term is
of the same scale as the rest of the terms. There is no need to scale with
mesh size h
e
, since using inverse trace inequalities one can bound this term
with the H
1
()-norm of the capillary pressure and the L
2
()-norm of the
saturation, which correspond to the correct solution spaces. The factor 1 in
the denominator is to prevent division by 0 when the capillary pressure is
small.
Unfortunately p
k
c
= p
c
(S
k
w
) is a non-linear function of saturation. To
maintain computational eciency, we linearize this term. Using a linear
approximation
p
k+1
c
= p
c
(S
k+1
w
) p
c
(S
k
w
)+p

c
(S
k
w
) (S
k+1
w
S
k
w
) = p
k
c
+p
k
c
(S
k+1
w
S
k
w
), (27)
we get

eG
int
h


(1 +{{p
k
c
}}) t
[[p
k
c
S
k+1
w
]], [[z]]
e
=

eG
int
h


(1 +{{p
k
c
}}) t
[[p
k
c
S
k
w
p
k
c
]], [[z]]
e
, (28)
which is a linear with respect to the unknown S
k+1
w
. With this penalty for
capillary pressure in place of (26), and using the H(div, )-projection, the
10
saturation step reads

ET
h
_

k+1
w
S
k+1
w
t
, z
_
E

eG
int
h

(1 +{{p
k
c
}}) t
[[p
k
c
S
k+1
w
]], [[z]]
e
=

ET
h
_
_
k
w
S
k
w
t
, z
_
E
+
_
f
w
, z
_
E

_
u
k+1
w
, z
_
E
_

eG
int
h

(1 +{{p
k
c
}}) t
[[p
k
c
S
k
w
p
k
c
]], [[z]]
e
. (29)
Remark 3.3. Suppose there is only one capillary pressure curve for the whole
domain. If the curve is constant, the added terms will vanish, which is
exactly what we want. If the curve is monotone, the added terms will
enforce the continuity of saturation, which is the correct physical behavior
for monotone capillary pressure.
To close this section, the overall discrete system is given by (16) and
(29) with (24) when one uses the alternative H(div) velocity u
k+1
w
. Iterative
coupling as described in section 2.3 can also be applied to the system.
4 Numerical examples
In this section we discuss numerical solutions to the slightly compressible
two-phase ow problem using the DG-DG discretization described in section
3. Except where noted, we choose the pressure and saturation of the wetting
phase, P
w
and S
w
, as the primary variables.
The simulations are run for 600 days, starting with a time step of 0.001
days and which increases over time by the multiplier 1.2 to a maximum time
step of 0.5 days. As mentioned earlier it is useful to take shorter time steps in
the saturation equation, so we take 10 saturation steps for every 1 pressure
step. The computational domain is (x, y, z) [0, 500] [0, 500] [100, 0].
As shown in gure 1, the inow boundary,
in
is (x, y, z) {0}[400, 500]
[100, 0], and the outow boundary,
out
is (x, y, z) {500} [0, 100]
[100, 0]. The rest of the boundary,
0
is of no ow type. The initial pressure
is set to 500psi and the pressure boundary conditions on the inow and
outow boundaries are 550psi and 450psi respectively. The initial saturation
is 0.2 and, in order to imitate a water ood, the inow boundary condition
is set to 1.
To make sure there is no instability coming from the pressure equation,
we use the non-symmetric interior penalty Galerkin (NIPG) method ( = 1
in (16)). In all our numerical examples we use a piecewise linear basis, l = 1,
to approximate the pressure. A pressure penalty of 10 is used, theoretically
any penalty greater than 0 is acceptable and numerical tests show that the
solution is not sensitive to this parameter when it ranges from 5 to 50.
11
Figure 1: Computational domain as seen from above.
0 0.2 0.4 0.6 0.8 1
0
5
10
15
20
25
30
Capillary Pressure
Water Saturation
C
a
p
i
l
l
a
r
y

P
r
e
s
s
u
r
e
0 0.2 0.4 0.6 0.8 1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Relative Permeability Curves
Water Saturation
R
e
l
a
t
i
v
e

P
e
r
m
e
a
b
i
l
i
t
y


Oil
Water
Figure 2: Capillary pressure for validation example on the left. Relative
permeabilities for all the examples on the right.
Except where noted, we use linear approximation for the saturation,
m = 1, and the penalty for the jump in capillary pressure. The saturation
penalty parameter is set to 10. The numerical solutions are not sensitive
to this parameter when it is between 1 and 100. In addition, we use the
projection to H(div)-space except where noted.
The capillary pressure and relative permeability curves are similar to
[9]. These capillary pressure curves are of the form p
c
(S
w
) =
10

K
log(S
w
),
i.e., inversely proportional to the permeability. Furthermore, the relative
permeabilities are given as a function of the wetting phase saturation as
k
w
= S
2
w
and k
n
= (1 S
w
)
2
, see gure 2.
4.1 Validating the method
In this section we consider the problem where there is only one capillary
pressure curve and take K = 100 millidarcy, see gure 2.
In order to determine the solution to the problem we model the satu-
ration with piecewise constant functions, m = 0, and view the solution on
12
Figure 3: Validation Example: Piecewise linear pressure solutions on the
left. Piecewise constant saturation solutions on the right
dierent size meshes. For these numerical tests the penalty for the discon-
tinuity in capillary pressure (28) was not used. In addition, the projection
to the H(div)-space (24) does not change the previous formulation (see re-
mark 3.1). The numerical results are shown in gure 3. Notice that as we
rene the mesh, the solution remains the same. For these reasons we take
these results to be a valid approximation of the solution that we can use as
a baseline with which to compare further results. Henceforth we will not
include the pressure curves, but we note that they are all consistent with
those shown here.
13
Figure 4: Validation example: Piecewise linear saturation solutions, on the
left using no slope limiter, on the right using a global slope limiter.
Using piecewise linear functions to approximate the saturation, m = 1,
we obtain the results in gure 4. These results include the penalty for dis-
continuous capillary pressure and the penalty parameter is set to 10. The
numerical solutions are not sensitive to this parameter when it is between
1 and 100. There is some grid dependance on the coarser mesh, but this
vanishes as the mesh is rened. The ux projection removes oscillations, so
there is no need to use a local slope limiter. However, there are overshoots at
the inow, which increase over time. On the ne grid, the maximum value
of the saturation is 1.163 which occurs at day 600. To handle this problem,
14
Figure 5: Validation example: Illustration of remark 3.2. Piecewise constant
saturation on the left and piecewise linear saturation on the right.
we implemented a global slope limiter that enforces the saturation to stay
between its maximum value 1 and minimum value 0. We use a limiter that
guarantees that the saturation stays bounded without any tuning parame-
ters. This limiter is discussed in [14]. We further note that the saturation
plume travels the same distance using the piecewise linear basis functions
as it did when we used the piecewise constants. This validates the proposed
improvements, that is, the projection to H(div) and adding a penalty for
the jump in the capillary pressure.
It was previously remarked (see remark 3.2) that if at some time t
k
the
saturation S
k
w
is piecewise constant, then using projected uxes will give a
piecewise constant solution, S
k+1
w
, at time t
k+1
. Figure 5 shows when there
is no penalty to the discontinuity of capillary pressure, the saturation at
600 days is the same regardless if your test functions are piecewise linear
or piecewise constant. Observe also that here the projection to the H(div)
space removes the local oscillations from the (in principle) piecewise linear
saturation.
4.2 Two Rock Types
In this section we look further at the improvements to the method by consid-
ering the case where there are two rock types. In the results in this section
we are using the same computational domain as in the previous section,
except now there is a second rock type located in the domain in the area
(x, y, z) [0, 300] [200, 300] [100, 0], as shown in gure 6.
The rocks will have dierent capillary pressure curves due to the dier-
ence in the permeabilities of the rocks. Rock type 1 has a permeability of
100 millidarcy, and the second rock type has a permeability of 10 millidarcy.
The capillary curves are shown in gure 6.
This time we take the initial condition for the saturation to be piecewise
constant with a value of S
w
= 0.2 in rock type 1, and in rock type 2 it is set
15
0 0.2 0.4 0.6 0.8 1
0
5
10
15
20
25
30
Water Saturation
C
a
p
i
l
l
a
r
y

P
r
e
s
s
u
r
e
Capillary Pressure


Rock 1
Rock 2
Figure 6: Two rock types example: Location of the two rocks in computa-
tional domain and the associated capillary pressure curves.
to satisfy that the capillary pressure is continuous across the boundary.
We used the global slope limiter with these results and set the global
max and min to be 1 and 0.2 respectively.
Shown in gure 7 are the saturation and pressure results at various
times. We note that the pressure solution is smooth as we would expect.
Looking at the saturation at the boundary of the rock types, we notice that
the saturation is discontinuous, as expected. For example, in rock type 2,
the saturation is pooling up before it can seep into rock 1 so that it will
respect the continuity of the capillary pressure that is explicitly required in
the saturation step. We also see that because of the higher permeability in
rock 1, the saturation front moves faster around rock 2 than going through
it. And by 1000 days the ow has come around the bend of the second rock
type and is heading towards the outow boundary.
4.3 Choosing the primary pressure
In this section we illustrate the problems that can occur with using the
wetting phase as the primary pressure. We look at the same example of
two rock types as before, except we change the initial condition so that
the S
w
= 0 everywhere, which is a valid choice with respect to capillary
pressure curves in gure 6. We also use the global slope limiter to enforce
the global max and min value to be 1 and 0 respectively. When we do this,
we get the results in gure 8. This simulation shows large oscillations in both
the pressure and saturation solutions. The oscillations in the pressure are
dicult to see, but they are the main source of oscillations to the saturation
solution, which is evident in the gures. Observe that the oscillations are
worse in rock 1 where the capillary pressure has a steeper gradient near the
residual saturation, which supports the discussion on choosing the reference
pressure in section 2.3.
16
X
Y
Z
PWAT
550
540
530
520
510
500
490
480
470
460
450
X
Y
Z
SWAT
1
0.95
0.9
0.85
0.8
0.75
0.7
0.65
0.6
0.55
0.5
0.45
0.4
0.35
0.3
0.25
0.2
X
Y
Z
PWAT
550
540
530
520
510
500
490
480
470
460
450
X
Y
Z
SWAT
1
0.95
0.9
0.85
0.8
0.75
0.7
0.65
0.6
0.55
0.5
0.45
0.4
0.35
0.3
0.25
0.2
X
Y
Z
PWAT
550
540
530
520
510
500
490
480
470
460
450
X
Y
Z
SWAT
1
0.95
0.9
0.85
0.8
0.75
0.7
0.65
0.6
0.55
0.5
0.45
0.4
0.35
0.3
0.25
0.2
Figure 7: Two rock types example: Linear water pressure and saturation in
the example with two rock types. From top to bottom at day 300, 600, and
1000.
We ran the problem with the same parameters but with the non-wetting
phase as the primary pressure. Due to a computer code limitation this
changes our pressure boundary condition to be with respect to the non-
wetting phase. Thus, this is not exactly the same problem as in the previous
case, but it is very similar. We choose to look at times where the saturation
front had reached approximately the same distance as in the previous case to
compare the results, see gure 9. The speed of the front is dierent due to the
obviously incorrect results obtained when using the water pressure. Observe
17
X
Y
Z
PWAT
550
545
540
535
530
525
520
515
510
505
500
495
490
485
480
475
470
465
460
455
450
X
Y
Z
SWAT
1
0.95
0.9
0.85
0.8
0.75
0.7
0.65
0.6
0.55
0.5
0.45
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
X
Y
Z
PWAT
550
545
540
535
530
525
520
515
510
505
500
495
490
485
480
475
470
465
460
455
450
X
Y
Z
SWAT
1
0.95
0.9
0.85
0.8
0.75
0.7
0.65
0.6
0.55
0.5
0.45
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
X
Y
Z
PWAT
550
545
540
535
530
525
520
515
510
505
500
495
490
485
480
475
470
465
460
455
450
X
Y
Z
SWAT
1
0.95
0.9
0.85
0.8
0.75
0.7
0.65
0.6
0.55
0.5
0.45
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
Figure 8: Primary pressure choice example: Water pressure and water satu-
ration with initial saturation 0 and using water pressure as primary pressure.
From top to bottom at day 500, 1000, and 1500.
that the speed of the front is similar to gure 7. The main improvement is
of course that using the the non-wetting phase pressure, we no longer have
oscillations in the solution. The reason for the improvement is that we are
avoiding the numerical instability problem discussed in section 2.3.
18
X
Y
Z
POIL
550
545
540
535
530
525
520
515
510
505
500
495
490
485
480
475
470
465
460
455
450
X
Y
Z
SWAT
1
0.95
0.9
0.85
0.8
0.75
0.7
0.65
0.6
0.55
0.5
0.45
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
X
Y
Z
POIL
550
545
540
535
530
525
520
515
510
505
500
495
490
485
480
475
470
465
460
455
450
X
Y
Z
SWAT
1
0.95
0.9
0.85
0.8
0.75
0.7
0.65
0.6
0.55
0.5
0.45
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
X
Y
Z
POIL
550
545
540
535
530
525
520
515
510
505
500
495
490
485
480
475
470
465
460
455
450
X
Y
Z
SWAT
1
0.95
0.9
0.85
0.8
0.75
0.7
0.65
0.6
0.55
0.5
0.45
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
Figure 9: Primary pressure choice example: Oil pressure and water satu-
ration with initial saturation 0 and using oil pressure as primary pressure.
From top to bottom at day 300, 700, and 1000.
5 Conclusions
In this work we proposed two improvements to the discontinuous Galerkin
formulation of the slightly compressible two phase ow solved using IMPES
scheme, namely projecting the velocity to the H(div) space and including
an explicit penalty for the jump in the capillary pressure in the saturation
equation. We showed that projecting the velocity to the H(div) space re-
duces the local oscillations to the limit where we no longer need local slope
19
limiters. However, we did observe a need for a global slope limiter. The
global slope limiter is much easier to implement and does not aect the
dynamics of the solution as severely as a local limiter.
We showed that adding the penalty for the jump in the capillary pres-
sure improved the saturation step considerably. With this formulation we
observed that the saturation always fullled the continuity of the capillary
pressure even if the magnitude of the capillary pressure was small compared
to the phase pressures. In future work we will examine the use of this penalty
for the capillary pressure in mixed formulations, e.g., in the multipoint ux
mixed nite element (MFMFE) method.
Lastly we showed that choosing the non-wetting phase pressure as the
primary pressure is more stable numerically if the capillary pressure has
steep gradients, as it usually has near the wetting phase residual saturation.
References
[1] Center for Subsurface Modeling. http://csm.ices.utexas.edu/.
[2] Todd Arbogast, Gergina Pencheva, Mary F. Wheeler, and Ivan Yotov.
A multiscale mortar mixed nite element method. Multiscale Model.
Simul., 6(1):319346 (electronic), 2007.
[3] Franco Brezzi and Michel Fortin. Mixed and hybrid nite element
methods, volume 15 of Springer Series in Computational Mathematics.
Springer-Verlag, New York, 1991.
[4] Zhangxin Chen, Guanren Huan, and Yuanle Ma. Computational meth-
ods for multiphase ows in porous media. Computational Science &
Engineering. Society for Industrial and Applied Mathematics (SIAM),
Philadelphia, PA, 2006.
[5] Holger Class, Anozie Ebigbo, Rainer Helmig, Helge Dahle, Jan Nord-
botten, Michael Celia, Pascal Audigane, Melanie Darcis, Jonathan
Ennis-King, Yaqing Fan, Bernd Flemisch, Sarah Gasda, Min Jin, Ste-
fanie Krug, Diane Labregere, Ali Naderi Beni, Rajesh Pawar, Adil Sbai,
Sunil Thomas, Laurent Trenty, and Lingli Wei. A benchmark study on
problems related to co2 storage in geologic formations. Computational
Geosciences, 13(4):409434, 2009.
[6] Clint Dawson, Shuyu Sun, and Mary F. Wheeler. Compatible algo-
rithms for coupled ow and transport. Comput. Methods Appl. Mech.
Engrg., 193(23-26):25652580, 2004.
[7] Y. Epshteyn and B. Rivire. Fully implicit discontinuous nite element
methods for two-phase ow. Appl. Numer. Math., 57(4):383401, 2007.
20
[8] A. Ern, I. Mozolevski, and L. Schuh. Discontinuous galerkin approxi-
mation of two-phase ows in heterogeneous porous media with discon-
tinuous capillary pressures. Computer Methods in Applied Mechanics
and Engineering, 199(23-24):1491 1501, 2010.
[9] Hussein Hoteit and Abbas Firoozabadi. Numerical modeling of two-
phase ow in heterogeneous permeable media with dierent capillarity
pressures. Advances in Water Resources, 31(1):5673, 2008.
[10] Donald W Peaceman. Fundamentals of numerical reservoir simulation,
volume 6. Elsevier Scientic Pub. Co. : distributors for the U.S. and
Canada, Elsevier North-Holland, Amsterdam, 1977.
[11] Shuyu Sun and Mary F. Wheeler. Symmetric and nonsymmetric dis-
continuous Galerkin methods for reactive transport in porous media.
SIAM J. Numer. Anal., 43(1):195219, 2005.
[12] Shuyu Sun and Mary F. Wheeler. Projections of velocity data for the
compatibility with transport. Comput. Methods Appl. Mech. Engrg.,
195(7-8):653673, 2006.
[13] Mary F. Wheeler, Guangrie Xue, and Ivan Yotov. A multipoint ux
mixed nite element method on distorted quadrilaterals and hexahedra.
ICES report, 10-34, August 2010.
[14] Xiangxiong Zhang and Chi-Wang Shu. On maximum-principle-
satisfying high order schemes for scalar conservation laws. Journal of
Computational Physics, 229(9):3091 3120, 2010.
21

You might also like