# Victor Lampe (co-adviser, together with I. Berre), 2013. ```Modelling Fluid Flow and Heat Transport
in Fractured Porous Media
Master of Science Thesis
Applied and Computational Mathematics
Victor Lampe
Department of Mathematics
University of Bergen
August 2013
ii
Acknowledgements
First of all I would like to thank my supervisors Inga Berre and Florin A.
Radu for all your help and useful feedback. I would also like to thank Antoine
Tambue and Tor Harald Sandve for the permission to use your source code
and especially for the accompanying help and support.
Thanks to my colleagues and fellow student for your comments and valuable discussions. Thanks to my friends and family for your everlasting support and patience.
Victor,
August 2013.
iii
iv
Abstract
Flow in porous media is an important and well-researched topic in both
academia and the industry. More accurate mathematical models are constantly sought after. Fractures in a porous medium can be an important
contributor to the overall dynamics of a porous system, and several conceptual models for fractured porous media has been proposed over the years.
We investigate a selection of these models, by starting with the basics of
non-fractured porous media. We discuss the effects of fractures, concerning
both single-phase fluid flow and heat transport, and review a few different
approaches for the modelling of fractured porous media. Three different models, and equivalent continuum model, a dual continuum model and a discrete
fracture model, are compared through analysis and numerical experiments.
Our simulations show that the equivalent continuum model is unreliable and
coming up short to the other two, from which we obtain comparable results.
v
vi
Contents
1 Introduction
1.1 Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Flow in porous media
2.1 Material properties . .
2.2 Porosity . . . . . . . .
2.3 Darcy’s law . . . . . .
2.4 Conservation of Mass .
2.5 Heat transfer . . . . .
2.5.1 Conduction . .
2.5.2 Convection . .
2.6 Conservation of Energy
2.7 Governing equations .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
2
2
.
.
.
.
.
.
.
.
.
5
6
8
8
10
11
12
12
16
19
3 Fractured porous media
3.1 Fracture flow . . . . . . . . . . . . . . . . . .
3.2 Fracture models . . . . . . . . . . . . . . . . .
3.2.1 Equivalent continuum model . . . . . .
3.2.2 Dual-porosity model . . . . . . . . . .
3.2.3 Multiple interacting continua model . .
3.2.4 Dual-porosity dual-permeability model
3.2.5 Discrete fracture model . . . . . . . . .
3.3 Choice of model . . . . . . . . . . . . . . . . .
3.4 Models to pursue further . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
21
21
23
23
24
25
26
27
27
28
4 Numerical modelling
4.1 Spatial discretization . . . . . . . . .
4.1.1 The integral formulation . . .
4.1.2 Two-point flux approximation
4.1.3 Multipoint flux approximation
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
31
32
33
37
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4.2
4.3
4.4
4.5
Temporal discretization . . . . . . . . . . .
Upscaling . . . . . . . . . . . . . . . . . .
4.3.1 Averaging . . . . . . . . . . . . . .
4.3.2 Flow-based upscaling . . . . . . . .
Numerical solvers . . . . . . . . . . . . . .
4.4.1 Linear systems of equations . . . .
4.4.2 Non-linear systems of equations . .
4.4.3 Preconditioning . . . . . . . . . . .
Numerical solution procedure . . . . . . .
4.5.1 Extension to the compressible case
5 Simulations and results
5.1 Simulator . . . . . . . . . . . . . . .
5.1.1 Matlab Reservoir Simulation
5.1.2 MRST add-on modules . . . .
5.1.3 Additional routines . . . . . .
5.2 Initial simulations . . . . . . . . . . .
5.3 Diagonal flow paths . . . . . . . . . .
5.4 Variation of fracture density . . . . .
5.5 Compressible flow . . . . . . . . . . .
5.6 Efficiency and convergence . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
40
42
43
48
50
50
51
52
53
58
. . . . .
Toolbox
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
63
63
63
64
65
65
74
81
85
89
6 Summary and conclusion
91
6.1 Further work . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
List of Symbols
95
Bibliography
99
Chapter 1
Introduction
During the last decades, the subject of flow in porous media has been researched extensively. Especially the massive growth in the desire for petroleum
has pushed the development forward, and helped to increase our knowledge
on the field. In parallel with the growing interest for oil reservoirs was the
invention of the computer and advances in information technology. The combination of better knowledge of the physics and stronger computer power has
given us the ability to create complex conceptual models and develop them
into mathematical models which we can simulate on a computer. This has
lead to a better understanding of the complicated physical processes that
occur, and a more efficient way of gathering the massive resources that lies
beneath the ground and sea, both in terms of petroleum and geothermal
energy.
In the strive for more accurate models, we can for instance take into
consideration fissures or fractures which may have been formed in a porous
rock. A rock under stress has a possibility of cracking up, and fractures
of far greater diameter and much straighter than the intricate pore network
might arise. Intuitively, depending on the amount of fracturing, this can be a
considerable factor when describing how a fluid flows through the rock, both
when it comes to the fluid velocity and the preferential paths of the fluid. We
will look closer at how we can include the effects of fractures when modelling
a porous medium. We will examine both the movement of the fluid and the
heat transfer processes that occur. Some fracture model comparisons have
been made earlier, see for instance  where they take a closer look at three
different models for flow and solute transport.
1
2
1.1
Chapter 1. Introduction
Outline
Our goal is to introduce different conceptual models for flow and heat transport in fractured porous media, and to take a closer look at a few of the
models and compare them through various experiments. The course we have
chosen to take is as follows:
Chapter 2 - Flow in porous media: In this chapter, we go through the
basics of flow in porous media. We define a range of fluid and rock properties which we will make use of later, and then derive the governing
equations for pressure and temperature for an ordinary porous medium.
The topic of fractures is more or less left out from the discussions in
this chapter, with a notable exception: We do not assume local thermal
equilibrium for the porous system, which is standard when considering
heat transfer in a porous medium.
Chapter 3 - Fractured porous media: Here, we discuss the effects of adding
fractures to a porous media. The main portion of this chapter is dedicated to introduce different conceptual models for fractured porous
media mentioned in the literature.
Chapter 4 - Numerical modelling: To solve such a complicated set of
partial differential equations that we derive in Chapter 2, we need an
arsenal of numerical techniques. In Chapter 4, we introduce all the
numerical methods we need in a general way. When we are ready to
throw ourselves at the governing equations for our specific case, we
apply all the techniques previously introduced and describe in detail
how the system is solved.
Chapter 5 - Simulations and results: With the procedures given in the
previous chapter, we use Matlab to simulate a few cases with different
mathematical fracture models. The results are shown in a graphical
way, and the models are compared.
Chapter 6 - Summary and conclusion: The results from Chapter 5 are
discussed. We make a summary of our findings, before we mention a
few of the many ways our work could be extended in the future.
1.2
Notation
We have aspired to keep the notation as close to the standard as possible.
For some variables, it is a clear consensus of what symbol to use, such as ϕ
for the porosity and K for permeability. For other variables, no symbols are
1.2. Notation
3
firmly implemented. So all symbols used are defined at least the first time
they appear. In addition, we have included a list of symbols in the latter
part, where all the most used symbols are explained.
There is one not so common notation used here, that we need to be
aware of. Usually, when considering a porous media divided into solid and
fluid components, subscript are used to separate the two, e.g. Ts and Tf for
the solid temperature and fluid temperature, respectively. Here, however,
we choose to rather use a tilde to denote the variable associated with the
solid, and remove the tilde for the fluid, i.e. T̃ for the solid temperature and
T for the fluid temperature. The reason for this is to reduce the number of
subscripts and superscripts, to keep the notation simple when we start to
discretize the system in Chapter 4.
We use bold face to denote vectors, matrices and second-order tensors.
When it comes to sub- and superscripts, we use an italic symbol when it
signifies a variable, but an upright symbol when it is not. For instance uN
is used for the N -th element of the vector u, and uN is used for a specific
function defined on the Neumann boundary.
For most of the physical properties we mention the corresponding SI unit.
Hence, for a property such as velocity, we write the unit as [m/s] and not as
for instance [L/T] (length over time) which is also common. When other units
are customary in the respective field or in the industry, they are mentioned
and defined in addition to the SI unit, such as bar and D = darcy. Two nonSI units are used without a further explanation: d = days and h = hours.
4
Chapter 1. Introduction
Chapter 2
Flow in porous media
A porous medium consists of a material with interconnected pores. The
skeletal portion of the material is usually a solid and is called the matrix.
The pore system allows for fluid flow through the medium. Many natural
materials are porous, such as wood, sand and rock. The distribution of pores
are normally highly irregular. For this reason, it is difficult to describe porous
media in a mathematically manner directly, as an arbitrary point is either
fully within the matrix or in the pore system. Properties such as velocity
can hence not in general be defined pointwise. To cope with this, Bear 
introduced the concept of a representative elementary volume (REV). A REV
is a sufficiently large volume containing both matrix and pores. A variable is
averaged over the REV, and the value is assigned to the centroid of the REV.
The size of the REV is therefore determined such that the volume average is
representative for the centroid. This concept allows us to define mathematical
variables continuous in space and time, and we can use differential equations
to describe the dynamics.
Figure 2.1: Representative elementary volume (from ).
5
6
2.1
Chapter 2. Flow in porous media
Material properties
Several important properties must be defined to characterize the matrix and
the fluid. The properties are defined pointwise in space by using the REV
concept. Generally, all the properties are functions depending on the state
of the system, expressed by the pressure and the temperature.
The density, ρ, is the mass over volume, and has units kg/m3 .
Viscosity of a fluid is a measure of the fluid’s resistance to flow. For
liquids, a high viscosity is perceived as a thick liquid. There is a few different
viscosity measures, but here we will use the dynamic viscosity, µ, which has
units kg/(m·s) = Pa·s. In practice, the unit poise (P) is often used, with
1 P = 0.1 Pa·s. Viscosity for a few fluids at atmospheric pressure and 20 ◦C
is listed in Table 2.1.
The thermal expansion coefficient, α, is a measure that describes how the
volume depends on the temperature:
α=
1 ∂ρ
1 ∂V
=−
,
V ∂T
ρ ∂T
where V is the volume and T is temperature.
The compressibility, β, is a similar measure of the relative volume change
due to change in pressure:
β=−
1 ∂V
1 ∂ρ
=
,
V ∂p
ρ ∂p
where p is the pressure.
A related term to the two properties thermal expansion coefficient and
compressibility is incompressible flow. A flow is considered as incompressible
if the density of every flowing particle in the fluid is constant in time, i.e.
0=
Dρ
∂ρ
=
+ v · ∇ρ,
Dt
∂t
(2.1)
D
where Dt
denotes the material derivative. Even though it is not indicated
by this condition, a flow is often said to be incompressible if we can assume
that the density is constant, i.e. both
∂ρ
=0
∂t
and
∇ρ = 0
hold true. Obviously, this is a sufficient condition for the stricter definition above. Here, we will indeed make this assumption and let the term
“incompressible flow” imply that both the thermal expansion coefficient and
compressibility is zero, or at least negligible.
7
2.1. Material properties
Table 2.1: Typical density ρ, heat capacity cp and viscosity µ for a few common
substances at atmospheric pressure and 20 ◦C (values from [66, 63, 70, 61, 62, 65,
67, 68, 71, 27]).
Material
Air
Propane
Water
Brick
Concrete
Dolomite rock
Granite
Limestone
Sand
Sandstone
Soil, dry
ρ [kg/m3 ]
1.205
1.882
998
2000
1500
2800
2700
2750
1500
2250
1350
cp [kJ/(kg·K)]
1.005
2.4
4.19
0.9
0.75
0.92
0.79
0.908
0.8
0.92
0.8
µ [mPa·s]
0.02
0.11
1.002
Another term associated to the flow itself is the Reynolds number. The
Reynolds number is a dimensionless number that characterize whether the
flow is laminar or turbulent, and is defined as
Re =
ρvL
,
µ
where v is the average pore speed and L is a characteristic length. In porous
media, the flow is turbulent for Reynolds number above about 100 . The
limit, however, varies highly, and there is usually a wide transition phase
between laminar and turbulent flow.
The heat capacity, C, of a material, is defined as the amount of heat
required to raise the temperature by one unit. Heat capacity has units J/K.
We also introduce the intensive analogue, i.e. a scale invariant analogue,
called specific heat capacity, c, which is the heat capacity per unit mass.
The heat capacity is not uniquely defined, as the temperature of a system
can be changed in infinitely many ways. Hence, we have to specify in what
manner the temperature is raised. We use heat capacities where the pressure
or the volume is held constant, and denote this by adding a subscript to the
variable: Cp and CV respectively. The heat capacity cp for a few common
materials are listed in Table 2.1.
8
Chapter 2. Flow in porous media
Table 2.2: Typical porosity and permeability for a few common materials (values
from [57, 10, 18])
Material
Brick
Granite
Limestone (dolomite)
Limestone (fine)
Sand
Sandstone
Shale
Soil
2.2
Porosity [%]
12−34
0.0005−1
4−10
25−32
37−50
8−38
0.5−5
43−54
Permeability [mD]
5−220
500−2000
2−45
20−200
20000−180,000
0.5−3000
0−100
300−14,000
Porosity
Porosity is a measure of a medium’s ability to store fluid, and is defined
as the ratio between the volume of the pores, and the total volume called
the bulk volume. In dynamic computations however, only the pores that
contribute to fluid flow is of importance. If we let Vp denote the volume of
the pores contributing to fluid flow, and Vm the volume of the matrix, the
isolated pores and the dead ends, then we can define the effective porosity,
ϕ, as:
Vp
.
ϕ=
Vp + Vm
Since the effective porosity is the measure of interest, we omit the term
“effective” hereafter when we refer to the effective porosity. Examples of
porosity values for some common materials are listed in Table 2.2. The
porosity depends on many factors and for general, heterogeneous media it is
a function of position. It decreases by depth , and different approximate
relations have been proposed, most notably by Athy .
2.3
Darcy’s law
In 1856, the French engineer Henry Darcy performed several experiments
concerning water flow through sand. Based on his results, he discovered that
the volumetric flow rate, qvol , through a tube is proportional to the difference
in hydraulic head and to the cross-sectional area, A, and inversely proportional to the distance, l, between the measurement points. The hydraulic
9
2.3. Darcy’s law
head, h, at a point is a measure of the pressure, given as
h=
p
+ z,
ρg
(2.2)
where g is the acceleration due to gravity, p is pressure and z is the elevation
relative to some specified datum. If we denote the proportionality constant
by κ, we can summarize Darcy’s observations by writing
qvol = κ
A(h2 − h1 )
,
l
(2.3)
where the subscripts denote the two measurement points .
The proportionality constant κ in Darcy’s relation is referred to as the
hydraulic conductivity. The property of hydraulic conductivity is a measure
of how easily the fluid is conducted through the porous medium. Hydraulic
conductivity is influenced by four factors: the dynamic viscosity and density
of the fluid, gravitation, and the transmitting property of the material the
fluid is flowing through. This last property is called permeability, which we
denote by K. Permeability has units m2 , but in practice, the unit darcy (D)
is usually used. 1 D is defined as the permeability of a fluid with viscosity
1 cP flowing at the rate of 1 cm/s under a pressure gradient of 1 atm/cm,
that is 1 D ≈ 9.869 × 10−13 m2 . Although there are no direct relationship
between porosity and permeability, the permeability tends to increase as
porosity increases.
Note that a fluid may flow easier in one direction than another. If this is
the case, we say that the medium is anisotropic, and the permeability must
be represented by a second order tensor. We write the variable in boldface
to indicate that it is a tensor. If the permeability is equal in every direction,
we say that the medium is isotropic. Generally, the hydraulic conductivity
is then a tensor, and we have the following relation:
κ=K
ρg
.
µ
(2.4)
In its modern form, the term in Eq. (2.3) is replaced by a differential, to
obtain what now is known as Darcy’s law:
1
v = −κ∇h = − K(∇p − ρg),
µ
(2.5)
where we have used Eqs. (2.2) to (2.4). Note that we in the last equality
have assumed a density constant in space. Here, g is the gravity vector and
v is a volume flux called the Darcy velocity. The Darcy velocity is not the
10
Chapter 2. Flow in porous media
actual velocity at the pore scale, but rather an averaged macroscopic volume
flux density. It is the volume flowing over the entire cross section, including
both fluid and matrix. The actual velocity, V , is only the flow through the
cross section of the fluid. The two velocities is hence related by the equation
v = ϕV .
(2.6)
The velocity V is called the intrinsic velocity, as it describes the actual
velocity, and is independent of the form and structure of the material.
Later, Darcy’s law has been shown, both experimentally and theoretically,
to be accurate for a wide domain of flows. The main requirement is that the
flow is relatively slow, laminar and viscous . More accurately, experiments
have shown that Darcy’s law is valid as long as the Reynolds number does
not exceed some value between 1 and 10 .
In fractures, the fluid usually reach much higher velocities than in the
pores. For high-velocity flow, either in pores or fractures, it has been observed
that the pressure drop will increase more than the proportional increase in
velocity, when permeability and viscosity are held constant. These excess
pressure gradients can be caused by either turbulence or inertial resistance, or
both . To account for the additional effects, Darcy’s law can be extended
in several different ways, see . We will not pursue this matter further,
and assume in the following that the Reynolds number is a sufficiently low
number.
2.4
Conservation of Mass
Based on the principles of mass conservation, we can derive a continuity
equation. For an arbitrary volume Ω, we can state the conservation of mass
as
(
)
change of mass
{change of mass} + {net flow out of Ω} =
, (2.7)
due to sources/sinks
which in mathematical terms is equivalent to
Z
Z
Z
d
ϕρ dx +
ρv · n ds =
Q dx,
dt Ω
∂Ω
Ω
where n is the outward unit normal vector and Q represents the net mass
production originating from the sources and sinks, in units of kg/(s·m3 ). Under the assumption that the integrand of the surface integral is continuously
11
2.5. Heat transfer
differentiable, we use the divergence theorem on the expression above to get
Z ∂
(ϕρ) + ∇ · (ρv) − Q dx = 0.
∂t
Ω
As this holds for arbitrary geometric volumes Ω, we have by the du BoisReymond lemma that
∂
(ϕρ) + ∇ · (ρv) − Q = 0.
(2.8)
∂t
For incompressible flow, and while assuming that the porosity is independent
of time, the equation reduces to
ρ∇ · v = Q,
where we have used Eq. (2.1) and the identity
∇ · (uF ) = ∇u · F + u∇ · F ,
(2.9)
for arbitrary scalar field u and vector field F . Furthermore, if we have no
source term, the continuity equation for incompressible flow is simply
1
K(∇p − ρg) = 0.
(2.10)
∇ · v = −∇ ·
µ
Compressible flow
Let us briefly consider the more general case, where the flow is compressible,
such that the density is a function of the pressure and the temperature of
the fluid. Then we can write
∂ρ ∂T
∂ρ ∂p
∂T
∂p
∂ρ
=
+
= ρ −α
+β
.
∂t
∂T ∂t
∂p ∂t
∂t
∂t
If we insert the expression above in the continuity equation shown in Eq. (2.8),
we obtain the expression for the continuity equation for compressible flow:
∂p
ρ
∂T
−ϕρα
+ ϕρβ
=∇·
K(∇p − ρg) + Q.
∂t
∂t
µ
2.5
Heat transfer
Basically, heat transfer is defined as thermal energy in transit due to a spatial temperature difference. Heat can be transferred in three different ways:
conduction, convection and radiation. The three processes are illustrated in
Fig. 2.2. Thermal radiation, i.e. energy emitted by matter as electromagnetic
waves, will not be discussed further, and any effects from radiation will be
neglected.
12
2.5.1
Chapter 2. Flow in porous media
Conduction
Transfer of heat through conduction takes place at a molecular level. Energy
from more energetic particles is transferred to less energetic particles. In
fluids, this happens via collisions of molecules, while for solids it is due to
vibrations of particles and free electrons. Thus, the conductive heat transfer
occurs between systems in physical contact if the systems have a temperature
difference. Conduction is sometimes also called heat diffusion, and the two
terms will be used interchangeably.
The conductive heat flux is described by Fourier’s law, a thermodynamic
analogue to Darcy’s law. While Darcy showed that fluid flows from areas
with higher hydraulic head to areas with lower head, the French mathematician and physicist Jean Baptiste Joseph Fourier showed that energy transfer
occurs from zones with higher temperature to zones with lower temperature.
Fourier’s law can we state as
qcond = −k∇T,
(2.11)
where qcond is the conductive heat flux and T is the temperature. The proportionality constant k is called the thermal conductivity, and gives us a
measure of a material’s ability to conduct heat. The thermal conductivity
has SI units W/(m·K). Thermal conductivity depends on temperature and
is, similarly to permeability, generally a second order tensor.
2.5.2
Convection
Convection is heat transfer associated by the movement of a fluid. Convective heat transfer is comprised of two separate mechanisms: diffusion and
advection. A fluid in motion consists of particles moving collectively, but the
molecules will still have some locally random motion and interact with other
Figure 2.2: The three modes of heat transfer (by Pearson Prentice Hall, 2007).
13
2.5. Heat transfer
Table 2.3: Thermal conductivities for a few selected materials at temperature 25 ◦C
(values from ).
Material
k [W/(m·K)]
Air
0.024
Aluminium
205
Carbon
1.7
Carbon dioxide
0.0146
Concrete
0.1-1.8
Granite
1.7-4.0
Iron
80
Limestone
1.26-1.33
Oxygen
0.024
Propane
0.015
Quartz
3
Rock (solid)
2-7
Rock (porous volcanic)
0.5-2.5
Sand (dry)
0.15-0.25
Sand (saturated)
2-4
Sandstone
1.7
Soil (saturated)
0.6-4
Water
0.58
molecules. This transfer of energy due to the random molecular motion is
the diffusive part of convection. Advection, on the other hand, is the transfer
of heat caused by the macroscopic motion of the fluid.
A process of convection can be classified as either forced or natural convection, or as a mixture of the two. The term forced convection is used if
the flow is caused by an external force, such as a pump or a fan. If the flow
is induced by buoyancy, the convection is said to be natural. The energy
transfer associated with phase changes is also usually considered to be convective , but we will assume that no phase changes occur in the systems
we study.
Within the flowing fluid, we have to take the advection into account. The
heat flux due to advection is
(2.12)
where e is the thermal energy density with units J/m3 . Note that we use the
14
Chapter 2. Flow in porous media
intrinsic volume flux V here, i.e. the actual fluid pore velocity, in contrast to
the Darcy velocity v.
For the diffusive part, consider a solid surface in contact with a flowing
fluid. Experiments have shown that under certain conditions, the convective
heat transfer between the fluid and the solid is proportional to the difference
in temperature. This result is called Newton’s law of cooling, and can be
written as
Qconv = ah(T̃ − T ),
(2.13)
where a is the specific surface area, h is the heat transfer coefficient and Qconv
is the rate of energy transfer per volume of the exchange from the solid to
the fluid . The quantities T̃ and T signifies the temperature of the solid
and fluid, respectively.
The heat transfer coefficient has units W/(m2 ·K), and is usually estimated
experimentally. Determining this parameter is one of the most difficult tasks
in describing the system. In addition to the fact that Newton’s law of cooling
is only valid for a few idealized cases, this causes one often to assume local
thermal equilibrium in practice, i.e. T̃ = T . Typical values of the heat transfer coefficient for the various types of heat convection is shown in Table 2.4.
One way to approximate the heat transfer coefficient is to use the Nusselt number. The Nusselt number Nu is a dimensionless number describing
the ratio between the convective and the conductive heat transfer over a
boundary:
hL
,
Nu =
k
where L is a characteristic length and k is the thermal conductivity of the
fluid in the direction normal to the boundary. For a given geometry, the
Nusselt number is a function of the Reynolds number and the Prandtl number
, another dimensionless number defined as
Pr =
cp µ
.
k
Note that the Prandtl number is independent of scale and is simply a property
of the fluid. Empirical expressions relating the Nusselt, Prandtl and Reynolds
number are available for a variety of geometries. For instance, for a porous
bed of spherical particles, one estimated relation  is
Nu =
0.225 1/3 2/3
Pr Re ,
ϕ
while another suggested relation  is
Nu = 2 + 1.1Pr1/3 Re0.6 ,
15
2.5. Heat transfer
Table 2.4: Typical values of convective heat transfer coefficient (values from ).
Type
h [W/(m2 ·K)]
Natural convection
Gases
2−25
Liquids
50−1000
Forced convection
Gases
25−250
Liquids
100−20,000
Phase change
Boiling and condensation 2500−100,000
arguing that the asymptote of Nu = 2 is more reasonable than Nu = 0 when
Re → 0. The reported values of the heat transfer coefficient in the literature is quite incoherent. The principal reason for this is that there are many
different models describing the heat transfer in porous media. When using
simplified energy equations to describe the physical processes, the effects of
the neglected terms are included in the determination of h. In addition, the
conductivity of the solid influences the temperature field around the boundary, which has the consequence that the heat transfer coefficient obtained
from a given combination of a fluid and a solid, can not be expected to hold
for another pair of fluid and solid .
Another approach has been taken, in which the knowledge of the thermal
conductivity of the materials is exploited. As the convective heat transfer
between a solid and a fluid is basically conduction under the presence of fluid
motion, it can be argued that the heat transfer coefficient can be estimated by
an average of the two thermal conductivities [41, 25]. The conduction occurs
over a thermal boundary layer  in a direction normal to the physical
boundary between the fluid and the solid. Since the conduction happens in
series, it is most natural to use the harmonic average, but according to 
a slightly altered version is better suited:
h=
2k k̃
,
Lf k̃ + Ls k
(2.14)
where Lf and Ls are the fracture aperture and matrix block length, respectively.
16
Chapter 2. Flow in porous media
Figure 2.3: The different energy terms organized in a tree structure, with the total
energy as the root.
2.6
Conservation of Energy
The first law of thermodynamics states that the total energy of a system is
conserved, i.e. the amount of energy stored in a volume is equal to the amount
of energy that enters the volume, minus the amount of energy that leaves the
volume. The total energy can be divided into mechanical energy and internal
energy. The mechanical energy is the energy of the system associated with
the macroscopic motion and position of the system, and can be subdivided
into kinetic and potential energy. The kinetic energy is proportional to the
square of the velocity. In porous media, we usually deal with relatively
low velocities; typically, a flow rate of 10 centimetre per day is considered
reasonably fast . Although flow through fractures can be considerably
faster, it still implies a kinetic energy that is almost always negligible. As
we do not take gravity into account, we also neglect macroscopic potential
energy.
The internal energy is energy associated with the microscopic motion and
position of the particles in the system. The internal energy can also be subdivided into various types, such as thermal energy, chemical energy and nuclear
energy. Under the assumptions above, the first law of thermodynamics can
be reduced to the statement: the rate of increase of thermal energy stored in
a volume, must be equal to the rate at which thermal energy enters the volume, minus the rate at which thermal energy leaves the volume, plus the rate
at which thermal energy is generated within the volume. The thermal energy
can be further subdivided into a latent component and a sensible component.
The latent component relates to intermolecular forces that influence phase
17
2.6. Conservation of Energy
change between different states, while the sensible component accounts for
the translational, rotational and vibrational motion of the particles, and is
directly related to the temperature of the system . This division of the
total energy into subgroups is illustrated in Fig. 2.3.
We can now derive a relation similar to Eq. (2.7) for heat transfer in the
fluid. In the following, we assume that there is no phase changes and no
work done on or by the system. Then, by the first law of thermodynamics,
the internal energy is conserved, and the internal energy is simply equal to
the sensible component of the thermal energy. The equation is then
(
change in
thermal energy
(
transport of
energy by flow
)
)
=
)
) (
(
heat sources
change of energy
+
+
and surroundings
by conduction
For the matrix part of the medium, the advective transport term will
obviously vanish. The above relation can be formulated mathematically as
Z
Z
Z
Z
d
ϕ
e dx = −ϕ
qad · n ds − ϕ
qcond · n ds + QT dx,
dt Ω
∂Ω
∂Ω
Ω
where e is the internal thermal energy density, n is the outward unit normal
vector and QT is the energy production term in J/(s·m3 )=W/m3 resulting
from internal heat sources and convection from the matrix. We divide this
term into heat from sources and heat due to convection: QT = ϕQsource +
Qconv . The equation is scaled by the porosity ϕ, because we are currently
considering the fluid phase, which is located only in the pore space.
Application of the divergence theorem on the surface integral gives us the
volume integral
Z de
ϕ + ϕ∇ · qad + ϕ∇ · qcond − QT dx = 0.
dt
Ω
As the volume Ω is chosen arbitrarily, this also holds locally:
ϕ
de
+ ϕ∇ · qad + ϕ∇ · qcond − QT = 0.
dt
We insert the heat flux expressions from Eqs. (2.11) and (2.12), and obtain
ϕ
de
+ ϕ∇ · (eV ) − ϕ∇ · (k∇T ) − QT = 0.
dt
(2.15)
18
Chapter 2. Flow in porous media
By the definition of the specific heat capacity, the thermal energy required
to raise the temperature of a volume with mass m by ∆T degrees is mcp ∆T ,
when performed under constant pressure. When this energy is supplied to
the system, with our assumptions, it causes the internal energy to increase
by the same amount, so
∆U = mcp ∆T,
where ∆U is the change in the internal energy U . This gives us an expression
for the thermal energy density, e:
∆e = ρcp ∆T.
We replace e in Eq. (2.15) by the expression above, since it only appears
in differentials, and use the velocity relation in Eq. (2.6), to get
ϕρcp
∂T
+ ρcp v · ∇T + ρcp T ∇ · v − ϕ∇ · (k∇T ) − QT = 0,
∂t
where we have assumed incompressibility and a constant heat capacity, and
used the identity in Eq. (2.9) on the divergence term. If, in addition, we have
no heat or mass sources except the convective heat transfer from the solid,
given by Eq. (2.13), we can apply the continuity equation given in Eq. (2.10):
∂T
+ ρcp v · ∇T = ϕ∇ · (k∇T ) + ah(T̃ − T ).
∂t
The corresponding expression for the solid is similar, apart from that we
have no advective term and the scale factor is now 1 − ϕ. To distinguish the
two phases, we add a tilde to all variables associated with the rock, and keep
the variables as before for the fluid. We can now establish the two coupled
energy equations:
ϕρcp
∂ T̃
= (1 − ϕ)∇ · (k̃∇T̃ ) − ah(T̃ − T )
∂t
(2.16)
∂T
+ ρcp ∇T · v = ϕ∇ · (k∇T ) + ah(T̃ − T )
∂t
(2.17)
(1 − ϕ)ρ̃c̃p
for the solid phase, and
ϕρcp
for the fluid phase .
Local thermal equilibrium
The energy conservation equations is substantially simplified if we assume
local thermal equilibrium, and this is often done in practice. For a regular
19
2.7. Governing equations
porous medium, the pore system makes the fluid usually pervade almost the
entire domain, making an assumption of local thermal equilibrium valid. We
set T = T̃ = Tm and add Eqs. (2.16) and (2.17) together:
ρm cp,m
∂Tm
+ ρcp v · ∇Tm = ∇ · (km ∇Tm ),
∂t
where
ρm cp,m = ϕρcp + (1 − ϕ)ρ̃c̃p ,
and
km = ϕk + (1 − ϕ)k̃.
Compressible flow
Like we did for the continuity equation, we will here mention how the energy
equations are altered if the density is not constant. In addition, we will
allow the heat capacity to be a function of temperature, as it often is very
sensitive to changes in temperature in practice. The only invalid stage of the
derivation above is the expansion of the divergence term in Eq. (2.15). We
leave this term as it is, which results in the following temperature equations:
(1 − ϕ)ρ̃c̃p
∂ T̃
= (1 − ϕ)∇ · (k̃∇T̃ ) − ah(T̃ − T )
∂t
for the solid phase, and
ϕρcp
∂T
+ ∇ · ρcp T v = ϕ∇ · (k∇T ) + ah(T̃ − T )
∂t
for the fluid phase.
2.7
Governing equations
We summarize this chapter by reviewing the closed system of the derived
governing equations. We assume the flow to be incompressible and the
heat capacity constant, and neglect the effect of gravity. Also, we have no
sources/sinks of heat or volume flux. The continuity equation with Darcy’s
law :
1
∇·
K∇p = 0.
µ
20
Chapter 2. Flow in porous media
The energy conservation equations:
(1 − ϕ)ρ̃c̃p
∂ T̃
= (1 − ϕ)∇ · (k̃∇T̃ ) − ah(T̃ − T )
∂t
for the solid phase, and
∂T
ϕρcp
− ρcp ∇T ·
∂t
K
∇p
µ
= ϕ∇ · (k∇T ) + ah(T̃ − T )
for the fluid phase. We assume that all the fluid and rock properties are
known constants. This is a system of three equations, with the three unknowns, p, T and T̃ , so it is closed.
Compressible flow
If density and heat capacity depend on the state of the system, we have the
following governing equations. The pressure equation:
∂Tf
∂p
ρ
−ϕρα
+ ϕρβ
=∇·
K∇p .
∂t
∂t
µ
The temperature equation
(1 − ϕ)ρ̃c̃p
∂ T̃
= (1 − ϕ)∇ · (k̃∇T̃ ) − ah(T̃ − T )
∂t
for the solid phase, and
∂T
K
ϕρcp
− ∇ · ρcp T ∇p = ϕ∇ · (k∇T ) + ah(T̃ − T )
∂t
µ
for the fluid phase. In addition, we have a set of known equations of state:
µ = µ(p, T ),
α = α(p, T ),
β = β(p, T ),
ρ = ρ(p, T )
cp = cp (T ),
ρ̃ = ρ̃(T̃ ),
c̃p = c̃p (T̃ ).
Chapter 3
Fractured porous media
In most natural rocks some kind of fracturing has been developed. As Narr
et al.  states: “all reservoirs should be considered fractured until proven
otherwise.” The low-permeable rock matrix constitutes most of the volume
in such systems, while the smaller network of fractures usually has a much
higher permeability as the width of the fractures are considerably greater
than the pore dimensions. A consequence of this is that in fractured porous
media, most of the fluid flow takes place in the fracture system, while the
matrix acts as a storage for the fluid.
The fracture network possesses various properties that must be determined to fully characterize the fractures, like size, orientation and roughness.
We define the fracture aperture as the perpendicular distance between two
fracture walls . Usually, the aperture varies significantly throughout a
fracture. The aperture of fractures varies usually from micrometres and up
to centimetres, making the aperture a crucial parameter to determine .
Most properties, like fracture aperture, length and distribution is often not
possible to measure directly in the field, and can be approximated using geostatistical methods, see for instance [50, 4]. Another property we will use is
fracture density. Here, we define it loosely as a measure of the amount of
fracturing in the medium. Other terms used for such a property is fracture
spacing, intensity, frequency and abundance.
3.1
Fracture flow
The flow through fractures can be conceptualized by considering the fluid
flow as laminar between two smooth parallel plates with constant aperture
b [11, 59]. Such a system is governed by the continuity equation and the
general Navier-Stokes equation, which for incompressible flow can be stated
21
22
as
Chapter 3. Fractured porous media
∂v
ρ
+ v · ∇v = −∇p + µ∆v,
(3.1)
∂t
where we have ignored the effects of gravity and other body forces. Further,
we assume steady-state flow, with constant pressure p1 and p2 , with p1 > p2 ,
at two of the boundaries and no-slip conditions at the parallel plates. The
system is illustrated in Fig. 3.1. With these assumptions and this geometry,
Eq. (3.1) reduces to
p1 − p2
∂ 2 vy
+ µ 2 = 0.
L
∂z
We integrate the differential equation twice, and impose the boundary conditions, to obtain the following velocity profile:
vy (z) =
1 p1 − p2
[(b/2)2 − z 2 ].
2µ L
We use this result to find the average velocity v̄:
1
v̄ =
wb
Zb/2 Zw
vy (z) dy dz
−b/2 0
Zb/2
1 p1 − p2
=
2µb L
2
=
[(b/2)2 − z 2 ] dz
−b/2
b p1 − p2
.
12µ L
Note the resemblance of this average velocity to Darcy’s law. It is equivalent
to the Darcy velocity of a porous medium with permeability K = b2 /12.
With the velocity derived above, we get a volumetric flow rate of
wb3 p1 − p2
qV =
,
12µ L
(3.2)
that is, the flow rate depends on the cube of the fracture aperture. For this
reason, Eq. (3.2) is commonly referred to as the cubic law .
Natural fractures are, however, never exactly parallel, nor smooth. In
addition to validating the cubic law experimentally for parallel fractures,
Lomize  investigated in 1951 the effects of rough fracture walls and various
fracture shapes. Based on his results, he introduced a friction factor f in the
cubic law:
1 wb3 p1 − p2
qV =
.
(3.3)
f 12µ L
23
3.2. Fracture models
He suggested the friction factor to be defined as
f =1+6
1.5
b
,
valid for /b > 0.065, where is a roughness parameter describing the height
of the fracture unevenness. Similar experiments have been performed by
Louis , who arrived at the same conclusion, but with a slightly different
expression for the friction factor.
Later, Witherspoon  also confirmed the validity of the cubic law,
Eq. (3.3), for closed fractures, i.e. fractures where the surfaces are in contact
with each other, e.g. in deformable rocks under stress.
3.2
Fracture models
A natural geological fractured system is, of course, far too complex to be
described in great detail. Numerous conceptual models have therefore been
proposed to represent the fractured porous medium. The terminology when
it comes to these models is not applied consistently in the literature ,
so care should be taken when referring to the model name alone. A short
introduction to some of the models is listed below. Note that the models
introduced here are described for the pressure regime only. An equivalent
model can be chosen for the temperature regime, or we can use one type of
model for the pressure and another for the temperature.
3.2.1
Equivalent continuum model
The equivalent continuum models [8, 44] are based on the concept of the
representative elementary volume introduced by Bear , see Chapter 2. The
heterogeneous system is modelled by a single continuum which is divided
into sub-volumes with uniform properties. These hydraulic properties are
p2
z
y
O
b
x
p1
L
w
Figure 3.1: Flow between parallel plates, with a parabolic velocity field.
of the proposed models can be d
is a physical idealization wh
common set of characteristics
significant.
The model to be employed i
is based on the following genera
a. The material containing t
.Analogous physical problems arise from the consideration of
is homogeneous and isotropic
heat or mass transfer in a heterogeneous medium or electrical
within a systematic array of id
power transmission. Mathematically analogous problems occur
when
two flow processes are coupled
by linear
functions
in- porous
parallelopipeds.
24
Chapter
3.
Fractured
media
volving both dependent variables; e.g., chemical reaction, adb. All of the secondary po
sorption or phase equilibrium.
within an orthogonal system of
fractures which are oriented so
parallel to one of the principal a
the fractures normal to each o
are uniformly spaced and are o
different fracture spacing or a
exist along each of the axes to
degree of anisotropy.
c. The complex of primary and
is homogeneous albeit anisotro
between the primary and secon
MATRIX
FRACTURES
VUGS
MATRIX
flow through the primary-porosi
occur.
MODEL
RESERVOIR
ACTUAL RESERVOIR
FIG. 1 - IDEALIZATION OF THE HETEROGENEOUS
will abe“sugar
Figure 3.2: Warren and Root’s idealization
of
an
actual
reservoir
into
POROUS MEDIUM.
and/or polished surfaces. it is usually not
possible to correlate well logs on a well-to-well
basis, an indication of the presence and vertical
extent of fractured zones in an individual well may
be obtained from sonic logs; similar qualitative in-
cube” model (from ).
SOCIETY OF PETROLEUM E
246
obtained by averaging over each sub-volume. Hence, the sub-volumes must
be sufficiently large such that the average value will be representative for the
whole sub-volume. In this way, there is no explicit distinction made between
the matrix and the fractures, and flow occurs throughout the system.
3.2.2
Dual-porosity model
In the early 1960s, Barenblatt et al.  and Warren and Root  introduced
the concept of dual-porosity models for fractured porous media. The idea
is to divide the system into two parts: the fractures and the matrix. All
flow occurs in the fractures, while the matrix merely acts as source or sink
for the flow system. An illustration of the model is shown in Fig. 3.2. An
actual reservoir is idealized into a so-called “sugar cube” model, where all flow
is in the void space between the matrix blocks. To characterize the porous
media, we associate a primary porosity with the pore system, and a secondary
porosity with the fracture system. We can also define two pressures, volume
fluxes, etc., for each point; one primary and one secondary. The fractures
are assumed to be uniform and oriented parallel to the principal axes of
permeability. The two systems are then superimposed, and the equations
are modified to include a coupling term that describes the communication
between the two regions.
The flow between matrix and fracture is controlled by a shape factor α,
such that the mass flux from the pores into the fractures is given by
q=
ρα
(pf − pm ),
µ
(3.4)
where ρ and µ are the density and viscosity of the fluid, p is pressure, and
subscripts f and m denotes fractures (secondary) and matrix (primary). The
3.2. Fracture models
25
shape factor has units 1/m2 and reflects the geometry of the matrix elements,
controlling the flow between the two systems.
Other suggestions for the coupling term have been proposed, and we
can divide them into two categories : the quasi-steady state formulation
and the transient formulation. The quasi-steady state formulation [75, 23]
consists of expressions of the same kind as Eq. (3.4); the flux is assumed
proportional to the pressure difference. This formulation is a simplification of
the more general transient formulation [35, 19, 46]. The transient formulation
is derived by calculating the flux out of the boundary of each matrix block
explicitly using Darcy’s law, i.e. a source term of the form
Z
1
Km dPm
dA,
Q=
|Vm | ∂Vm µ dn
where V is a matrix block, and K, µ and P denotes permeability, viscosity
and pressure, respectively.
Several models have later been proposed, based on the same concepts.
The main difference between the various dual-porosity models, is variation
of the transfer function that expresses the interaction between matrix and
fractures, but also the next models are inspired by the dual porosity model.
3.2.3
Multiple interacting continua model
Pruess and Narasimhan  developed in 1985 a multiple interacting continua
method (MINC), which generalized the dual-porosity concept. The MINC
method partitions the domain into nested grid blocks, so that the thermodynamic conditions in the rock matrix can be controlled by the distance to the
fractures. This is based on the assumption that the thermodynamics of the
matrix depends primarily on the distance to the fluid. This model takes advantage of the fact that the temperature and pressure variations are usually
much greater in the direction perpendicular to the fractures than along the
fractures, by the meshing into grid blocks with all interfaces between matrix
blocks parallel to the nearest fracture. This distance-only approximation is
not strictly valid, but can be a good approximation in many cases. Local
thermodynamic equilibrium is assumed at all times within each computational volume. In Fig. 3.3 we see an illustration of the partitioning in the
MINC model.
The result is a method applicable to multiphase compositional thermal
systems, which allows for large and variable compressibility, phase transitions
and coupling between heat and fluid flow. Although Pruess and Narasimhan
introduced the method with the matrix idealized as a “sugar cube” type
Anm. and nodal distances, d nm , can
from a specification of the vo
(j = 1 .. , J) occupied by the interacti
ing thatj= 1 refers to the outer (frac
have
11 =[L 3 -(L-c5)3]IL 3 =3ML,
26
..
Chapter 3. Fractured porous media
(j=l ... J), ....
(j
...........•....
Figure 3.3: Partitioning of a two-dimensional domain in the multiple interacting
continua model developed by Pruess and Narasimhan (from ).
(j=2 ... J-2), .......
model, it can be extended to arbitrary irregular grids by using a proximity
function and Monte
Carlo computational
methods. mesh for fractured porous media
Fig. 2-Basic
(20 case).
and
3.2.4
and constant compressibility
from regularly shapedmodel
matrix
Dual-porosity
dual-permeability
L
\Is
3L
\Is
dJ-I,J=-(fJ-I +!J) --fJ
blocks with uniform initial conditions, which are subjected
4
.
20
to a uniform step change in boundary conditions at the
The dual-porosity
dual-permeability
models
[9,
26],
also
known
as
just
dualsurface. The analytical Fourier series solution available
permeability models,
are ofsimilar
thecurved
dual-porosity
models, in that they
for this type
.problemto
yields
isobaric or isotherIn the last equation, we have a
Thetwo
MINC
method, on the
other hand,
mal system
surfaces. 1into
divide the porous
interacting
regions.
The dual-porosity
distance for the innermost element
approximates these surfaces as plane§ that are parallel to
dual-permeability
models however, allow for flow not only in the
fractures,
with
.the block faces, overpredicting thermodynamic parameters
.
>.
parameter
as given by Warren and R
but also
within and
between
matrix
blocks.
The
difference
between
the
dualin some parts of the surface while underpredicting them
'are
possible,
but the impact on simula
Dual
Porosity
vs.
Dual
Permeability
Models
of
Matrix
Diffusion
in
Fractured
Rock
in others.
when total
flow rates across
inter- is illustrated in
permeability models
andHowever,
the simpler
dual-porosity
models
ble.
The
volume
fraction occupied
faces at a fixed distance from the block faces are comFig. 3.4.
is determined from fracture spacing
puted by areal integration, these deviations average out
The other volume fractions are arbit
to near zero, yielding rates that are accurate to within a
cept
for the constraint
fraction of a percent. It is to be expected that the MINC
method should yield similarly accurate predictions for the
J
interporosity flow rates in multiphase flow problems with
/j=1)
Diffusion
capillarity and relative permeability effects as long as
matrix blocks are subjected to orapproximately uniform
and are chosen such as to provide go
boundary conditions.
needed. Thus, the outer elements nea
Partitioning of matrix blocks on the basis of distance
3 . .. ) will be closely spaced, with
from the fractures gives rise to a pattern of nested volume
propriate for the elements away from
elements, which, for the 2D case, is shown in Fig. 2. Each
volume element has
a definite thermodynamic
state
J-l ... ).
Dual-Permeability
Dual-Porosity
Fractured Rock
In a mesh with nested volume elem
Matrix-Diffusion
assigned
to it. Modeling
of heat and
fluid flow in such
Matrix-Diffusion
Matrix
Model elements, orModel
2, the matrix acts as a "one-way stre
a system of nested volume
interacting conflow, with all flow occurring outwa
tinua, is straightforward within the framework of the IFD
Figure
Dual-porosity
vs.
dual-permeability
(from
Figure method.
1.3.4:
Two alternative
conceptual models
for matrix diffusion
rock.in ).
as production causes pressures and te
The geometric
description
of thein fractured
problem
1
1
1
The arrows denote possible pathways for solute transport.
18
SOCIETY OF PETROLEUM E
3.3. Choice of model
3.2.5
27
Discrete fracture model
In discrete fracture models, each fracture is modelled explicitly. In field scale
there is usually a very large number of fractures, and it is impossible to model
all of them explicitly. In addition, there is no detailed information about the
field geometry and fracture characteristic available. Hence, for the model to
be useful, fracture networks containing the significant fractures impacting the
flow are generated based on observations and measurements. These models
are suitable if the complex fracture network can be approximated by only
several fractures of significance. The system is then treated as any other
non-homogeneous medium.
3.3
Choice of model
All of the aforementioned models have properties that makes them suitable
for different scenarios. Problems of flow in fractured media can be divided
into four categories depending on the scale :
The very near field. The scale of a single fracture.
The near field. A domain with a relatively small number of interconnected
fractures.
The far field. The influence of the fractures and the matrix is still distinguishable.
The very far field. Cannot discern fractures from matrix.
We can also classify a porous medium as one of four different types 
depending on the amount and type of fracturing, as seen in Fig. 3.5:
I: Poorly fractured rock. There is a little amount of fracturing in the
rock,
II: High-density fracture network. The rock is build up of a dense fracture network throughout the medium.
III: Dominant single fractures. The rock consists of a relatively low number of dominant fractures, while the flow in the matrix in negligible in
comparison.
IV: Dominant single fractures + rock matrix. The rock consists of a
low number of dominant fractures, but there are also considerable flow
in the matrix.
28
Chapter 3. Fractured porous media
The choice of conceptual model depends on both the scale and the type
of the porous medium in a given problem of interest. Intuitively, we can
make a prediction of the preferred model when we have information about
the scale and type of the medium. If the rock is of type I, or we are in the
very far field, it is natural to assume that the medium can be modelled by
a concept involving only one continuum. This could also be the case for a
rock with very high fracture density on a smaller scale. For other rocks with
high fracture density it is probably better to use a model with two or more
continua. If the rock is of type III or IV, or we are in the near or very near
field, we suspect that some kind of discrete fracture model will be best suited.
The suggested idealization for type I-IV is shown in Fig. 3.5.
3.4
Models to pursue further
Later on, we will perform simulations involving three different models. The
name of the models we use are related to the name of the models above, but
not directly comparable. The reason for this is that we will deal with both
pressure and temperature. The description of the three models below are
just a quick overview, while we go into more detail when the methods are
implemented and used in Chapter 4.
i) A discrete fracture-matrix model (DFM) where all the fractures are
described explicitly. The model we will use is equivalent to the description of the respective model above in Section 3.2.5. The DFM model is
very demanding, both in terms of computer power and when it comes
to the detailed knowledge of the reservoir necessary to set the properties of the porous medium. In return we get accuracy, and we will treat
the results obtained through this model as the best approximation of
the analytical solution. Hence, we will test how the results from the
other methods compare to the results from the DFM model.
ii) An equivalent continuum model, which we will also refer to as the
single model (as opposed to the dual model). In this model we deal
with a single continuum, and we have no knowledge of the location of
the fractures. Local thermal equilibrium is assumed, and we cannot
discern between fluid and solid.
iii) A dual model where we have one continuum for the fluid (the fracture
space) and one continuum for the solid (the matrix). We will assume
that the matrix is impermeable, i.e. there is no fluid flow within or into
the matrix blocks. All flow happens in the fracture continuum. We do
29
3.4. Models to pursue further
QM
Q I=9 ORI8 VJO(9 O= R9(I5"8 =&(8
ÊgĎĎÀ«ÀgěÀàØ
à«ĘàÓgÀØĎ
5àÊ
àØñě
EààćÊĳĘ«ćgěĦćĘćàÈ
%
%gÊÀķgěÀàØ
\$À²½ÕØĎÀěĳ
«ćgěĦćĘØěıàćÈ
ÀàØ
ÊÀķgě
àØěÀØĦĦÓ
ÓàÊ
àØěÀØĦĦÓ
ÓàÊ
%g
%%
%g
ÊÀķg
ěÀàØ
àĦxÊÕĘėĘ5ĦÊěÀÕ
àØěÀØĦĦÓĘÓàÊ
àÓÀØgØěĘĎÀØ²Ê
«ćgěĦćĎ
%%%
%gÊÀķgěÀàØ
àÓÀØgØěĘĎÀØ²ÊĘ«ćgěĦćĎ
úĘćàÈĘÓgěćÀĲ
ěÀàØ
ÊÀķg
%g
ÀĎćě
«ćgěĦćĘÓàÊ
ÀĎćě
«ćgěĦćĘÓàÊĘú
àØěÀØĦĦÓĘÓàÊ
%]
%g
ÊÀķg
ěÀàØ
àĦxÊÕĘėĘ5ĦÊěÀÕ
àØěÀØĦĦÓĘÓàÊ
' Classification
=&(8 "=;"(?OJ of
,=I domains
O3( &(J"I5?O5=;
=, ,I"ORI(&idealization
?=I=RJ 9(&5for
@J(&
=;
Figure
3.5:
and preferred
a fractured
I=3;
'
@><<>A ;& (8951 @><<PAAC
porous medium (from ).
5-4 *7/(\$(! .63\$*(0 * &*8 ( /(0,*/3 \$( */*60
\$
> J/#
% > 25&A09A71&6627.&A# > &562.
< S46N N'!S6><# S4' :S4':S6!9 \$'[email protected]>< <\$ S4' 1>W'L<6<1 'FVS6><N >,
/>X <\$ SL<[email protected]>LS @L>!'NN'N 6< ;9A9JB 6&\$2 27 .&7&A5# 6D'D X6S4>VS S4' !><5
30
Chapter 3. Fractured porous media
have heat conduction between different matrix cells and between fluid
cells. In addition, we have an exchange term for heat flux between the
two continua, a term proportional to the temperature difference. One
of the major difficulties with this model is to determine this exchange
term. We can compare this to the dual model in Section 3.2.2 where
we had the same problem for the mass exchange between the two continua. Here we have no mass exchange, since the matrix blocks are
considered impermeable, and we have only one pressure value in each
block. We can consider this dual model to be a regular non-fractured
porous medium, where the fractures takes the role of the pore system,
and the matrix takes the role of the medium excluding the pores. The
difference is that because of the discreteness of the fractures, we do not
assume local thermal equilibrium as we do for a non-fractured porous
medium.
Chapter 4
Numerical modelling
Because of the complexity of the problems we are considering, we need to
introduce various modelling techniques and numerical methods to describe
the physical system and solve the resulting equations. This chapter is organized in such a way that in the first sections, techniques and procedure are,
for clarity, explained in a more general sense, not relating to the governing
equations directly. Then, in the final section, all the methods are combined
and applied to the governing equations of our problem. More specifically,
this chapter is divided as follows:
Section 4.1: The discretization in space for elliptic partial differential equations.
Section 4.2: The discretization in time for differential equations.
Section 4.3: The process of upscaling of physical properties is described.
Section 4.4: Some additional numerical tools are introduced.
Section 4.5: The application of the methods to the pressure and heat equations.
4.1
Spatial discretization
The physical systems we are considering are mathematically described by
partial differential equations (PDE), together with boundary and initial conditions. Except in some simple and idealized cases, the equations cannot be
solved analytically, and so various numerical methods have been developed to
approximate the solutions. Some of the most popular methods for the type
of problems we are considering are the finite difference method (FDM), the
31
32
Chapter 4. Numerical modelling
finite element method (FEM) and the finite volume method (FVM). Every
method has its pros and cons, and which method to use must be chosen after
considering the particular problem. The FVM is widely used in these kind of
problems, and this is the method we will make use of here. Throughout the
discussion, we will assume that the domain is divided into a total number of
N grid blocks, and that time is divided into Nt steps.
4.1.1
The integral formulation
The finite volume method is based on the integral formulation of the PDEs.
The domain is divided into control volumes, and the integral equation is
expressed for each volume. The divergence theorem is applied to convert any
divergence term to a flux over the surface. This principle leads to a method
with local conservation of mass, i.e. the net flux out of each grid cell is equal
to the source term minus the accumulation in the cell, and the flux over cell
boundaries is continuous. For a well-chosen grid, any discontinuities in the
problem causes no trouble, and the method allows for unstructured grids.
applied, and the FVM has advantageous numerical robustness properties.
We will introduce a finite volume method called two-point flux approximation (TPFA). As we will see, this method has some limitations. In that
respect, we will illustrate how the TPFA method can be extended to the
more general multipoint flux approximation (MPFA), or more specifically, an
MPFA method called the O-method . The review of these methods below
is based mainly on [2, 20]. To illustrate how the methods work, we will look
at a simple transport equation, where we only have a diffusive term and a
source term:
∇ · (K∇u) + Q = 0,
(4.1)
where K is a symmetric and positive definite second order tensor, u is the
independent variable, and Q is a source term. This equation is similar to
the mass conservation equation with Darcy’s law, with K representing the
hydraulic conductivity κ, and u representing the hydraulic head h. Alternatively, if we do not take gravity into account, K can represent the permeability tensor over dynamic viscosity, K/µ, and u represents the pressure p. If
we consider conductive heat transfer, K is the thermal conductivity tensor
k, and u is the temperature T .
Expressing the integral formulation over a domain Ω and using the divergence theorem, Eq. (4.1) is converted to
Z
Z
∀Ωi ⊂ Ω :
q · nds =
Qdx,
(4.2)
∂Ωi
Ωi
33
4.1. Spatial discretization
where q = −K∇u is the flux density and n is the outward unit normal
vector. Although FVM can be applied on any polygonal or polyhedral grid,
we will in the following presentation restrict ourselves to structured, cellcentred, quadrilateral grids in two dimensions. We will assume that the
source Q and the conductivity tensor K are constant in each control volume.
We seek a numerical solution approximating u that is linear in each control
volume and continuous in the entire domain.
4.1.2
Two-point flux approximation
In Fig. 4.1 we see two grid blocks, Ωi and Ωi+1 , separated by an edge S with
normal vector n pointing out of Ωi . We want to find the flux over S in the
direction of n, which by Eq. (4.2) is given by
Z
Z
Z
q · n ds = − (K∇u) · n ds = − w · ∇u ds,
(4.3)
q=
S
S
S
where we have defined w = Kn. We recognize the last integrand, w · ∇u,
as the derivative of u in the direction of w, multiplied by the length of w.
The point xi+1/2 on S, is placed such that the line connecting xi and xi+1/2
runs along the vector wi = Ki n, and similar for xi+1/2 and xi+1 . Thus, the
vectors xi+1/2 − xi and xi+1 − xi+1/2 , which are shown in Fig. 4.1, must have
the same direction as wi and wi+1 , respectively. It is, of course, not always
possible to define a point on the edge S satisfying these conditions. A grid,
for which this is possible, is called K-orthogonal. For a grid that do possess
the property of K-orthogonality, the flux over each edge can be expressed
in a consistent manner using only two points. For grids that are not Korthogonal, the method is not consistent, and the results will depend on the
orientation of the grid.
We now return to Eq. (4.3). Since we approximate u with a linear function, the integrand is constant within each cell. The derivative in the direction of w can be found by looking at the difference between the three points.
q4
n
b
xi
wi
wi+1
b
xi+1/2
S
b
xi+1
Figure 4.1: Grid blocks Ωi and Ωi+1 ,
with cell centres xi and xi+1 .
b
q1
xi
q2
q3
Figure 4.2: Flux through the four edges
of Ωi .
34
Chapter 4. Numerical modelling
The flux across S in the direction of n is then
Z
ui − ui+1/2
q = − w · ∇u ds = |S|kwi k
,
kxi+1/2 − xi k
S
(4.4)
seen from cell Ωi , and
q = |S|kwi+1 k
ui+1/2 − ui+1
,
kxi+1 − xi+1/2 k
seen from cell Ωi+1 , where |S| is the length of the edge S, and we use the
notation ui = u(xi ). Since the flux is continuous, these two expressions are
equal. We use this to eliminate ui+1/2 and obtain the potential difference
kxi+1/2 − xi k kxi+1/2 − xi+1 k
q
ui − ui+1 =
+
.
|S|
kKi nk
kKi+1 nk
Note that this is equivalent to a harmonic averaging of the conductivity
tensor K.
Now, we have an expression for the flux q2 in Fig. 4.2. The same process
can be repeated for the three remaining edges. By Eq. (4.2), we have the
relation
q2 + q4 − q1 − q3 = Q · |Ωi |,
where |Ωi | is the volume of the cell Ωi , and where we have used that Q is
constant in each cell. A similar equation can be found for each cell in our
grid, which finally gives us a complete set of linear equations in the unknowns
ui .
Upwind method
For the advective term of the energy equations, we introduce a method called
the upwind method, that ensures the stability properties of the scheme .
The expression for the advective flux was derived in Section 2.6, and is of
the form
Z
Z
∇ · (uv) dx =
n · (uv) ds.
Ωi
∂Ωi
Because of the hyperbolic nature of the advection term, we expect that information propagates as waves moving along characteristics . We would
like to make use of this knowledge by looking in the direction from which
the information should be coming. Let us consider Fig. 4.1, where we want
to find the advective flux across the edge S in the direction of n, which we
denote by f . We define the variable v by
Z
v=
v · n ds,
S
35
4.1. Spatial discretization
q4
ΓD
S1
b
xi−1/2,j
q1
b
xi,j
b
S3
xi,j−1/2
q3
q2
ΓN
Figure 4.3: The cell Ωi,j , located at the boundary of the domain. The left edge,
S1 , is part of the Dirichlet boundary ΓD , and the lower edge, S3 , is part of the
Neumann boundary ΓN .
and use the direction of v to determine f in the following way:
(
vui
if v ≥ 0,
f=
vui+1 if v < 0.
(4.5)
Similar expressions can be listed for the remaining edges, and we can use the
same numbering of f as for q in Fig. 4.2.
Boundary conditions
Solutions to differential equations are not unique, unless we impose some additional conditions. Associated with the spatial discretization are boundary
conditions, which are certain conditions set at the boundary of the domain.
We consider two different types of boundary conditions: Dirichlet and Neumann boundary conditions. We still consider Eq. (4.1) on a domain Ω, and
divide the boundary Γ = ∂Ω into two segments, the Dirichlet boundary ΓD ,
and the Neumann boundary ΓN . A Dirichlet condition gives us the solution at ΓD , while a Neumann condition gives us the flux density at ΓN . A
complete problem can then be formulated as
−∇ · K∇u = Q
u = uD
−(K∇u) · n = qN
in Ω
on ΓD
on ΓN ,
36
Chapter 4. Numerical modelling
where uD and qN are functions defined on the associated boundary, and n is
the outward unit normal vector to ΓN .
Implementation of boundary conditions is quite straightforward in twopoint flux approximation. In Fig. 4.3 is a cell Ωi at the boundary of a
domain Ω. One of the edges of the cell is a part of the Dirichlet boundary,
and another edge is a part of the Neumann boundary. As before, we want to
find an expression for the fluxes into and out of the cell.
Let S1 be the edge of Ωi that is a part of the Dirichlet boundary. The
flux q1 over S1 , can according to Eq. (4.4) be expressed in terms of ui−1/2,j
and ui,j . Since xi−1/2,j is on ΓD , the solution u is given here as uD . A natural
choice is then to set ui−1/2,j = uD (xi−1/2,j ), such that q1 is expressed only by
the unknown ui,j . Depending on the regularity of the function uD , this is not
always the best way, or even possible. Another choice can be, for instance,
Z
1
uD ds.
(4.6)
ui−1/2,j =
|S1 | S1
For the advection term, we redefine Eq. (4.5):
f1 =
(
vui,j
vui−1/2,j
if v ≥ 0,
if v < 0,
where ui−1/2,j is chosen as above to approximate the flux, i.e. ui−1/2,j =
uD (xi−1/2,j ), or the integral definition in Eq. (4.6)
Now for the Neumann boundary condition, let S3 be the edge of Ωi that
coincides with the Neumann boundary. Since the two-point flux approximation is based on flux in a control volume, the Neumann condition is easily
applied. The flux density is given, and all we have to do is to integrate it
over the entire edge, so
Z
q3 =
qN ds.
S3
In the advection term, we use a similar expression as before:
(
vui,j
if v ≥ 0,
f3 =
vui,j−1/2 if v < 0.
Then, we use the information about the flux to approximate ui,j−1/2 with
Eq. (4.4):
kxi,j − xi,j−1/2 k
.
ui,j−1/2 = ui,j + q3
|S3 |kKnk
37
4.1. Spatial discretization
4.1.3
Multipoint flux approximation
As we saw for the TPFA method, it requires the grid to be K-orthogonal.
For many problems, it is difficult or impossible to construct the grid in such
a way. In simulation of flow and transport in natural reservoirs, we usually
desire for the grid to match the physical, horizontal layering of the rock. This
can cause one of the principal axes of the permeability tensor to be slightly
skewed in comparison to the grid’s normal vector, which causes the grid to
deviate somewhat from K-orthogonality. The solution to this problem is to
introduce a method that approximates the flux using more points, hence the
multipoint flux approximation.
In Fig. 4.4, we see a part of a grid, with six control volumes and nodes.
Around the points where four volumes meet, we define an interaction volume
with corners in the nodes and the midpoint of the edges, shown as dashed
polygons in Fig. 4.4. By looking at the interaction between the cells, we
want to determine the flux over the four half-edges inside each interaction
volume. To achieve this, we use the assumption that the potential function
is linear, and interpolate between nodes. We express u with basis functions,
ϕi (x) and ϕ̄i (x), uniquely defined as the linear functions with the property
that ϕi (xi ) = ϕ̄i (x̄i ) = 1, and both functions evaluate to zero at every other
node.
Now consider a segment of Fig. 4.4, and let x̄i be the point where edge Si
intersects with an edge of the interaction volume, see Fig. 4.5. Let ui = u(xi )
and ūi = u(x̄i ), such that u(x) = u1 ϕ1 (x) + ū1 ϕ̄1 (x) + u¯5 ϕ̄5 (x) inside the
dashed lines. The vectors νi are normal vectors to the edges of the triangle,
with length equal to the length of the edge it is normal to. Let ni be unit
normal vectors, and qi the flux over the edge. As a convention, all vectors
point in the direction of increasing cell index.
The next step is to compute the gradient of u. This can be done simply
by geometric inspection. Referring to Fig. 4.6, we see that the gradient of
ϕ1 must be in the direction ν3 , and ϕ1 must go from 1 in x1 , to 0 on the
S4
S3
x6
x5
b
b
x4
b
S6
S5
S7
b
x2
b
x1
S1
b
x3
S2
Figure 4.4: Six grid blocks with two interaction volumes (dashed lines).
38
Chapter 4. Numerical modelling
(1)
ν3
(1)
ν2
(1)
n2
x̄5
(1)
q5
(1)
q1
b
(1)
n1
S5
(1)
ν1
b
x̄1
b
x1
S1
Figure 4.5: Part of interaction volume inside one of the four interacting control
volumes.
opposite edge. This suggests that h∇ϕ1 = −ν3 /kν3 k. If F is the area of the
triangle, then F = hkν3 k/2, and
∇ϕ1 = −
1 ν3
1
= − ν3 .
h kν3 k
2F
Similarly can be done for the two other basis functions, which results in the
∇u = ū1
=
1
1
1
ν1 + ū5
ν2 − u 1
ν3
2F
2F
2F
1
[(ū1 − u1 )ν1 + (ū5 − u1 )ν2 ] .
2F
Returning now to the original equation, Eq. (4.2), the flux q over an edge
(1)
q4
ν3
x̄5
b
(1)
kν3 k
h
F
b
q1
q2
b
xi
Ωi
x̄1
b
x1
Figure 4.6: Estimation of the gradient.
q3
Figure 4.7: Flux through control volume Ωi .
39
4.1. Spatial discretization
S is
Z
q=
S
q · n ds = −
Z
S
K∇u · n ds = −ΓK∇u · n,
where Γ is the length of edge S, since the integrand is constant along S. We
insert the expression above for the gradient of u, and obtain
Γi
ni · K [(ū1 − u1 )ν1 + (ū5 − u1 )ν2 ] ,
i = 1, 2
(4.7)
4F
for the two half-edges inside the first interaction volume. When this is done
for each quadrant of an interaction volume, we invoke the flux continuity
(1)
(4)
(1)
(2)
requirement, i.e. we require q5 = q5 , q1 = q1 and so on, see Fig. 4.4.
Superscripts denote what cell we are in. This leads to a system of linear
equations in ui and ūi , which after rearranging can be written as a system
qi =
(4.8)
Au = B ū,
where


u1
 
u =  ... 


ū1
 
and ū =  ...  .
ūN
uN
This can be solved for ū, so that the flux becomes an expression of u only.
From Eq. (4.7), the flux
 
q1
 .. 
q̄ =  . 
qN
can be expressed in the following manner:
q̄ = Cu + D ū,
which after employing Eq. (4.8) gives us a system
q̄ = Eu,
where
E = C + DB −1 A.
When all the flux expressions are found, we can add the flux over two half
edges to get the flux over the entire edge. Let qi be the total flux over an
edge, as indicated in Fig. 4.7. Then from the differential equation, Eq. (4.2),
we have
q2 + q4 − q1 − q3 = Q · |Ωi |,
which is a complete system of linear equations for the unknowns ui .
40
4.2
Chapter 4. Numerical modelling
Temporal discretization
For incompressible flow, under the assumption that the porosity of the medium
does not change over time, the equation describing the conservation of mass
derived in Section 2.4 is an elliptic partial differential equation, not depending on time. This continuity equation is in fact exactly of the form discussed
in the previous section, and there is no need for a further discretization in
time.
The two coupled equations for the conservation of energy, on the other
hand, are a bit more complicated, and do depend on time. The equations
are of the form
Z
Z
∂
u dx =
F (u, v) dx,
(4.9)
∂t Ωi
Ωi
Z
Z
∂
v dx =
G(u, v) dx,
(4.10)
∂t Ωi
Ωi
for some functions F and G, and for a matrix block Ωi . We scale both
equations by multiplying with the reciprocal of the cell volume:
Z
Z
∂
1
1
u dx =
F (u, v) dx,
∂t |Ωi | Ωi
|Ωi | Ωi
Z
Z
1
∂
1
v dx =
G(u, v) dx,
∂t |Ωi | Ωi
|Ωi | Ωi
and recognize the product of the coefficient and the integral as the average
of the integrand in the cell Ωi . We let subscript i denote the approximation
of the average of the function in cell Ωi .
We list the values in all cells as a vector, with the definition
 
 
v1
u1
 .. 
 .. 
u =  .  and v =  .  ,
uN
vN
and similar for vectors F and G. The equations are then simplified to
dui
= Fi (u, v)
dt
for i = 1, 2, . . . , N.
dvi
= Gi (u, v)
dt
This system of autonomous ordinary differential equations can be written
more compactly by introducing the vectors
" #
" #
u
F
uh =
and Fh =
.
v
G
41
4.2. Temporal discretization
The problem can then be stated as
duh
= Fh (uh ).
dt
(4.11)
To solve the differential equations numerically, we introduce the Theta
method . Discretize the time scale into t0 , t1 , . . . , tNt , and define the time
steps ∆tn = tn+1 − tn . Let unh be the function uh evaluated at time tn . The
Theta method is then comprised of a finite difference of the time derivative,
and a weighted average of the function Fh evaluated at successive time steps:
un+1
− unh
n
h
= θFh (un+1
h ) + (1 − θ)Fh (uh ),
∆tn
(4.12)
for a parameter θ ∈ [0, 1]. For θ = 0, the Theta method reduces to the
simple, explicit, forward Euler method. For θ 6= 0, the Theta method is
implicit, and a system of non-linear equations must be solved for un+1
for
h
each time step, for instance by Newton’s method. Set θ = 1 to obtain the
standard implicit backward Euler method, and θ = 1/2 for a method known
as the Crank-Nicolson method. While the Crank-Nicolson and backward
Euler method are stable methods, the forward Euler method is unstable
except under certain restrictive conditions , and often forces one to be
using excessively small time steps . The two Euler methods are of first
order, and the Crank-Nicolson method is of second order, which can be shown
using Taylor expansion .
Initial conditions
In addition to the boundary conditions in the spatial discretization, we need
initial conditions for non-steady state partial differential equations, such as
the energy equations. An initial condition is simply the solution at an initial
time t0 . For the equations above, Eqs. (4.9) and (4.10), this would be
u(t0 ) = u0
v(t0 ) = v0
in Ω,
where u0 and v0 are functions defined on Ω.
As shown above, the equations are ultimately reduced to a system of
ordinary differential equations, shown in Eq. (4.11). The numerical procedure
to solve this, Eq. (4.12), is defined in a recursive manner. Hence, we obviously
42
Chapter 4. Numerical modelling
need a starting value. The problem can thus be stated as
duh
= Fh (uh )
dt
" #
ū0
uh (t0 ) =
v̄0
in Ω,
where ū0 and v̄0 are the average of the functions inside each cell Ωi :




ū0,1
v̄0,1




ū0 =  ...  and v̄0 =  ...  ,
ū0,N
with
ū0,i
and similar for v̄0,i .
4.3
v̄0,N
1
=
|Ωi |
Z
u0 dx,
Ωi
Upscaling
An important aspect of building a numerical model of a real world problem,
is to introduce parameters describing the real world accurately. Clearly, we
cannot measure properties, such as permeability, at every point of a reservoir,
let alone run simulations with that kind of resolution. Permeability data is
rather measured at a certain scale, for instance using core measurement,
slug tests or packer tests , resulting in a grid of a certain resolution.
These measurements often lead to grid blocks with lengths on the order of
centimetres to metres . For a large reservoir, such a resolution is far to
fine for any software to complete a simulation within reasonable time. To get
suitable grid block sizes for the numerical methods, the detailed knowledge
about the reservoir must go through some kind of upscaling. For many
properties however, this kind of upscaling is not trivial. Conductivity, for
instance, is not an additive property, and so must be treated carefully.
Another scenario where upscaling is relevant, is when constructing an
equivalent continuum model for a fractured porous medium. Properties are
assigned to the fractures, but fractures are too small to constitute an entire
grid block width in a numerical model. The fracture property in question is
thus combined with the corresponding property of the surrounding matrix, to
obtain a grid block of convenient size, see Fig. 4.9. In this manner, the explicit
fractures are removed from the reservoir, while the effect of the fractures are
incorporated in the resulting coarse grid.
4.3. Upscaling
43
Recently, an alternative to traditional upscaling has been developed.
These methods, known as multiscale methods [30, 76], incorporate the finescaled knowledge into coarse-scaled equations. The multiscale methods solve
the flow problem on a coarse scale, but, in contrast to traditional upscaling techniques, it is possible to reconstruct fine-scaled details based on the
solutions of the coarse system.
Here, we will not go further in describing the multiscale methods. We will
introduce two common upscaling techniques, which we have called averaging
and flow-based upscaling. For a review of available upscaling techniques, see
e.g. [21, 54].
4.3.1
Averaging
The goal of upscaling properties, say permeability, is to obtain an effective permeability that results in a coarse grid with similar behaviour to the
corresponding fine grid. One obvious way to do this, is to average the permeabilities within each coarse cell. Let us for the moment assume that the
medium is isotropic. Consider a two-dimensional domain with only horizontal flow. The area is divided into two: the left part with width L1 and
permeability K1 , and the right part with width L2 and permeability K2 . We
have a pressure p1 at the left edge and p2 on the right, see Fig. 4.10. The
flow is governed by Darcy’s law, Eq. (2.5), and the mass conservation law,
Eq. (2.10). We ignore the effect of gravity, which leads us to the following
form of the equations for one-dimensional flow:
Figure 4.8: Original permeability field of 1000 × 1000 scaled up to resolutions of
50 × 50, 10 × 10 and 5 × 5.
44
Chapter 4. Numerical modelling
Figure 4.9: A fine discretization adjusted to the fractures, which are shown here
in red. These grid blocks can be upscaled to four coarse cells, marked with bold
lines.
v=−
K dp
,
µ dx
dv
= 0,
dx
where v is the velocity in the x-direction. By Darcy’s law, we get the differential equation
µv
dp
=− ,
dx
K
which we can integrate over the entire domain to obtain
p2 − p1 = −µv
LZ
1 +L2
1
dx = −µv
K
0
L1
L2
+
K1 K 2
.
If the domain has a single effective permeability, Ke , then we have a similar
expression:
p2 − p1 = −µv
LZ
1 +L2
0
1
L1 + L2
dx = −µu
.
Ke
Ke
For the effective permeability to give the same effect as K1 and K2 , it must
give the same pressure difference, hence
−1
L1
L2
Ke = (L1 + L2 )
+
.
K1 K2
45
4.3. Upscaling
y
x
p1
K1
K2
L1
L2
p2
Figure 4.10: A domain separated into two sections with different permeability.
We recognize this as the harmonic average of the permeability.
Let us now consider the same figure, Fig. 4.10, but with all flow now in
the vertical direction. The governing equations are the same as before, with
y replacing x. We can use Darcy’s law to calculate the total volumetric flow
rate, qV , which is the sum of the flow rates of the two sections:
qV = −
1 dp
(L1 K1 + L2 K2 ).
µ dy
The flow rate above should be equal to the flow rate obtained using a single
effective permeability, so
−
1 dp
1 dp
(L1 + L2 )Ke = −
(L1 K1 + L2 K2 ).
µ dy
µ dy
The effective permeability is then
Ke =
1
(L1 K1 + L2 K2 ),
L1 + L2
which is the arithmetic mean.
For an illustration of an upscaling of a permeability field using averaging,
see Fig. 4.8.
The two simple examples above, demonstrate that to accurately average
the permeability for a general porous medium is not a straightforward task.
It has been shown, however, that the harmonic and arithmetic average supply
us with lower and upper bounds, respectively, for the effective permeability
. These two types of average can be included in the more general power
average. The power average with exponent p is defined as
Z
p1
1
p
Kp =
K dV
,
V
46
Chapter 4. Numerical modelling
..
.
∆y2
Ω1,2
∆y1
Ω1,1
Ω2,1
∆x1
∆x2
···
Figure 4.11: Grid of a fractured reservoir. Grid blocks are outlined by black lines
and denoted by Ωi,j , with fractures running along the edges of each grid cell.
The shaded areas are non-fractured matrix, while the white areas illustrate the
fractures.
for any non-zero p. The harmonic average corresponds to p = −1, arithmetic
to p = 1, and if we let p go towards zero, we obtain the geometric average. As
the harmonic and arithmetic average are lower and upper bounds, the value
of p is chosen on the interval between −1 and 1. To predict the value of p
accurately is difficult without performing detailed experiments, because p is
case-specific as it depends on the heterogeneity, block shape and size, and
flow conditions . The power average is also used for anisotropic media,
with a direction dependent p.
Fracture networks and permeability
If we have a fracture model of a single continuum type, we may encounter a
grid similar to the one shown in Fig. 4.11. Typically, we can have a certain
permeability, Km , in the shaded porous areas and another permeability, Kf ,
in the white fractures, and we would like to average the two values in such
a way that we have a single representative permeability for each grid block.
For a cell in the interior, we have a solid matrix surrounded by fractures. Let
the fracture aperture be denoted by b, and introduce the short-hand notation
for the half-aperture, b̄ = b/2. We still assume that the permeability tensor
is diagonal, and only consider the permeability in the horizontal direction,
as the extension to the remaining directions is straightforward.
In Fig. 4.12, we see a typical interior cell. By following the techniques
above, we divide the single cell into three parts, shown in Fig. 4.13. When
considering fluid flow in the horizontal direction, the permeability in the
upper and lower parts are simply equal to the fracture permeability. In the
47
4.3. Upscaling
Kf
b̄
∆y
Km
K1
b̄
∆y
K2
K3
∆x
Figure 4.12: A single interior grid cell
Ωi,j with fractures in white with horizontal permeability Kf , surrounding
the shaded porous matrix with permeability Km .
∆x
Figure 4.13: Grid cell Ωi,j divided into
three parts separated by dashed lines,
each with a representative horizontal
permeability.
middle part, the flow first cross a fracture, before flowing through the matrix,
and finally crossing through another fracture. As we have seen, this can be
modelled by using a harmonic average, giving us an effective permeability
for the second part:
−1
b̄
∆x − 2b̄
b̄
K2 = ∆x
,
+
+
Kf
Km
Kf
where we implicitly let all the permeabilities denote the x-component of the
respective permeability tensor. We see that in the usual case, where we have
b̄ ∆x and Kf Km , K2 ≈ Km is a decent approximation. The same
approximation is thus valid also on the left boundary of the domain. Now,
we have flow occurring in parallel through the three parts. By the discussion
above, we can use an arithmetic average to find a single permeability in cell
Ωi,j :
Ki,j =
1
1
[K1 b̄ + K2 (∆y − 2b̄) + K3 b̄] =
[2Kf b̄ + K2 (∆y − 2b̄)].
∆y
∆y
On the lower boundary, K2 is left unchanged, but the arithmetic average
now becomes
1
Ki,j =
[Kf b̄ + K2 (∆y − b̄)].
∆y
Fracture networks and scalar properties
For a scalar property, say porosity, we can use an arithmetic average to
compute a single representative value for each grid cell, still referring to
48
Chapter 4. Numerical modelling
Fig. 4.11. For simplicity, we first assume that the fractures are completely
open, with a porosity of 1, and the matrix is impermeable, with porosity 0.
We need to find the area distribution in each cell; how much area of each cell
is occupied by the fractures and how much is the matrix. Note that the total
area of grid cell Ωi,j is simply Vi,j = ∆xi ∆yj , with the notation illustrated in
the figure. We subtract the matrix area to get the fracture area. For a cell
Ωi,j not at the boundary of the domain, we get the fracture area
f
Vi,j
= ∆xi ∆yj − (∆xi − b)(∆yj − b) = 2b(∆xi + ∆yj − b) ≈ b(∆xi + ∆yj ),
where the last approximation is done since we get a second-order term of the
aperture, and is valid if the aperture is much smaller then the size of the grid
block itself, which is usually the case. Similarly, for the boundary cells, we
get



 b̄(∆xi + 2∆yj ) for cells on the horizontal boundary,
f
Vi,j ≈ b̄(2∆xi + ∆yj ) for cells on the vertical boundary,


 b̄(∆x + ∆y ) for corner cells.
i
j
The porosity in Ωi,j is then
ϕi,j
f
Vi,j
.
=
Vi,j
This can easily be extended to the more general case where we have a
porosity ϕf in the fractures and ϕm in the matrix. Then, we get the following
weighted average:
ϕi,j =
4.3.2
f
f
ϕf Vi,j
+ ϕm (Vi,j − Vi,j
)
.
Vi,j
Flow-based upscaling
Another way to scale up conductivity is to use flow simulations. If we run
simulations over all the fine cells inside a single coarse cell, we can find the
fluxes at the coarse boundary. Then, we can use Darcy’s law to find the
needed permeability, or Fourier’s law to find the thermal conductivity. Let’s
consider the case of upscaling permeability, and use Fig. 4.14 as a basis. We
have a coarse grid block of length L and cross-sectional area A. The coarse
grid block consist of a 2 × 2 × 2 grid of fine cells, each with an associated
permeability.
49
4.3. Upscaling
x
y
z
p 2 , T2
A
L
p 1 , T1
Figure 4.14: Coarse grid block made up of eight fine grid cells.
We run a simulation of the flow through the eight fine cells, with a fixed
pressure at the end faces, e.g. p1 = 1 and p2 = 0, and with no flow conditions at the other faces. This will give us flow only in the x-direction. If
we assume that the coordinate system coincides with the principal axes of
the permeability tensor, we can use this to approximate the permeability in
the x-direction. By the numerical methods used in the simulation, we can
obtain the volumetric flow rate through the right face, which we denote by
qV . By Darcy’s law, Eq. (2.5), we have the following relation between the
permeability and the volume discharge for the x-component:
Kx =
qV Lµ
.
A(p1 − p2 )
This process can be repeated in the y- and z-direction, to obtain the diagonal
permeability tensor for the coarse cell. Finally, the same procedure can be
done to each coarse cell, resulting in a complete permeability field for the
coarse grid.
The same method can be applied to find an effective thermal conductivity.
We can perform simulations to find qT , the rate at which energy is transferred
through the right face. At the two end-faces in the x-direction, we use a given
set of constant boundary temperatures, T1 and T2 , while the other boundaries
are adiabatic. By Fourier’s law, Eq. (2.11), the x-component of the thermal
conductivity, is then
kx =
qT L
.
A(T1 − T2 )
50
4.4
Chapter 4. Numerical modelling
Numerical solvers
The discretization techniques described in the previous sections leads to systems of equations, which we need some additional tools to be able to solve
accurately. Depending on the problem, the equations can either be linear or
non-linear. Here we introduce one method for each case, for a general system
of equations, before we apply the methods on our problem of flow in porous
media in the next section.
4.4.1
Linear systems of equations
We consider a linear system of equations, on the form
Ax = b,
where A is an n × n matrix, and x and b are vectors in Rn . For hand
calculations, such an equation is usually solved using Gaussian elimination.
Gaussian elimination is also the standard tool for solving linear systems on
computers, but only if the matrix is relatively small. Because Gaussian
elimination requires O(n3 ) work for general matrices, this direct method is
unreasonably slow for an operation involving only O(n2 ) numbers. Various
iterative methods have been developed, which exploits different properties
that the coefficient matrix might have. The matrices encountered in the
discretization of PDEs are usually very large and sparse, and many methods
have been derived for such matrices.
First of all, we will introduce one of the mainstays in scientific computing: the conjugate gradient method . Although this method is only for
hermitian, positive definite matrices, it forms the basis of many other more
general methods. The approach is illustrated by first defining the Krylov
subspaces
Kn (A, b) = hb, Ab, A2 b, . . . , An−1 bi,
where h·i denotes the span of the vectors between the brackets. The conjugate
gradient iteration is a recurrence formulation that generates the sequence
xn ∈ Kn (A, b), such that the error measurement kx∗ − xn kA is minimized
at step n, where x∗ is the exact solution and the A-norm is defined as
√
kxkA = xT Ax.
The efficiency of the conjugate gradient method depends very much on the
distribution of the eigenvalues of A. As we will see later, the spectrum can,
thanks to preconditioning, even be altered, such that the conjugate gradient
method is suitable for a wider class of matrices.
51
4.4. Numerical solvers
The conjugate gradient method is a very powerful, yet simple, method,
but for our purpose, it need some modifications. For non-hermitian matrices, we can use a process called biorthogonalization. One method that uses
biorthogonalization is the biconjugate gradient method (BCG) . This
method also finds a sequence xn ∈ Kn (A, b), but now enforces an orthogonality condition on the residual rn = b − Axn to another Krylov space:
rn
⊥
Kn (AT , w),
where w is an arbitrary vector in Rn satisfying w · b = 1. Compared to other
methods, such as the method of generalized minimal residuals (GMRES),
the biconjugate gradient method can be implemented using only three-term
recurrences, but requires multiplication involving both A and AT . For systems with very high sparsity, the handling of recurrences is dominating the
work, and the BCG method is preferable. The convergence of BCG however,
is irregular and often erratic, and we perform a final modification before we
arrive at the method of choice.
To deal with the unattractive convergence behaviour of the BCG, the
Dutch mathematician Van der Vorst suggested an optimized algorithm which
he named “Bi-CGSTAB”, or the biconjugate gradient stabilized method .
This variant of the BCG is not only more stable, but also converges faster in
many cases. Bi-CGSTAB is implemented in MATLAB under the command
bicgstab.
4.4.2
Non-linear systems of equations
Several iterative methods have been developed to solve non-linear systems of
equations of the form
F (x) = 0,
(4.13)
where F : Rn → Rn is a continuously differentiable function, with


F1
 
F =  ... 
Fn


x1
 
and x =  ...  .
xn
The method we will discuss here, is called Newton’s method, and is based
on the linearization of Eq. (4.13) about a point x0 :
F (x) ≈ F (x0 ) + JF (x0 )(x − x0 ),
52
Chapter 4. Numerical modelling
where JF is the Jacobian matrix to F :
 ∂F1
∂x1

JF (x) =  ...
∂Fn
∂x1
···
...
∂F1
∂xn
···
∂Fn
∂xn

..  .
. 
Newton’s method involves an iterative procedure based on successively
linearizations, starting with an initial guess x0 :
F (xk ) + JF (xk )(xn+1 − xk ) = 0,
k = 0, 1, . . .
The newest value can be found by inverting the Jacobian if it is non-singular,
but in practice, we rather solve the n × n linear system
JF (xk )(xk+1 − xk ) = −F (xk )
(4.14)
for xk+1 −xk . Newton’s method is very simple, and possesses the property of
quadratic convergence , which makes this method extremely important
in the study of iterative methods for solving non-linear equations. For a
more careful analysis of the convergence of Newton’s method when applied
to partial differential equations, see for instance [52, 53].
Note that if the system of equations actually is a linear system Ax = b,
such that we can define
F (x) = Ax − b,
then the Jacobian of F is simply equal to A. By Eq. (4.14), Newton’s method
applied to this equation is
A(xk+1 − xk ) = −(Axk − b),
(4.15)
or equivalently
Axk+1 = b.
Hence, Newton’s method should return the solution x after one iteration
for any initial guess. Remark that the system in Eq. (4.15) requires and
additional operation count of 2n2 + n flops, compared to solving the linear
system directly, for a full matrix A. In addition, there might be some work
connected to finding the Jacobian matrix in an automatic way. For sparse
matrices, the additional cost will, of course, be significantly lower.
4.4.3
Preconditioning
As mentioned briefly earlier, the convergence of iterative methods depends
on different properties of the linear system, such as the condition number of
53
4.5. Numerical solution procedure
the coefficient matrix. The concept of preconditioning is to transform the
linear system of equations into another system, with the same solution, that
has better convergence properties. Consider an n × n system
Ax = b.
We define a preconditioner M , an invertible n × n matrix, and note that the
system
M −1 Ax = M −1 b
has the same solution. But the convergence depends now on the properties
of the matrix M −1 A, which might be better if M is well-chosen. An immediate requisite is that the product M −1 A is easy to represent, which usually
implies that equations of the form
(4.16)
My = c
The preconditioner can be defined based on the properties and structure
of the underlying problem, or they can be more general methods. Although
the specially adapted preconditioner usually performs better, a general preconditioner can be easier to define and more than adequate efficiency-wise.
Here, we will consider a method of the latter type, called incomplete LU
factorization (ILU). More specifically we will use the type of ILU preconditioning often called ILU with zero level of fill-in, abbreviated as ILU(0).
ILU(0) is a standard LU-factorization, i.e. factorization of A into a lower
triangular matrix L and upper triangular matrix U , except that the matrices L and U are only allowed to have non-zero values in positions where A
has non-zero values . The preconditioner is then defined as M = LU ,
although this product is not necessary to form explicitly, as we rather solve
the two triangular systems
Lz = c
and
Uy = z
consecutively, than Eq. (4.16). ILU preconditioning is a built-in function in
MATLAB with the command ilu.
4.5
Numerical solution procedure
We now go through the numerical procedure for finding the solution of the
governing equations with the previously introduced techniques. The equa-
54
Chapter 4. Numerical modelling
tions are repeated here:
∇·
1
K∇p
µ
= 0,
∂ T̃
(1 − ϕ)ρ̃c̃p
= (1 − ϕ)∇ · (k̃∇T̃ ) − ah(T̃ − T ),
∂t
∂T
1
ϕρcp
− ρcp ∇T ·
K∇p v = ϕ∇ · (k∇T ) + ah(T̃ − T ),
∂t
µ
with boundary and initial conditions
−1
on ΓD ,
on ΓN ,
T = TD
−(k∇T ) · n = qN
T = T0
on ΓD ,
on ΓN ,
at t = 0,
p = pD
−(µ K∇p) · n = QN
T̃ = T̃D
on ΓD ,
−(k̃∇T̃ ) · n = q̃N
on ΓN ,
T̃ = T̃ 0
at t = 0,
where all the functions on the right hand side are depending on position only.
For simplicity we have assumed that each equation has the boundary divided
into Dirichlet and Neumann boundaries in the same way. In the following
description, we first assume that all the parameters in the equations above
are constant over time.
To describe the procedure in an organized manner, we need to introduce
some new notation: Let P be the partition of the grid, i.e. the set of cells
Ωi in the domain Ω. Assume that the mesh is a regular grid of dimension
Nx × Ny , and let N = Nx Ny be the total number of cells. Let E be the set
of all edges in Ω, and let subscripts “int”, “D” and “N” denote the interior,
Dirichlet and Neumann edges, respectively, and subscript i denote the set
of edges of cell Ωi ∈ P. Let i|j be the edge common to cells Ωi , Ωj ∈ P.
For variables defined in a cell Ωi , over an edge σ, such as flux q, we use the
notation qi,σ . Similarly, we let di,σ be the distance from the cell centre in Ωi
to the edge σ, and for the tensors we let Ki,σ = kKi ni,σ k, where ni,σ is the
unit normal vector to edge σ outward from cell Ωi . The midpoint of edge σ,
we call xσ .
55
4.5. Numerical solution procedure
Mass conservation law
For the mass conservation law, we simply apply the TPFA method and obtain
X
Qi,σ = 0,
∀Ωi ∈ P,
σ∈Ei
where
Qi,σ =

Ki,σ Kj,σ
|σ|


(pi − pj ) µ di,σ Kj,σ +dj,σ Ki,σ
[pi − pD (xσ )] |σ|
µ


R
QN ds
σ
for σ ∈ Eint and σ = i|j,
Ki,σ
di,σ
for σ ∈ Ei ∩ ED ,
for σ ∈ Ei ∩ EN ,
is the flux across edge σ of cell Ωi . This is a closed system of linear equations
with one equation for each cell, which we can write as
(4.17)
Ap p = b p ,
where Ap is an N × N matrix, bp is an N -vector and
 
p1
 .. 
p =  . .
pN
Energy conservation equation for fluid
To solve the energy equations is a more comprehensive task. We start by
applying the usual TPFA method with the upwind method for the advection
term. For the fluid phase, we get
ϕρcp
X
X
dTi
+ ρcp
fi,σ = ϕ
qi,σ + ah(T̃i − Ti ),
dt
σ∈E
σ∈E
i
i
∀Ωi ∈ P,
where
qi,σ =

ki,σ kj,σ


(Ti − Tj )|σ| di,σ kj,σ +dj,σ ki,σ
ki,σ
TD (xσ )] |σ| di,σ
[Ti −


R
q ds
σ N
and
fi,σ =
(
vi,σ Ti
vi,σ Tσ,+
for σ ∈ Eint and σ = i|j,
for σ ∈ Ei ∩ ED ,
for σ ∈ Ei ∩ EN ,
if vi,σ ≥ 0,
if vi,σ < 0.
(4.18)
56
Chapter 4. Numerical modelling
In the last expression,
Z
vi,σ =
σ
and
Tσ,+ =



Tj
for σ ∈ Eint and σ = i|j,
for σ ∈ Ei ∩ ED ,
TD (xσ )


T − q
di,σ
i,σ |σ|ki,σ
i
v · ni,σ ds,
for σ ∈ Ei ∩ EN .
Darcy’s law is used in combination with the solution of the mass conservation
law to compute v. Before applying a Theta scheme for the ODE, we define
1X
ah
1 X
qi,σ −
fi,σ +
(T̃i − Ti ),
(4.19)
Fi (T , T̃ ) =
(ρcp )i σ∈E
ϕ σ∈E
ϕρcp i
i
where
i


T1
 
T =  ... 


T̃1
 
and T̃ =  ...  .
TN
Define also
T̃N


F1
 
F =  ...  ,
FN
such that Eq. (4.18) can be written compactly as
dT
= F (T , T̃ ).
dt
(4.20)
For completeness, we also list the equations for the solid phase, although
the procedure is identical, except for the absence of an advection term and
different coefficients:
(1 − ϕ)ρ̃c̃p
X
dT̃i
q̃i,σ − ah(T̃i − Ti ),
= (1 − ϕ)
dt
σ∈E
i
∀Ωi ∈ P,
where
q̃i,σ =

k̃ k̃

(T̃ − T̃j )|σ| d k̃ i,σ+dj,σ k̃

i,σ
h i
i j,σ j,σ i,σ
for σ ∈ Eint and σ = i|j,


R
for σ ∈ Ei ∩ EN .
T̃i − T̃D (xσ )
q̃
σ N
ds
k̃i,σ
|σ| di,σ
for σ ∈ Ei ∩ ED ,
4.5. Numerical solution procedure
As above, we define the function
1 X
ah
F̃i (T , T̃i ) =
q̃i,σ −
(T̃i − Ti ),
(ρ̃c̃p )i σ∈E
(1 − ϕ)ρ̃c̃p i
57
(4.21)
i
such that the equation can be written as
dT̃
= F̃ (T , T̃ ).
dt
(4.22)
We merge the two systems of ODEs in Eqs. (4.20) and (4.22) by defining
the vectors
" #
" #
F
T
.
and Fh =
Th =
F̃
T̃
The next step is then to apply the Theta method on the system
dTh
= Fh (Th ).
dt
Through inspection of each term in the F -functions, we note that if the
properties density, heat capacity and porosity are assumed to be independent
of temperature, then F can be written as a matrix equation:
Fh (Th ) = ATh + b,
(4.23)
where A is a 2N × 2N matrix and b is a 2N -vector originating from the
boundary terms. We also remark that the matrix A is a block matrix consisting of four N × N submatrices, of the form
"
#
B D
A=
,
D̃ B̃
for banded matrices B and B̃ with four diagonals in addition to the main
diagonal, and D and D̃ are diagonal matrices. Hence, A is a sparse, banded
matrix.
By the technique introduced in Section 4.2, we obtain
Thn+1 = Thn + ∆tn θFh (Thn+1 ) + (1 − θ)Fh (Thn ) ,
for the ordinary differential equation, where ∆tn is the n-th time step. To
solve this equation for Thn+1 , we insert Eq. (4.23) and obtain the linear system
of equations
(∆tn θA − I)Thn+1 = −[(1 − θ)∆tn A + I]Thn − ∆tn b,
where I is the identity matrix of appropriate size.
(4.24)
58
Chapter 4. Numerical modelling
Combining the equations
The two energy equations are coupled because of the heat transfer between
the fluid and the solid. But the energy equations are only coupled with the
pressure equation through the dependence of the volume flux in the energy
equation for the fluid. The continuity equation is independent of temperature
and time. Thus, our procedure is to solve the system of equations given in
Eq. (4.17), before we solve the system in Eq. (4.24) at each time step. In
our implementation, these systems are solved by the method introduced in
Section 4.4.1: the biconjugate gradient stabilized method. To get better
convergence properties, we use an ILU(0) preconditioner (see Section 4.4.3).
Note that if we use a constant time step, the coefficient matrix in the latter
system is constant, and the preconditioner will be especially useful.
4.5.1
Extension to the compressible case
If we now consider the more general case in which the heat capacity depends
on temperature and the fluid is compressible, the governing equations are
∂p
ρ
∂T
+ ϕρβ
=∇·
K · ∇p ,
−ϕρα
∂t
∂t
µ
(1 − ϕ)ρ̃c̃p
ϕρcp
∂ T̃
= (1 − ϕ)∇ · (k̃ · ∇T̃ ) − ah(T̃ − T ),
∂t
∂T
+ ∇ · [ρcp vT ] = ϕ∇ · (k · ∇T ) + ah(T̃ − T ),
∂t
as was derived in Sections 2.4 and 2.6. The previously defined initial and
boundary conditions are still valid, but we need an additional condition for
the pressure, namely
p = p0 at t = 0,
for a given function p0 (x) defined on the entire domain Ω. We spot three
major, complicating differences between these equations and the equations
in the previous section:
1. The inclusion of time differentials in the continuity equation implies
a non-steady state, and the equation needs to be solved at each time
step.
2. The time derivative of the temperature and temperature-dependent
variables included in the continuity equations causes a stronger coupling
between the three equations, and all three equations must possibly be
solved simultaneously.
59
4.5. Numerical solution procedure
3. Temperature-dependent densities and heat capacities makes the resulting system of equations non-linear.
We will now sketch how these challenges can be met.
The right hand side of the continuity equation and the two heat equations
are basically equivalent to before, and we can apply the same techniques as
in the incompressible problem on these terms. With the same notation as
before, we arrive at
X
∂T
∂p
− ϕρα
+ ϕρβ
=
Qi,σ ,
(4.25)
∂t i
∂t i σ∈E
i
∂Ti
= Fi (T , T̃ ),
(4.26)
∂t
∂ T̃i
= F̃i (T , T̃ ),
(4.27)
∂t
but here with a slightly different expression for the flux in the pressure equation:

Xi,σ Xj,σ
|σ|


(pi − pj ) µ di,σ Xj,σ +dj,σ Xi,σ for σ ∈ Eint and σ = i|j,
Xi,σ
Qi,σ = [pi − pD (xσ )] |σ|
for σ ∈ Ei ∩ ED ,
µ di,σ


 R
ρi σ QN ds
for σ ∈ Ei ∩ EN ,
where we have defined Xi,σ = ρi Ki,σ . We insert Eq. (4.26) into Eq. (4.25)
and isolate for ∂p/∂t:
∂pi
1 X
αi
=
Qi,σ + Fi (T , T̃ ).
(4.28)
∂t
(ϕρβ)i σ∈E
βi
i
The right hand side of this equations, we denote as the function fi (p, T , T̃ ).
The procedure can then be formulated as solving the systems of equations,
given by Eqs. (4.26) to (4.28), simultaneously. However, if the coupling is not
too strong, it can be adequately accurate to solve the systems sequentially.
That is, first solve the two systems in Eqs. (4.26) and (4.27) using the previous
calculated value of p, before we solve Eq. (4.28). This sequential approach
is more efficient, both in terms of memory usage and computational speed
. The two heat equations have a stronger coupling, so we solve these
simultaneously.
As before, we apply a theta scheme to the two systems
dTh
= Fh (Th , p)
dt
dp
= f (Th , p),
dt
60
where
Chapter 4. Numerical modelling


f1
 
f =  ...  .
fN
Using the sequential approach, we can write this theta scheme as
Thn+1 = Thn + ∆tn θFh (Thn+1 , pn ) + (1 − θ)Fh (Thn , pn ) ,
pn+1 = pn + ∆tn θf (Thn+1 , pn+1 ) + (1 − θ)f (Thn , pn ) .
(4.29)
(4.30)
The first two problems have been taken care of thus far, but the third
one remains: the non-linearity. The functions Fh and f are now non-linear,
making Eqs. (4.29) and (4.30) not as easy to solve. However, there are
numerous algorithms specialized to solving non-linear systems of equations.
Here, we use the popular Newton’s method, explained in Section 4.4.2. We
define the functions
G(ξ) = ξ − Thn − ∆tn [θFh (ξ, pn ) + (1 − θ)Fh (Thn , pn )] ,
g(ζ) = ζ − pn − ∆tn θf (Thn+1 , ζ) + (1 − θ)f (Thn , pn ) ,
(4.31)
such that we can formulate an equivalent problem as finding the roots of the
two non-linear functions G(ξ) and g(ζ), and assign the roots to Thn+1 and
pn+1 respectively. The inclusion of Thn+1 in the second expression, implies
that we have to find the root of the first function before we advance to the
second function. To illustrate how Newton’s method is applied, we focus
solely on the function G. The procedure for finding the pressure is similar.
Newton’s method is an iterative method, where the next value is found by
solving the linear system
JG (ξk )(ξk+1 − ξk ) = −G(ξk ),
(4.32)
where JG (ξk ) is the Jacobian matrix to G evaluated at ξk . To find the
Jacobian, we first note that
JG (ξ) = I − θ∆tn JFh (ξ).
(4.33)
We inspect the expression for Fh = FF̃ given in Eqs. (4.19) and (4.21).
We assume that the rock is incompressible, such that the porosity and rock
density are constant under variation of temperature and pressure. Incorporation of variable porosity and rock density is straightforward. Hence, all the
coefficients, except the heat capacity and the fluid density, are constant. As
61
4.5. Numerical solution procedure
a short-hand notation, we define the diagonal
variable x and partition P as

x1

...
DP (x) = 
matrix DP (x) for a physical


,
xN
where xi is understood to be the representation of x in the cell Ωi ∈ P, and
|P| = N . Then we can write
−1
F (ξ) = DP (ρc−1
p )(Aq ξ + bq ) + Af ξ + bf + DP (ρcp )Ah ξ,
−1
F̃ (ξ) = DP (c̃−1
p )(Ãq ξ + b̃q ) + DP (c̃p )Ãh ξ,
where Aq and bq is the matrix and vector originating from the q-term, Af
and bf from the f -term, and Ah from the exchange term, in the original
expression for F , with the constant coefficients incorporated. Note that the
A-matrices here are constant matrices of dimension N × 2N .
Using the chain and product rule for differentiation, we compute the
Jacobian matrices:
0
ρ (ξ) c0p (ξ)
JF (ξ) = − DP
+
[(Aq + Ah )ξ + bq ]
ρ 2 cp
ρc2p
+ DP (ρc−1
p )(Aq + Ah ) + Af
and
JF̃ (ξ) = − DP
c̃0p (ξ)
c̃2p
h
i
(Ãq + Ãh )ξ + b̃q + DP (c̃−1
p )(Ãq + Ãh ),
which we can combine to find the Jacobian matrix for Fh :
"
#
JF (ξ)
JFh (ξ) =
.
JF̃ (ξ)
By Eq. (4.33), we find the Jacobian matrix for G, and we can solve the linear
system of equations in Eq. (4.32) for the unknown ξk+1 − ξk , for instance by
using the biconjugate gradient method introduced in Section 4.4.1. The
process is then repeated, leading to a sequence {ξk } converging to Thn+1 .
The same set of operations are performed on the function g(ζ) in Eq. (4.31),
resulting in a sequence {ζk } converging to pn+1 .
We note that in the incompressible case, we had to solve an N × N linear
system once for the pressure, before solving a 2N × 2N linear system for
62
Chapter 4. Numerical modelling
the temperature at each time step. If the flow is considered as compressible
on the other hand, the computational cost is significantly increased. In this
case, it is required at each time step to solve two linear systems of dimension
N × N and 2N × 2N repeatedly, until a convergence criterion for Newton’s
method is met.
Chapter 5
Simulations and results
In this chapter, we will combine the physical and mathematical models with
the numerical tools, to perform simulations of geothermal reservoirs. First,
we describe the software and source codes we will use, before we set up concrete examples and run simulations, and finally analyse the results. We will
focus on incompressible flow, before we briefly test the case of compressible
flow.
5.1
Simulator
The source code used here is in its entirety written in Matlab, although
the toolbox we will use also include some C/C++ routines as MEX-files.
Matlab (Matrix laboratory) is an extremely popular software package for
numerical computing, both in industry and academia. It was first started
developed in the late 1970s, by what now is known as MathWorks, and had
an estimate of 4 million users worldwide in 2010 .
5.1.1
Matlab Reservoir Simulation Toolbox
As a basis for all simulations, we use an open-source toolbox for Matlab developed by SINTEF, called Matlab Reservoir Simulation Toolbox (MRST)
. The MRST is a toolkit developed as an efficient test platform for
discretization techniques and methods in the area of reservoir simulation.
Currently, MRST consists of a core with pressure and transport solvers for
single-phase and two-phase flow, and a variety of add-on modules, made both
by SINTEF and third-party developers, such as multiscale solvers, an IMPES solver, and an MPFA solver. MRST, including the add-on modules, is
63
64
Chapter 5. Simulations and results
MRST consist of several grid generators, and the grids are organized in
a structure, with fields holding information about all the cells, faces and
nodes. The information is stored in a general way, allowing for unstructured,
polyhedral grids. In supplement to the simple grid generators in MRST, it is
implemented routines that can import grids constructed by more specialized
grid software. Properties of the fluid and rock are stored as vectors, with one
value for each cell, or as matrices for anisotropic properties, with one row for
each cell, and gathered in a fluid structure and a rock structure. Similarly,
structures for boundary values, sources and wells are constructed. When all
the structures are initialized, we pass them as arguments to solver functions.
The solver returns a structure containing information about the state of the
reservoir, such as the pressure for each cell and the flux over each face.
5.1.2
In addition to the MRST core functionality, we need a few of the many useful
add-on modules. First, we need two official modules, which are related to
the upscaling of grids: the Coarsegrid module and the Upscaling module.
The first module is routines which easily can construct a coarser partitioning of a fine grid structure, while the latter module can upscale properties,
such as permeability, from the fine grid to the coarser grid, using flow-based
upscaling.
An add-on module we will use extensively, is a third-party module made
by Eirik Keilegavlen and Tor Harald Sandve at the University of Bergen,
Department of Mathematics, called the Discrete Fracture Matrix (DFM)
Module. As the name suggests, this is an incorporation of a discrete fracture
model in the MRST. The DFM module has both a TPFA  and an MPFA
solver  for the flow regime, and is compatible for unstructured grids.
The MRST has no native solver for thermal problems. The final module we will make use of as a basis for our implementation and simulation,
is an ongoing project by Antoine Tambue at the University of Bergen, Department of Mathematics. We will call this the Geothermal module, which
has capabilities of solving geothermal problems for compressible flow. As of
now, only the TPFA method is implemented for the spatial discretization,
but an MPFA solver is under development. Several time integrators can be
used , and the Geothermal module is compatible for use with the DFM
module.
5.2. Initial simulations
5.1.3
65
As seen in the previous chapter, the computational cost of solving problems concerning compressible flow is significantly higher than incompressible
problems. Even though applying Newton’s method to a linear system of
equations is basically the same as solving the system directly (see the last
paragraph of Section 4.4.2), it is still more efficient to set up the linear system
directly. To this end, we have also implemented an incompressible solver for
the temperature equations.
Routines that generate grids for dual models and equivalent continuum
models and computing the associated properties based on a DFM model is
also implemented for rectilinear grids in two-dimensional space.
5.2
Initial simulations
Initially, we set up some simple examples to familiarize with the simulation
of the models and how the properties impact the pressure and temperature
field. We start with a reservoir of dimensions 100 m × 100 m, with only onedimensional flow. The flow is induced by injecting cold fluid at the west edge,
and producing in the east. We use an initial temperature of 90 ◦C for both
the fluid and the rock, while the injecting fluid has a temperature of 10 ◦C.
This is implemented as setting a Dirichlet condition of T = T̃ = 10 ◦C on the
left edge, together with a volume flux Q across the same boundary into the
domain. We produce at constant pressure on the right boundary. Only the
relative pressure field is of interest, so we set the value arbitrarily at 1 bar =
0.1 MPa. The remaining boundary conditions are all set to homogeneous
Neumann boundary conditions, i.e. there is no volume flux nor temperature
flux across the edges. Due to convection, we expect this to lead to a cold
temperature front moving uniformly from the west to the east.
We let the fluid be water, and use the physical properties from Tables 2.1
and 2.3. For the rock we will use realistic values for a porous rock based on
the same tables. The values we will use are listed here in Table 5.1: The rock
is initially fully saturated and the fracture aperture is set to b = 100 µm for
all fractures.
As for the numerical properties, we set θ = 1, i.e. the implicit, backward
Euler scheme. The tolerance value for the linear and non-linear solvers we set
to 10−6 . We use an equidistant discretization in time and run the simulation
for 100 days. We use Nt = 400 time steps, so tNt = 100 d and ∆ti = ∆t =
0.25 d. With this time span given, we set an injection rate of Q = 840 m3 /d
across the left boundary, giving a volume flux density of 8.4 m/d = 35 cm/h.
66
Chapter 5. Simulations and results
100
90
80
70
60
50
40
30
20
10
0
0
20
60
40
80
100
Figure 5.1: Grid with injection on the left side (in red) and production on the
right side (in blue). The thick black lines signifies fractures, though the thickness
is exaggerated for illustrative purposes, as the fracture aperture is only 10−4 m.
Table 5.1: Physical parameters for simulation of an incompressible fluid.
Parameter
kT
cp
ρ
µ
k̃T
c̃p
ρ̃
Value
0.58
4190
998
0.001
1
1000
2800
Unit
W/(m·K)
J/(kg·K)
kg/m3
Pa·s
W/(m·K)
J/(kg·K)
kg/m3
5.2. Initial simulations
67
As we will see, this rate give us a nicely distributed temperature field during
100 days. Next, we will describe how each of the models are implemented
for this case.
DFM model
The Geothermal module we use works with the two-equation model for the
temperature. This fracture model, however, involves only a single continuum,
where the fracture location is known. All of the water travel only through
the fractures, while the matrix is impermeable. We have a local thermal
equilibrium, and hence we could make do with only one energy equation. To
emulate this behaviour, we note that we have this equilibrium state when
the heat transfer coefficient h → ∞. So we set the product ah in the energy
equation sufficiently large to reach this state, say ah = 106 W/(m3 ·K). We
want no fluid in the matrix, so we set the matrix permeability and porosity to
negligible values; due to limitations in the code we cannot set them to zero.
The fracture porosity is set to 0.999, and we assign an isotropic fracture
permeability computed using the cubic law.
We divide the domain into a grid of dimensions 100 × 100, and add fractures positioned at every five metres in both directions. The grid is illustrated
in Fig. 5.1, while the constant pressure field is seen in Fig. 5.4. The cells connected to the injection boundary are coloured red, and the cells connected
to the production boundary are coloured blue. In Figs. 5.2 and 5.3 is the
temperature field after 50 and 100 days respectively.
The injection rate of Q is applied as a Neumann condition on the boundary of the fractures only, and similar at the production end. A Dirichlet
condition is set at the entire left edge for the heat equations at 10 ◦C.
Dual model
The dual model on the other hand is, as the name suggests, a true twoequation model. Based on geometric properties for a grid of the form seen
on Fig. 4.11, we estimate the specific surface area to be a = 4/L, where
L is the average length of a cell block wall. The heat transfer coefficient
is approximated by using the relation given in Eq. (2.14). We construct
the grid by making the fracture lines be the border of each cell block. The
permeability is set equal to the fracture permeability, and the porosity is
computed using an arithmetic average, as described in Section 4.3. The
grid blocks resulting from this procedure is however very large. To obtain
somewhat feasible results, we divide the grid into smaller cells, where each
cell inherits the properties of the cell in which they are inscribed. This
68
Chapter 5. Simulations and results
[◦ C]
Temperature at t = 50.00 days
90
100
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
10
0
0
20
40
60
80
10
100
Figure 5.2: Temperature field after 50 days with the DFM model.
[◦ C]
Temperature at t = 100.00 days
90
100
90
80
80
70
70
60
60
50
50
40
40
30
30
20
20
10
0
0
20
40
60
80
100
10
Figure 5.3: Temperature field after 100 days with the DFM model.
69
5.2. Initial simulations
Pressure
[bar]
100
5500
90
5000
80
4500
70
4000
60
3500
3000
50
2500
40
2000
30
1500
20
1000
10
0
500
0
20
40
60
80
100
Figure 5.4: Pressure field with the DFM model.
process is illustrated for a segment of the grid in Fig. 5.5. We divide each
grid block into 5 × 5 cells, giving us a total grid of dimension 100 × 100, with
one unit equal to one metre. At the boundary, we set an injection rate of
Q on the entire left boundary, and similar for the right boundary. Also, we
set a boundary condition of 10 ◦C at the left boundary for both the fluid and
solid heat equation.
The resulting pressure field is seen in Fig. 5.6. Relatively, it is similar to
that for the DFM model, but the values are not comparable. One suggested
reason for this is that the injection and production flux rate is equal in both
model, but the area through which fluid is injected/produced differs. If we
let subscripts “dfm” and “dual” denote the two different models, then we have
by Darcy’s law the relation
where A is used to represent the injection or production area. In this sce≈ 5 × 104 . Hence, the pressure differences
nario, the area ratio is about 100
19b
in the DFM model should be about 5 × 104 times the pressure differences in
the dual model. In the two aforementioned pressure fields, Figs. 5.4 and 5.6,
we observe a ratio of about 4.75 × 104 , supporting this estimate. We do,
however, presume that this is caused by some improper scaling in the implementation, but were unable to resolve the problem.
70
Chapter 5. Simulations and results
8
8
8
7
7
7
6
6
6
5
5
5
4
4
4
3
3
3
2
2
2
1
1
1
0
0
0
1
2
3
4
5
6
7
8
0
1
2
3
4
5
6
7
8
0
0
1
2
3
4
5
6
7
8
Figure 5.5: The procedure for making the grid for the dual model. We start off
with the grid from the DFM model, with the black lines signifying fractures. Then,
the areas naturally separated by the fractures are defined as the new grid blocks,
and the properties from the DFM model are upscaled to this coarser grid. Finally,
we create a finer partition of the coarse grid, where each grid cell inherits any
property the parent cell possesses.
The temperature for the fluid after 50 and 100 days is shown in Figs. 5.7
and 5.8, and the solid temperature is in Figs. 5.9 and 5.10. The fluid temperature should be compared to the temperature within the fractures in Figs. 5.2
and 5.3, and the solid temperature to the temperature outside the fractures
in the same figures.
Equivalent continuum model
For this last model, we are back to only one temperature at each point. As
before, we emulate the thermal equilibrium by setting ah to a high value.
Like for the dual model, we construct the grid by first letting the fractures
coincide with the border of each cell. Both porosity and permeability is
computed by an analytical upscaling, based on the techniques in Section 4.3.
Now that the properties are calculated, we are free to partition the grid
further, if the current grid is to coarse. We try the same resolution as before;
we divide each cell into 25 smaller cells to obtain a 100 × 100 grid.
The pressure field is shown in Section 5.2, and the temperature after 50
and 100 days are shown in Figs. 5.12 and 5.13. The information concerning
the location and distribution of the fractures is now lost, so the temperature
should be compared with the average of the fluid and solid temperature in
the DFM and dual model.
Comparison
In Figs. 5.14 and 5.15 we have compared the average temperature at the
production end for the fluid and solid in the DFM and dual model. The
71
5.2. Initial simulations
Pressure
[bar]
100
1.12
90
1.1
80
70
1.08
60
50
1.06
40
1.04
30
20
1.02
10
0
0
20
40
60
80
100
1
Figure 5.6: Pressure field with the dual model.
[◦ C]
Fluid temperature at t = 50.00 days
90
[◦ C]
Fluid temperature at t = 100.00 days
90
100
80
80
90
100
90
80
80
70
70
70
70
60
60
50
50
40
40
30
60
60
50
50
40
40
30
30
20
20
10
0
30
20
0
20
40
60
80
100
10
Figure 5.7: Temperature field after
50 days for the fluid phase with the
dual model.
20
10
0
0
20
40
60
80
100
10
Figure 5.8: Temperature field after
100 days for the fluid phase with the
dual model.
72
Chapter 5. Simulations and results
[◦ C]
Solid temperature at t = 50.00 days
90
[◦ C]
Solid temperature at t = 100.00 days
90
100
90
100
90
80
80
80
80
70
70
70
70
60
60
50
50
40
60
60
50
50
40
40
30
40
30
30
30
20
20
20
10
0
0
20
40
60
80
100
20
10
0
10
Figure 5.9: Temperature field after
50 days for the solid phase with the
dual model.
0
20
40
60
80
Pressure
[bar]
6000
90
5000
80
70
4000
60
50
3000
40
2000
30
20
1000
10
0
20
40
10
Figure 5.10: Temperature field after
100 days for the solid phase with the
dual model.
100
0
100
60
80
100
Figure 5.11: Pressure field with the single model.
73
5.2. Initial simulations
[◦ C]
Temperature at t = 50.00 days
90
[◦ C]
Temperature at t = 100.00 days
90
100
80
80
90
100
90
80
80
70
70
70
70
60
60
50
50
40
40
30
60
60
50
50
40
40
30
30
20
20
10
0
30
20
0
20
40
60
80
100
10
Figure 5.12: Temperature field after
50 days with the single model.
20
10
0
0
20
40
60
80
100
10
Figure 5.13: Temperature field after
100 days with the single model.
results from the two models gives us a fairly decent match, especially for
the fluid temperature in the initial phase. But it is obvious that the dual
model overall leads to a higher temperature than the DFM model. One
of the biggest uncertainties in the implementation of the dual model is the
heat transfer coefficient. Raising the heat transfer coefficient could give us a
lower solid temperature in the dual model to better match the DFM model.
However, we expect it to have an opposite effect on the fluid temperature,
such that an inaccurate value for h cannot possibly alone explain the apparent
deviation in temperature. To illustrate how a change in the heat transfer
coefficient will manifest itself, we have set h equal to 1.55 times the old h.
The plots are shown in Figs. 5.16 and 5.17. The fluid temperature starts out
higher than before, but actually ends up being closer to the values from the
DFM model. The solid temperature is now in much better agreement with
the solid temperature obtained by the DFM model.
In Fig. 5.18 is the L2 -difference between the DFM and dual model over
the entire domain, for the fluid and solid. In the computing of the L2 difference, we have assumed that the fluid temperature in the DFM model
for an arbitrary cell is equal to the temperature of the closest horizontal
fracture. Then, we have computed
Z
1
2
(Tdfm − Tdual )2 dx
kTdfm −Tdual kL2 =
|Ω| Ω
N Z
N
1 X
1 X
2
(Tdfm − Tdual ) dx =
=
|Ωi |(Tdfm,i − Tdual,i )2 .
|Ω| i=1 Ωi
|Ω| i=1
74
Chapter 5. Simulations and results
Fluid temperature
Solid temperature
90
90
DFM
Dual
70
70
60
60
50
50
40
40
30
30
20
20
10
10
20
30
40
50
t [days]
60
70
80
90
100
Figure 5.14: Comparison of fluid
temperature at production between
DFM and dual model.
DFM
Dual
80
T̃ [◦ C]
T [◦ C]
80
10
10
20
30
40
50
t [days]
60
70
80
90
100
Figure 5.15: Comparison of solid
temperature at production between
DFM and dual model.
Comparison of the average temperature at the production end for all
three models is shown in Fig. 5.19. For the DFM model, a weighted average
is computed by using the knowledge of the fracture geometry. For the dual
model, the average is weighted using the porosity. The temperature at the
producing boundary for the single model is clearly nowhere near the results
from the other two models. It does on the other hand resemble the fluid
temperature obtained by the DFM and dual model. A comparison is made
in Fig. 5.20.
By the simulation results above, it seems like the injection rate caused
a convective heat transfer too high to see any temperature front spreading
through the medium. If we lower the injection rate we will see more clearly
the effects of the cold water flowing through the medium. In the next section
we will look at cases with lower flow rate.
5.3
Diagonal flow paths
In the next simulations, we will keep the same grid as before. However, we
will do the injection of cold water in the lower left corner of the grid, and
the production in the upper right corner. The grid is shown in Section 5.3,
where the cells connected to the injection faces are coloured red, and the
production faces blue. We set the injection rate to 24 m3 /d, giving a flux
density of 10 cm/h. This gives us a pressure field that for the dual model
looks like in Section 5.3.
75
5.3. Diagonal flow paths
Fluid temperature
Solid temperature
90
90
DFM
Dual
Dual, 1.55h
70
70
60
60
50
50
40
40
30
30
20
20
10
10
20
30
40
50
t [days]
60
70
80
90
DFM
Dual
Dual, 1.55h
80
T̃ [◦ C]
T [◦ C]
80
10
100
Figure 5.16: Comparison of fluid
temperature at production with varying heat transfer coefficient.
10
20
30
40
50
t [days]
60
70
80
90
100
Figure 5.17: Comparison of solid
temperature at production with varying heat transfer coefficient.
L2-difference between DFM and dual model
Average production temperature
25
90
Fluid
Solid
DFM
Dual
Single
80
20
Temperature [◦ C]
kTdfm − Tdual kL2
70
15
10
60
50
40
30
5
20
0
0
20
40
60
80
100
t [days]
Figure 5.18: Measure of the difference between temperature obtained
with the DFM model and dual model
in L2 norm.
10
0
20
60
40
80
100
t [days]
Figure 5.19: Average temperature of
all three models at the production.
76
Chapter 5. Simulations and results
Temperature
90
DFM fluid
Dual fluid
Single
80
70
T [◦ C]
60
50
40
30
20
10
10
20
30
40
50
t [days]
60
70
80
90
100
Figure 5.20: Temperature from the
single model compared to the fluid
temperature of the DFM and dual
model.
The temperature fields after 50 and 100 days obtained through the DFM
model is seen in Figs. 5.23 and 5.24. These can be compared to Figs. 5.25
and 5.26, the temperature distribution after 50 days for the fluid and solid
using the dual model, and Figs. 5.27 and 5.28, where we see the same distribution after 100 days. The results from the single model are shown in
Figs. 5.29 and 5.30.
We compare the temperature in the DFM model and dual model for the
fluid and solid. The graphs are shown in Figs. 5.32 and 5.33. This time,
the temperature obtained by the DFM model is higher than the temperature
from the dual model for the solid state. It also starts out higher for the
fluid state, but the temperature decreases faster. These results differ from
the previous case, where the values from the dual model were generally lower
than the values from the DFM model.
If we look at the average temperature at the production area for all three
models in Fig. 5.31, we notice that the results from the equivalent continuum
model are completely different than in the other two models. As we see in
Fig. 5.29, the cold temperature front has not even reached the production
corner of the domain. In addition, we note that the curve describing the average production temperature in the equivalent continuum model is nowhere
near the temperature curves for the fluid in Fig. 5.32, so the similarity in the
previous grid seems coincidental.
77
5.3. Diagonal flow paths
100
90
80
70
60
50
40
30
20
10
0
20
0
60
40
100
80
Figure 5.21: Grid with injection in the lower left corner and production in the
upper right.
Pressure
[bar]
100
1.04
90
1.035
80
1.03
70
60
1.025
50
1.02
40
1.015
30
1.01
20
1.005
10
0
0
20
40
60
80
100
1
Figure 5.22: Pressure field for grid with injection in the lower left corner and
production in the upper right.
78
Chapter 5. Simulations and results
[◦ C]
Temperature at t = 50.00 days
90
[◦ C]
Temperature at t = 100.00 days
90
100
80
80
90
100
90
80
80
70
70
70
70
60
60
50
50
40
40
30
60
60
50
50
40
40
30
30
20
20
10
0
30
20
0
20
40
60
80
10
100
Figure 5.23: Temperature field after
50 days with the DFM model.
20
10
0
0
60
80
80
80
[◦ C]
90
100
90
80
80
70
70
70
70
60
60
50
50
40
40
30
60
60
50
50
40
40
30
30
20
30
20
20
10
0
10
100
Solid temperature at t = 50.00 days
90
90
40
Figure 5.24: Temperature field after
100 days with the DFM model.
[◦ C]
Fluid temperature at t = 50.00 days
100
20
0
20
40
60
80
100
10
Figure 5.25: Temperature field after
50 days for the fluid phase with the
dual model.
20
10
0
0
20
40
60
80
100
10
Figure 5.26: Temperature field after
50 days for the solid phase with the
dual model.
79
5.3. Diagonal flow paths
[◦ C]
Fluid temperature at t = 100.00 days
90
[◦ C]
Solid temperature at t = 100.00 days
90
100
80
80
90
100
90
80
80
70
70
70
70
60
60
50
50
40
40
30
60
60
50
50
40
40
30
30
20
20
10
0
30
20
0
20
40
60
80
10
100
Figure 5.27: Temperature field after
100 days for the fluid phase with the
dual model.
20
10
0
0
60
80
80
80
[◦ C]
90
100
90
80
80
70
70
70
70
60
60
50
50
40
40
30
60
60
50
50
40
40
30
30
20
30
20
20
10
0
10
100
Temperature at t = 100.00 days
90
90
40
Figure 5.28: Temperature field after
100 days for the solid phase with the
dual model.
[◦ C]
Temperature at t = 50.00 days
100
20
0
20
40
60
80
100
10
Figure 5.29: Temperature field after
50 days with the single model.
20
10
0
0
20
40
60
80
100
10
Figure 5.30: Temperature field after
100 days with the single model.
80
Chapter 5. Simulations and results
Average production temperature
90
Temperature [◦ C]
85
80
75
70
DFM
Dual
Single
65
0
20
40
60
80
100
t [days]
Figure 5.31: Average temperature of
all three models at the production.
Fluid temperature
Solid temperature
90
90
DFM
Dual
70
70
60
60
50
50
40
40
30
30
20
20
10
10
20
30
40
50
t [days]
60
70
80
90
100
Figure 5.32: Comparison of fluid
temperature at production between
DFM and dual model.
DFM
Dual
80
T̃ [◦ C]
T [◦ C]
80
10
10
20
30
40
50
t [days]
60
70
80
90
100
Figure 5.33: Comparison of solid
temperature at production between
DFM and dual model.
81
5.4. Variation of fracture density
[◦ C]
Temperature at t = 50.00 days
90
[◦ C]
Fluid temperature at t = 50.00 days
90
100
80
80
90
100
90
80
80
70
70
70
70
60
60
50
50
40
40
30
60
60
50
50
40
40
30
30
20
20
10
0
30
20
0
20
40
60
80
100
10
Figure 5.34: Temperature field after
50 days with the DFM model, with
fractures at every three metres.
5.4
20
10
0
0
20
40
60
80
100
10
Figure 5.35: Temperature field after
50 days for the fluid phase with the
dual model, with fractures at every
three metres.
Variation of fracture density
Now, we will take a look at how the fracture density affects the results. By
the discussion in Section 3.3, we expect the single and dual models to perform
better in a high-density fracture network than in a network dominated by a
few single fractures. We consider the same case as above, in which the flow
occurs from the bottom left to the upper right, but change the fracturing to
fracture every three metres and every ten metres.
High-density fracture network
We set fractures at every three metres, and keep the other settings untouched.
The temperature at 50 days for the three models are shown in Figs. 5.34
to 5.37. A comparison of the fluid and solid temperature in the DFM and dual
model is seen in Figs. 5.38 and 5.39, and the average production temperature
of all three models are shown in Fig. 5.40.
Low-density fracture network
We now consider the case where we have fewer, more dominant fractures.
We create fractures at every ten metres, and increase the fracture aperture
by a factor of five, to b = 500 µm.
The comparisons of the different models are shown in Figs. 5.46 to 5.49.
82
Chapter 5. Simulations and results
[◦ C]
Solid temperature at t = 50.00 days
90
[◦ C]
Temperature at t = 50.00 days
90
100
80
80
90
100
90
80
80
70
70
70
70
60
60
50
50
40
40
30
60
60
50
50
40
40
30
30
20
20
10
0
30
20
0
20
40
60
80
10
100
Figure 5.36: Temperature field after
50 days for the solid phase with the
dual model, with fractures at every
three metres.
20
10
0
0
20
40
Fluid temperature
10
100
Solid temperature
90
DFM
Dual
80
70
70
60
60
50
50
40
40
30
30
20
20
10
20
30
40
50
t [days]
60
70
80
90
100
Figure 5.38: Comparison of fluid
temperature at production between
DFM and dual model, with high fracture density.
DFM
Dual
80
T̃ [◦ C]
T [◦ C]
80
Figure 5.37: Temperature field after
50 days with the single model, with
fractures at every three metres.
90
10
60
10
10
20
30
40
50
t [days]
60
70
80
90
100
Figure 5.39: Comparison of solid
temperature at production between
DFM and dual model, with high fracture density.
83
5.4. Variation of fracture density
L2-difference between DFM and dual model
25
85
20
80
15
kTdfm − Tdual kL2
Temperature [◦ C]
Average production temperature
90
75
10
5
70
DFM
Dual
Single
65
0
Fluid
Solid
20
40
60
80
0
100
0
20
40
t [days]
60
80
100
t [days]
Figure 5.40: Average temperature of
all three models at the production,
with high fracture density.
Figure 5.41: L2 -difference between
temperature from DFM and dual
model, with high fracture density.
[◦ C]
Temperature at t = 50.00 days
90
[◦ C]
Fluid temperature at t = 50.00 days
90
100
80
80
90
100
90
80
80
70
70
70
70
60
60
50
50
40
40
30
60
60
50
50
40
40
30
30
20
20
10
0
30
20
0
20
40
60
80
100
10
Figure 5.42: Temperature field after 50 days with the DFM model,
with fractures at every ten metres
and fracture aperture of 500 µm.
20
10
0
0
20
40
60
80
100
10
Figure 5.43: Temperature field after
50 days for the fluid phase with the
dual model, with fractures at every
ten metres and fracture aperture of
500 µm.
84
Chapter 5. Simulations and results
[◦ C]
Solid temperature at t = 50.00 days
90
[◦ C]
Temperature at t = 50.00 days
90
100
80
80
90
100
90
80
80
70
70
70
70
60
60
50
50
40
40
30
60
60
50
50
40
40
30
30
20
20
10
0
30
20
0
20
40
60
80
10
100
Figure 5.44: Temperature field after
50 days for the solid phase with the
dual model, with fractures at every
ten metres and fracture aperture of
500 µm.
20
10
0
0
20
40
80
10
100
Figure 5.45: Temperature field after 50 days with the single model,
with fractures at every ten metres
and fracture aperture of 500 µm.
Fluid temperature
Solid temperature
90
90
DFM
Dual
80
80
70
70
60
60
T̃ [◦ C]
T [◦ C]
60
50
50
40
40
30
30
20
20
10
10
10
20
30
40
50
t [days]
60
70
80
90
100
Figure 5.46: Comparison of fluid
temperature at production between
DFM and dual model, with low fracture density.
DFM
Dual
10
20
30
40
50
t [days]
60
70
80
90
100
Figure 5.47: Comparison of solid
temperature at production between
DFM and dual model, with low fracture density.
85
5.5. Compressible flow
L2-difference between DFM and dual model
Average production temperature
90
30
25
85
kTdfm − Tdual kL2
Temperature [◦ C]
20
80
75
15
10
70
5
DFM
Dual
Single
65
0
20
40
60
80
Fluid
Solid
100
t [days]
Figure 5.48: Average temperature of
all three models at the production,
with low fracture density.
0
0
20
40
60
80
100
t [days]
Figure 5.49: L2 -difference between
temperature from DFM and dual
model, with low fracture density.
Comparison
We compare the results from the dual model with the results from the DFM
model. In Figs. 5.50 and 5.51 we see the absolute difference between the
temperatures in the two models at the different fracture density. Based on
the model concepts, we did expect to see a better match for the dual model in
the high-density grids than in the low-density grids. The simulations do not
show any clear improvement. We do however, see a pattern in the correlation
between fracture density and temperature difference. It seems like the models
match better for high fracture density in the initial phase, before the error
grows larger and larger as time goes by. For lower fracture density we observe
an opposite pattern; the error start out high, but decreases after some time.
5.5
Compressible flow
In this section we investigate the case in which the properties depend on
the state of the system. For low-temperature simulations, with temperatures
lower than about 150 ◦C, the properties can be well approximated as functions
of temperature only . Based on the tables in  and linear interpolation,
we construct functions describing the density, viscosity and heat capacity for
the fluid. We add a slight dependency on the pressure for the density. A
typical compressibility is β = 4.5 × 10−10 Pa−1 . Then if ρ0 (T ) denotes
the density at temperature T at atmospheric pressure p0 = 1 atm, we can
integrate the compressibility to obtain the density at a given pressure p and
86
Chapter 5. Simulations and results
Fluid temperature difference
Solid temperature difference
25
3.5
Low density
Medium density
High density
Low density
Medium density
High density
3
20
|T̃dfm − T̃dual | [◦ C]
|Tdfm − Tdual | [◦ C]
2.5
15
10
2
1.5
1
5
0.5
0
0
20
40
60
80
100
0
0
t [days]
20
40
60
80
100
t [days]
Figure 5.50: Temperature difference
between the DFM and dual model
for the fluid phase at various fracture
densities.
Figure 5.51: Temperature difference
between the DFM and dual model
for the fluid phase at various fracture
densities.
temperature T :
ρ(p, T ) = ρ0 (T )eβ(p−p0 ) .
The functions are shown in Figs. 5.52 to 5.54. The thermal expansion coefficient, α, is computed as a piecewise constant function based on the density
of the water.
We set up a case similar to the ones above. Unfortunately, we run into
some major convergence problems. The experimental code has trouble with
the solution of the non-linear system of equations associated with the pressure
equation. Newton’s method does not converge except in rare cases. For
instance, let’s look at a quarter of the original domain in Fig. 5.1, a 50 × 50
grid of 50 × 50 metre, and create fracture at every ten metres. Set tNt = 20
days, and use Nt = 10 time steps. On the left edge, we inject water with a
rate of Q = 960 m3 /d. On the right edge we produce at constant pressure,
p = 1 bar. The boundary temperature on the left edge is still 10 ◦C, and the
initial temperature is 90 ◦C. We set the initial pressure to 1 atm.
The temperature field at 20 days for the DFM model is shown in Fig. 5.55.
In Fig. 5.56 is the temperature for the fluid phase for the dual model, and
in Fig. 5.57 for the solid. The single model do still not converge, but as we
have seen earlier, this model would not give us any relevant results anyway.
Clearly, the 20 days is too short to see any temperature changes in the production. Instead, we compare the temperature at x = 6.5, seen in Figs. 5.58
and 5.59.
87
5.5. Compressible flow
1010
p = 1 bar
p = 100 bar
p = 200 bar
1000
×10−3
1.8
4220
1.6
4215
4210
1.4
4205
980
cp [J/(kg·K)]
1.2
µ [Pa·s]
ρ [kg/m3]
990
4200
1
4195
0.8
970
4190
0.6
4185
960
0.4
950
0
40
20
T [◦ C ]
60
80
0.2
100
4180
0
40
20
[◦ C]
Temperature at t = 20.00 days
90
50
45
80
40
70
35
60
30
25
50
20
40
15
30
10
20
5
0
10
20
30
60
80
100
Figure 5.53: Viscosity of
water as function of temperature.
Figure 5.52: Density of
water as function of temperature for a few given
pressures.
0
T [◦ C ]
40
50
10
Figure 5.55: Temperature field after
20 days with the DFM model.
4175
0
20
40
T [◦ C ]
60
80
100
Figure 5.54: Heat capacity of water as function
of temperature.
88
Chapter 5. Simulations and results
[◦ C]
Fluid temperature at t = 20.00 days
45
[◦ C]
Solid temperature at t = 20.00 days
90
50
80
40
90
50
45
80
40
70
35
70
35
60
30
25
50
20
40
15
60
30
25
50
20
40
15
30
10
20
5
0
30
10
0
10
20
30
40
10
50
Figure 5.56: Temperature field after
20 days for the fluid phase with the
dual model.
20
5
0
0
10
20
30
40
10
50
Figure 5.57: Temperature field after
20 days for the solid phase with the
dual model.
Solid temperature
Fluid temperature
90
90
DFM
Dual
85
89
88
80
87
86
T̃ [◦ C]
T [◦ C]
75
70
85
84
65
83
60
82
55
50
81
0
5
10
t [days]
15
20
Figure 5.58: Comparison of fluid
temperature at production between
DFM and dual model.
80
DFM
Dual
0
5
10
t [days]
15
20
Figure 5.59: Comparison of solid
temperature at production between
DFM and dual model.
89
5.6. Efficiency and convergence
Table 5.2: Number of unknown temperature variables for the different cases.
Model
Single
Dual
DFM
DFM
DFM
Fracture density
any
any
low
medium
high
Unknowns
20,000
20,000
23,600
27,600
32,800
Table 5.3: Time taken for a complete run for a 100 × 100 grid, with low-density
and high-density fracture network.
Model
Single
Dual
DFM
5.6
Time, low density [s]
7.17
4.84
16.8
Time, high density [s]
6.90
4.75
44.9
Efficiency and convergence
As expected, the equivalent continuum model and the dual model is considerably more efficient than the DFM model. In the incompressible case, for the
reservoir with diagonal flow, the linear solver converges within two iterations.
For the equivalent model the algorithm converges within 3.5 iterations, i.e. it
converges between the third and fourth iteration. We can observe the same
principle when comparing the number of unknowns, see Table 5.2. For the
most demanding DFM model, we have to solve a linear system of dimensions
32,800 × 32,800 at each time step, while for the same case with the single
and dual models the linear system is 20,000 × 20,000.
We can also take a quick look at an example of the time consumption.
The simulations are done on a computer with a 2.80 GHz Intel processor, with
8.0 GB RAM. For the low-density and high-density case in Section 5.4, we get
the values in Table 5.3 for a complete run. The time values are the average of
five identical runs. For the high-density case, which is the most demanding for
the DFM model, we have a tenfold increase in time consumption compared
to the dual model. For the low-density grid, we difference is smaller, but still
significant, with a ratio of about 3.5.
90
Chapter 5. Simulations and results
20
18
16
14
Iterations
12
10
8
6
4
Low density
Medium density
High density
2
0
0
50
100
150
200
Time step
250
300
350
400
Figure 5.60: Number of iterations for the biconjugate gradient stabilized method
for the DFM model at various fracture density. An iteration number of i + 0.5
means that the convergence happened between iteration i and i + 1.
Chapter 6
Summary and conclusion
Fractured porous media can be modelled in a variety of ways. Choosing the
right model is a difficult task that depends on the geological properties and
the demand for accuracy and computational efficiency. From the numerous
conceptual models described in the literature, we have picked out three of
the most common ones, at which we have taken a closer look: a DFM model,
an equivalent continuum model and a dual continuum model.
We have derived the governing equations for a porous system not in local
thermal equilibrium, including a pressure equation for the mass conservation
and the time-dependent, coupled temperature equations describing the energy conservation. To solve the governing PDEs, we have introduced a series
of numerical methods and applied them to our specific problem. We have
then constructed several geometries with different physical properties, and
performed simulations using Matlab.
In our simulations, we have assumed that the DFM model, in which the
fractures are modelled explicitly, are the most accurate model. The results
from this model have thus been used as a benchmark for the other models,
when comparing the temperature field. Early in our simulations, it was
clear that the equivalent continuum model was coming up short compared
to the other two. In the grid with horizontal and vertical fractures and
diagonal flow, the model failed to accurately describe the high-velocity flow
characteristic for the fractures. However, in the grid with flow parallel with
the fractures, the heat transfer happened faster than in the other two models.
All in all the model seems to be quite unreliable with inaccurate and highly
uneven results.
The dual continuum model was a clear improvement, giving results comparable to the DFM model. Unfortunately, we discovered an unresolved
error in the pressure values. It is unclear how this affected the temperature
field. Still, the DFM model and the dual model yielded similar results. Even
91
92
Chapter 6. Summary and conclusion
though we used a rather fine discretization in the dual model, we have the
benefit of avoiding the tiny fracture cells that appear in the DFM model.
The dual model has a much lower computational cost than the DFM model,
especially for systems with high fracture density. Even in our relatively small
100 × 100 grid, we saw the dual model reduce the simulation time by a factor
of 9.5.
An important thing to remember when modelling fractured porous media is that in practice we have normally no precise knowledge of the detailed
geometry. The geological properties are usually estimated based on samples and statistical methods. The accuracy of the model should therefore be
compared with the accuracy of the physical parameters. If the properties are
determined by a wild guess, there is no need to deploy a computational expensive method to obtain a marginally more accurate result. In our analysis
we have not considered any statistically estimated parameters, and have assumed a complete and exact knowledge of the information about the system.
6.1
Further work
The work done here can be extended in several directions. We will suggest a
few possible routes which would be interesting to pursue further. First of all,
there are two obvious ways of enhancing our work. The first is to implement
the correct scaling for the dual model, such that the pressure values are
correct and comparable to the DFM model. The second is to improve the
implementation for the compressible case, and compare the models for the
compressible equations.
It was quite obvious from our results that the dual model far exceeded
the single model when we compared the results with the DFM model. Thus,
it would be interesting to see if a more advanced model could achieve even
better results. Especially would it be interesting to see how the MINC model
performs. Also models with a more complicated description of the flow regime
could be examined. For accurate models, we can investigate how well the
results hold up if we coarsen the grid even further compared to the DFM
model.
In addition to compare a wider set of models, we can compare a more
complete set of different types of domains. As discussed in Chapter 3, we can
classify domains into different groups, depending on the amount and type of
fracturing. Each model is best suited for a specific group or a set of groups.
We looked briefly at cases with varying fracture density, but a more thorough
examination can be performed.
From a numerical analysis point of view, we can implement more solvers.
6.1. Further work
93
An MPFA solver is for instance under development for the Geothermal module. More complicated grids would also be of interest. Especially when an
MPFA solver is ready, the requirement for K-orthogonal grids are gone, and
more general grids can be examined with high accuracy.
94
Chapter 6. Summary and conclusion
List of Symbols
Below is a list of the most commonly used symbols in the text. Note that
the list is not complete. For the symbols signifying a property of a fluid, the
same symbol with a tilde added signifies the corresponding property for the
solid. For the symbols used only in the numerical solving procedure, we do
not show any units.
Symbol
Explanation
Unit
α
Thermal expansion coefficient of fluid
1/K
β
Compressibility of fluid
Γ, ∂Ω
Boundary of domain
ΓD
Dirichlet boundary
ΓN
Neumann boundary
θ
Theta-parameter in the Theta method for
time integration
κ, κ
Hydraulic conductivity
µ
Dynamic viscosity of fluid
ρ
Density of fluid
ϕ
Effective porosity
Ω
Domain
a
Specific fracture-matrix surface area
b
Fracture aperture
1/Pa
m
Pa·s, P
kg/m3
1/m
m
95
96
List of Symbols
b̄
Fracture half-aperture
cp
Specific heat capacity of fluid
di,σ
Distance from cell centre in Ωi to the edge σ
E
Set of all edges in Ω
e
Thermal energy density
ED
Set of Dirichlet edges
Ei
Set of edges of cell Ωi
Eint
Set of interior edges
EN
Set of Neumann edges
g, g
Acceleration due to gravity
h
Heat transfer coefficient
~
JF
Jacobi matrix to function F
K, K
Permeability
k, k
Thermal conductivity of fluid
Ki,σ
kKi · ni,σ k
L
Length
N
Total number of cells
ni,σ
Unit normal vector to edge σ outward from cell Ωi
Nt
Number of time steps
Nu
Nusselt number
P
Set of cells in domain Ω
p
Pressure
Pr
Prandtl number
qi,σ
Flux from cell Ωi across edge σ
m
J/(kg·K)
J/m3
m/s2
W/(m2 ·K)
m/s
m/s, D
W/(m·K)
m
Pa, bar
List of Symbols
Re
Reynolds number
T
Fluid temperature vector with one element
for each cell block
T
Temperature of fluid
t
Time
Th
Concatenated temperature vector: [T T̃ ]T
∆tn
Time step at step n: tn+1 − tn
U
Internal energy
V
Intrinsic velocity
V
Volume
v, v
Darcy velocity
z
Elevation
97
K, ◦C
s
J
m/s
m3
m/s
m
98
List of Symbols
Bibliography
 I. Aavatsmark. An introduction to multipoint flux approximations for
quadrilateral grids. Computational Geosciences, 6(3-4):405–432, 2002.
 I. Aavatsmark. Bevarelsesmetoder for elliptiske differensialligninger.
Forelesninger ved Universitetet i Bergen, 2007.
 L. F. Athy. Density, porosity, and compaction of sedimentary rocks.
AAPG Bulletin, 14(1):1–24, 1930.
 G. B. Baecher, N. A. Lanney, and H. H. Einstein. Statistical description
of rock properties and sampling. In The 18th US Symposium on Rock
Mechanics (USRMS), 1977.
 G. I. Barenblatt, I. P. Zheltov, and I. N. Kochina. Basic concepts in the
theory of seepage of homogeneous liquids in fissured rocks. Journal of
Applied Mathematics and Mechanics, 24(5):1286–1303, 1960.
 J. Bear. Dynamics of Fluids in Porous Media. Dover Books on Physics
and Chemistry. Dover, 1972.
 J. Bear. Hydraulics of groundwater. McGraw-Hill, 1979.
 B. Berkowitz, J. Bear, and C. Braester. Continuum models for contaminant transport. Water Resources Research, 24(8):1225–1236, 1988.
 F. T. Blaskovich, G. M. Cain, F. Sonier, D. Waldren, and S. J. Webb.
A multicomponent isothermal system for efficient reservoir simulation.
Technical report, Intercomp Resource Development and Engineering,
Ltd., 1983.
 T. Bourbié and O. Coussy. Acoustics of Porous Media. Institut français
du pétrole publications. Éditions Technip, 1987.
99
100
Bibliography
 J. Boussinesq. Mémoire sur l’influence des frottements dans les mouvements réguliers des fluides. Journal de Mathématiques Pures et Appliquées, 13:377–424, 1868.
 W. E. Boyce and R. C. DiPrima. Elementary Differential Equations and
Boundary Value Problems (Eighth Edition). John Wiley & Sons, 2005.
 J. Bundschuh and M. C. S. Arriaga. Numerical Modeling of Isothermal
Groundwater and Geothermal Systems: Fundamentals of Mass, Energy
and Solute Transport in Poroelastic Rocks. Multiphysics Modeling Series. Taylor & Francis, 2010.
 W. T. Cardwell and R. L. Parsons. Average permeabilities of heterogeneous oil sands. Transactions of the American Institute of Mining,
Metallurgical, and Petroleum Engineers, 160:34–42, 1945.
 Y. A. Çengel. Heat and Mass Transfer, A Practical Approach (Third
Edition). McGraw-Hill, 2006.
 T. F. Chan and H. A. van der Vorst. Approximate and incomplete
factorizations. Springer, 1997.
 Z. Chen, G. Huan, and Y. Ma. Computational Methods for Multiphase
Flows in Porous Media. Computational Science and Engineering. Society
for Industrial and Applied Mathematics, 2006.
 P. Dietrich, R. Helmig, M. Sauter, H. Hötzl, J. Köngeter, and
G. Teutsch. Flow and Transport in Fractured Porous Media. Springer,
2005.
 J. O. Duguid and P. C. Y. Lee. Flow in fractured porous media. Water
Resources Research, 13(3):558–566, 1977.
 R. Eymard, T. Gallouët, and R. Herbin. Finite volume methods. Handbook of Numerical Analysis, 7:713–1018, 2000.
 C. L. Farmer. Upscaling: a review. International Journal for Numerical
Methods in Fluids, 40(1-2):63–78, 2002.
 C. F. Gerald and P. O. Wheatley. Applied Numerical Analysis (Seventh
 H. H. Gerke and M. T. Van Genuchten. A dual-porosity model for
simulating the preferential movement of water and solutes in structured
porous media. Water Resources Research, 29(2):3054119, 1993.
Bibliography
101
 D. Handley and P. Heggs. Momentum and heat transfer mechanisms
in regular shaped packings. Transactions of the American Institute of
Chemical Engineers, 46(9):251–259, 1968.
 Y. Hao, P. Fu, and C. R. Carrigan. Application of a dual-continuum
model for simulation of fluid flow and heat transfer in fractured geothermal reservoirs. In The 38th Stanford Geothermal Workshop, 2013.
 A. C. Hill and G. W. Thomas. A new approach for simulating complex fractured reservoirs. Technical report, Scientific SoftwareIntercomp,
1985.
 D. Hillel. Fundamentals of soil physics. Academic Press, 1980.
 C. K. Ho. Dual porosity vs. dual permeability models of matrix diffusion in fractured rock. Technical report, Sandia National Laboratories,
Albuquerque, NM (US); Sandia National Laboratories, Livermore, CA
(US), 2000.
 S. A. Holditch and R. A. Morse. The effects of non-darcy flow on the
behavior of hydraulically fractured gas wells. Journal of Petroleum Technology, 28(10):1169–1179, 1976.
 T. Y. Hou and X.-H. Wu. A multiscale finite element method for elliptic problems in composite materials and porous media. Journal of
Computational Physics, 134(1):169–189, 1997.
 F. P. Incropera, D. P. Dewitt, T. L. Bergman, and A. S. Lavine. Fundamentals of Heat and Mass Transfer (Sixth Edition). John Wiley &
Sons, 2007.
 C. Johnson. Numerical solution of partial differential equations by the
finite element method. Cambridge University Press, 1987.
 M. Karimi-Fard, L. Durlofsky, and K. Aziz. An efficient discrete-fracture
model applicable for general-purpose reservoir simulators. SPE Journal,
9(2):227–236, 2004.
 M. Kaviany. Principles of Heat Transfer in Porous Media. Mechanical
Engineering Series. Springer, 1995.
 H. Kazemi. Pressure transient analysis of naturally fractured reservoirs with uniform fracture distribution. Old SPE Journal, 9(4):451–462,
1969.
102
Bibliography
 G. S. Kell. Density, thermal expansivity, and compressibility of liquid
water from 0.deg. to 150.deg.. correlations and tables for atmospheric
pressure and saturation reviewed and expressed on 1968 temperature
scale. Journal of Chemical & Engineering Data, 20(1):97–105, 1975.
 D. R. Kincaid and E. W. Cheney. Numerical Analysis: Mathematics of
Scientific Computing (Third Edition). American Mathematical Society,
2002.
 A. Knight. Basics of MATLAB and Beyond. Taylor & Francis, 2010.
 J. Krásnỳ and J. M. Sharp. Groundwater in Fractured Rocks: Selected
Papers from the Groundwater in Fractured Rocks International Conference, Prague, 2003. Hydrogeology (International Association of Hydrogeologists). Taylor & Francis, 2007.
 R. J. LeVeque. Finite Volume Methods for Hyperbolic Problems. Cambridge University Press, 2004.
 P. C. Lichtner. Critique of dual continuum formulations of multicomponent reactive transport in fractured porous media. Geophysical Monograph Series, 122:281–298, 2000.
 K.-A. Lie, S. Krogstad, I. S. Ligaarden, J. R. Natvig, H. M. Nilsen,
and B. Skaflestad. Open source MATLAB implementation of consistent
discretisations on complex grids. Computational Geosciences, 16(2):297–
322, 2012.
 G. M. Lomize. Flow in fractured rocks. Gosenergoizdat, Moscow, 127,
1951.
 J. C. S. Long, J. S. Remer, C. R. Wilson, and P. A. Witherspoon.
Porous media equivalents for networks of discontinuous fractures. Water
Resources Research, 18, 1982.
 C. Louis. A study of groundwater flow in jointed rock and its influence on
the stability of rock masses. Imperial College of Science and Technology,
1969.
 A. Moench. Double-porosity models for a fissured groundwater reservoir.
Water Resources Research, 7:831–846, 1984.
 W. Narr, D. S. Schechter, and L. B. Thompson. Naturally fractured
reservoir characterization. Society of Petroleum Engineers, 2006.
Bibliography
103
 D. A. Nield and A. Bejan. Convection in Porous Media (Third Edition).
Springer Verlag, 2006.
 J. M. Nordbotten and M. A. Celia. Geological Storage of CO2: Modeling
Approaches for Large-Scale Simulation. John Wiley & Sons, 2011.
 S. D. Priest and J. A. Hudson. Discontinuity spacings in rock. In International Journal of Rock Mechanics and Mining Sciences & Geomechanics
Abstracts, volume 13, pages 135–148. Elsevier, 1976.
 K. Pruess and T. N. Narasimhan. A practical method for modeling fluid
and heat flow in fractured porous media. Old SPE Journal, 25(1):14–26,
1985.
 F. A. Radu and I. S. Pop. Mixed finite element discretization and newton
iteration for a reactive contaminant transport model with nonequilibrium sorption: convergence analysis and error estimates. Computational
Geosciences, 15(3):431–450, 2011.
 F. A. Radu, I. S. Pop, and P. Knabner. On the convergence of the
newton method for the mixed finite element discretization of a class of
degenerate parabolic equation. Numerical Mathematics and Advanced
Applications, pages 1194–1200, 2006.
 P. Renard and G. de Marsily. Calculating equivalent permeability: a
review. Advances in Water Resources, 20(5):253–278, 1997.
 T. Samardzioska and V. Popov. Numerical comparison of the equivalent continuum, non-homogeneous and dual porosity models for flow
and transport in fractured porous media. Advances in water resources,
28(3):235–255, 2005.
 T. Sandve, I. Berre, and J. Nordbotten. An efficient multi-point flux
approximation method for discrete fracture-matrix simulations. Journal
of Computational Physics, 231(9):3784 – 3800, 2012.
 A. E. Scheidegger. The physics of flow through porous media. University
of Toronto Press, 1974.
 SINTEF. Matlab reservoir simulation toolbox. http://www.sintef.
no/Projectweb/MRST, May 2013.
 D. T. Snow. A parallel plate model of fractured permeable media. PhD
thesis, University of California, Berkeley, 1965.
104
Bibliography
 A. Tambue, I. Berre, and J. M. Nordbotten. Efficient simulation of
geothermal processes in heterogeneous porous media based on the exponential Rosenbrock-Euler and Rosenbrock-type methods. Advances in
Water Resources, 53:250–262, Mar. 2013.
 The Engineering ToolBox.
Air - absolute and kinematic
viscosity.
http://www.engineeringtoolbox.com/
air-absolute-kinematic-viscosity-d_601.html, June 2013.
 The Engineering ToolBox.
Air properties.
http://www.
engineeringtoolbox.com/air-properties-d_156.html, June 2013.
 The Engineering ToolBox. Densities of miscellaneous solids. http://
www.engineeringtoolbox.com/density-solids-d_1265.html, June
2013.
 The Engineering ToolBox. Densities of miscellaneous solids. http:
//www.engineeringtoolbox.com/water-thermal-properties-d_
162.html, June 2013.
 The Engineering ToolBox.
Dynamic viscosity of some
common
liquids.
http://www.engineeringtoolbox.com/
absolute-viscosity-liquids-d_1259.html, June 2013.
 The Engineering ToolBox.
Gases - densities.
http://www.
engineeringtoolbox.com/gas-density-d_158.html, June 2013.
 The Engineering ToolBox. Liquids and fluids - specific heats. http://
www.engineeringtoolbox.com/specific-heat-fluids-d_151.html,
June 2013.
 The Engineering ToolBox. Solids - specific heats. http://www.
engineeringtoolbox.com/specific-heat-solids-d_154.html, June
2013.
 The Engineering ToolBox.
Thermal conductivity of some common materials and gases. http://www.engineeringtoolbox.com/
thermal-conductivity-d_429.html, Mar. 2013.
 The Engineering ToolBox.
Water - density and specific
weight.
http://www.engineeringtoolbox.com/
water-density-specific-weight-d_595.html, June 2013.
Bibliography
105
 The Engineering ToolBox.
Water - dynamic and kinematic
viscosity.
http://www.engineeringtoolbox.com/
water-dynamic-kinematic-viscosity-d_596.html, June 2013.
 L. N. Trefethen and D. Bau III. Numerical linear algebra. Number 50.
Society for Industrial and Applied Mathematics, 1997.
 H. A. van der Vorst. Bi-CGSTAB: A fast and smoothly converging
variant of Bi-CG for the solution of nonsymmetric linear systems. SIAM
Journal on scientific and Statistical Computing, 13(2):631–644, 1992.
 N. Wakao. Heat and Mass Transfer in Packed Beds. Routledge, 1982.
 J. E. Warren and P. J. Root. The behavior of naturally fractured reservoirs. Old SPE Journal, 3(3):245–255, 1963.
 E. Weinan, B. Engquist, X. Li, W. Ren, and E. Vanden-Eijnden. Heterogeneous multiscale methods: a review. Communications in Computational Physics, 2(3):367–450, 2007.
 X.-H. Wen and J. Gómez-Hernández. Upscaling hydraulic conductivities
in heterogeneous media: An overview. Journal of Hydrology, 183(1):9–
32, 1996.
 P. A. Witherspoon, J. S. Y. Wang, K. Iwai, and J. E. Gale. Validity
of cubic law for fluid flow in a deformable rock fracture. Technical Rep.
No. LBL-9557, SAC, 23, 1979.
 D. Zhang. Stochastic Methods for Flow in Porous Media: Coping with