Professional Documents
Culture Documents
Matrix solvers are used to solve a system of simultaneous linear equations. Although reservoir
simulation equations are non-linear, we still need to use the matrix solver to solve the system
of equations, and apply Newton’s iterations to handle the non-linearity of equations.
This section reviews the matrix notation, matrix algebra, and introduces some matrix solvers.
Matrix Notation
When we deal with such equations like material balance equations we develop for reservoir
simulation, it is difficult to discuss and virtually impossible to manipulate unless the equations
are expressed as matrices. Matrix notation is illustrated with a typical small set of linear
equations such as:
In the above equations, there are three unknowns ( , , ), while all other quantities
are known. In matrix format, the equations become:
=
The subscripts of the matrix elements generally refer to the row and column locations of the
elements. In some of the literature on reservoir simulation, subscripts attached to elements in a
matrix will identify simulator grid block location rather than matrix element location.
The above matrix can be also written in a more concise form as follows:
=
is the matrix of known coefficients and it is a 3x3 matrix. It is a square matrix because it has
the same number of rows and columns. and are 3x1 matrices and they are column matrices.
is unknown and is known. Individual equations can be generated by multiplying elements of
a given row, in turn from left to right, by the elements of the column vector of unknowns, in
turn from top to bottom, and equating the sum of the products to the element of the column of
known values in that row. For example:
1 A. El-Banbi
= + + =
Matrix Algebra
Addition of Matrices
Multiplication of Matrices
In multiplication of matrices, the rule is that elements of rows are multiplied by elements of
differently, to multiply times , in that order, the number of columns in must equal the
number of rows in . This means that the matrices must be conformable. The product matrix
will have the same number of rows as and the same number of columns as .
+ +
= + +
The principal diagonal of a matrix is the sequence of terms on the diagonal from upper left to
lower right. A lower triangular matrix has all zeros above the principal diagonal; an upper
triangular matrix has all zeros below the principal diagonal. A matrix having ones on the
2 A. El-Banbi
principal diagonal and zeros for all other elements is the identity matrix. It is usually designated
by I; it is always a square matrix and serves the same purpose in matrix algebra that unity does
in ordinary arithmetic.
Also, , the inverse of a square matrix , is a matrix such that = = .
Any reordering of the rows of the identity matrix such that the ones are not all on the principal
diagonal is a permutation matrix. A permutation matrix is useful for changing the order of rows
and/or columns in other matrices. For example,
0 1 0
0 0
1 =
1 0 0
The transpose of a matrix, , is a new matrix whose rows are identical to the columns of the
original matrix, .
!
=
!
A matrix is symmetric if = .
The transpose of a column matrix is a row matrix, and vice versa. For example, if
$ )
# (
= # ⋮ (
#& (
" & '
Then,
= ⋯ &
= = ∑&,- , ,
= = =
The computational task is to find and to multiply it by , or to use some other method to
form . In practice, it is usually prohibitively expensive to calculate , and it is preferable
3 A. El-Banbi
to use a method that does not require calculation of the inverse of the complete coefficient
matrix.
Solution Methods
There are many different matrix solvers used in practice to solve the simultaneous system of
simulation equation. In some sense, it should not matter what method is used to solve the
linear simultaneous equations. The same answer should be obtained whether one uses a direct
solution method or carries out any convergent iterative procedure sufficiently long to reduce
the error to a negligible value. The choice of solution method affects the computation time,
however. The following table lists some of the common matrix solvers.
A general comparison between direct and iterative methods is given in the following table.
4 A. El-Banbi
Direct Methods
Direct methods involve the inversion of the matrix to reach the solution. They require large
storage and usually run in predictable computer time. Most methods are variations of Gaussian
elimination technique.
Gaussian Elimination
We will use the following matrix problem to illustrate the Gaussian elimination method.
=
The idea in Gaussian elimination is to eliminate the first unknown, , from all equations but
repeated with the new system to eliminate . A continuation of the process results in a
the first, leaving a new system with one less equation and one less unknown. This process is
sequence of smaller and smaller matrix equations until eventually the system is reduced to a
system of equation, we eliminate by multiplying Row 1 (the first equation) by . and
scalar equation that can be solved by a division. For example, working forward in the above
subtracting the result from Row 2 (the second equation). Eliminate in a similar manner. The
result is:
0 − 23 32 − 24 32 − 32
1 1 1 1 1
/ 122 122 5
= / 122 5
0 −
123 142
− 1
124 142 − 142
1
122 22 22
Or,
0
=
6 6 6
0
6
6 6
Where the primed letters are shorthand symbols for the corresponding elements in the matrix
equation above.
6
Eliminating
6
76 and subtracting the result from Row 3.
by multiplying Row 2 by
0 0
66 66
5 A. El-Banbi
66
The above equation can be solved explicitly for = 766 and, subsequently, for and .
Note that the result of working forward converts the coefficient matrix to a triangular matrix
with only one element in the last row. All terms to the left of the diagonal are zero, so this is an
upper triangular matrix. Note also that even with this small set of equations, large amounts of
arithmetic and storage are required for direct solution. Also, the successive subtraction leads to
round off error in very large matrices. There are many variants of Gaussian elimination; all
require essentially the same amount of work and retain some other characteristics in common.
1. The coefficient matrix is converted into one or more triangular matrices that are then
“easy” to solve.
2. A large fraction of the arithmetic is involved in the conversion to triangular form.
Iterative Methods
In large areal models and in 3D models, it is usually more economical to solve a problem with
iterative rather than direct methods. In an iterative method, a systematic repeated
approximation procedure is used until the “answers” generated by the procedure approach the
“true answers” to within specified tolerances (convergence criteria).
Work and storage requirements depend on the number of grid blocks in each coordinate
direction. The work required for a direct method can be (and usually is) many times that
required for a single iteration of an iterative method. But the work required for an iterative
method also depends on the number of iterations needed for the solution to meet convergence
criteria.
The point relaxation and (over relaxation) are iterative methods. Although the PSOR method is
simple and easy to program, it is not generally advantageous to real reservoir simulation
problems.
First, we will discuss the iterative process without over-relaxation, and then discuss the
application of the iteration parameter, ω , to extend the method to over-relaxation.
6 A. El-Banbi
The equation above (for 1D problems) shows that we have three unknowns, the values of at
three different points, and only one algebraic equation. Of course, we will formulate a similar
equation for each grid point and have as many equations as we have unknowns. The PSOR
method simply solves the equation above for one unknown, with the assumption that the latest
estimates for the other unknowns are always used. The equation is in effect rewritten as:
The solution for , is repeated for each grid point, in order, and then repeated iteratively over
use latest information for each value of on the right-hand side so we always take advantage
and over until the solution for the entire system is sufficiently accurate. Note that we always
rewritten to show indices to indicate the values of used in going from k to k+1 iterations.
of estimates that have been made for points behind us. Thus, the above equation can be
The iterative procedure is repeated until the solution is sufficiently accurate or has converged.
Now, the important thing in such an iterative process is the speed with which the convergent
solution can be reached. This depends, not only on the ease of making the computation for
each iteration, but also the number of iterations required. It is important to try to accelerate
the iteration process in any practical manner.
could rewrite the equation for the determination of a new pressure as the following two-step
procedure:
Then,
7 A. El-Banbi
References
Mattax, C. C. and Dalton, R. L.: Reservoir Simulation, Monograph Series, SPE, Richardson, TX
(1990) 13.
8 A. El-Banbi
IMPES Formulation Expansion and Example Calculations
The following equation represents the IMPES equation which we obtained through the IMPES derivation for a
three-component system:
𝑉𝑃𝑛
𝐵𝑜𝑛+1 ∆𝑎𝑜 ∆𝑝𝑛+1 + 𝐵𝑤𝑛+1 ∆𝑎𝑤 ∆𝑝𝑛+1 + 𝐵𝑔𝑛+1 ∆𝑎𝑔 ∆𝑝𝑛+1 = 𝑐𝑡 (𝑃𝑖𝑛+1 − 𝑃𝑖𝑛 ) ………..(Eq.1)
∆𝑡
Notice that the above equation is the IMPES general equation under the assumptions given in the IMPES
chapter. In a 3D grid system, a grid block will have 6 neighbor grids as shown in the figure below. Remember
that only grids with a shared interface are considered neighbor gird blocks. In such case, the term ∆𝑎 ∆𝑝𝑛+1 will
have 6 terms for each component in a 3D system. The components are stock-tank oil (or hydrocarbon liquid
component), surface water (aqueous component), and surface gas (hydrocarbon vapor component).
𝐵𝑜𝑛+1 [𝑎𝑁,𝑜 (𝑃𝑁 − 𝑃𝑖 )𝑛+1 + 𝑎𝑆,𝑜 (𝑃𝑆 − 𝑃𝑖 )𝑛+1 + 𝑎𝑊,𝑜 (𝑃𝑊 − 𝑃𝑖 )𝑛+1 + 𝑎𝐸,𝑜 (𝑃𝐸 − 𝑃𝑖 )𝑛+1 + 𝑎 𝑇,𝑜 (𝑃𝑇 − 𝑃𝑖 )𝑛+1
+ 𝑎𝐵,𝑜 (𝑃𝐵 − 𝑃𝑖 )𝑛+1 ]
+𝐵𝑤𝑛+1 [𝑎𝑁,𝑤 (𝑃𝑁 − 𝑃𝑖 )𝑛+1 + 𝑎𝑆,𝑤 (𝑃𝑆 − 𝑃𝑖 )𝑛+1 + 𝑎𝑊,𝑤 (𝑃𝑊 − 𝑃𝑖 )𝑛+1 + 𝑎𝐸,𝑤 (𝑃𝐸 − 𝑃𝑖 )𝑛+1 + 𝑎 𝑇,𝑤 (𝑃𝑇 − 𝑃𝑖 )𝑛+1
+ 𝑎𝐵,𝑤 (𝑃𝐵 − 𝑃𝑖 )𝑛+1 ]
+ 𝐵𝑔𝑛+1 [𝑎𝑁,𝑔 (𝑃𝑁 − 𝑃𝑖 )𝑛+1 + 𝑎𝑆,𝑔 (𝑃𝑆 − 𝑃𝑖 )𝑛+1 + 𝑎𝑊,𝑔 (𝑃𝑊 − 𝑃𝑖 )𝑛+1 + 𝑎𝐸,𝑔 (𝑃𝐸 − 𝑃𝑖 )𝑛+1 + 𝑎 𝑇,𝑔 (𝑃𝑇 − 𝑃𝑖 )𝑛+1
+ 𝑎𝐵,𝑔 (𝑃𝐵 − 𝑃𝑖 )𝑛+1 ]
𝑉𝑃𝑛
= 𝑐𝑡 (𝑃𝑖𝑛+1 − 𝑃𝑖𝑛 )
∆𝑡
Taking the neighbor grid block pressures as common factor and rearranging the terms, we obtain:
(𝐵𝑜𝑛+1 𝑎𝑁,𝑜 + 𝐵𝑤𝑛+1 𝑎𝑁,𝑤 + 𝐵𝑔𝑛+1 𝑎𝑁,𝑔 ) 𝑃𝑁𝑛+1 + (𝐵𝑜𝑛+1 𝑎𝑆,𝑜 + 𝐵𝑤𝑛+1 𝑎𝑆,𝑤 + 𝐵𝑔𝑛+1 𝑎𝑆,𝑔 ) 𝑃𝑆𝑛+1
𝑛+1
+(𝐵𝑜𝑛+1 𝑎𝑊,𝑜 + 𝐵𝑤𝑛+1 𝑎𝑊,𝑤 + 𝐵𝑔𝑛+1 𝑎𝑊,𝑔 ) 𝑃𝑊 + (𝐵𝑜𝑛+1 𝑎𝐸,𝑜 + 𝐵𝑤𝑛+1 𝑎𝐸,𝑤 + 𝐵𝑔𝑛+1 𝑎𝐸,𝑔 ) 𝑃𝐸𝑛+1
+(𝐵𝑜𝑛+1 𝑎 𝑇,𝑜 + 𝐵𝑤𝑛+1 𝑎 𝑇,𝑤 + 𝐵𝑔𝑛+1 𝑎 𝑇,𝑔 ) 𝑃𝑇𝑛+1 + (𝐵𝑜𝑛+1 𝑎𝐵,𝑜 + 𝐵𝑤𝑛+1 𝑎𝐵,𝑤 + 𝐵𝑔𝑛+1 𝑎𝐵,𝑔 ) 𝑃𝐵𝑛+1
1
− [𝐵𝑜𝑛+1 (𝑎𝑁,𝑜 + 𝑎𝑆,𝑜 + 𝑎𝑊,𝑜 + 𝑎𝐸,𝑜 + 𝑎 𝑇,𝑜 + 𝑎𝐵,𝑜 ) + 𝐵𝑤𝑛+1 (𝑎𝑁,𝑤 + 𝑎𝑆,𝑤 + 𝑎𝑊,𝑤 + 𝑎𝐸,𝑤 + 𝑎 𝑇,𝑤 + 𝑎𝐵,𝑤 ) +
𝑉𝑃𝑛 −𝑉𝑃𝑛
𝐵𝑔𝑛+1 (𝑎𝑁,𝑔 + 𝑎𝑆,𝑔 + 𝑎𝑊,𝑔 + 𝑎𝐸,𝑔 + 𝑎 𝑇,𝑔 + 𝑎𝐵,𝑔 ) + 𝑐 ] 𝑃𝑖𝑛+1 = 𝑐𝑡 𝑃𝑖𝑛 ……….…(Eq.2)
∆𝑡 𝑡 ∆𝑡
Let’s use ( 𝑥𝑑,𝑖 ) to denote the pressure coefficients for the neighbor grid blocks, where “d” represents the
relative position of the neighbor grid with respect to grid block “𝑖". Hence, we can write the six pressure
coefficients as follows:
Use “𝐷𝑖 ” for the pressure coefficient for the grid block of interest (grid 𝑖). Therefore, “𝐷𝑖 ” is given by:
𝐷𝑖 = − [𝐵𝑜𝑛+1 (𝑎𝑁,𝑜 + 𝑎𝑆,𝑜 + 𝑎𝑊,𝑜 + 𝑎𝐸,𝑜 + 𝑎 𝑇,𝑜 + 𝑎𝐵,𝑜 ) + 𝐵𝑤𝑛+1 (𝑎𝑁,𝑤 + 𝑎𝑆,𝑤 + 𝑎𝑊,𝑤 + 𝑎𝐸,𝑤 + 𝑎 𝑇,𝑤 + 𝑎𝐵,𝑤 )
𝑉𝑃𝑛
+ 𝐵𝑔𝑛+1 (𝑎𝑁,𝑔 + 𝑎𝑆,𝑔 + 𝑎𝑊,𝑔 + 𝑎𝐸,𝑔 + 𝑎 𝑇,𝑔 + 𝑎𝐵,𝑔 ) + 𝑐]
∆𝑡 𝑡
(3) (4)
Notice that 𝑥𝑁,2 , 𝑥𝐸,2, 𝑥𝑇,2 , 𝑥𝐵,2 are all equal to zero in this case. We also notice that the
pressure coefficient is zero for grid blocks with non-neighbor connection (grid 3 in this
example). We can generate the equations for all grid blocks in the example in a similar way. We will end up with
four equations describing the system:
2
−𝑉𝑃𝑛
Grid 1: 𝐷1 𝑃1𝑛+1 + 𝑥𝐸,1 𝑃2𝑛+1 + 𝑥𝑆,1 𝑃3𝑛+1 + 𝟎 x 𝑷𝒏+𝟏
𝟒 = 𝑐𝑡 𝑃1𝑛
∆𝑡
−𝑉𝑃𝑛
Grid 2: 𝑥𝑊,2 𝑃1𝑛+1 + 𝐷2 𝑃2𝑛+1 + 𝟎 x 𝑷𝒏+𝟏
𝟑 + 𝑥𝑆,2 𝑃4𝑛+1 = 𝑐𝑡 𝑃2𝑛
∆𝑡
−𝑉𝑃𝑛
Grid 3: 𝑥𝑁,3 𝑃1𝑛+1 + 𝟎 x 𝑷𝒏+𝟏
𝟐 + 𝐷3 𝑃3𝑛+1 + 𝑥𝐸,3 𝑃4𝑛+1 = 𝑐𝑡 𝑃3𝑛
∆𝑡
−𝑉𝑃𝑛
Grid 4: 𝟎 x 𝑷𝒏+𝟏
𝟏 + 𝑥𝑁,4 𝑃2𝑛+1 + 𝑥𝑊,4 𝑃3𝑛+1 + 𝐷4 𝑃4𝑛+1 = 𝑐𝑡 𝑃4𝑛
∆𝑡
−𝑉𝑃𝑛
In the above, 𝑐𝑡 𝑃𝑖𝑛 is replaced with 𝑞𝑖 as it represents a known quantity. Remember that pressures at the
∆𝑡
“n” time level will be known from the previous time step.
After calculating all grid block pressures at the new time level (𝑝𝑖𝑛+1 ) by solving the matrix, the saturations at
the new time level will be calculated from the saturations’ equations given in the IMPES derivation. These
equations are as follows:
𝐵𝑜𝑛+1 𝑉𝑝 𝑆𝑜
𝑆𝑜𝑛+1 = 𝑛+1 [( ) + ∆𝑡 ∆𝑎𝑜𝑛 ∆𝑝𝑛+1 ]
𝑉𝑝 𝐵𝑜
𝐵𝑤𝑛+1 𝑉𝑝 𝑆𝑤
𝑆𝑤𝑛+1 = [( 𝑛
) + ∆𝑡 ∆𝑎𝑤 ∆𝑝𝑛+1 ]
𝑉𝑝𝑛+1 𝐵𝑤
𝐵𝑔𝑛+1 𝑉𝑝 𝑆𝑔
𝑆𝑔𝑛+1 = 𝑛+1 [( ) + ∆𝑡 ∆𝑎𝑔𝑛 ∆𝑝𝑛+1 ]
𝑉𝑝 𝐵𝑔
A new time level (time step) will be taken and all the above is repeated until the simulation reaches the end of
the total time duration the user wants to simulate.
3
For grid blocks that contain wells, we need to take the production term into consideration. The IMPES equation
describing a 3 components system will be updated from Eq.1 to include the production term as follows:
𝑉𝑃𝑛
𝐵𝑜𝑛+1 ∆𝑎𝑜 ∆𝑝𝑛+1 + 𝐵𝑤𝑛+1 ∆𝑎𝑤 ∆𝑝𝑛+1 + 𝐵𝑔𝑛+1 ∆𝑎𝑔 ∆𝑝𝑛+1 = 𝑐𝑡 (𝑃2𝑛+1 − 𝑃2𝑛 ) + 𝑞𝑡 ……… (Eq. 3)
∆𝑡
Where 𝑞𝑡 = 𝑞𝑜 + 𝑞𝑤 + 𝑞𝑔
The above total rate equation assumes that all rate units are consistent (e.g. scf/D) for all production and
injection of all three components (oil, water, and gas).
The saturation equations for the grid block with a production or injection well would be:
𝐵𝑜𝑛+1 𝑉𝑝 𝑆𝑜
𝑆𝑜𝑛+1 = [( ) + ∆𝑡 ∆𝑎𝑜𝑛 ∆𝑝𝑛+1 − 𝑞𝑜 ∆𝑡]
𝑉𝑝𝑛+1 𝐵𝑜
𝐵𝑤𝑛+1 𝑉𝑝 𝑆𝑤
𝑆𝑤𝑛+1 = 𝑛+1 [( 𝑛
) + ∆𝑡 ∆𝑎𝑤 ∆𝑝𝑛+1 − 𝑞𝑤 ∆𝑡]
𝑉𝑝 𝐵𝑤
𝐵𝑔𝑛+1 𝑉𝑝 𝑆𝑔
𝑆𝑔𝑛+1 = [( ) + ∆𝑡 ∆𝑎𝑔𝑛 ∆𝑝𝑛+1 − 𝑞𝑔 ∆𝑡]
𝑉𝑝𝑛+1 𝐵𝑔
For grid blocks with wells, the IMPES formulation would be modified from Eq.2 to become:
(𝐵𝑜𝑛+1 𝑎𝑁,𝑜 + 𝐵𝑤𝑛+1 𝑎𝑁,𝑤 + 𝐵𝑔𝑛+1 𝑎𝑁,𝑔 ) 𝑃𝑁𝑛+1 + (𝐵𝑜𝑛+1 𝑎𝑆,𝑜 + 𝐵𝑤𝑛+1 𝑎𝑆,𝑤 + 𝐵𝑔𝑛+1 𝑎𝑆,𝑔 ) 𝑃𝑆𝑛+1
𝑛+1
+(𝐵𝑜𝑛+1 𝑎𝑊,𝑜 + 𝐵𝑤𝑛+1 𝑎𝑊,𝑤 + 𝐵𝑔𝑛+1 𝑎𝑊,𝑔 ) 𝑃𝑊 + (𝐵𝑜𝑛+1 𝑎𝐸,𝑜 + 𝐵𝑤𝑛+1 𝑎𝐸,𝑤 + 𝐵𝑔𝑛+1 𝑎𝐸,𝑔 ) 𝑃𝐸𝑛+1
+(𝐵𝑜𝑛+1 𝑎 𝑇,𝑜 + 𝐵𝑤𝑛+1 𝑎 𝑇,𝑤 + 𝐵𝑔𝑛+1 𝑎 𝑇,𝑔 ) 𝑃𝑇𝑛+1 + (𝐵𝑜𝑛+1 𝑎𝐵,𝑜 + 𝐵𝑤𝑛+1 𝑎𝐵,𝑤 + 𝐵𝑔𝑛+1 𝑎𝐵,𝑔 ) 𝑃𝐵𝑛+1
− [𝐵𝑜𝑛+1 (𝑎𝑁,𝑜 + 𝑎𝑆,𝑜 + 𝑎𝑊,𝑜 + 𝑎𝐸,𝑜 + 𝑎 𝑇,𝑜 + 𝑎𝐵,𝑜 ) + 𝐵𝑤𝑛+1 (𝑎𝑁,𝑤 + 𝑎𝑆,𝑤 + 𝑎𝑊,𝑤 + 𝑎𝐸,𝑤 + 𝑎 𝑇,𝑤 + 𝑎𝐵,𝑤 ) +
𝑉𝑃𝑛 𝑉𝑃𝑛
𝐵𝑔𝑛+1 (𝑎𝑁,𝑔 + 𝑎𝑆,𝑔 + 𝑎𝑊,𝑔 + 𝑎𝐸,𝑔 + 𝑎 𝑇,𝑔 + 𝑎𝐵,𝑔 ) + 𝑐 ] 𝑃𝑖𝑛+1 = 𝑞𝑡 − 𝑐𝑡 𝑃𝑖𝑛 …………… (Eq. 4)
∆𝑡 𝑡 ∆𝑡
−𝑉𝑃𝑛
Grid 2: 𝑥𝑊,2 𝑃1𝑛+1 + 𝐷2 𝑃2𝑛+1 + 𝟎 x 𝑷𝒏+𝟏
𝟑 + 𝑥𝑆,2 𝑃4𝑛+1 = 𝑐𝑡 𝑃2𝑛
∆𝑡
−𝑉𝑃𝑛
Grid 3: 𝑥𝑁,3 𝑃1𝑛+1 + 𝟎 x 𝑷𝒏+𝟏
𝟐 + 𝐷3 𝑃3𝑛+1 + 𝑥𝐸,3 𝑃4𝑛+1 = 𝑐𝑡 𝑃3𝑛
∆𝑡
−𝑉𝑃𝑛
Grid 4: 𝟎 x 𝑷𝒏+𝟏
𝟏 + 𝑥𝑁,4 𝑃2𝑛+1 + 𝑥𝑊,4 𝑃3𝑛+1 + 𝐷4 𝑃4𝑛+1 = 𝑐𝑡 𝑃4𝑛
∆𝑡
4
𝑉𝑃𝑛
𝑞𝑡 − 𝑐𝑡 𝑃1𝑛
∆𝑡
𝑫1 𝒙E,1 𝒙S,1 0 𝑷1 −𝑉𝑃𝑛
𝒙W,2 𝑫2 0 𝒙S,2 𝑷2 𝑐 𝑃𝑛
∆𝑡 𝑡 2
The equations in matrix form would be: [ ]= −𝑉𝑃𝑛
𝒙N,3 0 𝑫3 𝒙E,3 𝑷3
𝑐 𝑃𝑛
𝑫4 ] 𝑷4 ∆𝑡 𝑡 3
[ 0 𝒙N,4 𝒙W,4
−𝑉𝑃𝑛
[ 𝑐 𝑃𝑛 ]
∆𝑡 𝑡 4
In the above systems, notice that 2D problems give 5-diagonal matrices. Similarly, 3D problems will give 7-
diagonal matrices and 1D problems will give a typical tridiagonal matrix. The resultant matrix is, therefore, a
banded matrix. In case of having non-neighbor connections, the matrix will be sparse (i.e. non-zero elements
will be spread out through the matrix away from the main diagonals). Non-neighbor connections appear in case
of faults (among other cases).
5
Example: Prepare and solve the following matrix to calculate pressure of each grid block in the next time step
(n+1) for the following 2D homogeneous and uniform two-component (oil and water) 2x2 system.
Δx= Δy= 600 ft, Thickness= 40 ft, Δt= 30 days
Sw1n= 0.69, Sw2n= 0.751, Sw3n= 0.733, Sw4n= 0.69 (3) (4)
Solution
First step is to calculate the constant terms during the time step as transmissibility and pore volume. These
terms are typically calculated in the beginning of the simulation run, and kept in the computer memory for
following time step calculations.
0.00633 𝑘ℎ ∆𝑦 0.00633 ∗ 42 ∗ 40 ∗ 600
𝑇𝑟𝑎𝑛𝑠𝑚𝑖𝑠𝑠𝑖𝑏𝑖𝑙𝑖𝑡𝑦 = = = 10.634
∆𝑥 600
𝑣𝑝 = 𝜑 ∆𝑥 ∆𝑦 ∆𝑧 = 1584000 ft3
Then, the total compressibility is calculated for each grid using the saturations at current time step (S n) and
equation 𝑐𝑡 = 𝑐𝑓 + 𝑐𝑜 𝑠𝑜 + 𝑐𝑤 𝑠𝑤 + 𝑐𝑔 𝑠𝑔 to obtain:
Now, we are ready to calculate oil symmetrical flow coefficients “a coefficients” for each grid. Four “a
coefficients” (two for oil and two for water) need to be calculated for each grid. Also, each grid block has two
neighbor grids. To calculate the “a coefficients”, the formation volume factor and viscosity are calculated as
average between the two neighbor grid blocks. However, the relative permeability is calculated as upstream
relative permeability. For selecting the upstream relative permeability, we assume flow is from the grid block
with higher potential (or pressure) to the grid block with lower potential
𝑘
𝑎 = 𝑇𝑟𝑎𝑛𝑠𝑚𝑖𝑠𝑠𝑖𝑏𝑖𝑙𝑖𝑡𝑦 (𝐵𝜇𝑟 )
6
Grid (1) (2) (3) (4)
aWo 0.052 0.009
aEo 0.002 0.052
aNo 0.052 0.002
aSo 0.009 0.052
aWw 0.106 0.186
aEw 0.239 0.106
aNw 0.106 0.239
aSw 0.186 0.106
Using the equations for 𝑥𝑑,𝑖 and 𝐷𝑖 , we can generate the matrix for this grid system:
−0.77 0.24 0.2 0 𝑷1 −1,120.2
0.18 −0.67 0 0.18 𝑷2 −1,092.2
[ ][ ] = [ ]
0.18 0 −0.67 0.18 𝑷3 −1,121.4
0 0.24 0.2 −0.77 𝑷4 −1,103.7
Solving the matrix, we can estimate the pressures of each grid at next time step (n+1) to be:
𝑷1 3,423.7
𝑷 3,430.6
[ 2] = [ ]
𝑷3 3,454.5
𝑷4 3,402.3
7
History Matching
History Matching in
Reservoir Simulation
Instructional Objectives
• Define history matching
• Give examples on responses to be matched
• Explain how these reservoir responses are
measured in the field
• List possible reservoir parameters that can be
changed during a typical history match
• Explain why we should follow a systematic
process in history matching
• Explain how we conduct history matching
• Define automatic history matching
1
History Matching
History Matching
History Matching
Direct Problem
System
INPUT Equations ?OUTPUT?
Parameters Model
Simulator
Inverse Problem
History
Matching
System
?INPUT? Equations OUTPUT
?Parameters? Model
Simulator
2
History Matching
3
History Matching
History Match
• General guidelines
– Wherever possible, use conventional
reservoir engineering methods to get initial
estimates for parameters
– Look for parameters which have effects
that are independent of any other unknown
parameters, and use those first in history
match
– Proceed with the match from gross overall
behavior to detailed behavior of individual
wells
4
History Matching
Exercise
• Explain how we can obtain each of the
reservoir responses we use for history
matching.
5
History Matching
Possible Changes
Pore Volume?
Aquifer?
Oil Initially in Place
(Contacts, So)
Energy?
Gas cap size
6
History Matching
Possible Changes
7
History Matching
8
Static Models
A. El-Banbi 1
Static Models
Instructional Objectives
• Define the static model
• Discuss the applications of static models
• List the steps used to build a typical static model
• Explain the methodology to build a static model
• List the sources of data used to generate all the
models that constitute the static model
• Define geostatistics
• Explain what is meant by static model uncertainty
A. El-Banbi 2
Static Models
The static model provides the basis for dynamic simulation models.
They are also used to perform volumetric calculations that yield the
original hydrocarbon in place. Static models can also assist in planning
new wells.
A. El-Banbi 3
Static Models
Reservoir Characterization
Regional Pore
Structural Depositional
Geological Systems
Model Model
Model Model
Interpreted
Geophysical
Engineering
Model
Interpretation
(PTA, PDA, PVT,
MB, RFT)
A. El-Banbi 4
Static Models
Lithofacies
1. Input data :
Wells, markers, Permeability Model
surface,
Interpreted logs, Water Saturation
Model
EW-104S1
fault
EW104S1 GOC 6791’
Amount to be shifted: + 8’
The typical process to construct static models usually involves several steps.
All available geological and engineering data need to be integrated to
provide a consistent geologic understanding of the reservoir.
The structural model is then constructed. The structural model defines
reservoir layers and compartments. It is important to model faults and
pinch outs to resolve the issues arising from flow across reservoir
compartments.
Facies models are constructed to reflect the understanding of depositional
environment. They help in guiding the reservoir property (porosity and
permeability) distribution.
The property model is then constructed. Techniques to distribute reservoir
properties are usually used to construct one or more realizations of
reservoir properties (porosity, permeability, and saturation).
Once each cell in the static model is populated with the reservoir
properties, volumetric calculations can be made to provide the original
fluids in place for every reservoir compartment and/or layer. Uncertainty
can be also evaluated by running the volumetric calculations with different
realizations of porosity and saturation.
A. El-Banbi 5
Static Models
The major data sources for structural modeling are listed here. These
different data are usually integrated to provide a consistent model
interpretation. The integration process involves combining well,
seismic, outcrop and mapping data into surfaces and horizons using
state of the art geologic modeling software. Input from engineering
data (e.g. RFT and well test interpretation) can be also utilized. The
engineering data may help in defining isolation and
compartmentalization.
A. El-Banbi 6
Static Models
Seismic data are subject to noise and artifacts and must be interpreted
properly. The seismic data are the primary guidance for fault location
and horizon interpolation away from the wells.
In many cases, reprocessing of old seismic data (using new algorithms
that reduce noise in data) may provide better quality seismic for
horizon interpretation and mapping, and fault identification.
A. El-Banbi 7
Static Models
• Checkshots
• Vertical Seismic
Profiles (VSP)
Geophysical
Well Log
• Synthetic
Seismograms
8
Modified from Weimer and Davis,1996
Typically the well data are considered as “hard” data and seismic data
are considered “soft” data. Well logs are tied to seismic data to map
stratigraphic horizons.
The log ties also provide the basis for calculating sound velocities
through different layers so seismic section can converted from time to
depth domain.
A. El-Banbi 8
Static Models
Picking Markers
Well markers are considered hard data for structural modeling and
must be picked carefully. SP and other logs can help detect bed
boundaries and can be used in conjunction with the geologic
knowledge to identify the well (horizon) markers. Other logs are also
used (e.g GR, resistivity and porosity logs). A well log correlation panel
is commonly used to link similar zones/rock types and to identify the
spatial continuity of the rock types. This can reveal pinch outs and
erosion surfaces (unconformity surfaces).
A. El-Banbi 9
Static Models
After picking horizon markers (also called well markers or well tops),
they are usually matched with the seismic data to define the horizons.
Stratigraphic cross-sections are created and evaluated. The cross-
sections can be sometimes used to identify missing section. These are
usually a result of faults and pinch-outs. Carful examination of missing
sections may reveal faults that are below seismic resolution.
A. El-Banbi 10
Static Models
Significance of Faults
• Compartmentalization
• Juxtaposed layers
A. El-Banbi 11
Static Models
Structural Cross-Section
From 3D seismic data, we can interpret horizons and faults. From well
data, we can establish geologic markers. The seismic and well data are
then tied together to define the reservoir structure as shown here.
These structural cross-sections provide understanding of how geologic
horizons are located within the reservoir. Juxtaposition of different
reservoir layers (which may be important to understand
communication of reservoir layers) can be revealed when these cross-
sections are taken in different directions.
A. El-Banbi 12
Static Models
A. El-Banbi 13
Static Models
A. El-Banbi 14
Static Models
3D Structural Models
The left hand side 3D view shows the fault planes for the faults
detected from seismic data and geological interpretation. The right
hand side 3D view shows the reservoir horizons (surfaces) with the
fault planes.
Structural horizons can be built one fault block at a time based on
horizon points. Alternatively, the horizon can be created by cutting an
‘initial’ horizon (surface) by the fault network. The latter is usually used.
A. El-Banbi 15
Static Models
Fault
Compartment
A. El-Banbi 16
Static Models
Facies Models
Fluvial
Barrier Island
Lagoon
Back Barrier
DEPOSITIONAL STRIKE
Barrier Core
10 to 100 darcys
10 to .1 darcys
Lower
.1 to .01 darcys
Shoreface
.01 to .0001 darcys
Shelf
(modified from Galloway and Hobday, 1983; after Galloway et al 1979, and Davis, 1969)
A. El-Banbi 17
Static Models
Property Modeling
• Facies modeling
• Porosity modeling
• Permeability modeling
• Saturation modeling
• Volumetric calculations
A. El-Banbi 18
Static Models
Permeability Modeling
100
10
10
Permeability (md)
1
1
0.1 0.1
0.01 0.01
2 6 10 14 2 6 10 14 18
Porosity (%)
A. El-Banbi 19
Static Models
Core-Log Integration
Plot on
Computed Permeability Track
Verify core-log match
20
A. El-Banbi 20
Static Models
Exercise
• Write one page on geostatistics. In this
page, do the following:
– Write one (or more) definition(s) of
geostatistics
– Tell us what geostatistics is used for
– List the main methods we use under
geostatistics
A. El-Banbi 21
Static Models
References
A. El-Banbi 22
Grid Models
A. El-Banbi 1
Grid Models
A. El-Banbi 2
Grid Models
A. El-Banbi 3
Grid Models
A. El-Banbi 4
Grid Models
Cylindrical grids are often used in single well studies. The are
particularly used for characterizing flow in the vicinity of
wellbores. They are most applied in pressure transient
analysis and coning studies.
A. El-Banbi 5
Grid Models
A. El-Banbi 6
Grid Models
A. El-Banbi 7
Grid Models
A. El-Banbi 8
Grid Models
A. El-Banbi 9
Grid Models
A. El-Banbi 10
Grid Models
A. El-Banbi 11
Grid Models
A. El-Banbi 12
Grid Models
A. El-Banbi 13
Grid Models
A. El-Banbi 14
Grid Models
A. El-Banbi 15
Grid Models
A. El-Banbi 16
Grid Models
A. El-Banbi 17
Grid Models
A. El-Banbi 18
Grid Models
A. El-Banbi 19
Grid Models
layers 1 and 3 are connected in the two far left grid blocks.
A. El-Banbi 20
Grid Models
A. El-Banbi 21
Grid Models
The above section shows the geological grid and the bottom
section shows the associated stair-step simulation grid. Although
the above geological grid can be modeled in 3D static models,
they can create problems in flow simulation. This situation arises
in complex geometry situations with sloping faults.
(After Gringarten et al., SPE 119188).
A. El-Banbi 22
Grid Models
A. El-Banbi 23