Beruflich Dokumente
Kultur Dokumente
Saturation-Method-Based Shifting-Matrix
Algorithm To Simulate Two-Phase,
Immiscible Flow in Porous Media With
Application to CO2 Sequestration in the
Subsurface
Amgad Salama, Shuyu Sun, and M.F. El-Amin, King Abdullah University of Science and Technology
Summary roscale (i.e., the scale at which the continuum approach may
The flow of two or more immiscible fluids in porous media is apply) (Salama and Van Geel 2008a, b), we are faced with the
widespread, particularly in the oil industry. This includes second- spatial heterogeneity of porous media, which makes characteriza-
ary and tertiary oil recovery and carbon dioxide (CO2) sequestra- tion of the domain structure difficult. In this case, finer mesh
tion. Accurate predictions of the development of these processes would generally be required to accurately capture the fine details
are important in estimating the benefits and consequences of the of processes taking place in a given porous-medium domain. If
use of certain technologies. However, this accurate prediction the size of the domain is large (e.g., in oil reservoirs), a much
depends—to a large extent—on two things. The first is related to larger system of equations would have to be solved simultane-
our ability to correctly characterize the reservoir with all its com- ously, which would generally require larger computing resources
plexities; the second depends on our ability to develop robust and execution time. It remains important, therefore, to design
techniques that solve the governing equations efficiently and computer algorithms in the most efficient way possible to reduce
accurately. In this work, we introduce a new robust and efficient CPU time. In the past few decades, a number of computer lan-
numerical technique for solving the conservation laws that govern guages, such as Python and Matlab (fourth-generation program-
the movement of two immiscible fluids in the subsurface. As an ming languages), have gained popularity among researchers and
example, this work is applied to the problem of CO2 sequestration engineers. These languages show a steady increase in the number
in deep saline aquifers; however, it can also be extended to incor- of users compared with traditional programming languages (e.g.,
porate more scenarios. The traditional solution algorithms to this Fortran, C, Cþþ) because of the relatively easy interface, the
problem are modeled after discretizing the governing laws on a run-time graphical display of results, the ease of manipulation of
generic cell and then proceed to the other cells within loops. matrices and vectors, andother features. The major difference
Therefore, it is expected that calling and iterating these loops mul- between these two classes of programming languages is that the
tiple times can take a significant amount of computer time. former do not produce an executable file. In other words, each
Furthermore, if this process is performed with programming lan- time a script is executed, it must go through an interpretation pro-
guages that require repeated interpretation each time a loop is cess. Furthermore, if the script contains loops, repeated interpreta-
called, such as Matlab, Python, and others, much longer time is tion would be required every time the loop is called. One can
expected, particularly for larger systems. In this new algorithm, imagine how much computer time this can take, particularly for
the solution is performed for all the nodes at once and not within larger, time-dependent problems. The latter category, on the other
loops. The solution methodology involves manipulating all the hand, does not have the same shortcoming because the languages
variables as column vectors. By use of shifting matrices, these produce an executable file, and no further interpretation would be
vectors are shifted in such a way that subtracting relevant vectors required. It is important when using these programming languages
produces the corresponding difference algorithm. It has been to minimize the use of loops, which is the most time-consuming
found that this technique significantly reduces the amount of cen- part of code execution.
tral-processing-unit (CPU) time compared with a traditional tech- In this work, we develop a new technique that makes the exe-
nique implemented within the framework of Matlab. cutable time of codes written by Matlab, Python, and others
comparable with those of the other high-level programming lan-
guages. The main essence of this approach is to replace spatial-
Introduction loop operations with matrix operations. In other words, within
Problems related to flow and transport in porous media span a temporal loops, all the calculations are performed using matrix
large spectrum of scales, from pore-related applications to large- operations rather than inside loops. In this case, in the framework
scale reservoirs. Furthermore, although the governing conserva- of the finite-difference method, all the difference operations for
tion laws describing phenomena occurring in porous media are all the cells are performed all at once using matrices rather than
relatively simple (e.g., in comparison with those related to flow within loops. This technique was first developed by Sun et al.
and transport in fluids), they present difficulties characteristic of (2012) and shows significant reduction in execution time, particu-
the complexity of porous media. Probably the most obvious one is larly for larger systems. In this work, we apply this technique to
our inability to give complete detailed microscopic description of the problem of two-phase, immiscible flow in porous media with
any naturally occurring porous media. Moreover, even at the mac- application to CO2 sequestration in the subsurface.
CO2 sequestration is one of the most attractive methods to
reduce the amount of CO2 in the atmosphere by injecting CO2
Copyright V
C 2013 Society of Petroleum Engineers
into deep geologic formations. Currently, a number of pilot proj-
This paper (SPE 163140) was accepted for presentation at the Carbon Management ects for CO2 sequestration are in operation around the world,
Technology Conference, Orlando, Florida, USA, 7–9 February 2012, and revised for
publication. Original manuscript received for review 4 May 2012. Revised manuscript
including that in Weyburn, Canada; in Salah, Algeria; in Sleipner,
received for review 7 September 2012. Paper peer approved 19 December 2012. Norway; in Frio, Texas, USA; in Qinshui basin, China; and in
Smaller Medium
porosity porosity
Yubari, Japan (Salama and Van Geel 2008b). On the other hand, formed in modeling CO2 injection consider only gravity while
CO2 sequestration may combine with enhanced-oil-recovery neglecting capillarity (Bielinski 2007; Liu et al. 2010; Nghiem
(EOR) schemes (Blunt et al. 1993; Jessen et al. 2005; Metz et al. et al. 2010). In contrast, other studies show little difference
2005; Alavian and Whitson 2009; Carneiro 2009; Gaspar Ravag- between the results with and without capillarity (Altundas et al.
nani et al. 2009; Ferguson et al. 2010; Sbai and Azaroual 2010). 2010). Hoteit and Firoozabadi (2008) show that capillarity could
Some studies suggest that the CO2-EOR scheme is able to increase be neglected, especially in a homogeneous domain (however, not
oil production by 7 to 23% of the original oil in place (Martin and in a heterogeneous domain).
Taber 1992; Todd and Grand 1993; Holt et al. 1995, 2000; Taber The most well-known method used to numerically solve the
et al. 1997; Jahangiri and Zhang 2010). Hence, the CO2-EOR flow of two-phase incompressible and immiscible fluids in porous
scheme has the double benefit of improving oil production and media is the IMplicit Pressure/Explicit Saturation (IMPES)
reducing the amount of CO2 in the atmosphere. Three types of geo- method (Chen et al. 2004; Kou and Sun 2010a, b; Negara 2011).
logical formations have potential for long-term storage of CO2. In this scheme, the pressure equation is evaluated implicitly and
These include depleted oil and gas reservoirs, deep coalbeds, and the saturation equation is solved explicitly. We adapt this scheme
deep saline aquifers (Carneiro 2009). Certain requirements, how- to the problem when both phases are considered compressible. In
ever, need to be fulfilled for a site to be suitable for CO2 sequestra- this study, both capillary pressure and gravity are taken into con-
tion. This includes higher porosity (Fig. 1), which is related to sideration. The motivation for this study is, therefore, to investi-
storage capacity, and freedom from faults and fractures. In sum- gate the flow behavior of a supercritical, compressible CO2 plume
mary, the potential sites should satisfy the suitability, inventory, in the subsurface. We simulate the early stage of CO2-plume
safety, and capacity (Taber et al. 1997). The injection of CO2 migration, considering only the structural-trapping mechanism.
requires at least a depth of approximately 800 m (Bielinski 2007;
Burruss et al. 2009) to ensure that CO2 is injected into the forma- Governing Equations
tions in supercritical state, in which CO2 exists above its critical
The adaptation of the continuum hypothesis to transport phenom-
temperature and pressure. This enables higher density of CO2 and
ena in porous media allows the description of conservation laws
therefore increased capacity. However, the density of CO2 at these
in the form of differential equations. This may be successful pro-
conditions is still less than that of the surrounding brine solution.
vided that certain conditions and length-scale constraints are satis-
As a consequence, because of the density difference, CO2 will tend
fied (Salama and Van Geel 2008a, b). In this work, we consider
to rise buoyantly until it reaches a structural trap or physical bar-
the injection of supercritical CO2 into a rectangular domain meas-
rier; see Fig. 2. The caprock is shaped as a dome and usually it can
uring 100 50 m and saturated initially with brine. Because the
contain a large amount of the injected CO2 for long-term retention.
density of the injected CO2 is less than that of the brine solution,
The caprock should have low permeability to ensure that the
the CO2 plume will tend to move upward because of buoyancy
injected CO2 does not spread rapidly toward the surface. There are
forces. As indicated earlier, suitable sites for CO2 sequestration
four mechanisms to trap the injected CO2 for long-term storage:
possess certain features, including the existence of caprock, to
structural (stratigraphic) trapping, residual-fluid trapping, solubil-
allow for long-term storage. In this work, different injection sce-
ity trapping, and mineral trapping. Structural trapping is the most
narios are considered, including injection from both vertical and
widely used method: The injected CO2 plume migrates upward
horizontal wells. Furthermore, because this work focuses on simu-
until it reaches the caprock, where it becomes trapped for longer
lating the early-time plume movement, structural trapping is con-
period of time. The residual-fluid trapping mechanism, on the other
sidered and solubility trapping is neglected. This assumption may
hand, refers to the trapping of CO2 as immobile gas in the pore
be valid because of the different time scales involved for plume
space. The next mechanism is solubility trapping, in which the
advancement and solubility capture of CO2. We adopt the shift-
injected CO2 dissolves in brine (salty water) such that the resulting
ing-matrix technique, Sun et al. (2012), which proves to be effi-
mixture has higher density than the surrounding brine, so the satu-
cient in numerically solving the governing set of partial-
rated brine sinks to the bottom of the geological formations. The
differential equations. The equations are defined for this system as
last mechanism is mineral trapping. The basic idea of this mecha-
follows. The mass-conservation equation for both phases is
nism is that CO2 will produce weak carbonic acid (such as mineral
water) when it is dissolved in water. The weak acid reacts with the @/qn Sn
minerals of the rock, forming solid carbonate minerals. þ r qn vn ¼ qn : . . . . . . . . . . . . . . . . . . . . . ð1Þ
@t
Modeling of CO2 injection is helpful to assess the behavior of
the CO2 plume upon injection and the storage capacity of the res- @/qw Sw
þ r qw vw ¼ qw ; . . . . . . . . . . . . . . . . . . . . . ð2Þ
ervoir. Numerical investigation of CO2 injection has been the @t
focus of many research works in recent years (Izgec and Demiral
together with Darcy’s laws
2005; Bielinski 2007; Doughty 2007; Sasaki et al. 2008; Alavian
and Whitson 2009; Carneiro 2009; Hayek et al. 2009; Nasrabadi vn ¼ k krn =ln ðrpn qn grzÞ . . . . . . . . . . . . . . . . ð3Þ
et al. 2009; Sifuentes et al. 2009; Sun and Firoozabadi 2009; Liu
et al. 2010; Moortgat et al. 2010; Nghiem et al. 2010; Sbai and vw ¼ k krw =lw ðrpw qw grzÞ; . . . . . . . . . . . . . . . ð4Þ
Azaroual 2010; Thomas and Wheeler 2011). Some studies per-
pc ¼ pn pw : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ð6Þ kt ¼ kn þ kw : . . . . . . . . . . . . . . . . . . . . . . . . . . . . ð16Þ
When the compressibility of the phases and the nonlinearity of We define the fractional flow of the two phases as
relative permeability and/or capillary pressure are pronounced,
the two saturation equations (Eqs. 1 and 2) need to be solved im- fn ¼ kn =kt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ð17Þ
plicitly. In other words, there is no need to add these two equa-
tions as is suggested by the IMPES algorithm. For the case in fw ¼ kw =kt : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ð18Þ
which there is no external loading, and the grains of the porous
medium are incompressible but not stationary, the first term in the Therefore, the second term on the left-hand side of Eq. 11 may
mass-conservation equation for the a-phase may be expanded as be written as
@/qa Sa @Sa @q @/
¼ /qa þ /Sa a þ qa Sa ; . . . . . . . . . . ð7Þ
1 1
r k½qn fn kt ðrpn qn grzÞ r
@t @t @t @t qn qw
or
k½qw fw kt ðrpn pc qw grzÞ: . . . . . . . . . . . . ð19Þ
@/qa Sa @pa @pa @Sa
¼ /Sa qa cf ;a þ q a S a cr þ /qa : . . . . ð8Þ
@t @t @t @t Let na ¼ qa fa kt k and a ¼ n; w, and 19 further reduces to
1 @qa 1 1 1
In this formula, cf ;a ¼ is the a-phase compressibility, r nn rpn r nw rpn þ r nw rpc
qa @p qn qw qw
cr ¼ @e=@r ffi @/=qa is the rock compressibility where e is the 1 1
volumetric strain and r is the effective stress. A typical value of þ r nn qn grz þ r nw qw grz : ð20Þ
rock compressibility at depths similar to those suggested for CO2 qn qw
sequestration is on the order of 10–11 Pa–1 (Neuzil 1986), whereas
it is for supercritical CO2 on the order of 10–9 Pa–1 (Law and Eq. 9 therefore reduces to
Bachu 1996; Span and Wagner 1996). Apparently, the compressi-
@pn @pc
bility of CO2 is quite small; however, it is orders of magnitudes /ðSn cf ;n þ Sw cf ;w Þ /Sw cf ;w
larger than that of the rock mass. Therefore, rock compressibility @t @t
can be neglected in the CO2-rich zone. Under these conditions, 1 1 1
r nn rpn þ r nw rpn þ r nw rpc
one may still be able to consider the IMPES algorithm if certain qn qw qw
approximations are considered.
1 1
Adding Eqs. 1 and 2, by use of Eq. 5, and neglecting rock þg r nn qn rz þ r nw qw rz ¼ q~t : ð21Þ
compressibility, one obtains qn qw
Fig. 4—Evolution of CO2 plume in homogeneous porous-medium domain injected at the bottom-left corner of a 2D rectangular
domain.
Therefore, the saturation equation may be given as next, we consider injection from a vertical well in the middle of
the domain; and in the third case, we consider injection at the bot-
@Sa @pa tom boundary as an example of a horizontal well. The rock is con-
/qa ¼ qa /Sa qa cf ;a r qa va . . . . . . . . . . ð65Þ
@t @t sidered initially fully saturated with water, and CO2 is injected at
@Sa @pa the bottom-left corner with a constant inflow rate. On the right
½‘ ¼ qa ½J Aadv qa badv . . . . . . . . . . . ð66Þ boundary, a constant pressure is imposed. The top and the bottom
@t @t
boundaries are considered impermeable. Fluid-property parame-
where ½‘ and ½J are diagonal matrices representing the given ters such as the densities, viscosities, residual saturations, and rel-
coefficients and may be solved to update the saturation. ative permeability are taken on the basis of Hayek et al. (2009).
In the first case, a 2D, homogeneous rectangular domain of
100 50 m is considered. The domain is discretized into a uni-
Numerical Examples form 100 100 mesh. The permeability of the entire medium is
In this work, we consider several examples of CO2 injections. In taken as 1 md. As indicated earlier, the rock is initially fully satu-
the first case, we consider injection from the bottom-left corner; rated with water. Then, CO2 is injected into the domain at the
35 35 35 35
30 30 30 30
25 25 25 25
20 20 20 20
15 15 15 15
10 10 10 10
5 5 5 5
5 10 15 5 10 15 5 10 15 5 10 15
Time = 9 months 1.5 years 2.5 years 4 years
Fig. 5—Evolution of CO2 plume in homogeneous porous-medium domain injected at the middle of a 2D rectangular domain.
40
35
30
30
25
25 25
20
20 20
15
15 15
10 10 10
5 5 5
0 0 0
0 5 10 15 20 25 30 35 40 45 50 0 5 10 15 20 25 30 35 40 45 50 0 5 10 15 20 25 30 35 40 45 50
1 year 2 years 3 years
Fig. 6—Evolution of CO2 plume in homogeneous porous-medium domain injected at the middle of the bottom boundary of a 2D
rectangular domain.
Appendix A
To illustrate this method, consider the rectangular domain shown
in Fig. A-1, which is a schematic diagram of the mesh and bound-
ary conditions. As shown in this figure, the domain is divided into
a 3 3 mesh. To simplify the presentation, we assume a pressure
boundary condition at all four sides.
N N N
p1 p2 p3
W E
p3 p7 p8 p9 p3
Appendix B
W
p2 p4 p5 p6 E
p2 % construct shifting matrices of cell-face:
ShiftW_unit ¼ {[sparse(1, nx); speye(nx, nx)] };
ShiftW ¼ blkdiag(adjW_unit{ones(ny, 1)});
p1
W
p1 p2 p3 p1
E ShiftE_unit ¼ {[speye(nx, nx); sparse(1, nx)] };
ShiftE ¼ blkdiag(adjE_unit{ones(ny, 1)});
S S S
ShiftS ¼ [sparse(nx, nx*ny); speye(nx*ny, nx*ny)];
p1 p2 p3 ShiftN ¼ [speye(nx*ny, nx*ny); sparse(nx, nx*ny)];
ShiftBW_unit ¼ {[1; sparse(nx, 1)] };
Fig. A-1—Schematic diagram of the mesh and boundary ShiftBW ¼ blkdiag(adjBW_unit{ones(ny, 1)});
conditions. ShiftBE_unit ¼ {[sparse(nx, 1); 1] };