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 [55] 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 [6] 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 [18]). 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 [13]. 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 [13], and different approximate relations have been proposed, most notably by Athy [3]. 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 [49]. 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 [13]. 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 [7]. 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 [29]. To account for the additional effects, Darcy’s law can be extended in several different ways, see [48]. 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 [69]). 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 [31], 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 qad = eV , (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 [48]. 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 [31], 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 [24] is Nu = 0.225 1/3 2/3 Pr Re , ϕ while another suggested relation [74] 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 [15]). 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 [34]. 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 [31] 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 [25] 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 [49]. 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 [31]. 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 [48]. 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. [47] 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 [18]. 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 [39]. 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 [6]. Natural fractures are, however, never exactly parallel, nor smooth. In addition to validating the cubic law experimentally for parallel fractures, Lomize [43] 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 [45], who arrived at the same conclusion, but with a slightly different expression for the friction factor. Later, Witherspoon [78] 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 [41], 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 [6], 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 Additional assumptions of mo FIG. 1 - IDEALIZATION OF THE HETEROGENEOUS will abe“sugar made at appropriate point 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 [75]). 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. [5] and Warren and Root [75] 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 [79]: 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 [51] 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 [51]). (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 quasisteady value of the .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 Advection 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 [28]). 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 [8]: 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 [18] 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 [18]). 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. In addition, both Dirichlet and Neumann boundary conditions are readily 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 [1]. 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 [20]. 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 [40]. 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 ūi = u(x̄i ), such that u(x) = u1 ϕ1 (x) + ū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 following expression for the gradient: ∇u = ū1 = 1 1 1 ν1 + ū5 ν2 − u 1 ν3 2F 2F 2F 1 [(ū1 − u1 )ν1 + (ū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 [(ū1 − u1 )ν1 + (ū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 ūi , which after rearranging can be written as a system qi = (4.8) Au = B ū, where u1 u = ... ū1 and ū = ... . ūN uN This can be solved for ū, 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 ū, 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 [22]. 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 [37], and often forces one to be using excessively small time steps [32]. The two Euler methods are of first order, and the Crank-Nicolson method is of second order, which can be shown using Taylor expansion [12]. 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 " # ū0 uh (t0 ) = v̄0 in Ω, where ū0 and v̄0 are the average of the functions inside each cell Ωi : ū0,1 v̄0,1 ū0 = ... and v̄0 = ... , ū0,N with ū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 [77], resulting in a grid of a certain resolution. These measurements often lead to grid blocks with lengths on the order of centimetres to metres [77]. 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 [14]. 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 [77]. 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 [72]. 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) [72]. 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 [73]. 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 [37], 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 must be readily solved. 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 [16]. 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 [17]. 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 )(Ãq ξ + b̃q ) + DP (c̃p )Ã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 (Ãq + Ãh )ξ + b̃q + DP (c̃−1 p )(Ãq + Ã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 [38]. 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) [42]. 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 available for download at SINTEF’s website [58]. 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 MRST add-on modules 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 [33] and an MPFA solver [56] 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 [60], and the Geothermal module is compatible for use with the DFM module. 5.2. Initial simulations 5.1.3 65 Additional routines 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 ∆pdfm Adfm ≈ ∆pdual Adual , 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 [60]. Based on the tables in [64] 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 [36]. 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 ~ Hydraulic head 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 [1] I. Aavatsmark. An introduction to multipoint flux approximations for quadrilateral grids. Computational Geosciences, 6(3-4):405–432, 2002. [2] I. Aavatsmark. Bevarelsesmetoder for elliptiske differensialligninger. Forelesninger ved Universitetet i Bergen, 2007. [3] L. F. Athy. Density, porosity, and compaction of sedimentary rocks. AAPG Bulletin, 14(1):1–24, 1930. [4] 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. [5] 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. [6] J. Bear. Dynamics of Fluids in Porous Media. Dover Books on Physics and Chemistry. Dover, 1972. [7] J. Bear. Hydraulics of groundwater. McGraw-Hill, 1979. [8] B. Berkowitz, J. Bear, and C. Braester. Continuum models for contaminant transport. Water Resources Research, 24(8):1225–1236, 1988. [9] 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. [10] T. Bourbié and O. Coussy. Acoustics of Porous Media. Institut français du pétrole publications. Éditions Technip, 1987. 99 100 Bibliography [11] 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. [12] W. E. Boyce and R. C. DiPrima. Elementary Differential Equations and Boundary Value Problems (Eighth Edition). John Wiley & Sons, 2005. [13] 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. [14] 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. [15] Y. A. Çengel. Heat and Mass Transfer, A Practical Approach (Third Edition). McGraw-Hill, 2006. [16] T. F. Chan and H. A. van der Vorst. Approximate and incomplete factorizations. Springer, 1997. [17] 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. [18] P. Dietrich, R. Helmig, M. Sauter, H. Hötzl, J. Köngeter, and G. Teutsch. Flow and Transport in Fractured Porous Media. Springer, 2005. [19] J. O. Duguid and P. C. Y. Lee. Flow in fractured porous media. Water Resources Research, 13(3):558–566, 1977. [20] R. Eymard, T. Gallouët, and R. Herbin. Finite volume methods. Handbook of Numerical Analysis, 7:713–1018, 2000. [21] C. L. Farmer. Upscaling: a review. International Journal for Numerical Methods in Fluids, 40(1-2):63–78, 2002. [22] C. F. Gerald and P. O. Wheatley. Applied Numerical Analysis (Seventh Edition). Addison-Wesley, Pearson Education, 2004. [23] 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 [24] 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. [25] 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. [26] A. C. Hill and G. W. Thomas. A new approach for simulating complex fractured reservoirs. Technical report, Scientific SoftwareIntercomp, 1985. [27] D. Hillel. Fundamentals of soil physics. Academic Press, 1980. [28] 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. [29] 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. [30] 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. [31] 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. [32] C. Johnson. Numerical solution of partial differential equations by the finite element method. Cambridge University Press, 1987. [33] 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. [34] M. Kaviany. Principles of Heat Transfer in Porous Media. Mechanical Engineering Series. Springer, 1995. [35] H. Kazemi. Pressure transient analysis of naturally fractured reservoirs with uniform fracture distribution. Old SPE Journal, 9(4):451–462, 1969. 102 Bibliography [36] 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. [37] D. R. Kincaid and E. W. Cheney. Numerical Analysis: Mathematics of Scientific Computing (Third Edition). American Mathematical Society, 2002. [38] A. Knight. Basics of MATLAB and Beyond. Taylor & Francis, 2010. [39] J. Krásnỳ 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. [40] R. J. LeVeque. Finite Volume Methods for Hyperbolic Problems. Cambridge University Press, 2004. [41] P. C. Lichtner. Critique of dual continuum formulations of multicomponent reactive transport in fractured porous media. Geophysical Monograph Series, 122:281–298, 2000. [42] 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. [43] G. M. Lomize. Flow in fractured rocks. Gosenergoizdat, Moscow, 127, 1951. [44] 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. [45] 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. [46] A. Moench. Double-porosity models for a fissured groundwater reservoir. Water Resources Research, 7:831–846, 1984. [47] W. Narr, D. S. Schechter, and L. B. Thompson. Naturally fractured reservoir characterization. Society of Petroleum Engineers, 2006. Bibliography 103 [48] D. A. Nield and A. Bejan. Convection in Porous Media (Third Edition). Springer Verlag, 2006. [49] J. M. Nordbotten and M. A. Celia. Geological Storage of CO2: Modeling Approaches for Large-Scale Simulation. John Wiley & Sons, 2011. [50] 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. [51] 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. [52] 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. [53] 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. [54] P. Renard and G. de Marsily. Calculating equivalent permeability: a review. Advances in Water Resources, 20(5):253–278, 1997. [55] 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. [56] 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. [57] A. E. Scheidegger. The physics of flow through porous media. University of Toronto Press, 1974. [58] SINTEF. Matlab reservoir simulation toolbox. http://www.sintef. no/Projectweb/MRST, May 2013. [59] D. T. Snow. A parallel plate model of fractured permeable media. PhD thesis, University of California, Berkeley, 1965. 104 Bibliography [60] 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. [61] The Engineering ToolBox. Air - absolute and kinematic viscosity. http://www.engineeringtoolbox.com/ air-absolute-kinematic-viscosity-d_601.html, June 2013. [62] The Engineering ToolBox. Air properties. http://www. engineeringtoolbox.com/air-properties-d_156.html, June 2013. [63] The Engineering ToolBox. Densities of miscellaneous solids. http:// www.engineeringtoolbox.com/density-solids-d_1265.html, June 2013. [64] The Engineering ToolBox. Densities of miscellaneous solids. http: //www.engineeringtoolbox.com/water-thermal-properties-d_ 162.html, June 2013. [65] The Engineering ToolBox. Dynamic viscosity of some common liquids. http://www.engineeringtoolbox.com/ absolute-viscosity-liquids-d_1259.html, June 2013. [66] The Engineering ToolBox. Gases - densities. http://www. engineeringtoolbox.com/gas-density-d_158.html, June 2013. [67] The Engineering ToolBox. Liquids and fluids - specific heats. http:// www.engineeringtoolbox.com/specific-heat-fluids-d_151.html, June 2013. [68] The Engineering ToolBox. Solids - specific heats. http://www. engineeringtoolbox.com/specific-heat-solids-d_154.html, June 2013. [69] The Engineering ToolBox. Thermal conductivity of some common materials and gases. http://www.engineeringtoolbox.com/ thermal-conductivity-d_429.html, Mar. 2013. [70] The Engineering ToolBox. Water - density and specific weight. http://www.engineeringtoolbox.com/ water-density-specific-weight-d_595.html, June 2013. Bibliography 105 [71] The Engineering ToolBox. Water - dynamic and kinematic viscosity. http://www.engineeringtoolbox.com/ water-dynamic-kinematic-viscosity-d_596.html, June 2013. [72] L. N. Trefethen and D. Bau III. Numerical linear algebra. Number 50. Society for Industrial and Applied Mathematics, 1997. [73] 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. [74] N. Wakao. Heat and Mass Transfer in Packed Beds. Routledge, 1982. [75] J. E. Warren and P. J. Root. The behavior of naturally fractured reservoirs. Old SPE Journal, 3(3):245–255, 1963. [76] 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. [77] 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. [78] 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. [79] D. Zhang. Stochastic Methods for Flow in Porous Media: Coping with Uncertainties. Academic Press, 2002.

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement