Software

MAFIC Software Information (continued)

The integrals which form the matrix coefficients Anm and Dnm have been evaluated analytically using local element area (or length) coordinates as described by Pinder and Gray (1977) and Zienkiewicz (1977). This eliminates the need to perform numerical integrations. The matrices A and D are assembled locally on an element by element basis within the subroutines FELEM (for fracture elements) and MELEM (for matrix elements) and subsequently combined to form the global coefficient matrices. The matrices are calculated only at the beginning of each simulation to increase computational efficiency. Note that A and D are always symmetric and positive definite.

The right-hand-side vector contains the matrix product of the storativity matrix and the current head vector plus the prescribed nodal boundary conditions. Since these quantities generally change with each timestep they must be evaluated at the beginning of each timestep.

To conserve memory and reduce computational effort, when the matrix-block option is used equations for fracture nodes are separated from equations for matrix nodes. As shown in Figure 2-3, by placing terms expressed by Equation (2-3) which link fracture nodes and matrix nodes in the right-hand-side vector, the equations describing flow in the fractures are decoupled from those describing flow in the matrix. When solving the set of equations for fracture nodes the terms of the equations containing matrix block head values are evaluated using matrix node head values from the last iteration and placed in the right-hand-side vector. Similarly, when solving for matrix nodes, the terms containing fracture head values are placed in the right-hand-side vector. Addition of mixed nodal terms to the right-hand-side vector is performed in the subroutine MBFLUX. The iterative matrix solution procedure is repeated until the maximum head change for an iteration and the maximum unbalanced nodal flow are less than a user specified tolerance.

Convergence may be speeded following the first timestep by using a variable projection factor which estimates head values at the end of the current timestep by extrapolating head changes from the previous timestep. New head values for the current timestep are estimated once at the start of all but the first timestep. The new values are estimated using a simple linear extrapolation equation:

(2-5)

where: hest = estimated head value at end of current timestep
hk = head at the present timestep
hk-1 = head at the old timestep
P = projection factor
D told = length of old timestep
D tnew = length of new timestep

P should always be positive and less than or equal to 1.0. When P equals zero no extrapolation is conducted. When P equals 1.0, the head gradient is extrapolated one timestep.

Modeling of Rock Matrix Flow

The diffusivity equation for three-dimensional flow in porous media can be written

(2-6)

where: Ss = Specific Storage (1/L)
h = Hydraulic Head (L)
t = Time (T)
K = Hydraulic Conductivity (L/T)
q = Source/Sink Term (1/T)
= Three-dimensional Laplace Operator

Equation (2-6) is the governing equation describing matrix flow in MAFIC. Equation (2-2) is used for the finite element solution after modifying the equation such that R is now the region volume (L3), q is the volumetric flux per unit volume (T-1), and T and S are replaced by K and Ss.

Flow in the rock matrix may be modeled using either a fully discretized finite element solution or a generic matrix block approach. Each method offers certain advantages for particular types of problems. The relevant aspects of each are presented in the following sections.

The Fully Discretized Matrix Approach

Flow in the rock matrix may be simulated using a fully discretized rock matrix. This approach models the flow in the matrix using the Galerkin finite element solution scheme, described in Section 2.2. In order to use this approach, the rock matrix must be discretized into a finite element grid of tetrahedral elements (see Figure 2-4). Either linear elements or quadratic elements may be utilized; the program will automatically generate the additional nodes for the quadratic elements.

The fully discretized approach is suitable for small or simple problems involving only a few fractures. This method has two primary advantages. The first is that the exact geometry of the matrix is simulated. Second, this approach models flow through matrix interconnections between non-intersecting fractures. As the complexity of the fracture networks increases, however, the fully-discretized approach becomes cumbersome. One problem is the laborious task of designing finite element matrix grids for fracture systems containing many fractures of random orientation. Secondly, the computational effort required to solve a fully discretized matrix problem can quickly reach unreasonable proportions as the number of fractures increases.

The Matrix Block Approach

Considering the limitations of the fully discretized method, MAFIC provides an alternative method, utilizing generic matrix blocks, for simulating flow in the rock matrix. A similar approach has been used for conventional 'dual-porosity' simulations (Kucuk and Sawyer, 1979; Warren and Root, 1963; Streltsova-Adams, 1978). The matrix block approach defines a single generic matrix block geometry and size to represent all matrix blocks isolated by a network of surrounding fractures. Generic matrix block geometries used in the simulations include spheres and rectangular slabs. An example of how a spherical matrix block might compare to an actual fracture network is illustrated in Figure 2-5a. To proportion matrix block flow to individual fractures, a section of a matrix block with an outer surface area equal to the individual fracture areas is associated with each fracture element. For matrix block spheres, the matrix block section consists of a conical-shaped section, and for rectangular slabs the surface area of the drainage face is set equal to the fracture area. These relationships are shown in Figure 2-5b.

Flow through each matrix block is treated as a separate one-dimensional problem coupled to the average hydraulic head in the associated bounding fracture element. Two different methods are used to solve for flow within the matrix blocks, the pseudo steady-state approach and the finite element approach.

The pseudo steady-state approach (Warren and Root, 1963) assumes that flux into or out of the matrix block equals the change in storage within the block. Under this condition:

(2-7)

where: Qmf = matrix to fracture flux (L3/T)
Am = area of the matrix block (L2)
Vm = volume of the matrix block (L3)
Km = hydraulic conductivity of the matrix block (L/T)
Ssm = specific storage of the matrix block (1/L)
hm = average matrix block head (L)
hf = average boundary fracture head (L)
t = time (T)
a = a geometric shape factor = 5/rmb for a sphere; 3/rmb for a slab (1/L)
rmb = the matrix block radius or slab thickness (L)

This approximation is strictly valid only for later times when induced pressure transients at the block surface reach the center (sphere) or opposite end (slab) of the matrix block, but offers the advantage of computational simplicity.

[more]