A Version Of Two Point Upstream Weighting For Use In Implicit Numerical Reservoir Simulators
Authors: Wheatley Michael J. 
Published: December 2007

Abstract
A version of two-point upstream weighting of fluid mobilities has been devised that is suitable for use in existing fully or sequentially implicit finite-difference reservoir simulators. The method can be implemented easily in such simulators without modification to the program structure. Use of the two-point scheme in place of the usual single-point weighting improves accuracy and reduces grid orientation effects without affecting stability. Examples are given to illustrate these improvements.

Introduction
Most general-purpose reservoir simulators, at present in common use, are based on the solution of present in common use, are based on the solution of finite-difference analogs of the conservation equations describing multiphase flow in porous media. Thus, the domain of the reservoir is divided into a number of discrete blocks, and solutions for pressure and saturations are sought at the grid-block centers. The discretized equations, however, contain terms (the fluid mobilities) that have to be evaluated at the grid-block faces and not at the grid-block centers. The usual procedure adopted is to evaluate these terms at the center of the adjacent upstream grid block. Thus scheme is known as single-point upstream weighting.
Single-point weighting leads to a numerically stable finite-difference scheme if the mobilities are evaluated at the current time level (fully implicit simulators) and a conditionally stable scheme if mobilities are calculated at the previous time level (IMplicit in Pressure Explicit in Saturations, viz, IMPES simulators). However, the local truncation error associated with single-point upstream weighting is first order and these first-order terms introduce an artificial diffusion that is known as numerical dispersion. The most noticeable result of numerical dispersion is that sharp fronts in fluid displacement are not modeled accurately but are smoothed out considerably.
From a numerical analysis point of view, the obvious way to improve accuracy would be to approximate the interblock mobility with the average of the mobilities in the contiguous blocks. Unfortunately, this midpoint weighting scheme is unstable when used explicitly and leads to oscillatory behavior when used implicitly.
Todd et al. introduced an improved weighting scheme whereby the interblock mobilities are evaluated by linear extrapolation of the values at two upstream grid points. For use in IMPES-type simulators, Todd et al. demonstrated the superiority of this two-point weighting scheme over single-point weighting both in greatly improved accuracy and greatly reduced grid orientation effects. The scheme however, has not been implemented yet in a fully implicit simulator. The main reason for this is that a direct implementation would lead to a wider band structure in the matrix equation, which has to be solved for the grid-block pressures and saturations, than with single-point weighting. Not only would this mean extra storage requirements and increased computing times for inverting the more complex matrix, but more important, considerable reprogramming effort would be needed to incorporate the scheme in existing simulators.
This paper presents a modified version of the two-point upstream weighting scheme that can be implemented easily in existing fully or sequentially implicit simulators.

THE IMPLICIT TWO-POINT UPSTREAM WEIGHTING SCHEME
To simplify the discussion of the scheme, we consider an essentially one-dimensional system of unit length and uniform rectangular cross-section that is subdivided into a single row of N grid blocks of length delta xi (= xi + 1/2 - xi - 1/2), where i = 1, 2…, N with i increasing in the positive x direction so that x 1/2 = 0 and xN +1/2 = 1. The ensuing discussion, in fact, is equally applicable to the three-dimensional case, all the relations given below being of exactly the same form for the directions y and z, orthogonal to x.