Академический Документы
Профессиональный Документы
Культура Документы
Version 2017.2
Technical Description
FrontSim Technical Description
Copyright Notice
Copyright © 2017 Schlumberger. All rights reserved.
This work contains the confidential and proprietary trade secrets of Schlumberger and
may not be copied or stored in an information retrieval system, transferred, used,
distributed, translated or retransmitted in any form or by any means, electronic or
mechanical, in whole or in part, without the express written permission of the copyright
owner.
Schlumberger, the Schlumberger logotype, and other words or symbols used to identify
the products and services described herein are either trademarks, trade names or
service marks of Schlumberger and its licensors, or are the property of their respective
owners. These marks may not be copied, imitated or used, in whole or in part, without
the express prior written permission of Schlumberger. In addition, covers, page headers,
custom graphics, icons, and other design elements may be service marks, trademarks,
and/or trade dress of Schlumberger, and may not be copied, imitated, or used, in whole
or in part, without the express prior written permission of Schlumberger. Other company,
product, and service names are the properties of their respective owners.
Security Notice
The software described herein is configured to operate with at least the minimum
specifications set out by Schlumberger. You are advised that such minimum
specifications are merely recommendations and not intended to be limiting to
configurations that may be used to operate the software. Similarly, you are advised that
the software should be operated in a secure environment whether such software is
operated across a network, on a single system and/or on a plurality of systems. It is up
to you to configure and maintain your networks and/or system(s) in a secure manner. If
you have further questions as to recommendations regarding recommended
specifications or security, please feel free to contact your local Schlumberger
representative.
FrontSim Technical Description
Table of Contents
1 Introduction .................................................................................................. 1
FrontSim features ............................................................................................................. 1
Additional programs ......................................................................................................... 4
Licenses ............................................................................................................................. 6
i
FrontSim Technical Description
10 Licenses ...................................................................................................... 59
Special cases ................................................................................................................... 60
12 Restarts ....................................................................................................... 70
Requesting RESTART files in FrontSim ....................................................................... 70
Notes on RESTARTS in FrontSim ................................................................................. 71
ii
FrontSim Technical Description
iii
FrontSim Technical Description
iv
FrontSim Technical Description
1
Introduction
The ECLIPSE simulator suite consists of three separate simulators: ECLIPSE 100 specializing in black oil
modeling, ECLIPSE 300 specializing in compositional modeling and ECLIPSE FrontSim, specializing in
streamline and front tracking.
ECLIPSE 100 is a fully-implicit, three phase, three dimensional, general purpose black oil simulator with
gas condensate options. ECLIPSE 300 is a compositional simulator with cubic equation of state, pressure
dependent K-value and black oil fluid treatments. ECLIPSE 300 can be run in fully implicit, IMPES and
adaptive implicit (AIM) modes.
FrontSim is a three-dimensional, three-phase fluid flow simulator based on a state-of-the-art streamline
concept. FrontSim can perform simulations on large and complex reservoir models several orders of
magnitude faster than standard finite difference simulators, and can achieve this without grid orientation
effects or numerical dispersion.
The streamline concept is based on an IMPES (Implicit Pressure Explicit Saturation) solution. First, the
pressure is solved with an implicit numerical method and then the saturation equation is solved using an
explicit method. The pressure is used to compute a velocity field which is, in turn, used to compute
streamlines. The saturation equations are solved on the streamlines using front tracking and numerical
methods.
FrontSim features
Free format input
Input data for FrontSim is prepared in free format using a keyword system. Any standard editor
may be used to prepare the input file. Alternatively, ECLIPSE Office may be used to prepare
data interactively through panels, and submit runs. Its help facility contains most of the
FrontSim User Guide.
Introduction
1
FrontSim Technical Description
Geometry options
The FrontSim corner-point geometry option is unique and allows extremely complex geometries
to be constructed to give a faithful representation of the reservoir geology. PETREL can be used
to prepare corner-point data for FrontSim or ECLIPSE. PETREL may also be used to display the
grid in a variety of ways. For example, in a large 3D study, you may request a number of XZ
cross-sections to be displayed simultaneously. Transparent areal overlays of the grid are useful
for precise checking against geological maps.
Corner-point geometry is especially useful for highly faulted reservoirs. The grid may be
distorted areally to fit along fault lines and displaced vertically to model complex scissor faults.
The resulting non-neighbor grid transmissibilities are computed automatically by FrontSim.
Flow across displacement faults is handled efficiency by the FrontSim solution procedures.
See "Transmissibility calculations" for further information.
Non-neighbor connections
In conventional grid systems, each cell has only one neighboring cell in each direction (two in
each dimension). Thus in 2D grids, each cell can have up to four neighbors, and in 3D grids,
each cell can have up to six neighbors. Flow only takes place between neighboring cells.
FrontSim will generate the non-neighbor connections arising from displacement faults
applications automatically, and calculate their transmissibilities. If you are using the Local Grid
Refinement, FrontSim will also handle the non-neighbor connections arising from the third
application automatically.
Non-neighbor connections give rise to off-band elements in the Jacobian matrix and these are
included in the procedure used to solve the linear equations.
Run-time dimensioning
All of the internal arrays in FrontSim are dimensioned at run time to minimize the use of
computer memory. Most of the data required for FrontSim to compute the size of its internal
arrays is deduced from the data set. Space is saved by not storing unnecessary data for inactive
cells.
PVT and rock data
FrontSim honors the user-specified pressure and saturation function data precisely. It does not
follow the practice, common in the industry, of smoothing the data by interpolating to a fixed
number of equally spaced saturation intervals.
Different table numbers can be used for different parts of the reservoir. Thus, for example,
separate saturation tables can be entered for each type of rock.
Saturation table scaling
The connate, critical and maximum saturation end points of the relative permeability and
capillary pressure curves may be input separately for each grid cell within the reservoir or,
alternatively, as a series of depth tables for regions within the grid. The scaling option allows
you to specify relative permeability and capillary pressure data which are functions of a
normalized saturation. In addition, it allows the modeling of reservoirs where depth variations
occur in the initial critical or connate fluid saturations. See "Saturation Table Scaling" for further
information.
Tracer tracking
The Tracer Tracking option is a general facility to determine the movement of ‘marked’ fluid
elements during a simulation run. It may be used, for example, to differentiate the movement of
water injected by different wells and initial aquifer water, or to predict the variation in salinity or
concentrations of other chemical species. See "Tracer Tracking" for further information.
Introduction
2
FrontSim Technical Description
Introduction
3
FrontSim Technical Description
the simulator to model wells completed in horizontally-adjacent grid blocks. The Wellbore
Friction option may be used to investigate the effects of friction pressure losses along the well’s
perforated length, which could be important for horizontal wells.
Fine grid equilibration
The initial pressures and saturations in the reservoir grid blocks can be calculated by the
‘equilibration’ facility. Each phase in the reservoir is given a hydrostatic pressure gradient,
dependent on its local density. The saturations are determined from the local pressure
differences between the phases, using the capillary pressure tables.
A common practice is to set the fluid saturations within each grid block equal to the local
saturations at the center of the block. However, this procedure can produce significant errors in
the Fluids-in-Place estimation when a large grid block contains a fluid contact or part of a
transition zone. FrontSim has an option to improve the accuracy of the Fluids-in-Place
calculation in this situation. The fluid saturations are averaged to obtain the overall fluid
saturations within the block. The method takes account of the shape of grid blocks.
See "Initializing the Study" for further information.
Aquifers
Aquifers may be represented by a choice of two analytic models, a constant flux model and a
numerical model. The analytic models are the Fetkovich aquifer and the Carter-Tracy aquifer.
The constant flux model allows you to specify the flow per unit area at any time during the
simulation. The numerical model consists of a sequence of aquifer cells connected together in
one dimension. The innermost cell of the numerical aquifer sequence may be connected to any
number of reservoir cells. The depth, dimensions, porosity, permeability, and so on, of each
aquifer cell may be specified separately, giving you complete flexibility in defining each aquifer.
See "Aquifer Modeling Facilities" for further information.
Additional programs
Programs which may be purchased as additions to the basic FrontSim system are described below.
FrontSim options — IOR tracer logic
The IOR tracer logic extension increases the modeling capability of the program. This special
extension may be purchased separately as required.
ECLIPSE Office
ECLIPSE Office provides an interactive environment for the creation and modification of Black
Oil and Compositional models, the submission and control of runs, the analysis of results and
report generation. Data sets may be created using a PEBI gridding module, correlations for PVT
and SCAL data, keyword panels, or input from other pre-processors. Panels exist for all
FrontSim keywords. Tools are provided for the management of cases within a project. Run
management is provided for submitting, monitoring and controlling simulator execution. New
interactive graphics are used to view results.
FloGrid
FloGrid is an interactive 3D product that constructs fluid flow simulation grids and properties.
FloGrid imports geological data in most popular map and 3D geological model formats,
including the POSC Rescue format. Simulation grids can be exported in FrontSim and other
formats. FloGrid provides full 3D visualization of the data - wells, maps, geocellular models,
faults and simulation grids.
Introduction
4
FrontSim Technical Description
FloGrid supports the generation of both structured and unstructured grids. Structured (Cartesian)
grids are optimized to fit to selected faults and the boundary, with remaining grid nodes placed
to minimize orthogonality errors. Faults that are not explicitly gridded may be automatically
zigzagged. For 3D geological models, simulation layering can, optionally, be determined using
algebraic and flow based techniques to automatically identify simulation layers that best capture
the flow characteristics of the fine scale models.
Unstructured PEBI and tetrahedral (PetraGrid) grids can be tailored to honor all boundaries,
wells and faults. They support rectangular and radial refinements around wells, and general
refinements consisting of a rectangular, triangular or hexagonal grid within a specified
polygonal region.
FloGrid also provides a suite of algebraic and flow based single phase upscaling tools that
calculate appropriate simulation block properties from the fine scale geologic or stochastic
property grids.
FloViz
FloViz is an interactive 3D visualization system for the display and analysis of reservoir
simulation results. FloViz has a simple- to-operate, graphical user-interface and provides faster
3D interaction and animation of simulation results. It runs on both PCs and workstations.
FloViz allows multiple views (which can be tailored), through the use of slave viewers, of the
reservoir with independent slicing, property, and time animation. Model rotation can be shared
across the views. FloViz can display both structured and unstructured grids and streamlines. The
program contains a host of new options to allow easier visual interpretation of the grid and its
results.
PlanOpt
PlanOpt is an interactive tool to assist you in choosing the potential locations of vertical
production wells during development. PlanOpt applies predefined screening criteria to each
column of grid blocks in a 3D simulation model to determine which could sensibly
accommodate a production well. A vertical well is completed in each column of cells that
satisfies the criteria. A simulation run is then used to rank the wells and the least effective wells
are eliminated. This cycle is repeated until the optimum well locations have been identified.
PVTi
PVTi is an interactive Equation of State (EoS) package used for the analysis of laboratory
measurements performed to determine the phase behavior of reservoir fluids. The quality of the
laboratory measurements can be tested through material balance checks. Laboratory experiments
can be simulated using a variety of cubic EoS, and any discrepancies between calculated and
measured data can be minimized by regression of one or more EoS parameters. The EoS model
can then be used to generate data suitable for use in FrontSim and VFP i.
SCAL
SCAL is a tool to help you effectively use laboratory derived relative permeability and capillary
pressure measurements in reservoir simulation. The program has facilities to read in laboratory
data, perform quality control such as curve smoothing, group data according to lithological
parameters and end-point values, transform the laboratory data into rock curves suitable for
FrontSim, and automatically assign these curves to grid cells on the basis of rules which you set
up (for example, as a function of porosity / permeability / lithological parameters). The output
consists of a series of INCLUDE files, for both the PROPS and REGIONS sections. The program
has facilities for 3D visualization of simulation grids and three-phase relative permeabilities, and
for experimenting with FrontSim end point scaling options. The behavior of SCAL can be
extended or modified by the use of user-programmable command scripts to, for example,
implement a company confidential algorithm.
Introduction
5
FrontSim Technical Description
Schedule
Schedule imports production data from a variety of common sources including PA, OilField
Manager and Finder, and generates the corresponding FrontSim production control keywords.
Production data can also be extracted from existing FrontSim models. The program has
advanced graphic display features, which simplify the editing, validating and averaging of
production data. Timesteps on which rates are averaged are based on a user-defined combination
of calendar periods and reservoir events such as well completions, shut-ins and simulations.
All the main categories of production data necessary for simulation can be handled by Schedule.
These typically take the form of well deviation surveys, historical production and injection
volumes and completion data. A key feature of Schedule is the capability to generate accurate
and representative COMPDAT keywords with time-varying connection factors calculated from
perforation data specified in terms of measured depths and formations. Corrections are made for
deviated wells, partial penetrations and multiple completions within a single cell.
Schedule has comprehensive facilities for creating prediction run controls for FrontSim.
Controls can be set for wells, groups and the field. Wells can be created by defining IJK
locations or by digitizing in the 3D Viewer, where simulation results can be used as a backdrop
to aid placement.
Schedule can also prepare data for input to the Multisegment Well Model. It can read data
describing casing, liner and tubing characteristics and locations of chokes, packers and inflow
control valves.
Licenses
To run FrontSim, and to run the additional FrontSim option, you need to obtain an appropriate FLEX
license.
In addition, a DATACHECK license is available, which allows FrontSim to run a data set in NOSIM mode to
check for data errors without taking up a full license. A DATACHECK license will also allow a cross-section
simulation case (either NX=1 or NY=1) to run.
The FLEX license checking procedure checks for the availability of an appropriate license for an FrontSim
Options when a keyword activating the feature is encountered. In most cases, the activating keyword is in
the RUNSPEC section and is thus encountered at the beginning of the run.
Introduction
6
FrontSim Technical Description
2
Allocation factors
If the mnemonic in the RPTSCHED keyword is set, FrontSim will generate allocation reports in the .prt
ECLIPSE 100 file or a separate .alloc file in ASCII-format. If the ALLOC mnemonic is set to 1 - a simple report is
ECLIPSE 300 generated including allocation factors and pore volumes (drainage area) for wells and for injector-producer
x FRONTSIM pairs. If you want an extended report that also includes surface rates, surface volumes etc. the mnemonic
should be set to 2 (prt) or 3 (alloc).
Allocation factors
7
FrontSim Technical Description
• I-edge. Injection not represented by an injector - which is the boundary conditions (PSIDE and other
boundary keywords).
• P-edge. Production not represented by a producer - which is the boundary conditions (PSIDE and
other boundary keywords).
• The total pore volume not visited by any streamline and the total pore volume for the reservoir are also
reported.
Examples
Example 1
Using RPTSCHED, ALLOC=3 for complete output.
Allocation factors
8
FrontSim Technical Description
Allocation factors
9
FrontSim Technical Description
Example 2
A flux of 160 rm3/d is set at the left and right boundaries of the reservoir - no wells included; RPTSCHED,
ALLOC=1.
Properties Description
Pattern Set "FS_PRODUCER_BASED" or "FS_INJECTOR_BASED"
Start Bundle Well id number
End Bundle Well id number
Date Time format: dd.mm.yyyy
Oil Production Floating point value
Water Production Floating point value
Water Injection Floating point value
Bundle Pressure Floating point value
Pattern Average Pressure Floating point value
Injection Efficiency Floating point value
Allocation factors
10
FrontSim Technical Description
Properties Description
Pore Volume Floating point value
Table 2.1: Contents of ALN file - Well level
Properties Description/Example
Pattern Set "FS_PRODUCER_BASED" or "FS_INJECTOR_BASED"
Start Pattern Well Well id number
Date Time format: dd.mm.yyyy
Oil Production for Pattern Floating point value
Water Production for Pattern Floating point value
Water Injection for Pattern Floating point value
Bundle Pressure Floating point value
Pattern Average Pressure Floating point value
Injection Efficiency Floating point value
Pore Volume Floating point value
Table 2.2: Contents of ALN file - Well pattern level
Properties Description/Example
Pattern Set "FS_PRODUCER_BASED" or "FS_INJECTOR_BASED"
Start Completion Bundle Well id number
End Completion Bundle Well id number
Date Time format: dd.mm.yyyy
Oil Production Floating point value
Water Production Floating point value
Water Injection Floating point value
Bundle Pressure Floating point value
Pattern Average Pressure Floating point value
Injection Efficiency Floating point value
Pore Volume Floating point value
Table 2.3: Contents of ALN file - Zone (completion) level
Allocation factors
11
FrontSim Technical Description
3
Aquifer modeling facilities
This chapter describes the aquifer models available in FrontSim. These are:
x ECLIPSE 100
• Numerical aquifers
x ECLIPSE 300
x FRONTSIM • Carter-Tracy aquifers
• Fetkovich aquifers
• Constant flux aquifers.
Numerical aquifers are represented by a one-dimensional row of cells within the simulation grid. The other
three types of aquifer, classed as ‘analytic aquifers’, are represented by computed source terms in the
reservoir grid cells with which they connect.
Numerical aquifer
A numerical aquifer is modeled by a one-dimensional row of cells. A set of cells in the simulation grid is
nominated to represent the aquifer, which may then connect to specified faces of the reservoir (using the
AQUCON keyword).
The properties of the aquifer grid blocks (length, cross-sectional area, porosity, permeability, initial
pressure, depth, PVT and saturation table numbers) may be declared explicitly using keyword AQUNUM in
the GRID section, or if the properties for the aquifer cells are defaulted, they are taken from the grid block
values using data entered in the GRID and EDIT sections. This enables the aquifer properties to be
independent of its actual position within the grid.
The aquifer should be connected to a face of the reservoir using AQUCON. The first cell of the aquifer
declared in AQUNUM connects to the specified faces of the reservoir by non-neighbor connections. The set
of cells defining the aquifer are connected together (possibly by non-neighbor connections) in the order
specified in AQUNUM. The aquifer cells are isolated from the grid except for these connections.
The one-dimensional rows of cells each have cross-section, length and depth, but no further information
concerning their shape.
The transmissibility between two aquifer cells is thus given by:
CDARCY
TR = Eq. 3.1
1 / Ti + 1 / Tj
with
2 ⋅ PERMX i ⋅ XSECT i
Ti =
LENGTH i
where
This expression is used for transmissibilities between aquifer cells in both radial and Cartesian geometries.
However, in connecting the first aquifer cell to a grid block, the appropriate radial or Cartesian
transmissibility from the block edge to the center is used (see the AQUCON keyword).
If required, a transmissibility multiplier may be applied to the calculated transmissibility between the first
aquifer block and the nominated connecting face of the reservoir, using keyword AQUCON, in order to aid
history matching.
No multiplier is applied to the transmissibility of the inter-block connections within the one-dimensional
aquifer. The values of transmissibility multipliers for the grid (MULTX etc.) entered in the GRID section do
not apply to any numerical aquifer connections.
For the AQUNUM keyword, if the initial aquifer pressure is not entered (by choosing the default value) or
even if a negative value is specified, then the initial pressure is calculated to place the aquifer as near as
possible in equilibrium with the reservoir.
Summary quantities for a numerical aquifer may be obtained by defining each aquifer as a fluid-in-place
region. It is then possible to examine the aquifer inflow performance and pressure support supplied to the
reservoir.
Carter-Tracy aquifer
The Carter-Tracy aquifer model is a simplified approximation to a fully transient model, which avoids the
need for superposition. The method uses a table that supplies a constant terminal rate influence function.
Although the theory has been developed for a radially symmetric reservoir surrounded by an annular
aquifer, the method is applicable to arbitrarily-shaped reservoirs.
The two main parameters that govern the behavior of the aquifer are the time constant (with the dimension
of time):
μw φCt ro2
Tc = Eq. 3.2
ka c 1
where
ro is the outer radius of the reservoir (or inner radius of the aquifer)
and the aquifer influx constant (with the dimension of total influx per unit pressure drop)
where
θ is the angle astounded by the aquifer boundary from the center of the reservoir, in degrees divided by
360
The time constant Tc is used to convert time t into dimensionless time tD via
t
tD = Eq. 3.4
Tc
The Carter-Tracy model uses tables of dimensionless time versus a dimensionless pressure influence
function. The default table is for an infinite reservoir with constant terminal rate as given by van
Everdingen and Hurst, but you may supply alternative tables using AQUTAB in the PROPS section.
The Carter-Tracy model expresses the pressure drop at the aquifer boundary in terms of the dimensionless
pressure influence function PI D by
Qa
p a 0 − p̄ = PI D ( t D ) Eq. 3.5
β
where
The average inflow rate from the aquifer to a grid block i over a simulator time interval t , t + Δt is
calculated as
Q¯ai = α i { a -b p i (t + Δ t ) - p i (t ) } Eq. 3.6
where
βΔp ai - W a (t)(PI D ′ ) (t + Δt ) D
a =
1
Tc { PI D (t + Δt ) D -t D PI D ′ (t + Δ t ) D } Eq. 3.7
and
β
b = Eq. 3.8
T c PI D (t + Δt ) D -t D PI D ′ (t + Δ t ) D
where
where
The aquifer influx rates calculated from equation 3.6 contribute the residual for the implicit equations
solved by FrontSim at time t . The cumulative aquifer influx W a (t ) used in equation 3.7 is updated
explicitly at the end of the timestep.
The aquifer properties (compressibility, porosity, initial pressure, depth, radius etc.) should be defined
using keyword AQUCT, and the aquifer connections to one or more faces of the reservoir should be made
using the keyword AQUANCON.
If the initial aquifer pressure is defaulted, it will be calculated from equation 3.11 such that the aquifer is in
initial equilibrium with the reservoir.
The aquifer should also be given a table number for the influence function table that it should use.
Influence function tables may be supplied with the AQUTAB keyword in the PROPS section. FrontSim has
a built-in default influence function table (table number 1), which represents the constant terminal rate
solution for an infinite aquifer as given by van Everdingen and Hurst.
For tracer tracking runs, the initial concentrations of water phase tracers in the aquifer may be supplied
using the keyword AQANTRC in the SOLUTION section.
For more information, see [Ref. 7].
Fetkovich aquifer
The Fetkovich aquifer model uses a simplified approach based on a pseudo steady-state productivity index
and a material balance relationship between the aquifer pressure and the cumulative influx.
This model assumes that the pressure response is felt uniformly throughout the entire aquifer.
The Fetkovich model is best suited for smaller aquifers which may approach a pseudo steady-state
condition quickly.
The aquifer inflow is modeled by the equation:
d
Q ai = W = Jα i p a -p i + ρg ( d i -d a ) Eq. 3.9
d t ( ai )
where
Qai is the inflow rate from the aquifer to the connecting grid block i
The area fraction for each grid block connection is given by:
mi Ai
αi = Eq. 3.10
Σm i A i
where
For vertical faces, the areas Ai are multiplied by the net-to-gross ratio of the connecting grid blocks. You
may specify the influx multiplier mi to help with the history matching process.
The pressure response in the aquifer is determined by the material balance equation
W a = C t V w 0( p a 0-p a ) Eq. 3.11
where
If the tracer option is used, FrontSim will also account for the inflow of the tracer from the aquifer.
The aquifer performance essentially depends on two parameters, the aquifer time constant and the
productivity index. The aquifer time constant is given by
Ct Vw 0
Tc = Eq. 3.12
J
and has the dimension of time.
Under the assumption of uniform reservoir pressure in the connecting grid blocks, and by integrating
equations 3.9 and 3.11, the average influx rate over the time interval Δt is expressed as
(-Δt / T c )
Q¯ai = α i J ( p a -p i + ρg ( d i -d a )) ( 1-e
Δt / T c ) Eq. 3.13
where
Qai is the inflow rate from the aquifer to the connecting grid block i
Ai is the area of the connecting face of grid block i, which is calculated directly from the cell geometry
The aquifer should be defined with the AQUFLUX keyword in the SOLUTION section, and the aquifer
connections to one or more faces of the reservoir should be made using the keyword AQUANCON. To
achieve time-dependency, the flux may be modified during simulation by reentering the AQUFLUX
keyword in the SCHEDULE section
For Tracer Tracking runs, the concentrations of water phase tracers in the aquifer may be supplied using the
keyword AQANTRC.
SUMMARY file quantities for the aquifer are output, named AAQR (influx rate) and AAQT (cumulative
influx) in the SUMMARY section. It is then possible to examine the aquifer inflow performance and pressure
support supplied to the reservoir.
4
Timestepping control
FrontSim supplies user timestepping control keywords to determine timestep size at run time. These
ECLIPSE 100 keywords are in following three categories:
ECLIPSE 300
1. DATES or TSTEP
x FRONTSIM
2. NEXTSTEP, MINSTEP, MAXSTEP
3. TSCRITFS.
The FrontSim timestepping controller prioritizes low category over high category keywords. Specifically
DATES or TSTEP are reporting step keywords, NEXTSTEP, MINSTEP, and MAXSTEP are manual step
keywords to control or subdivide reporting steps.
Keywords are prioritized in the listed order (NEXTSTEP has higher priority than MINSTEP, and MINSTEP
has higher priority than MAXSTEP) within the same category.
TSCRITFS is an automatic timestepping control keyword which includes four methods. Any number of
these methods can be used at the same time. Each user-activated method computes an autostep, and the
FrontSim auto timestepping controller chooses the smallest autostep among user-activated methods.
FrontSim can internally determine a half reporting step when the selected timestep (from the timestep
controller) is more than 50% of the current remaining reporting step. This Half Reporting step is made to
facilitate SUMMARY section reporting needs.
Timestepping control
19
FrontSim Technical Description
MXFVCHG × PV N
Δt N
FV = MIN { δV Resv /
Total
Phase δt
} Eq. 4.1
where:
N is the estimated fluid volume step at the current timestep N (days). The MIN is defined as the
Δt FV
minimum of oil, water and gas phases fluid volume timesteps present.
MXFVCHG is the user-input fraction limit (dimensionless); this ratio is the mnemonic “ MXFVCHG ” in
keyword TSCRITFS.
PV N
Total
is the total fluid volume in reservoir condition at the current timestep.
δV Resv
Phase δt/is the estimated phase fluid volume throughput rate,
Resv is the influx volume which includes wells and boundary influx, and
VInFlux
Resv is the outflux volume which includes wells and boundary outflux.
VOutFlux
Timestepping control
20
FrontSim Technical Description
Change of fluid volume rate is determined by the fluid volume throughput due to injection and production
rates. The fluid volume autostep controller is designed to capture events such as watercut or change of
maximum phase fluid volume within the current timestep.
MXTHRUPT × PV N
Total
Δt N
PV =
Eq. 4.2
MAX( δV Inj / δt, δV Prod / δt)
where:
N is the estimated pore volume autostep for the current step N (DAYS),
Δt PV
MXTHRUPT is the user-input parameter to set the model pore volume fraction change
limit. This is the mnemonic “ MXTHRUPT ” in keyword TSCRITFS.
PV N
Total
is the phase pore volume sum at timestep N,
MAX ( δV Inj / δt , δV Prod / δt ) is the estimated maximum of total volume injection and total volume
production throughput rate at the timestep N (in reservoir conditions).
MXDELPA × P¯ N
Δt N
Pressure = Eq. 4.3
¯
(dP / dt ) Est
where:
Δt N
Pressure
is the estimated pressure autostep for the current step N(DAYS),
MXDELPA is the user-input parameter to set the model pressure change limit. This is the mnemonic
“ MXDELPA ” in keyword TSCRITFS,
¯
(dP / dt ) Est is the estimated average pressure rate of change during current timestep N.
A pressure timestep can be used to limit pressure change during each run timestep. FrontSim estimates the
rate of change of field pressure based on the difference between injection and production and a weighted
total compressibility for the entire field.
The pressure timestep may be modified when the actual pressure change within a timestep is larger than the
estimated change. This results in a pressure REDO step. The size of a pressure step can be controlled by a
criterion to limit the maximum variations among neighboring pressure steps to a constant ratio. This
ensures that the pressure timestep does not alternate from a very large step size to a very small step size.
Timestepping control
21
FrontSim Technical Description
Large variations among timesteps can induce instability at run time. In practice, this mechanism is activated
only for long reporting steps (in practice, reporting steps of at least 31 days).
The MXDELPA times the average pressure in the above equation is substituted by an absolute pressure
difference in the case that MXPA is set in TSCRITFS.
ΔT N
Remain
Δt N = Eq. 4.4
Flux M
Δt N
Flux
is the estimated flux autostep for the current step N,
ΔT N
Remain
is the remaining part of the current reporting step to be shortened for the current flux autostep,
where:
M is estimated as the ratio of a composite flux measure and a user-supplied limit:
ΔΦ N
Composite
M = Eq. 4.5
MXFLUXCHG
MXFLUXCHG is the user-input limit to scale the model flux change limit. This is the mnemonic
“ MXFLUXCHG ” in keyword TSCRITFS.
ΔΦ N
Composite
is an estimate of composite model flux change as functions of:
cell flux change δFlux N and pore volume throughput change δPV N for the current
timestep N.
This scales the difference in measure between model average cell flux and model pore volume throughput:
ΔΦ N |
Composite = δPV
N
− δFlux N | Eq. 4.6
where:
δPV N is the relative pore volume change over two previous timesteps,
δFlux N is the relative model cell flux change over two previous timesteps,
N −1
( )
δPV N
|
= 1.0 −
MAX PV Throughput
N
MAX(PV Throughput ) | Eq. 4.7
MAX PV N
( -1
Throughput
is pore volume throughput in the previous timestep N-1, computed max. throughput
)
as described in the Pore Volume timestep control.
Timestepping control
22
FrontSim Technical Description
MAX PV N
( Throughput
is pore volume throughput in the current timestep N, computed in the same manner
)
as described in the Pore Volume timestep control.
|
δFlux N 1.0 −
F cell
N
F cell | Eq. 4.8
where:
Cell flux measure Fcell has multiple modes.
The flux timestep may decide to use either the mean cell flux mode, or the max cell flux mode. Using max
flux mode typically leads toward smaller flux autosteps to further control possible instability.
Because flux timestep control is based on computing flux changes ΔΦ N Composite between two previous
timesteps, flux timestep is only computed/enforced one timestep after it is activated. Other timestepping
facilities are enforced on the same timestep as they are activated.
Flux timestep control may internally compute a control flux step with averaged flux timesteps during a
previous report step. The control flux step appears as Estimated flux autostep within the message prior to
its use. The purpose is to even out variations of actual flux autostep during a (large) reporting timestep, and
to improve pressure solve convergence speed. Slower convergence can occur due to use of uneven flux
autosteps.
Flux timestep control is a second-order timestepping mechanism whose usage often increases when some
type of flux anomaly or instability occurs. Flux timestep control makes an effort to resolve this type of
difficulty and to help continue the current run.
Timestepping control
23
FrontSim Technical Description
The FrontSim timestep controller computes a maximum timestep satisfying all the above priorities.
Sweep two is post pressure update to provide possible timesteps, updated with pressure information:
• MINSTEP checks if the newly computed autostep is smaller than MINSTEP
• TSCRITFS defines the maximum autosteps with updated pressure fields.
When sweep two is enforced, it may REDO pressure field updates with the revised timestep. FrontSim
console message indicate a REDO event and the timestep reason will become Updated Reason. The
REDO event may happen many times during one timestep; this typically signals certain kinds of difficulties
or instabilities at run time.
When a model runs into difficulty at run time, the timestep control can issue various reasons such as
PRESSURE, FluxStep, MINSTEP or HalfRep.
Note: A simple converged model should not lead to complex auto timestepping decisions like those
described above.
Timestepping control
24
FrontSim Technical Description
Examples
The following run time examples activate the respective time control facilities:
Example 1
Fluid volume step
Example 2
Pore volume step
Example 3
Fluid volume step followed by MAXSTEP
Timestepping control
25
FrontSim Technical Description
@ PROD ->changing to BHP control due to low bhp (-257.5 ->limit is 14.5)
@--Warning at time 10 May 2003 step 11:
@ In a run with incompressible PVT-data and BHP as target for wells,
@ there can be large variations of field pressure vs time
Pressure : 35 9.0e-006
Saturation : Generated 204 starting points (SLN density 1.000000).
Memory for streamlines, allocated: 0.4MB Usage: 0.709
CPU Pressure : Asm 0.0 Sol 0.0 Vt 0.0 Tot 0.0
CPU Saturation : Tot 0.1
Mem heap(Mb) : 10.0
CPU Cumulative : Asm 0.1 Sol 0.0 Vt 0.0 Sat 1.1 Tot 1.2
PV 1.000001e+002 at ref. pressure
PV 1.000001e+002 RC 61.07% PAV 4.1699e+003
WIP 7.013537e+001 CWF -4.702468e+001 WIIP 2.300002e+001 MW -0.11%
OIP 2.986472e+001 COF 4.702470e+001 OIIP 7.700007e+001 MO 0.11%
GIP 0.000000e+000 CGF 0.000000e+000 GIIP 0.000000e+000 MG 0.00%
Example 4
Pressure step followed by REDO fluxstep
Example 5
Estimated fluxstep (control flux step) followed by Flux step and Pressure step. The estimated FluxStep
is computed during one of the previous reporting steps and used as a guess:
Report 12 Time 791.00 --> 973.00 (01 Jul 1996) StopTime: 3348.00
@--Message at time 1 January 1996 step 32:
@ Estimated Flux AutoStep 46.00
Step 32 Time 791.00 --> 837.00 Reason: FluxStep
Pressure : 8 8.6e-006 1 4.4e-003
Timestepping control
26
FrontSim Technical Description
Example 6
Fluid volume followed by HalfRep and Report steps
Timestepping control
27
FrontSim Technical Description
Example 7
Fluid volume followed by HalfRep, MINSTEP and Report steps.
Note that MINSTEP is activated only during the REDO checking stage, followed by a HalfRep step.
Timestepping control
28
FrontSim Technical Description
Timestepping control
29
FrontSim Technical Description
5
Dual porosity
This chapter describes the fractured reservoir option. The implementation uses a special three-phase
x ECLIPSE 100 compressible, dual porosity formulation suitable for streamline simulation as published in [Ref. 31].
x ECLIPSE 300
In a dual porosity reservoir, fluids exist in two interconnected systems:
x FRONTSIM
• The rock matrix, which usually provides the bulk of the reservoir volume
• The highly permeable rock fractures.
If the matrix blocks are linked only through the fracture system, this conventionally could be regarded as a
dual porosity single permeability system, since fluid flow through the reservoir takes place only in the
fracture network with the matrix blocks acting as sources. Dual porosity runs are specified by the keyword
DUALPORO in RUNSPEC.
To model such a system, two simulation cells are associated with each block in the geometric grid,
representing the matrix and fracture volumes of the cell. In FrontSim the porosity, permeability, depth etc.
of these may be independently defined. A matrix-fracture coupling transmissibility is constructed
automatically by FrontSim to simulate flow between the two systems due to fluid expansion, capillary
pressure etc.
In a dual porosity run of FrontSim the number of layers in the Z-direction should be doubled. FrontSim
associates the first half of the grid (the first NDIVIZ /2 layers) with the matrix blocks, and the second half
with the fractures. In such runs NDIVIZ must therefore be even; FrontSim checks that this is the case.
Transmissibility calculations
The matrix-fracture coupling transmissibility terms that exist between each cell of the matrix grid and the
corresponding cell in the fracture grid are proportional to the cell bulk volume, being of the form:
TR = CDARCY ⋅ K ⋅ V ⋅ σ Eq. 5.1
where by default:
V is the matrix cell bulk volume (note that this is not the pore volume, having no porosity factor), and
σ is a factor of dimensionality LENGTH-2, to account for the matrix/fracture interface area per unit
volume, that is the size of the blocks in the matrix volume.
Dual porosity
30
FrontSim Technical Description
where
lx, ly and lz are typical X, Y and Z dimensions of the blocks of material making up the matrix volume. (lx , ly
and lz are thus not related to the simulation grid dimensions).
Alternatively, as σ acts as a multiplier on the matrix-fracture coupling, it may simply be treated as a history
matching parameter.
σ can be specified as a single value for the whole field or on a cell by cell basis using the keyword
SIGMAV. If σ is defined on a cell by cell basis then the values corresponding to the first NDIVIZ /2 layers
are used. If σ is printed out then the values in the first NDIVIZ /2 layers are copied in to the lower
NDIVIZ /2 layers.
The intrinsic permeabilities of cells in the fracture system are equal to the specified values multiplied by the
fracture porosities to yield effective fracture permeabilities. If the NODPPM keyword is used then the
intrinsic permeability is used rather than the effective permeability.
That is, when NODPPM is not specified, then within the fracture cells, the input PERMX, PERMY and
PERMZ are modified using PERMX ( fr ) = PERMX ( fr ) × PORO ( fr ).
If the dual porosity option is selected, the matrix blocks have no mutual transmissibilities.
Dual porosity
31
FrontSim Technical Description
Recovery mechanisms
In a dual porosity system, the majority of the oil is contained in the matrix system, but the production of oil
to the wells is through the high permeability fracture system. In such a system, an injected fluid does not
sweep out oil from the matrix block. Production from the matrix blocks can be associated with various
physical mechanisms including:
• Oil expansion
• Imbibition
Oil expansion
As the pressure drops in the fracture system, oil flows from the matrix to equilibrate the matrix pressure
with the surrounding fracture pressure. This production mechanism can be thought of as expansion of the
oil within the matrix block, either above the bubble point or by solution gas drive below the bubble point.
Imbibition
In a typical water wet system, the matrix rock has a positive water-oil capillary pressure. If water is
introduced into the fracture, the water flows under capillary forces into the matrix system, displacing oil.
The water imbibition process is modeled in FrontSim by specifying different saturation table numbers for
the matrix and fracture cells respectively. The matrix cells typically have a water-oil capillary pressure,
while the fracture cells usually have zero capillary pressure.
In gas-oil systems, the oil is the wetting phase and tends to imbibe into the matrix.
Dual porosity
32
FrontSim Technical Description
Note: Whenever completions and aquifer contacts are input; any such contacts in the matrix will be ignored
by FrontSim.
Summary of keywords
The following table shows a summary of dual porosity keywords.
Dual porosity
33
FrontSim Technical Description
6
Equations of state
with:
E 2 = (m 1 + m 2-1) B - 1 Eq. 6.2
E 1 = A - m 1 + m 2-m 1m 2 B 2 - (m 1 + m 2) B
( )
E 0 = - AB + m 1 m 2 B 2(B + 1) Eq. 6.3
The coefficients m 1 and m 2 depend upon the equation used. Refer to the table below for details.
Equations of state
34
FrontSim Technical Description
Equation of State m1 m2
Redlich-Kwong 0 1
Soave-Redlich-Kwong 0 1
Zudkevitch-Joffe 0 1
Peng-Robinson 1 + 2 1- 2
Table 6.1: Coefficients m1 and m2: variation with the equation of state
The cubic equation for the Z-factor may be solved to obtain Z-factors for the liquid and vapor phases.
Generally, three solutions are obtained.
The distinction between the liquid and the vapor phase is then made by choosing the smallest root as Z-
factor for the liquid phase, and the largest root as Z-factor for the vapor phase.
Fugacity coefficients are calculated using:
2Σ i B i Z + m 2B Bi
ln ( f i / ( px i )) = - ln (Z -B ) +
A
(
( m 1-m 2)B A B
- )(ln
Z + m 1B)+
B
(Z -1) Eq. 6.4
where:
Σ i = Σ A ij x j
j
n n
A = Σ Σ x j x k A jk
j = 1 k = 1
n
B = Σ xj Bj
j = 1
1
A jk = (1-δ jk ) ( A j A k ) 2
and δjk are binary interaction coefficients, normally between hydrocarbons and non-hydrocarbons.
These four equations express the mixing laws used in all the equations of state.
The variables are defined by the following equations:
P rj
A j = Ω a (T , j ) Eq. 6.5
T rj2
P rj
B j = Ω b (T , j ) Eq. 6.6
T rj
Ω a (T , j ) and Ω b (T , j ) are functions of the acentric factor wj and the reduced temperature Trj .
• For Redlich-Kwong:
1
-
Ω a (T , j ) = Ω a T rj 2 Eq. 6.7
o
Ω b (T , j ) = Ω b Eq. 6.8
o
• For Soave-Redlich-Kwong:
Equations of state
35
FrontSim Technical Description
Ω b (T , j ) = Ω b Eq. 6.10
o
• For Zudkevitch-Joffe:
Ω b (T , j ) = Ω b F bj (T ) Eq. 6.12
o
• For Peng-Robinson:
Ω b (T , j ) = Ω b Eq. 6.14
o
1
As Tr = T / Tc , the SRK and PR forms for Ωa and Ωb may be expanded as a polynomial in 1 / T 2
, for
example,
1
Eq. 6.15
Ω a (T , j ) = A + B ⋅ T 2
+ CT
The normal PR form can be optionally modified for large acentric factor, using the factor
(0.379642 + 1.48503w j - 0.164423w j2 + 0.016666w j3) rather than (0.37464 + 1.53226w j - 0.2699w j2) for
wj > 0.49. This correction is invoked by use of the PRCORR keyword.
Ω a and Ω b are constants depending upon the equation of state, as shown in the table below.
0 0
Equation of state Ωa Ωb
0 0
Flash calculations
For a thermodynamic system to be in equilibrium, it is further required that the fugacities in the liquid and
vapor phases must be equal for each component:
Equations of state
36
FrontSim Technical Description
As described above, the fugacities are functions of temperature, pressure and composition:
fi = fi (T , p , xi ) Eq. 6.17
The mole fractions of each component in the liquid and vapor phases are given as:
zi
xi = Eq. 6.19
1 + ( K i − 1)V
Ki zi
yi = Eq. 6.20
1 + ( K i − 1)V
If K-values are used to specify inter-phase equilibria, these two equations are used to specify the liquid and
vapor compositions directly, with K-values obtained by table look-up as functions of pressure.
Viscosity evaluation
In compositional mode the phase viscosity values are obtained using the Lorentz-Bray-Clark method.
Peneloux et al. proposed a molar volume correction, referred to as volume shift, which adds a third
parameter to the EoS, and, in turn, greatly improves liquid property estimation.
For a mixture of N components, the phase molar volume V mol,p is given by:
N
EoS
V mol,p = V mol , p - Σ z i c i Eq. 6.21
i = 1
where
EoS is the molar volume of the phase predicted by the traditional two-parameter EoS
V mol , p
Equations of state
37
FrontSim Technical Description
The component corrections are usually related to set of dimensionless shift parameters si , by:
ci
si = Eq. 6.22
bi
where:
Ωb ,i RTci
bi =
pci
The shift parameters are entered in the dimensionless form using the keyword SSHIFT.
Equations of state
38
FrontSim Technical Description
e
5.37(1-ω i ) 1-
( T ri ) Eq. 6.24
Ki =
P ri
Then, given zi and Ki , ECLIPSE 300 solves the Flash Equation for the molar fraction of vapor, V. Details
of this Flash Equation are shown overleaf.
N comps z i ( K i -1)
g (V ) = Σ =0 Eq. 6.25
i = 1
1 + V( K i -1)
ECLIPSE 300 then solves this equation for the mole fractions of each component in the liquid and vapor
phases,
x i = z i / 1 + V ( K i -1) , i = 1, 2, ……N comps Eq. 6.26
PV
The compressibility factor is defined as Z = . As a result, the Peng-Robinson equation of state can be
RT
expressed in terms of Z:
where
AP
a =
R 2T 2
BP
b =
RT
The solution of the cubic equation gives, in a two phase region, three real roots. The largest root is the
compressibility factor of the vapor phase, and the smallest positive root is the compressibility factor of the
liquid phase.
With the current information, ECLIPSE 300 calculates the fugacity of each component in the liquid and
vapor phases.
When a grid block is in equilibrium at a given pressure and temperature, the fugacities of all components
must be the same in the liquid and the vapor. In other words,
fLi = fVi .
A convergence criteria is then used to determine if a grid block is in equilibrium (if ε is very small),
nc f iL 2
Σ
i = 1
( )
f iV
-1 <ε Eq. 6.29
If equilibrium is not achieved, then a new estimate for the K-values are made and the iteration process
continues with a new solution of the Flash Equation, etc. Using successive substitution, the new estimate of
the K-value is:
f iL
K iNEW = K iOLD ⋅ Eq. 6.30
f iV
After equilibrium is achieved, ECLIPSE 300 begins the next non-linear iteration.
Equations of state
39
FrontSim Technical Description
• Newton’s method involves order N3 operations per iteration, due to the matrix operations involved. As
a number of iterations are required from each initial Y, this becomes expensive.
A better method, which also yields quadratic convergence near the solution, is the BFGS iteration [Ref.
14]. This is a minimization method, using an approximate Hessian constrained to be symmetric and
positive definite. In the early stages of the iteration an accelerated successive substitution method is
effective, using a two-point GDEM technique [Ref. 12].
Equations of state
40
FrontSim Technical Description
7
File handling in FrontSim
A number of files may be produced by FrontSim for each simulation run.
x ECLIPSE 100
These are:
x ECLIPSE 300
x FRONTSIM
File Function Keywords
PRT file Main printer output RPTSCHED and RPTPRINT
keywords
GRID file Grid geometry file GRIDFILE keyword
RESTART file Restart runs / grid graphics file RPTRST, RPTSCHED and
RPTSOL keywords
SMSPEC file Specifications for summary file
SUMMARY file Line graphics file RPTLINFS keyword
SLNSPEC file Specifications for streamline file
STREAMLINE file Streamline output data RPTRST and RPTSLN
keywords
ALLOC file Allocation factors and pore volumes RPTSCHED
RFT file Data wells describing fluid conditions in the WRFTPLT
wellbore or the connecting grid blocks at selected
times in the run.
RSM file RSM (Run Summary) report in either EXCEL OPTIONFS
format, XML format or ECLIPSE format.
Table 7.1: FrontSim Files
The production of all of these files, except for the main printer output (the simulation log), may be
controlled by the user with the keywords indicated. The contents, and hence the size, of the printer output
file are controlled using the RPTSCHED, RPTRST, RPTLINFS, RPTSOL and RPTSLN keywords.
In addition, you can choose whether the RESTART and SUMMARY files are to be unified (see the RUNSPEC
section keywords UNIFIN and UNIFOUT).
You should be aware of which types of file it is appropriate to use on your system. Some guidelines are
given here.
Formatted files are standard 80 character card image files, which may be straightforwardly transferred
between different computers. All the files generated by the FrontSim programs can be converted from
formatted to unformatted files or vice-versa using the utility program Convert.
In general, unformatted non-unified files should be used, giving efficient use of disk space and allowing
you to examine output as the simulation progresses. Unified files should be used if the number of files
being produced is a problem. Unified files will reduce the size of your catalog considerably, but not the
amount of disk space used.
Note: If the data type is 'CHAR', then NEL is the total number of CHARACTER*8 elements.
The contents of the block follows the descriptor (on a new record). Each data block must be read back in
the same block structure as it was written out.
The header/record structure enables files to be converted from formatted to unformatted form, or scanned
for a specific item. For example, a RESTART file will contain a record header with an identifier of
'PRESSURE', type 'REAL', with the number of elements set to the number of active cells in the study.
In the formatted case the actual formats used for the data blocks are:
• Integers 6(1X,I11)
• Reals 4(1X,E16.8)
• Double Precisions 3(1X,D22.14)
• Logicals 25(1X,L2)
• Character strings 7(1X,A1,A8,A1)
The header line is written using a format (1X, A1, A8, A1, 1X, I11, 1X, A1, A4, A1). The A1 fields are
used to output quotes so that the data may be read using list input.
’LOGIHEAD’ 20 ’LOGI’
F F F T F T F F T F F F F F F F F F F F
’ZGRP ’ 1 ’CHAR’
’G ’
’IWEL ’ 72 ’INTE’
1 1 3 3 1 1
3 2 2 0 1 0
1 2 0 2 0 -100
0 0 0 0 1 1
0 0 0 0 0 0
0 7 0 0 0 0
5 1 1 1 1 1
1 4 4 0 1 0
1 2 0 1 0 -100
0 0 0 0 1 1
-1 0 0 0 0 0
0 7 0 0 0 0
’PRESSURE’ 15 ’REAL’
For further information on formats of specific files, contact your Schlumberger Support office.
Graphics post-processors
Files written by FrontSim to be accessed by the graphics post-processors are described in FrontSim Files in
the ECLIPSE File Formats Reference Manual.
8
Geologic model screening
This chapter describes the application of the GEOFLOFS keyword.
ECLIPSE 100
The GEOFLOFS keyword encapsulates the functionality required to perform multiphase fluid flow
ECLIPSE 300
simulation using an incompressible rock and fluid model. The transport phenomena modeled is limited to
x FRONTSIM
advection and gravity segregation. The purpose of these simulations is to understand the impact of geology
on flow in order to guide the 3D model building process or to perform quick investigations on the geology
in a given simulation model.
FrontSim is an extremely efficient tool for performing incompressible fluid flow simulations on
multimillion cell geologic models, both in terms of memory requirement and speed. Especially, for two
phase oil-water simulations the front tracking solution along streamlines can be 5-7 times or more fast than
other methods.
The GEOFLOFS keyword consists of three records and provides a fast and easy method for creating simple
flow simulations. A suite of standard results commonly used for geologic analysis is produced
automatically. This output can be complemented by using any of the standard reporting options. The
simplest application of GEOFLOFS could be to produce streamlines for visualization of connectivity or a
tracer type simulation to estimate connected volumes. The simulations can be extended to study the effects
of fluid viscosity and relative permeability, for example, to define cut off points or to screen multiple model
realizations.
If you are an experienced FrontSim user, you can model incompressible simulations using a combination of
existing keywords. However, it is much easier to use the GEOFLOFS keyword. It is possible to conduct
simulations or visualize streamlines as soon as the geological grid and properties are created without the
need for detailed fluid and rock physics data. Additionally, it is possible to take existing simulation models
and run them in incompressible mode with very little modifications to the keyword deck. Most keywords
maybe retained in the deck without invalidating the run. (See table 8.1 for details).
FrontSim is a 64-bit, multi-threaded application enabling it to process large models in parallel on multi core
computers. GEOFLOFS simulations will by default use as many cores as are available to provide the
maximum power when working with multimillion cell geologic models. This access to unlimited cores is
available with the base FrontSim license for GEOFLOFS applications only. For non-GEOFLOFS
simulations the appropriate parallel multi core license will be required.
Theory
In many respects, GEOFLOFS simulations are more like flow experiments rather than reservoir simulations
in the conventional sense. The experiments are in a way similar to laboratory experiments on core to
measure permeability, anisotropy, fractional flow, recovery, etc., except that now numerical experiments
are done using models.
Streamline simulation relies on tracing the flow field and then solving the transport of different flow phases
along discrete flow paths. Discretization of the flow field leads to construction of stream tubes with each
stream tube being associated with a particular flow rate. A streamline can be imagined as the line through
the center of a stream tube. It is inefficient to compute stream tubes for 3D problems. However, it is easier
to construct streamlines in 3D and associate them to stream tubes in an implicit manner. Thus, we can
assign pore volumes to streamlines. This property of streamlines allows us to analyze easily connectivity
and connected volumes in a geologic model.
The time-of-flight (TOF) is a unique property associated with a streamline. At any point on a streamline,
the TOF is the time taken by a neutral tracer to arrive at that point from a source/injector. Alternatively,
TOF can also be defined as the time taken to travel to a sink/producer. Mathematically, it is defined as:
φ
τ = ∫
0
s
ut
ds Eq. 8.1
where
τ time of flight
φ porosity
ut Darcy velocity
PV i = Q i ⋅ τ i Eq. 8.2
where
Streamlines are traced using a numerical velocity field computed using the pressure solution and Darcy's
law on the geologic model grid. Details are given in "Streamline tracing". An incompressible flow
simulation will have a balanced injection-production scheme using sources/injection wells and sinks/
production wells. All fluid flow paths or streamlines will start from sources/injectors and end in sinks/
producers. Sources and sinks can be setup in various configurations and as required to study specific
connectivity issues related to a model. They need not be restricted to the existing or planned well locations.
Streamlines are launched from the source or injection wells by distributing the injection rate equally among
a set of streamlines. The number of streamlines used depends on various model factors. Each streamline
has associated with it a certain amount of fluid flux that remains constant at every point along the
streamline, as fluids are assumed incompressible.
The equation describing the flow of incompressible, immiscible fluids and ignoring gravity and capillary
pressure is given in the following equation:
where
λt total mobility
∇ p pressure drop
qi n0
total flow rate = Σ q j
j −1
A difference form of equation 8.3 with gravity terms added if required, is solved to compute the pressure at
each grid block on the geologic model. Using the pressure and the total mobility as defined below the
velocity at the interface between grid blocks is computed and used to generate streamlines. Total mobility
is defined as follows:
n0
λt = Σ λj Eq. 8.4
1
where
j jth phase
kj
λj =
μj
μj viscosity of phase j
and
k j = k ⋅ k rj
FrontSim uses a sequential solution procedure, where the pressure variables are computed first, as
described above, and then the saturation variables are updated by transporting the various fluid phases
along the streamlines.
Figure 8.1. Default relative permeability for oil and water. Gas phase relative permeability is
similar
We thus solve for incompressible 'tracer-type' displacement of oil ('red water') by water ('blue water') to
compute reservoir connectivity, floodable volumes, drainage volume, etc. The reservoir is 'filled' with oil
and water is injected through injectors. The total oil production for a specific pore volume of water injected
gives a measure of the connected reservoir volume flooded for a given configuration of wells. If we applied
the same experiment to many scenarios or realizations of the geologic model for a reservoir, we could
discriminate between them based on the oil production or breakthrough time etc. Alternatively, we could
use such flow experiments to compare fine-scale models with their upscaled versions.
Multiphase flow
In some reservoirs, recovery can be dominated as much as by geology as by fluid and rock-fluid
interactions. Of course, actual recovery in the field is dependent on a whole host of parameters. However,
here we are considering flow experiments to enable us to conduct a preliminary screening of geologic
models. GEOFLOFS aims at progressively increasing the amount of fluid physics to a certain degree
deemed important for geologic model screening. Therefore, single phase tracer type simulations can be
extended to incompressible, immiscible, multiphase simulations with gravity segregation.
GEOFLOFS simulations assume oil, water, gas and rocks are incompressible and there is no dissolved gas
or vaporized oil. It also assumes there is no shrinkage and assigns unit formation volume factor to all
phases. Density and viscosity of fluids can be different for each phase but are by definition, constant.
The default relative permeability curves are linear as shown in figure 8.1. However, you can assign realistic
relative permeability for specific rock types. The option to switch the default curves is available in Record
3 of the GEOFLOFS keyword. End point scaling is supported.
The solution to the steady state single phase tracer problem above requires only one computation of the
pressure and velocity field. For multiphase problems, we do not need to solve for pressure due to
expansion/compaction but we do need to account for mobility variations on pressure. This is evident from
analysis of equations 8.3 and 8.4.
When the density of the fluids is widely different then it is advisable to switch on gravity segregation.
Introducing mobility and gravity into the simulation means that we can no longer ignore the need to have
more frequent updates of the pressure field. You can enter the number of "pressures updates" desired and
switch on gravity in Records 2 and 3 of the GEOFLOFS keyword. A thumb rule of oil-water simulations is
to use around 20-30 pressure updates for every pore volume of water injected. For higher contrast mobility
and large differences in phase density, for example gas phase, more pressure updates will be required. In
addition, pressure field needs to be recalculated whenever wells open or close or the rates change.
By default, models will be initialized with a single fluid (oil) at hydrostatic pressure using the average
depth of the model as datum. You can choose to use a more realistic equilibration using fluid contacts and
pressure or through enumeration using pressure and saturation arrays. Use item 3 of record 3 of the
GEOFLOFS keyword to read the relevant keywords from the SOLUTION section.
Boundary conditions
For incompressible simulations, it is essential that the fluid influx equals the efflux or injection balances
production. The most common method to achieve this condition is to let wells produce at a fixed bottom-
hole pressure and assign rates to injectors. Alternatively, both injectors and producers can be controlled
using bottom-hole pressure or an overall voidage replacement is established by rate control. Setting rate
controls on both injectors and producers should be avoided especially if the connectivity between them
cannot be ensured by some sort of static analyses. Simulations can also be performed with pressure
boundary conditions without the need for wells.
The GEOFLOFS feature distinguishes between 'types' of flow simulations based on whether the simulation
uses wells or just pressure boundary conditions. The type of simulation input using GEOFLOFS controls
how subsequent input data and output are handled. There are currently five types of simulations:
• Simulations using wells to control flow behavior (Type 1 and 2).
• Simulations using pressure boundary conditions at the edges of the model (Type 3, 4 and 5).
Type 1 simulations enable the use of auto-generated source/sink well patterns (see DEFWPAT). If
DEFWPAT is not specified, default values will be used. All auto-generated wells are controlled by BHP
where the value can be set by the user (same value for all injectors and respectively producers).
Type 2 simulations require the definition of wells as producers and injectors in the Schedule section. The
default well controls in GEOFLOFS assume that producers are on bottom-hole pressure control and
injectors on rate control. The total injection rate is specified in record 2 in terms of fraction of HCPV to be
injected in a specified period of time.
It is possible to override the default injection controls in the GEOFLOFS keyword and opt to use controls
defined in the SCHEDULE section. You must ensure that conditions of incompressibility are honored.
Most geologic model screening applications will consider steady state operating conditions for wells.
However, GEOFLOFS will support rate changes corresponding to well events as long as the incompressible
flow conditions can be maintained.
Type 3, 4 and 5 simulations do not use wells and instead use constant pressure boundary conditions at
opposite edges of the grid. The simulations are restricted to two phases (oil-water) only. In general, type
3-5 simulations are more restrictive than type 1 and 2 simulations.
Type 3 refers to a pressure gradient being applied from the left side of the grid towards the right side, Type
4 to a pressure gradient from back to front and type 5 to a pressure gradient from the top to the bottom. The
direction of flow can be reversed by specifying a negative pressure gradient. Wells are not considered and
will be ignored if present in the SCHEDULE section. Type 3-5 simulations are strictly limited to one
timestep and it is not possible to change the pressure boundary conditions during a run.
Type 3-5 simulation models can only be initialized using the default method (100% oil). The pressure
difference to be applied is entered in record 2 of the GEOFLOFS keyword. By default, it will be taken to be
50% of the average pressure. The injected phase is water. The simulation duration is controlled by the
specified fraction of HCPV to be injected or a fixed time whichever occurs earlier. The number of
streamlines to be used for the simulation can be fixed approximately around a given number.
reservoirs with aquifers and gas caps and we would like to retain this contact definition in the model. Gas
injection or solution-gas-drive recovery process simulation is not intended.
The wells used in flow simulations can be existing wells or new user-defined ‘pseudo’ wells. It is advisable
to use wells located judiciously in the model to investigate reservoir heterogeneity, anisotropy, continuity
and connectivity. The location of existing wells alone may not allow proper coverage during the
investigation of connectivity for the entire reservoir. Hence, it may be desirable to use a hypothetical set of
simple vertical wells. In Petrel, it is possible to perform a static connected volume analysis using wells.
Connected volume property can be computed using the geometrical modeling process. In particular, it may
help to screen whether or not compartments have both injectors and producers. A compartment with only a
producer or only an injector is unsuitable for modeling incompressible flow and the simulations will fail.
GEOFLOFS is intended for flow simulations with constant well production/injection rates or pressure,
although variations in rate or pressure are supported.
It is also possible to use GEOFLOFS on existing reservoir simulation models. The GEOFLOFS keyword
will cause FrontSim to ignore some of the data in the simulation deck and run a reduced physics simulation.
This has the advantage of performing quick screening simulation, for example visualize streamlines,
without having to make major changes to the deck. The only portion of the deck that may require editing is
the SCHEDULE section. This may be required in order to define the source/sink points, modify historical
production control and well control adjustments to maintain incompressibility conditions.
Type 3-5 simulations are intended to assist primarily in the gridding and upscaling process. It is
recommended to have regular models or section of models without any inactive cells on the boundary
edges. If there are large amount of inactive cells then flux analysis for gridding purposes will not be
accurate. In that case, it is advised to extract section of the model that is more regular along the edges.
For type 3-5 simulations, it is possible to control, approximately, the number of streamlines used in a
simulation. Thus a fine scale model and its upscaled equivalent can be simulated using approximately the
same number of streamlines. One way of comparing fine and coarse scale models is to use the TOF
distribution at the production end of every streamline. The comparison can be made by using the inverse of
TOF versus streamline number for the fine and coarse models. FrontSim sorts all the streamlines based on
descending velocity (1/TOF) and bin them into bundles with equally bundled Pore Volumes (Total PV/
Number Of Bins). This implies that the first bin consists of fewer streamlines than the last ones. FrontSim
then reports the bundled (accumulated) Streamline Flow Rate for each bin. This report is produced by
default only for type 3-5 simulations and has the file extension _TOF.TXT, but it can also be generated for
other types of FrontSim runs. For more information, see the RPTFSGEO keyword.
.........................
95 3.3331e+006 6.3393e-001
96 3.3331e+006 5.3279e-001
97 3.3331e+006 4.0649e-001
98 3.3331e+006 3.0569e-001
99 3.3331e+006 1.9170e-001
100 3.3331e+006 6.1523e-002
The minimum requirement to use GEOFLOFS is a corner point grid with porosity and permeability. This
means that flow simulations can be conducted as soon as a 3D grid becomes available. Since the focus is on
geology, the grid and properties can be large and complex.
GEOFLOFS is best used with Petrel grids, using the OPF file format, in a workflow where multiple
realizations / scenarios are generated and simulated as defined by scripts built using the Petrel process
manager or the uncertainty editor.
Setting up a simulation
Type 3, 4 and 5 simulations
The process to set up a single GEOFLOFS simulation of type 3-5 is as follows:
1. In Petrel, create grid and populate with porosity and permeability.
a. Add faults and fault properties as required.
b. Pinch out layers if necessary. If the model boundary is irregular, consider extracting a uniform
grid.
c. Perform a static connectivity analysis and inactivate those groups of cells that do not include a
source or sink.
2. Open the Define simulation case process window and create a new case using the grid
above.
3. Check the tick box in the Results panel to Run simulation even if validation fails.
4. Export/write the simulation case to file.
5. From the Advanced panel open the keyword editor and insert the GEOFLOFS keyword in the
RUNSPEC section.
Enter 3, 4 or 5 as the first parameter of the first record to define the type of simulation.
6. Run the simulation.
FrontSim executes a type 3, 4 or 5 simulation using the grid and default values for all the other
parameters.
7. Visualize streamlines, grid cell values, line plots, etc.
Type 2 simulations
For type 2 simulations the following additional steps are required.
1. Create vertical wells or use the existing set of wells and completions.
Group the wells into folders depending on whether they are injectors or producers.
2. Open the development strategy process and define the well controls for producers and injectors. For
example, add a rule for bottom hole pressure controls for producers and group rate control for
injectors.
3. Drop the development strategy into the case created in 2 above.
4. Continue with the rest of the steps in a similar fashion as documented in 3 to 7 above making the
appropriate inputs.
Type 1 simulations
Setting up a type 1 simulation is similar to type 2 except that the keyword editor is needed to insert
DEFWPAT to define wells and well controls (can be defaulted). No regular schedule keywords are allowed
to define/control wells for a type 1 run.
Default reports
GEOFLOFS runs produce default output for line graphs. Other types of output (grid cell displays,
streamline display) can be supplemented by requesting additional output through various keywords.
Details on the default reports produced when using GEOFLOFS are available in the FrontSim User Guide.
Restrictions
It is important to know the keywords / features that are supported or ignored when GEOFLOFS is used
together with other FrontSim keywords/features.
All compositional and IOR scaleup related features and keywords are not supported when GEOFLOFS is
used. Existence of these keywords in the data file will cause FrontSim to issue an error message and stop.
The rest of the keywords are supported or ignored as follows:
Type 2 runs
Combining GEOFLOFS Injection Scheduling with GCONINJE for type 2 runs.
Record/option
GEOFLOFS Record 2 Set Set Set Set Set Set
Parameter 2: HCPV Fraction
GEOFLOFS Record 2 Parameter 3 Simulation Set Set Set Set Set Set
Duration
SCHEDULE Section: GCONINJE Set Set Set Set Set Set
SCHEDULE Section: TSTEP Set Set Set Set Set Set
Error Error Error OK Error OK Error OK OK
Table 8.2: Combining GEOFLOFS injection scheduling with GCONINJE
9
Initializing the study
The initial reservoir conditions can be defined in one of three ways:
x ECLIPSE 100
• They can be read from a RESTART file generated by an earlier run (see keyword RESTART).
x ECLIPSE 300
x FRONTSIM • They can be set directly in each grid block, using the keywords PRESSURE, SWAT, SGAS, RS or
PBUB, and RV or PDEW.
• They can be calculated by the equilibration facility.
The equilibration facility is a means of calculating the initial conditions on the basis of hydrostatic
equilibrium. If necessary, the reservoir can be divided into separate ‘equilibration regions’ in which
hydrostatic equilibrium exists independently of the other regions. Within each equilibration region, all the
grid blocks must use the same pressure table for their PVT properties, but they can use different saturation
tables.
Data requirements
The data quantities required by the equilibration facility are entered using the keyword EQUIL. For each
equilibration region, you should specify the pressure at a given datum depth, the positions of the gas-oil and
water-oil contacts, and the value of the capillary pressure at each contact. If there is no gas cap, the gas-oil
contact should be placed above the top of the reservoir; and likewise if there is no mobile water, the water-
oil contact should be placed far enough below the bottom of the reservoir to exclude the transition zone.
Black oil
In black oil mode gas condensate problems, the vaporized oil concentration (Rv) in the gas can be set in a
similar manner. Either Rv or the dew point pressure (Pdew) may be entered as a function of depth using the
keywords RVVD and PDVD respectively. If a table of Rv versus depth (or Pdew versus depth) is not
referenced by a particular equilibration region, the vaporized oil concentration in undersaturated gas is
everywhere set equal to the saturated Rv value at the gas-oil contact. At any position in the reservoir, the Rv
value obtained from a table or the default setting is subject to an upper limit equal to the saturated Rv value
at the local pressure.
The datum depth for the pressure can lie anywhere in the equilibration region, unless the default setting of
Rs or Rv is required. If in a live oil problem, an Rs or Pb versus depth table is not referenced for the region,
the datum depth must be set at the gas-oil contact. The same restriction is imposed in gas condensate
problems whenever an Rv or Pdew versus depth table is not referenced.
In gas-water problems, instead of a gas-oil contact and a water-oil contact there is a gas-water contact.
There is no need to enter any data concerning the nonexistent oil phase. However, it is also possible to have
a gas-water contact in a three-phase problem; namely in a gas condensate problem where all the oil is
initially vaporized in the gas phase. In this case, the water-oil contact and the gas-oil contact should both be
placed at the gas-water contact.
range of cells in the reservoir. For example, for an all-condensate initialization, set both contact depths
below the lowest cell.
Given the fluid densities, the equilibration procedure sets up saturation against depth curves such that, in
the transition zone when two phases are mobile, the hydrostatic pressure variation is balanced by the
capillary pressure between the phases. This can be done on a finer grid than that used for the simulation, the
resulting saturations being integrated over the cell volumes at the end of the equilibration to provide a
starting point for the simulation.
In general, the use of a fine grid equilibration yields a more accurate fluid in place, but may lead to some
fluid movement upon starting the simulation.
In the second stage of the equilibration calculation, the local fluid conditions are determined in each grid
block in the equilibration region. The internal table is interpolated to obtain the values of Po, Pw, Pg, Rs and
Rv at the grid block center depth. The water saturation is determined by inverse look-up of the water
capillary pressure table (entered with keyword SWFN or SWOF) for the grid block, such that
P cow ( S w ) = P o -P w Eq. 9.1
If Po -Pw exceeds the highest capillary pressure value in the SWFN/SWOF table (corresponding to the
lowest saturation value Swmin), the water saturation is set equal to Swmin.
If Po -Pw is less than the lowest capillary pressure in the table (corresponding to the highest saturation value
Swmax), the water saturation is set equal to Swmax and the oil pressure is adjusted to follow the water
pressure gradient.
The gas saturation is similarly determined by inverse look-up of the gas capillary pressure table (keyword
SGFN, SGOF) for the grid block, such that
P cog ( S g ) = P g -P o Eq. 9.2
If Pg -Po is less than the lowest capillary pressure value in the table (corresponding to the lowest gas
saturation value Sgmin), the gas saturation is set equal to Sgmin.
If Pg -Po exceeds the highest capillary pressure in the table (corresponding to the highest gas saturation
value Sgmax), the gas saturation is set equal to Sgmax and the oil pressure is adjusted to follow the gas
pressure gradient.
In black oil problems, the Rs value is simply interpolated from the internal table at the grid block depth.
However, if there is a non-zero gas saturation at that depth the Rs value is reset to the saturated Rs value at
the local pressure. The Rv value is obtained in a similar manner in gas condensate problems.
Since the water and gas saturations outside the transition zones are set to the respective end-point values in
the saturation function tables, the end-points of the two tables must be consistent. Normally the lowest gas
saturation in the SGFN or SGOF table should be zero (so that Sg = 0 below the gas transition zone), and the
highest gas saturation in this table should be 1–Swmin (so that So = 0 above the gas transition zone). The
lowest water saturation value in the SWFN or SWOF table should be the connate value (so that Sw = Swco
above the water transition zone), and the highest water saturation in this table should be 1.0 (so that Sw =
1.0 below the water transition zone). The consistency requirements between saturation tables are detailed in
"Saturation functions".
In cases where the water-oil and gas-oil transition zones closely overlap, the treatment outlined above may
produce negative oil saturations. For example, where the water-oil transition zone extends above the gas-oil
transition zone, the water saturation (Sw > Swmin ) and the gas saturation (Sg = Sgmax ) will add to more than
1.0. If this occurs, the water and gas saturations will be recalculated from the gas-water capillary pressure,
which is taken as the sum of the water-oil and gas-oil capillary pressures
P cow ( S w ) + P cog ( S g = 1-S w ) = P g -P w Eq. 9.3
Note: If the saturation tables contain values of Pcow for any value of Sw, FrontSim automatically
equilibrates taking account of the capillary pressure. However, FrontSim currently ignores capillary
pressure for the remainder of the simulation except for dual porosity systems where the capillary pressure is
used to solve the imbibition mechanism. An option to set SWCR based on the initial saturation is available
in item 37 of OPTIONFS
10
Licenses
To run FrontSim, and to run any of the additional FrontSim options, you need to obtain an appropriate
x ECLIPSE 100 FLEX license.
x ECLIPSE 300
The FLEX license checking procedure checks for the availability of an appropriate license for a FrontSim
x FRONTSIM
option when a keyword activating the feature is encountered. In most cases, these are encountered at the
beginning of the RUNSPEC section, and so are encountered at the beginning of the run.
Activating keywords for some features, however, may not be encountered until the SCHEDULE section,
and perhaps even part way through a run.
If an appropriate license is not available when a particular feature is activated, the run stops.
A DATACHECK license is available, which allows FrontSim to run a data set in NOSIM mode to check for
data errors without taking up a full license.
This chapter provides information about the licenses that are available for FrontSim and a description of the
keywords required to invoke these features.
There are a number of special cases, which will be dealt with separately:
• Multicore (Parallel) Option
• Multiple Realization (MR).
Licenses
59
FrontSim Technical Description
Special cases
Parallel multicore option
The Parallel Multicore option allows the simulation of a single data set to be explicitly split up into
multiple threads on a single shared memory parallel architecture computer with multiple processors and/or
cores. This implies that all the processors access the same physical memory.
One single license for FrontSim MultiCore includes four threads — but as part of the
frontsim(Frontsim Black Oil) license, four Shared Memory Parallel (SMP) licenses are
provided. This forces FrontSim to run on four different threads. It is the default option.
To increase the number of threads the number in the THREADFS keywords needs to be increased to a
number higher than 4. FrontSim then checks whether there are enough SMP licenses available. As an
example if the number in THREADFS is set to 8, one additional SMP license are checked out.
Multiple realization
Multiple Realization (MR) licensing was implemented as a way to lower the cost of running multiple
similar versions of the same model.
Programs, for example Petrel and MEPO generate MR data sets. Do not attempt to create them as they
cannot be made by hand. The data set differs from a standard data set in that it includes the MULTREAL
keyword.
Following the MULTREAL keyword is a UID (Unique Identifier), which is a long string of numbers, and a
word (‘Yes’ or ‘No’). All MR data sets generated from the same base case at the same time will have the
same UID. The word, Yes or No, tells FrontSim whether to continue if MR licenses are not available. This
is however not yet implemented in the generating applications.
When the first of a group with a single UID starts running, the standard set of licenses that would be
required for that job is checked out. In addition, an MR license or, if not available, a parallel license, is
checked out as well. When the second and subsequent jobs from the same group start, they each only
checkout an MR license, or if not available, a parallel license. Even if the first job finishes, the standard set
of licenses are kept checked out until all running jobs from that group finish.
The example in illustrated below shows 6 MR jobs running through a system that can handle 3 jobs at a
time.
Licenses
60
FrontSim Technical Description
Figure 10.1. Example shows 6 MR jobs running through a system that can handle 3 jobs at a time
Licenses
61
FrontSim Technical Description
11
Local grid refinement
The local grid refinement option allows enhanced grid definition near wells. The local models are 3D
x ECLIPSE 100 Cartesian. Local models may have more layers than the global model. Transmissibilities between the local
x ECLIPSE 300 models and the global model are computed automatically by FrontSim. The properties of the cells in the
x FRONTSIM local grid can be inherited from the Global grid or specified explicitly for the refined cells.
CARFIN
-- NAME I1-I2 J1-J2 K1-K2 NX NY NZ NWMAX--
'LGR1' 2 2 3 3 1 1 5 5 1 /
PORO
200*0.2 /
EQUALS
'PERMX' 500 /
'PERMY' 500 /
'PERMZ' 50 /
/
ENDFIN
This creates a refinement which looks like Figure 11.1 (in the areal direction).
The primary purpose of ENDFIN is to revert FrontSim to reading data for the global grid system.
WELSPECL
-- WELL -- GROUP -- LOCAL GRID -- LOCATION -- BHP -- PREF
-- NAME -- NAME -- NAME -- I J -- DEPTH -- PHASE
'PRODUCER' 'G' 'SOUTH' 1 1 8060 'OIL' /
/
COMPDATL
-- WELL -- LOCATION -- OPEN -- SAT -- CONN -- WELL
-- NAME -- IR JTH K1 K2 -- SHUT -- TAB -- FACT -- DIAM
'PRODUCER' 1 1 9 11 'OPEN' 0 -1 0.4 /
'PRODUCER' 1 2 9 11 'OPEN' 0 -1 0.4 /
'PRODUCER' 1 3 9 11 'OPEN' 0 -1 0.4 /
'PRODUCER' 1 4 9 11 'OPEN' 0 -1 0.4 /
/
Wells not completed in local grid systems should have their specification and connection data set with the
keywords WELSPECS and COMPDAT as normal. FrontSim checks that these wells are not completed in a
cell that is host to a refined grid system.
NXFIN, NYFIN, NZFIN Define number of local cells in each host cell
CARFIN
--NAME I1 I2 J1 J2 K1 K2 NX NY NZ
LGR2 3 4 1 2 5 6 4 2 4 /
--Two global cells in x-direction to become 4 local cells
--with three local cells in first global, 1 in second
NXFIN
3 1 /
Two global cells in x-direction to become 4 local cells, with three local cells in the first global cell, 1 in the
second.
CARFIN
-- NAME I1-I2 J1-J2 K1-K2 NX NY NZ NWMAX
'NORTH' 5 10 5 10 1 4 18 18 8 5 /
EQUALS
'PORO' 0.3 1 18 1 18 1 4 /
'PERMZ' 50.0 1 18 1 18 1 4 /
'NTG' 0.9 1 18 1 18 1 8 /
/
MULTIPLY
'PORO' 0.5 6 13 6 13 1 2 /
'NTG' 0.2 6 13 6 13 1 2 /
/
ENDFIN
This defines the porosities only in the top four layers on the local grid, and these are subsequently modified
for the top two layers with the MULTIPLY keyword. The porosities for cells in the bottom four layers will
be copied from their host cells in the global grid.
REFINE
'CARF882' /
SATNUM
125*1
125*2 /
ENDFIN
Transmissibility calculations
For Cartesian refinements, transmissibilities between the local and global grid are calculated from the usual
formulae.
A report on transmissibilities between the local and global grids can be obtained by using item 16 in
OPTIONFS.
Timesteps
FrontSim solves LGRs using the same timestep as the global grid. There is no local timestepping option.
Transmissibility multipliers
Transmissibility multipliers (MULTX, MULTY, MULTZ) are applied to the X+, Y+ and Z+ faces of each grid
block. For a local refinement, multipliers can be copied from the host grid only if the positive face of the
local cell coincides with a host cell face; otherwise, a default value of 1.0 is used. If this is inappropriate,
transmissibility multipliers should be explicitly defined for the local grid.
Note: For connections between local and global cells, the transmissibility multipliers for the adjoining
global block are used for flows in the X-, Y- or Z- directions. The local grid block multipliers are used for
flows in the X+, Y+ or Z+ directions.
Pore volumes
The pore volume of a refined global cell may differ from the sum of the pore volumes of the local cells
which it contains, either because the local porosities and net-to-gross ratios differ from the values for the
host cell or because of discrepancies in geometry.
After computing the local pore volumes, FrontSim replaces the pore volume of the host cell with the sum of
the refined pore volumes. Pore volume reports are produced after any modifications have been made.
Keyword Description
ACTNUM Identifies active grid blocks.
ADD Adds specified constants to specified arrays in the current box.
BOX Redefines the current box.
COORD Defines the lines which contain all grid block corner points for each (i, j)
and for each reservoir in the grid.
COPY Copies data in the current box from one specified array to another.
DXV, DYV Vector of X direction, Y direction grid block sizes.
ENDBOX Redefines the current box to encompass the whole grid.
EQUALS Sets specified arrays to specified constants in the current box.
MINPV Sets a minimum pore volume that each cell must have to be active.
MULTIPLY Multiplies specified arrays by constant values in the current box.
Keyword Description
MULTX / MULTY / Transmissibility multipliers
MULTZMULTX- /
MULTY- / MULTZ-
NTG Grid block net-to-gross ratios for the current box.
NXFIN, NYFIN, NZFIN Sets the number of local cells in each global cell of a local grid refinement
PERMX, PERMY, PERMZ Specifies the permeability in the X, Y or Z direction for the current box.
PORO Grid block porosities for the current box.
ZCORN Depths of grid block corners.
GRID
GRID
GRIDFILE
0 /
INIT
DXV
10*100 /
DYV
10*100 /
DEPTHZ
121*2000 /
DZV
100 /
PORO
100*0.5 /
PERMX
100*100 /
PERMY
100*100 /
PERMZ
100*100 /
CARFIN
LGR01 4 7 4 7 1 1 8 8 1 /
PERMX
64*200 /
PERMY
64*200 /
PERMZ
64*200 /
ENDFIN
PROPS
PROPS
PVDO
304 1 4 /
PVTW
304 1 0 0.42 /
RSCONSTT
0 0 /
DENSITY
780 1014 1 /
SOF2
0.35 0
0.92 1 /
SWFN
0.08 0 0
1 0.36 0 /
SOLUTION
SOLUTION
EQUIL
2000 300 2150 /
SCHEDULE
TUNEFSPR
1 5* /
TUNEFSSA
0 /
WELSPECL
P1 A LGR01 2 4 1* LIQ 3* 1* 3* /
/
WELSPECS
I1 B 1 1 1* LIQ 3* 1* 3* /
I2 B 10 10 1* LIQ 3* 1* 3* /
I3 B 1 10 1* LIQ 3* 1* 3* /
B 10 1 1* LIQ 3* 1* 3* /
/
COMPDAT
I1 0 0 1 1 1* 1* 1* 1* 1* 1* 1* Z /
I2 0 0 1 1 1* 1* 1* 1* 1* 1* 1* Z /
I3 0 0 1 1 1* 1* 1* 1* 1* 1* 1* Z /
I4 0 0 1 1 1* 1* 1* 1* 1* 1* 1* Z /
COMPDATL
P1 LGR01 1 4 1 1 1* 1* 1* 1* 1* 1* 1* X /
P1 LGR01 2 4 1 1 1* 1* 1* 1* 1* 1* 1* X /
P1 LGR01 3 4 1 1 1* 1* 1* 1* 1* 1* 1* X /
P1 LGR01 4 4 1 1 1* 1* 1* 1* 1* 1* 1* X /
P1 LGR01 5 4 1 1 1* 1* 1* 1* 1* 1* 1* X /
P1 LGR01 6 4 1 1 1* 1* 1* 1* 1* 1* 1* X /
P1 LGR01 7 4 1 1 1* 1* 1* 1* 1* 1* 1* X /
P1 LGR01 8 4 1 1 1* 1* 1* 1* 1* 1* 1* X /
WCONPROD
P1 1* RESV 4* 1500 /
WCONINJ
WECON
P1 1* 1* 1 1* 1* /
TSTEP
730 /
TSTEP
730 /
12
Restarts
A run can be restarted by supplying a complete data file, and taking the initial solution from the RESTART
x ECLIPSE 100 file. It is possible to restart a run with, for example, altered permeability data; but in general such changes
x ECLIPSE 300 are not recommended.
x FRONTSIM
To do a restart from (say) the 11th report time of run BASE, the procedure is:
1. Think of a new file name root - say R1.
2. Copy the data file BASE.DATA into R1.DATA.
3. Edit R1.DATA.
In the SOLUTION section, delete all equilibration or enumeration keywords, and any analytic aquifer
keywords. Insert the RESTART keyword to specify the restart file and report number.
In the SCHEDULE section, delete the well and timestepping keywords up to and including the restart
time, at report number 11 in the example. Modify the SCHEDULE data after report 11 as required.
4. Submit the run with R1 as the root filename.
RESTART
'BASE' 11 /
Alternatively the SKIPREST keyword can be used skip all keywords (except the ones listed below) until
the time of restart.
Restarts
70
FrontSim Technical Description
2. A RESTART file can also be generated at time 0.0 days, containing the initial solution, by setting the
argument ‘RESTART’ in the RPTSOL keyword to 2. There must be at least one TSTEP or DATES
keyword present to generate the time zero RESTART file.
Restarts
71
FrontSim Technical Description
13
Saturation functions
Relative permeabilities are entered as tables (keywords SWFN, SGFN, SOF2 and SOF3 or the alternative
x ECLIPSE 100 family SWOF and SGOF). Saturation values need not be specified at equal intervals, and are used in the
x ECLIPSE 300 specified form, rather than being interpolated onto regular intervals.
x FRONTSIM
All the saturation functions may be entered in multi-table form; tables are associated with cells using the
SATNUM keyword.
There are two families of keywords that define the saturation-dependent properties of the reservoir fluids.
The difference between them is that the first family allows you to enter the oil relative permeabilities in the
same tables as the water and gas relative permeabilities, while in the second family the oil relative
permeabilities must be entered in a separate table versus oil saturation.
Either family can be used; however, keywords from different families must not be mixed in the same run.
Note: FrontSim does not fully support capillary pressure. For compatibility with ECLIPSE, values must
always be supplied. If capillary pressures are supplied, FrontSim automatically equilibrates taking account
of the capillary pressure. However, FrontSim currently ignores capillary pressure for the remainder of the
simulation. See "Initializing the study" for more information.
Family (i)
SWOF sets water relative permeability, oil relative permeability in water, and water-oil capillary pressure
as a function of water saturation. This is required for two or three-phase systems with both water
and oil.
SGOF sets gas relative permeability, oil relative permeability in gas at connate water, and oil-gas
capillary pressure as a function of gas saturation. SGOF is required for two or three-phase systems
with both gas and oil.
Saturation functions
72
FrontSim Technical Description
Family (ii)
SWFN sets water relative permeability and capillary pressure as a function of water saturation. This is
required for two or three-phase systems with water.
SGFN sets gas relative permeability and capillary pressure as a function of gas saturation. This is required
for two or three-phase systems with gas.
SOF3 sets relative permeability of oil in water, and oil in gas at the connate water saturation, as a
function of oil saturation. SOF3 is required for three-phase systems.
SOF2 sets oil relative permeability as a function of oil saturation. This is required for two-phase systems
with oil.
Swcr The critical water saturation. This is the highest saturation value for which the relative
permeability is zero. At saturations above this value, water is mobile. Note that a critical water
saturation must be defined (the SWFN or SWOF table must contain a water saturation for which krw
= 0). In the example above, Swcr = 0.22.
Swco The minimum water saturation value in the table. The equilibration calculation (see keyword
EQUIL) sets the water saturation to this value in grid blocks that lie above the water contact (or
water transition zone). In this respect, Swco is the connate water saturation. In the example shown
above, Swco = Swcr. If for any reason the connate water saturation is less than the critical value, the
table should begin with the connate value. For example, for Swco = 0.2 and Swcr = 0.22, the table
should begin with the lines
.20 .0 7.0
.22 .0 7.0
.3 .07 4.0
etc.
Saturation functions
73
FrontSim Technical Description
Sw The maximum water saturation value in the table. The Equilibration calculation sets the water
max saturation to this value in grid blocks that lie below the water transition zone. In the example
shown above, Sw max = 1.0, which results in the water zone being fully saturated with water.
Sgcr The critical gas saturation. This is the highest saturation value for which the relative permeability
is zero. At saturations above this value, gas is mobile. Note that a critical gas saturation must be
defined (the SGFN or SGOF table must contain a gas {or liquid} saturation for which krg = 0). In
the example above, Sgcr = 0.04.
Sgco The minimum gas saturation value in the table. The equilibration calculation (see keyword
EQUIL) sets the gas saturation to this value in grid blocks that lie below the gas contact (or water
transition zone). In this respect, Sgco is the connate gas saturation. Normally Sgco = 0.0, as in the
example above.
Sg max The maximum gas saturation value in the table. The Equilibration calculation sets the gas
saturation to this value in grid blocks that lie above the gas transition zone. Normally
Sg max = 1.0-Swco , as in the example above, with Swco = 0.22 as in the first SWFN table example in
this chapter.
An example data table for keyword SOF3 is given below. If family (i) were being used, the krowdata would
be included in keyword SWOF and the krog data would be included in keyword SGOF.
Saturation functions
74
FrontSim Technical Description
The oil saturations must be entered in ascending order in column 1. Columns 2 and 3 contain the
corresponding oil relative permeabilities for oil-water systems, and for oil-gas-connate water systems
respectively.
Five saturation values in the table are of special interest:
Soco The minimum oil saturation value in the table. This is the connate oil saturation. Normally, Soco =
0.0, as in the example above.
Socr The critical oil saturation. This is the highest saturation value for which both the oil-water and
oil-gas permeabilities are zero. At saturations above this value, oil is mobile in the three-phase
region. Note that a critical oil saturation must be defined (the SOF3 table must contain an oil
saturation for which both krow and krog are 0). In the example above, Socr =0.20.
Sorw The residual oil saturation in the oil-water system. This is the saturation at which the oil relative
permeability in the oil-water system becomes zero (So at which krow = 0). In the example above,
Sorw = 0.20.
Sorg The residual oil saturation in the gas-oil system. This is the saturation at which the oil relative
permeability in the gas-oil system becomes zero (So at which krog = 0). In the example above, Sorg
= 0.38.
So max The maximum oil saturation value in the table. This should be equal to 1 - Swco as determined
from the SWFN table. The two oil relative permeabilities should be the same at So max (both
represent a case with So = So max, Sw = Swco and Sg = 0). FrontSim reports an error if this
condition is not satisfied.
Saturation functions
75
FrontSim Technical Description
Swco. The full breakdown, assuming the block average saturations are So, Sw and Sg (with So + Sw + Sg = 1)
is as follows:
In a fraction Sg / (Sg + Sw -Swco ) of the cell (the gas zone),
In a fraction (Sw -Swco ) / (Sg + Sw -Swco ) of the cell (the water zone),
where
krog is the oil relative permeability for a system with oil, gas and connate water (tabulated as a function
of So )
krow is the oil relative permeability for a system with oil and water only (also tabulated as a function of
So )
Figure 13.1. The default three-phase oil relative permeability model assumed by FrontSim
Saturation functions
76
FrontSim Technical Description
where
krocw is the value of the oil relative permeability in the presence of connate
water only
where
SS w = ( S w -S wco ) / (1-S wco - S om ) when Sw > Swco
SS g = S g / (1-S wco - S om )
In these formulae
So , Sw and Sg denote block averaged values for the oil, water and gas saturations in a grid cell.
krog denotes the oil relative permeability for a system with oil, gas and connate water, and
krow denotes the oil relative permeability for a system with oil and water only. Both two phase
oil relative permeability functions are tabulated as functions of oil saturation in the input
data.
krocw denotes the oil relative permeability in the presence of connate water only.
By default Som is taken to be the minimum of the critical oil-to-water saturation and the critical oil-to-gas
saturation, min (Sowcr , Sogcr ).
where
Saturation functions
77
FrontSim Technical Description
krog denotes the oil relative permeability for a system with oil, gas and connate water;
krow denotes the oil relative permeability for a system with oil and water only. Both sets of two phase oil
relative permeability functions are tabulated as functions of oil saturation in the input data.
krocw is the oil relative permeability in the presence of connate water only.
Note: Note the values of kro produced by this formula can be negative. FrontSim automatically changes any
negative kro values produced to zero.
The calculation of three phase oil relative permeability using Stone’s method 2 is enabled by means of
STONE2 keyword in the PROPS section of the input data.
Table end–points
In the equilibration calculation, (see keyword EQUIL) the water and gas saturation values are determined
from the maximum and minimum saturation values in the water and gas saturation tables. The oil saturation
values are thus defined consequentially from these values. The initial saturations in each zone are shown in
figure 13.2.
Consistency requirements
The oil, water and gas saturation tables, for each particular saturation table number region, must obey
certain consistency requirements. These are detailed below.
• Sg max must not exceed 1 – Swco
Saturation functions
78
FrontSim Technical Description
Normally, there is no initial free gas below the gas cap, and the water zone is fully saturated with
water, thus Sgco = 0 and Sw max = 1.
• k rw ( S w = 0) = k rg ( S g = 0) = k row ( S o = 0) = k rog ( S o = 0) = 0.
Otherwise, phases can be mobile even at zero saturation and there is nothing to stop saturations going
negative.
FrontSim issues a warning if these conditions are not satisfied. When SCALECRS is used, this would lead
to an error because in an oil-water run, for example, Krw would be scaled between Swcr and 1 – Sowcr that is
a null range if the first condition is not satisfied.
Also, the following relationships are forced by the simulator:
• Sgu must not exceed 1.0 - Swl. If this condition is violated, the gas saturation in the gas cap is reset to
1.0 - Swl to prevent a negative oil saturation. Normally, if there is no oil in the gas cap, Sgu = 1.0 - Swl.
• Sgl must not exceed 1.0 - Swu. If this condition is violated, the gas saturation in the water zone is reset
to 1.0 - Swu to prevent a negative oil saturation. Normally, there is no initial free gas below the gas cap
and the water zone is fully saturated with water:
thus Sgl = 0.0 and 1.0 - Sgl = 1.0
Saturation functions
79
FrontSim Technical Description
Saturation functions
80
FrontSim Technical Description
14
Saturation table scaling
The FrontSim saturation table end-point scaling option allows you to redefine values for the connate,
x ECLIPSE 100 critical and maximum saturations in the saturation tables describing the flow of the reservoir fluids. The
x ECLIPSE 300 scaling facility is useful for modeling reservoirs, which contain an initial depth variation of either the
x FRONTSIM connate or critical saturations for one or more of the phases present. It has applications in general cases
where the saturation function data for the reservoir fluids depend on a normalized saturation variable.
The end-point scaling option is enabled by the ENDSCALE keyword in the RUNSPEC section. Separate
rescaling is done on relative permeability pressure curves. Generally, each is a two-point rescaling, two
saturation values in the tables being moved to new positions. There is also an option to apply a three-point
rescaling to the relative permeability curves only.
In a three phase model, there are eight saturation table end points which may be identified:
SWL - connate water saturation. This is the smallest water saturation entry in a water saturation table.
SWCR - critical water saturation. This is the highest water saturation for which the water is immobile.
SWU - maximum water saturation. This is the largest water saturation entry in a water saturation table.
SGL - connate gas saturation. This is the smallest gas saturation entry in a gas saturation table.
SGCR - critical gas saturation. This is the highest gas saturation for which the gas is immobile.
SGU - maximum gas saturation. This is the largest gas saturation entry in a gas saturation table.
SOWCR - critical oil-in-water saturation. This is the highest oil saturation for which the oil is immobile in
an oil-water system.
SOGCR - critical oil-in-gas saturation. This is the highest oil saturation for which the oil is immobile in an
oil-gas-connate water system.
We shall refer to the saturation end points taken from the saturation tables in the input data file as the
unscaled saturation end points.
The end-point scaling option enables you to define new values for any of the above eight saturation end-
points for each grid cell, subject to maintaining a consistent set of saturation tables within each grid cell.
The appropriate subset of the above eight end points is applicable in two phase runs. The new values
defined using the scaling option will be referred to as the scaled end-points.
When relative permeability values need to be computed at a particular saturation, a linear transformation is
used to determine the equivalent saturation to be used for lookup in the unscaled table.
An alternative scaling of relative permeabilities can be invoked by using the SCALECRS keyword in the
PROPS section. The second form of scaling preserves the relative permeabilities at three saturation nodes.
In three-phase, oil-water or oil-gas runs, or runs which use the miscible flood option, the following end-
points are used:
In gas-water runs, the following end-points are used if the second form of relative permeability scaling is
selected:
The second method for relative permeability scaling can be interpreted in two–phase runs as preserving the
values of relative permeabilities at both ends of the two-phase mobile region. Convergence problems can
arise in certain cases when using this form of scaling if the intermediate end-point begins to approach the
maximum saturation for one of the phases. For example, in an oil-water problem in which the residual oil
saturation to water tends to zero at a certain depth, the saturation (1.0 - SOWCR) begins to approach SWU
and this can in turn lead to a discontinuity in the water relative permeability as Sw → Sw max.
For example, we consider the scaling of the water relative permeability function K rw (SW ) at a water
saturation SW where the scaled and unscaled critical water saturations are SWCR and Swcr , scaled and
unscaled oil-in-water critical saturations are SOWCR and Sowcr , scaled and unscaled connate gas
saturations are SGL and Sgco , and scaled and unscaled maximum water saturations are SWU and Swmax .
With the two point scaling method, the water relative permeability Krw ( SW ) is then evaluated in the input
saturation table at the new saturation SW ′ , where
K rw (SW ) = K rw (SW )( table ) for SWCR ≤ SW ≤ SWU. For SW ≤ SWCR then K rw (SW ) = 0 and for
SW ≥ SWU then Krw ( SW ) = Krwmax ( table ).
With the three point scaling method, then if SR is the displacing critical saturation of the associated phase
saturation (SR) of the associated phase.
SR = 1-SOWCR-SGL in water/oil or gas/oil/water runs
SR = 1-SGCR in gas/water runs
and Sr is the value of the displacing critical saturation in the table
The two- and three-point scaling equations are similar for Krg , Krow and Krog with alternate definitions of
the critical and displacing critical saturations.
If the KRWR keyword has not been used, the KRW keyword has the effect of scaling the relative permeability
value calculated from the appropriate saturation table after the scaled saturation end-points have been
accounted for. Hence:
KRW (grid block)
K rw = K rw (table)
( K rw max (table) ) Eq. 14.5
The K rw max (table) is taken to be the value at either the maximum saturation of the saturation table or at
SWU if this has been specified.
If the KRWR keyword has been used, then the scaling will honor the Kr at the critical saturation (SR) of the
associated phase.
SR = 1-SOWCR-SGL in water/oil or gas/oil/water runs
SR = 1-SGCR in gas/water runs
Hence the two cases are:
• SWCR ≤ SW ≤ SR
KRWR (grid block)
K rw ( S ) = K rw (S ′ ) Eq. 14.6
( K rw ( S r )) (table)
• SR ≤ SW ≤ SWU
( K rw (S ′ )(table)-K rw ( S r )(table)))
K rw (S ) = KRWR + (KRW - KRWR ) Eq. 14.7
( K rw max(table) - K rw ( S r )(table))
If the value of K rwmax = K rw (SR ), a linear function is assumed between KRWR and KRW. If the table end-
points are the same, that is SR = SWU in the water case, then the action taken depends on whether the
alternative scaling method is being used (see the SCALECRS keyword). If the alternative scaling is active,
then both KRWR and KRW are honored with a linear function between the two points. If the default scaling is
used, then the KRWR is ignored.
The two-point scaling is shown here:
Miscellaneous points
The end-point scaling option is activated using the keyword ENDSCALE in the RUNSPEC section. The
directional scaling options are activated by specifying the appropriate arguments of ENDSCALE.
The end-point saturations may be supplied in one of two ways:
• by cell, using the keywords SWL, SWCR, SWU, SGL, SGCR, SGU, SOWCR, SOGCR; or,
• by depth, using the ENPTVD keyword.
The cell keywords need not specify data for the whole field - any unset values will not cause an error, (as
for PORO), but imply that they are to be obtained from the default values for the cell, or from ENPTVD, if
present.
If SWL, SOGCR and ENPTVD are used, values taken from ENPTVD are used to fill in any unset data, as long
as the endpoint table number is not 0. End point table numbers are set in the REGIONS section, using
ENDNUM, and default to 1, but a value of 0 may be entered.
The overall process is thus:
1. If keywords SWL and SOGCR are present, use the value
2. If not, and ENPTVD is present with non-zero ENDNUM, use this
3. Otherwise, use defaults obtained from tables.
When the end-point scaling option is activated, the scaling keywords are entirely optional. If a particular
end-point keyword is not present in the input data file, the unscaled end-points are substituted and used in
the scaling calculations.
Data checking is performed on the rescaled saturation tables in each cell. The checks ensure that the
connate, critical and maximum saturations are in increasing order and that the rescaled tables are consistent
for each phase. In the case of directional scaling, the data checking is performed on the rescaled tables for
each grid face.
Consistency requirements
The oil, water and gas saturation tables, for each particular saturation table number region, must obey
certain consistency requirements. Essentially these are described for unscaled tables in "Consistency
requirements". The same requirements apply to the scaled endpoints.
• SGU must not exceed 1.0 - SWL
If this condition is violated, the gas saturation in the gas cap will be reset to 1.0 -SWL, to prevent a
negative oil saturation. Normally, if there is no oil in the gas cap, SGU = 1.0 - SWL.
• SGL must not exceed 1.0 - SWU
If this condition is violated, the gas saturation in the water zone will be re-set to 1.0-SWU, to prevent a
negative oil saturation. Normally, there is no initial free gas below the gas cap and the water zone is
fully saturated with water, thus SGL = 0.0 and 1.0 - SGL = 1.0.
Otherwise, phases can be mobile even at zero saturation and there is nothing to stop saturations going
negative.
The K rw max (table)
is taken to be the value at either the maximum saturation of the saturation table or at
SWU if this has been specified.
When the alternative three-point end point scaling method is invoked using keyword SCALECRS, the
scaling uses the three nodes SWCR, SR and SWU where
SR = 1-SOWCR(grid block) − SGL(grid block) in water/oil or gas/oil/water runs
SR = 1-SGCR(grid block) in gas/water runs (ECLIPSE 100, FrontSim)
In order to ensure that at least one fluid remains mobile in the three-phase ternary diagram, FrontSim also
checks for the following:
• SOWCR+SGU< 1.0
• SOGCR+ SGCR + SWL< 1.0
FrontSim issues a warning if these conditions are not satisfied. When SCALECRS is used, this would lead
to an error because in an oil-water run, for example, KRW would be scaled between SGU and 1.0 - SOWCR,
which is a null range if the first condition is not satisfied.
50*0.00 50*0.00 /
SGCR
50*0.10 50*0.20 /
SGU
50*0.99 50*0.98 /
SOWCR
50*0.05 50*0.22 /
SOGCR
50*0.08 50*0.21 /
SWL
50*0.01 50*0.02 /
SWCR
50*0.20 50*0.22 /
SWU
50*1.0 50*1.0 /
SGFN
0.1 0.0 0
0.2 0.0 0
0.08 0 0.0
0.22 0.0 0
0.2 0.0 0
0.22 0.0 0
50*1 50*2 /
15
The streamline concept
FrontSim is a three-phase, three-dimensional black-oil reservoir simulator where the solution mechanism is
ECLIPSE 100 based on a streamline concept. This chapter briefly describes this concept in general and, more specifically,
ECLIPSE 300 how it is implemented in FrontSim. The objective is to describe the process for a single timestep and some
x FRONTSIM of the artifacts rather than the technical mathematical details. For details, the reader is encouraged to read
some of the recent papers on the topic. See, in particular, [Ref. 4], [Ref. 5], [Ref. 6] and [Ref. 25].
Using streamlines for modeling subsurface flow has been in the literature for a number of decades, dating
at least back to the 1950s. The main motivation for using streamlines to solve for the fluid flow is the
computational speed, but it is also attractive that the streamlines forms a natural grid for the transport
equation where a choice of numerical method can be applied. In the 1990s, there were a number of new
developments for streamline simulation that brought it back into the limelight. Modern streamline
simulators now include 3D irregular and faulted grids, changing well controls, compressibility, and gravity
segregation as well as multi-component, multiphase flow.
Streamline simulators are particularly effective in solving fine scale, geologically complex and
heterogeneous systems, and water flooding studies are frequently carried out using streamline simulation.
ki
λi = K Eq. 15.2
μi
φ is the porosity
The numerical approximations of these equations generally are based on a finite-difference IMPES or fully
implicit formulation. The IMPES formulation uses operator splitting to separate one equation for the
pressure so that the pressure solution can be found separately from the equations modeling the movement
of fluids. This approach recognizes the different nature of these equations and the potential advantage of
using different numerical approaches for solving them.
Making the assumption, the capillary pressure Pc=0, the pressure equation can be written as
→ → ∂p →
- ∇ ⋅ v t + Q = φ C t
∂t
+
( Σ
i = o , w , g
v i ci
) ⋅ ∇p Eq. 15.3
Equations 15.3 and 15.4 are used to find the pressure distribution for a given saturation distribution. The
pressure equation is solved implicitly with a finite-difference method.
The saturation/concentration equations read:
∂(φρ n S n ) → →
- + ∇ ⋅ (ρn F n ) = 0 Eq. 15.5
∂t
with F defined by equation 15.2.
Beware that if the compressibility in the model is set to zero (incompressible fluids and rock), the right
hand side of the pressure equation (3) is zero. The restrictions on such a model is that the total flow rate in
has to equal to the total flow rate out of the model at reservoir conditions.
The method for calculating the pressure is basically the same as for traditional IMPES simulators and
described in more detail in "The pressure equation".
Both traditional 7-point as well as more complex 27-point finite difference schemes are available for
discretizing the pressure equation.
Each streamline is assigned a flow rate at the start point that is carried through the streamline. The accuracy
of the simulation partly depends on the streamlines to accumulate correctly to the rate in the wells. The
operation to generate the start points will look for sources and sinks in the grid and assign start points to the
cell faces of grid cells that are connected to such. For incompressible flow, the flow rate assigned to a
streamline will not vary along the streamline and therefore be equal at both endpoints. For compressible
flow, the algorithm is more complex. For example, for primary depletion with no injection the streamlines
can start from any grid cell in the model, often at a boundary, and the flow rate will increase along the
streamline consistent with the compressibility in each of the grid cells it traces through.
For incompressible flow, FrontSim will, by default, distribute start points at each active source (injectors,
aquifers etc.) in the model. For compressible flow, FrontSim will, by default, distribute streamlines at both
sources and sinks in the model. You can alter the method to be used for streamline distribution using
parameter 9 in keyword TUNEFSSA.
Number of streamlines
The number of streamlines necessary to represent the computational domain varies with a number of
parameters. Most significantly are the number of grid cells in the model, the number of wells and
magnitude of flow. The number of streamlines in FrontSim will by default be approximately 10% of the
number of active cells plus a number associated with the number of active wells. This is usually more than
enough. Since the speed of the simulation partly depends on the number of streamlines computed it can be
scaled by a user-defined multiplier. If you are an experienced FrontSim user you can use the streamline
density multiplier available in keyword TUNEFSSA to speed up the calculations by setting it to a number
less than 1.0.
FrontSim also has new methods to remove automatically unnecessary streamlines by examining how well
the volumes in the grid cells are preserved by the streamlines.
These can optionally be activated. See keyword OPTIONFS.
Addlines
When all the streamlines through the generated start points have been traced, FrontSim will look for cells
that have not been visited by streamlines to add streamlines when appropriate. This procedure can be
switched off by setting parameter 5 of keyword TUNEFSSA to NO. The cells in question are naturally cells
with very low flow and usually do not contribute much to the overall solution.
Mapping saturations
Front-tracking method
For the front-tracking method, the saturations for each segment on the streamline can simply be
picked up from the individual constant values in the actual cell in the underlying grid.
A more accurate method for preserving front-positions is available as an option for the front-
tracker. A mapping algorithm is available to map the saturations from another set of streamlines
(previous timestep) directly on to the new set of streamlines. This algorithm is CPU- and
memory-intensive and should only be used if it is very important to avoid any numerical
dispersion. This method can be activated through the keyword TUNEFSSA, parameters 3 and 4,
and is not available for three-phase cases. It is not recommended for cases where the gravity
segregation is on.
Finite-difference methods
Since the cells in the 1D grid for the finite difference methods does not necessarily coincide with
the cells in the underlying grid the saturations and other properties that is needed on the
streamline is averaged from the corresponding cells in the underlying global grid. The averaging
is described in "Three-phase saturation solver".
Front-tracking method
For two-phase cases, the default solver is the front-tracking method. This method accurately tracks
movements of fronts on the streamline. The speeds of the fronts are calculated as a function of the slope of
the fractional flow curve. The method is very fast and accurate for models with low compressibility such as
water-oil cases. A similar approach is used for tracer flow, and tracers in FrontSim can only be combined
with two-phase models using the front-tracking algorithm.
The sum is taken over all segments in all streamlines going through cell number j.
16
Streamline tracing
Tracing the streamline is the process whereby we create the unique streamline passing through a specified
ECLIPSE 100 point in 3D space. From this starting point, the streamline is traced backward and forward to create the
ECLIPSE 300 complete streamline. The algorithm is iterative and rests on calculating the exit point in a grid cell given an
x FRONTSIM entry point, repeated until a stop criterion is reached.
Streamline parameters
From the perspective of the saturation solver there are three properties needed to define the streamline.
They are time of flight (TOF), flow rate and a pointer to a unique grid cell in the underlying numerical grid.
The flow rate and TOF are defined in points along the streamline, and the grid cell pointer is defined for
each linear segment between the points defining the streamline. For the grid cell pointer to be unique, there
have to be points defined for every grid cell face that the streamline passes through. The grid cell pointer is
used for picking up relevant information defined on the grid, and to map solution variables between the
streamline and global numerical grid.
The following figure shows how points and segments are defined with respect to the grid.
Streamline tracing
96
FrontSim Technical Description
Figure 16.1. Streamline tracing through grid, showing points and segments between the points
The streamline method does not require the boundaries of a streamtube to be calculated. The streamline can
be thought of as the center of a streamtube and the combination of the TOF and flow rate is used to
calculate the pore volume in any of the streamline segments.
For a segment i on the streamline the pore volume PV is calculated as:
PVi = dTOFi × Qi
where
The 3D space coordinates are not used for the simulation itself, but necessary for any visualization of the
streamlines. They are calculated for output purposes only.
Streamline tracing
97
FrontSim Technical Description
where 0 and 1 denote the two cell faces in the x-direction. The y- and z-directions are analogous.
In figure 16.2 the streamline enters the Y0 face of a single cell and exits the X1 face through the exit point
Xb , Yb , Zb.
Given the entry point (Xa , Ya , Za ), the exit point (Xb , Yb , Zb ), Vx = dx / dt and integrating equation
16.2, the dt (or delta TOF) can be expressed as
dt x = ln (( v x 0 + m x ( x b − x x 0)) / ( v x 0 + m x ( x a − x x 0))) / m x Eq. 16.3
Due to the orthogonal unit grid cell the dt for each of the faces can then be calculated separately. Since the
streamline must exit the cell faces inside the cell, there is only the minimum of these dt functions that
applies.
Once the dt is known, the exit point coordinates can be calculated by the following equation.
Streamline tracing
98
FrontSim Technical Description
( m x dt ) − v
(
x b = x x 0 + v xa e x0 )/ m x
Eq. 16.4
The y - and z - directions are analogous and can be obtained by substituting x with y and z in the equation
above.
As mentioned previously, the points on the streamline are represented as points in the unit cube coordinate
system for each of the cells through which the streamline traces. If the point needs to be output for
visualization, it is transformed back into the real coordinate system for the corner point grid.
Stop criteria
The tracing continues until one of the following stop criteria is reached:
• An active well is positioned in the current cell. The streamline is traced to the center of the cell and
terminated.
• The streamline exits through a boundary. This may be either an open boundary defined by pressure/
flux (PSIDE, FLUXSIDE) or an aquifer connected to this cell face.
For compressible flow, we have two more criteria to consider:
• Sink/source in grid cells not containing wells. In this case, either all the faces in a grid cell have flow
rates into the cell (sink) or they have only flow rates out from the cell (source). Any cell in the grid
can act as a sink/source in compressible cases, but they are most likely to be close to the closed
boundaries of the grid. If the difference between the total inflow and outflow in the model is large,
many streamlines are likely to have one endpoint in this type of cell.
• Low flow. This is very similar to the situation for the sink/source cells. The flow rate calculated along
the streamline reaches a predefined minimum close to zero, and the streamline tracing is terminated.
You can scale this minimum flow rate using keyword TUNEFSSA (option 7).
Streamline tracing
99
FrontSim Technical Description
17
IOR tracer logic guide
The FrontSim IOR tracer logic is a tool designed to provide an efficient workflow for history matching,
ECLIPSE 100 predicting and optimizing Water Alternating Gas (WAG) injection processes for improved oil recovery
ECLIPSE 300 (IOR) at the field operation scale. IOR WAG injection is a complex multiphase process influenced by
x FRONTSIM complex physical processes. Complicated injection procedures, such as optimizing lean gas and solvent
injections in producing fields also add to the complexity. A predictive tool such as the FrontSim IOR tracer
logic allows practicing reservoir engineers to design and to manage quantified IOR projects at the IOR
injector/producer pattern level. The FrontSim IOR tracer model is built on existing production knowledge,
and on geologic and petrologic understanding of trapped IOR oil targets.
The dynamic modeling of the IOR WAG process typically requires fine scale 3D fully-compositional
models that can handle fast-changing gas dynamics and viscous fingering, driven by a large number of
injectors or complex horizontal wells. The fundamental idea of the FrontSim IOR tracer logic is to use
tracer logic to quantify mechanistically solvent gas injection and displacement processes with an upscaled
2D and two-phase (oil and water) streamline model. In this manner, the high resolution model is preserved
due to the high resolution of the streamline simulator, yet the model can still be in a reasonable time on
account of the numerical efficiency of the simulator.
This guide illustrates important aspects of the IOR tracer logic tool. Background material is provided as
needed. These show the basic IOR tracer logic concepts, and the effective use this option. This guide treats
the following elements of the IOR tracer logic:
• "The workflow of building the IOR tracer and truth model".
• "Modeling IOR dynamics with tracers". Includes the IOR tracer logic itself, the mobilization curve,
the solvent allocation logic, and the logic taking into account limitations in the production facilities.
• "Keywords and parameters for the IOR tracer model". Includes examples.
• "Scaling the model to match the field IOR mechanisms".
• "The IOR model simulation output".
Figure 17.1. Possible workflow for constructing the FrontSim IOR tracer model
Figure 17.2. Illustrates the incremental recovery of IOR oil with MWAG
A Truth Model is used as a starting point for the modeling of the IOR recovery in the field. This is a finite
difference model, most probably a sector of a larger model, and is assumed to represent the ideal IOR
recovery. This Truth model incorporates the complete physics of the process. The simulator is capable of
solving for fully compositional phase behavior, three-phase relative permeability, explicit shale treatment,
etc. The truth model represents a best guess on how the WAG process will actually perform without the
complications of numerical artifacts and pseudo representations.
The IOR tracer logic workflow models complex 3D IOR displacement processes by combining two types
of models. The first type is the truth model, and the second type is an up-scaled two-phase, 2D layered IOR
tracer model.
As in the previous workflow, the tracer parameters represent the production from a single, vertically
averaged, streamline bundle, which connects the injector and producer. The parameters used in this
model may be translated to the full field IOR tracer model, as with previous workflow (figure 17.5
above).
Although only two specific workflows and relationships between the Truth model and the up-scaled
IOR model have been described here, we may see a variety of combinations of models in the future.
For example, the Truth model may be a 3D compositional streamline model rather than a finite
difference model, and the up-scaled IOR model may also be a 3D model. These possible workflows
will not be treated here.
the IOR tracer model only requires one single run to calculate the spatial distribution of variables of unique
interest to the IOR WAG process. The ease of directly working with the various IOR variables allows for
additional flexibility when history matching, and for managing an IOR project in a complex reservoir. The
FrontSim IOR tracer logic also offers advantages in the post processing and in the interpretation of results.
The IOR logic provides a series of tracer parameters that can be tuned, in order to match the performance
of the up-scaled streamline model to that of the Truth model. These parameters will be treated in the
following sections, where the core technology components of the IOR tracer logic are described.
The IOR tracer logic also has functionality for optimizing the WAG process. The solvent allocation logic
and water/gas handling logic are field level tools, which assist in the allocation of the Miscible Injectant
(MI) to competing injectors, constrained both by the limited MI resources and by the facility limitations of
the injectors.
The FrontSim IOR tracer simulation model can thus be used in predictive mode, in order to guide solvent
utilization over an entire field which could contain thousands of wells, and hundreds of injector/producer
patterns that could be configured dynamically over time. The IOR tracer model can be effectively used to
identify IOR recovery targets, and to allocate MI solvent based on the injector/producer dynamic patterns.
The IOR tracer logic is capable of modeling two different WAG processes, namely IWAG before MWAG
and IWAG after MWAG. Separate sets of logic are used to model IWAG lean gas injection before MWAG,
and IWAG lean gas injection after MWAG. In each case, IWAG lean gas injectant is divided into effective
and ineffective lean gas tracers. In the IWAG before MWAG process, the effective lean gas tracer is partly
adsorbed, a common field practice for creating localized gas caps. Trapped lean gas may again be
mobilized by a subsequent MWAG injection, when effective solvent tracers mobilize trapped lean gas
tracers, while simultaneously mobilizing trapped IOR oil (at a 1:1 volumetric ratio when possible). For
IWAG injection after MWAG injection, the effective lean gas tracer is partly adsorbed, mobilizing the
trapped, effective solvent tracer, which can then be produced and subsequently recycled at the injectors.
A key concept of the tracer logic is the master-slave tracer pair:
Figure 17.8. The effective solvent and IOR oil have a master-slave relationship
On the left, figure 17.8 shows IOR oil initialized at Sorw at some point along a streamline. On the right, it
shows how subsequent trapping of solvent causes an equal volume of IOR oil to be mobilized. In this
example, some IOR oil remains trapped.
In the IOR tracer model, each grid block is initialized with immobile IOR oil equal to the residual oil
saturation after water flooding. Typically, Sorw is not zero in the grid block. Any effective solvent tracer
entering into this block is trapped as it mobilizes an equal volume of IOR-oil. The trapping of effective
solvent is an irreversible process with respect to the IOR oil, and it is modeled by an adsorption/desorption
mechanism. An adsorption isotherm table is assigned for the (master) tracers. It is used to compute the
amount of adsorbed solvent in the cells traversed by the streamline. Only the trapped master or effective
solvent is able to displace IOR oil present in this cell.
The tracer concentration along streamlines provides a spatial distribution of tracer movements from
injectors to producers. These distributions allow the visualization and quantification of the effectiveness of
WAG injection. A similar description can also be given for the IWAG processes before and after the
MWAG process, by replacing the master and slave tracer pair with the appropriate fluid types.
Set 1 (Modeling MWAG) Set 2 (Modeling IWAG before Set 3 (Modeling IWAG after
MWAG) MWAG)
Tracer 1: T1 = Effective Solvent Tracer 4: T4 = Effective Lean Tracer 7: T7 = Effective Lean
tracer Gas Before Solvent tracer Gas After Solvent tracer
Tracer 2: T2 = IOR Oil tracer Tracer 5: T5 = Returned Trapped Tracer 8: T8 = Returned Trapped
(mobilized by tracer 1) Lean Gas tracer (adsorbed tracer MI tracer (adsorbed tracer 1
4 mobilized by tracer 1) mobilized by tracer 7)
Tracer 3: T3 = Ineffective Solvent Tracer 6: T6 = Ineffective Lean Tracer 9: T9 = Ineffective Lean
tracer (RMI or returned MI, Gas Before Solvent tracer Gas After Solvent tracer
compositionally equivalent)
Tracer names T1 to T9 are normally reserved for use only with the IOR logic. It is possible to use T4 to T9
as ordinary tracers if these names are not used in the IOR logic. However, this usage is discouraged, to
avoid confusions within the context of IWAG IOR tracer logic modeling.
Each tracer is initialized with a particular concentration value in the grid cell. The following variables, with
units of TPV (Total Pore Volume) fraction within the reference grid cell, are defined as follows:
In the MWAG after IWAG logic, trapped lean gas may be mobilized by solvent during the MWAG
injection. Tracer T5 is used to identify mobilized lean gas that has been trapped, and the same mobilization
truth model for the release of lean gas and oil is normally used.
In IWAG after MWAG, trapped solvent may be present after the MWAG process. This solvent may be
mobilized by lean gas injected during the IWAG process. Tracer T8 is used to identify mobilized solvent
that has previously been trapped. A different mobilization truth model is required to describe the lean gas
sweeping process (IWAG) as a function of cumulative gas injected. T8 may not be used to mobilize IOR
oil until it is recycled to the injector. This is part of the IWAG after MWAG logic.
To summarize, the IOR tracer logic will allow both for solvent trapping and for subsequent mobilization of
trapped IOR oil and trapped lean gas (MWAG after IWAG). It also allows for the trapping of lean gas and
the subsequent mobilization of trapped solvent (IWAG after MWAG).
The IOR mobilization curve has a characteristic shape, shown in figure 17.9. The initial solvent slugs
contain mostly effective solvent, while the final slugs contain mostly ineffective solvent. In a typical
model, most of the trapped solvent is effective solvent, whereas most of the produced solvent is ineffective
solvent. The partitioning of injected solvent into effective and ineffective portions is transparent to you, as
you simply need to enter the total amount of solvent injected. The partitioning based on the mobilization
curve is accomplished internally in the simulator.
Figure 17.9. The slope of the mobilization curve reflects the solvent efficiency
Initial slugs are more efficient than later slugs. The overall process efficiency is the slope of the line from
the origin to the final point. The incremental efficiency of each injected slug is the slope of the IOR
mobilization curve as shown in figure 17.9.
The mobilization curve can be used to partition injected slug type (lean gas and water, or solvent and water)
for use with the tracer logic. You specify the pore volume of the injected slug and the injected slug type
(lean gas, solvent, or water). The ineffective solvent concentration, C3, is the remaining portion of the
injected slug:
C3 =1 - C1.
The above concentrations are normalized in the sense that C1 + C3 =1. When solvent is not injected, both
the effective and ineffective solvent concentrations should be defaulted to zero at the injector for the
current simulator timestep. Because injection occurs in discrete timesteps, the above concentrations are, in
fact, averaged efficiency levels during the current timestep, with the ratio of:
(change in sweep between timesteps)
.
(change in gas injection between timesteps)
For lean gas injection, a similar efficiency level is defined by the lean gas sweep curve slope (or lean gas
efficiency) as a function of the cumulative lean gas injection slug. In general, the lean gas sweep is less
effective than the solvent sweep because solvent tends to be more viscous:
Qlgeff
C 4,7 = = η 4,7 = slope of lean gas sweep curve
Qlgtotal
The ineffective lean gas (C6, C9) is the remaining portion of the injected slug:
C6,9 = 1 – C4,7
Both effective and ineffective lean gas concentration is zero in the event of no lean gas injection.
where
Figure 17.10. IOR mobilization curve construction from Truth Model simulations
The IOR mobilization curve is typically constructed from constant-floodrate, finite-difference, Truth Model
simulations of an injector-producer pair (figure 17.10). Each MWAG simulation generates one point on the
mobilization curve.
Solvent sweep-out, and hence the mobilization curve, is also a function of floodrate. Increasing the
floodrate increases the viscous-to-gravity ratio and improves the sweep. Thus, FrontSim allows the
mobilization curve to be floodrate dependent, as illustrated below.
The IOR mobilization curve depends on the floodrate. This dependency is obtained by running the finite-
difference truth model at various floodrates.
Each solvent injector in the tracer-streamline model has an associated mobilization curve that dictates the
dynamic solvent displacement efficiency of all streamlines connected to that injector. The mobilization
curve contains no information on the timing of solvent or IOR oil production. Timing is handled by the
accessible pore volume factors that are discussed later.
In order to use the mobilization curve efficiently in the simulator, the curve needs to be parameterized and
fitted to the following equation.
V solv
E RIOR = Eq. 17.1
1
+ A( V solv ) B
C
where
The floodrate-dependent mobilization curve also needs to be parameterized and fitted to the following
equation:
Q
ERIOR =
1 Eq. 17.2
+ D(Q ) E
F
where
All the parameters A, B, C, D, E and F have to be input into the simulation data deck, and hence you are
responsible for fitting the mobilization curves to the above equations.
The mobilization curve can be accurately applied to injector-producer pairs in a field only when the
conditions used to generate the mobilization curve are the same as the conditions in the field. Strictly
speaking, therefore, any change in, for example, injector-producer distance, reservoir geology, WAG ratio,
WAG cycle length, reservoir pressure, or initial saturations, requires a separate mobilization curve. This
approach can create an unwieldy number of mobilization curves, and may require much CPU time.
Therefore, it may be instructive to divide a heterogeneous reservoir into regions that are dissimilar, and
derive separate mobilization curves only for these regions. The mobilization curves obtained may then be
reapplied to reservoir regions, which have similarities to one of the regions for which a mobilization curve
already exists.
Note that it is generally assumed that the WAG cycle length does not impact the mobilization curve, but
only the timing of the solvent production. In addition, there is some evidence that the WAG ratio has very
little impact on the mobilization curve. The impact of the initial saturation and injector-producer distance is
somewhat stronger, and separate mobilization curves should be generated for each significant change in
initial saturation and injector-producer distance.
A 1t +1 = max C 1t Ssolvent
( max
,trap , A 1
t
)
ΔA 1t +1 ≡ A 1t +1-A 1t = max C 1t S solvent
( max t
)
,trap , A 1 - A 1
t
The master in the MWAG mechanism is the solvent tracer, whereas the slave is the mobilized
IOR oil.
Trapped lean gas
Both the IWAG before MWAG and the IWAG after MWAG processes include the adsorption or
trapping of injected lean gas. The maximum operators ensure that the concentration of trapped
lean gas is equal to or higher than the concentration at the previous timestep. This is done in
order to avoid the process becoming reversible.
t +1 t Max t
A 4,7 (
= max C 4,7 , Sgas ,trap , A 4,7 )
t +1 t +1 t t Max t t
ΔA 4,7 = A 4,7 -A 4,7 (
= max C 4,7 , S gas )
,trap , A 4,7 - A 4,7
In this case, a different mobilization curve from the one used in the MWAG process is typically
used in order to obtain the portion of effective and the portion of ineffective lean gas tracer.
The adsorption values are entered using the TAD, TADE and TBLK keywords in FrontSim.
Notes
• In trying to match the timing of returned solvent (RTMI) with field data, reducing APV for
ineffective solvent tracer can lead to earlier breakthrough of (ineffective) solvent tracer.
• Similarly, the APV for IOR oil determines the IOR oil breakthrough. Reducing the IOR oil
tracer APV can cause earlier breakthrough.
• The APV for effective solvent tracer also impacts the shape of the IOR production curve.
Increasing the APV can cause the delay of IOR oil breakthrough or cause the oil recovery
to take place at a reduced rate. Reducing the APV for IOR oil can cause earlier IOR oil
breakthrough.
In general, the shape or the timing of the IOR tracer breakthrough curve can be adjusted by
modifying APV values.
The APV values are currently entered using the TPFA and TPFV keywords in FrontSim.
be made to favor the most efficient patterns. This latter option implicitly means that the solvent allocation
logic favors new patterns, as these are in general more efficient than mature patterns.
Notes
• Gravity must be switched off in the IOR tracer model: set TUNEFSSA item 1 to 0. It is also possible to
use NOGRAV, but for 2D models only.
• The TRACER keyword defines an ordinary tracer that does not involve tracer logic.
• The UNIFOUT keyword offers a different way to output the .SUMMRY file, which could be of
importance to some third-party post-processing tools.
Most of the IOR tracer model keywords have to be used in the SCHEDULE section of the simulator input
data deck. Exceptions are found for those keywords used for setting up the tracer logic and the tracer initial
conditions.
Note: Note that it is possible to specify 0.0 trapped IOR targets in an aquifer layer or zone using the
TIADS keyword, which overrides the defaulted non-zero IOR adsorbed concentration defined by the
TADET2 parameter.
5. Specify the adsorption and propagation mechanisms with the TAD, TADE, TPFA and TPFV keywords.
The APV (accessible pore volume) values are entered for each tracer with TPFA.
APV values for each cell and for each tracer can be specified by using the TPFV keyword.
Use TAD and TIADS for specifying tracer adsorption. The IOR tracer logic supports the specification
of the adsorption isotherm definition by tracer only.
The concept of using water as a swing variable to account for solvent, lean gas tracer, as well as
the produced IOR oil is shown in figure 17.12. The left sketch shows all three phases present in
the actual field, and the right sketch shows how the IOR tracer option models these phases, by
combining the gas and water phases into a single phase at injection. Gas is then traced as part of
water.
Figure 17.12. Using water as a swing variable to account for solvent, lean gas tracer
and produced IOR oil
The produced IOR oil is treated in a similar fashion – it must be converted to surface units using
Bo , and its production is subtracted from the total water production since water is the swing
variable. The assumption in the model is that there is enough water produced in a WAG process
to act as the ‘swing’ variable. Adjustments would have to be made to the model, for example, to
simulate either continuous gas injection or gas injection into a reservoir that had not been
previously water- flooded, since these cases would not have enough water to act as the swing
variable.
There are two possible ways of supporting solvent and lean gas injection volumes:
• Obtain and specify the injection concentration along with the water injection rates using the
WTRACER keyword
• Directly specify the injection volume and have FrontSim convert the injection rates into
concentration using the WSOLVENT keyword.
In each case, first use keyword WCONINJE to define the control data.
Controlling the tracer injectors using the RANKWELL keyword
The RANKWELL keyword provides control parameters for each tracer injector. In the history
mode, RANKWELL selects and re-scales the truth model by overriding the default set with the
TREFFIC keyword. In the predictive mode, RANKWELL specifies an additional switch. This
switch determines whether the injector participates in the solvent allocation logic or not. This
allows you to have an option to continue solvent injection at specified injection rates or allow
this injector to participate in the solvent allocation logic. Parameter controls are provided in
order to influence the timing and the amount of solvent allocated to this injector.
The combined use of RANKING, TREFFIC and RANKWELL enables you to select the
perforation thickness scaling mode, with reference to the truth model.
Note: Horizontal injection wells are not supported for all thickness scaling modes.
You choose the truth model volume scaling methods. The scaling methods available are
dimensional scaling and dimensionless scaling. This type of scaling must not be confused with
the thickness scaling mentioned below. It is possible to have multiple RANKWELL listings for
the same well, with the purpose of specifying the parameters of the different perforations. This is
useful when a well spans multiple layers. However, this does not work for horizontal wells, or
with the injector layered model scaling (compare the RANKING keyword).
The mobilization curves are required to have separate names if multiple RANKWELL entries are
used for the same well. This means that the three curve names for each of the three WAG
processes need to be different for any two RANKWELL listings of the same well. Perforation
information is not used in predictive mode or with solvent allocation logic. In these cases, only
the last listing of the RANKWELL keyword is meaningful. This limitation is due to the fact that
solvent allocation in predictive mode is well based, not perforation based.
Solvent allocation and scaling with the RANKING keyword
RANKING is a SCHEDULE keyword that determines the mode of solvent allocation, and the
scaling method used globally in relation to the truth model for the current timestep.
The IOR tracer model has been extended from the single-layer 2D model to multiple-layer 3D
models by using the scaling by layer option. Scaling by perforation is suitable for a 3D layered
tracer field model. You should bear this in mind before investing efforts in extending IOR tracer
models to 3D.
Scaling of injection solvent volume with THKRATIO
The FrontSim IOR tracer logic provides a number of ways for scaling the input solvent injection
volume. This could have an impact on the reference defined by the mobilization curve when
obtaining solvent efficiency. These scaling options are mentioned in the RANKING and
TREFFIC keyword descriptions. "Scaling the model to match the field IOR mechanisms"
provides a detailed discussion on the use of VREF, the reference volume. Here we focus on the
THKRATIO variable, which is defined in the ALMODE option of the RANKING keyword.
The IOR tracer logic uses the following equation to calculate the normalized solvent slug with
the THKRATIO variable:
Solv_InjINJ(RVB)
Tracer_Slug =
VREF(RVB) × THKRATIO
These variables are defined as follows:
• You can choose not to scale the VREF defined either globally in TREFFIC for the truth
model, or locally for the injector in the RANKWELL keyword. This is possible by defaulting
THKRATIO = 1, and by specifying the THK in the truth model to be zero. See example 2
in the TREFFIC keyword.
• You can choose to define the THKRATIO as the ratio of perforation thickness to that of the
truth model:
THK PERF
THKRATIO =
THK TRUTH _MODEL
Figure 17.14. Adjusting breakthrough times by adjusting the APV factors as shown
Note: In the tracer model, the solvent is treated as being of two parts – the effective solvent and ineffective
solvent. The ineffective solvent is that portion of the solvent that flows rapidly from injector to producer
through previously swept zones. It is therefore ineffective at recovering oil. Thus, the solvent breakthrough
time is normally controlled by the APV of the ineffective solvent rather than the effective solvent.
You can exert some control over the shape of the IOR oil production curve by adjusting the APV value of
the effective solvent. Increasing the APV of the effective solvent causes the IOR oil production to occur
more slowly. IOR oil production slow-down occurs because a large APV means that the solvent advances
more slowly through the reservoir, thus desorbing oil more slowly. The TPFAT1 keyword is used to set the
APV of effective solvent as described above.
specified by you until the target slug size is reached. Excess solvent is then distributed to remaining wells
according to the solvent efficiency. More specifically, the procedure works as follows:
Prior to reaching target slug size
You determine which eligible injectors are to be included in the solvent allocation logic in the SCHEDULE
section. The solvent allocation logic subsequently distributes solvent to all wells injecting less than the
target slug size. The injectors at the top of the list will always get priority, because the sequence of solvent
allocation is determined at the outset. This strategy favors the development of patterns in sequence rather
than in parallel: an injector will not lose priority as it approaches its target slug size.
After reaching the target slug size
Any excess solvent is distributed to remaining injectors based on the solvent efficiency table, with the most
efficient injector receiving the highest priority. This approach is the same as the one used in the
SLMODE=2 logic, which employs this strategy once the minimum slug size is reached, rather than target
slugsize.
Handling of excess solvent
Solvent is initially distributed at the target WAG ratio to available injection wells. Once these injection
wells are allocated solvent, any excess solvent is redistributed to injection wells in order to maximize the
utilization of solvent. This distribution will lower the WAG ratio of the injectors. A user-specified
minimum WAG ratio is used to set a lower bound on allowable WAG ratios.
Description of solvent allocation logic, SLMODE = 2
With SLMODE = 2, each injection well is allocated a certain target slug size which can vary from well to
well. The allocation logic first distributes solvent to new wells and then to those that have had only a small
amount of solvent allocated. You can specify the fraction of solvent available for new wells using the
RANKING keyword, which can be changed over time. The remaining solvent is then distributed to the rest
of the wells in accordance with the solvent efficiency table. The procedure works in the following manner:
Prior to reaching minimum slug size
The eligible injectors are ranked at each timestep in ascending order of volume of injected solvent. Solvent
is distributed using this ranked well list for all wells whose solvent injection is less than a minimum value
specified by you. This approach favors immature patterns over mature patterns. For example, a well at the
top of the ranked-well list will have only a small amount of solvent injected. However, once this well
receives solvent, its ranking will fall in the list and a less mature well will take its place. The net effect will
be to even out the injection levels of all available patterns; maturing patterns will be slowed down and
immature ones will be sped up.
After reaching minimum slug size
Once all wells have received their minimum slug size, excess solvent is distributed to injectors based on the
injector's solvent efficiency. The most-efficient injectors receives the highest priority. This approach will
also tend to even out the injection levels of all available patterns since less mature patterns have high
efficiency. Thus, patterns will tend to mature in parallel rather than in sequence.
Handling of excess solvent
Solvent is distributed to all injection wells at the prescribed WAG ratio. This is defined by record 2 in the
SOLVSLUG keyword. Once these injection wells have been allocated solvent, any excess solvent is not
used. However, you can tune the amount of unused solvent by adjusting the WAG ratio with the
TARGWAG parameter. You can also adjust the amount of utilized solvent by changing the number of
entries in record 2 in the SOLVSLUG keyword described in the section "IOR tracer model in predictive
mode".
gas handling limit is reached, then rank all wells by GOR. Remove producing wells based on the GOR
ranking. The highest GOR wells are shut in first until the gas handling limit is reached.
Results of both the solvent allocation logic and the facility logic are output to a file with
a .FacilityOut suffix. The same content is also present in the .PRT file.
Note: You should be consistent in normalizing injection and production rates with VREF, and the same
reference volume should be used throughout the same tracer simulation model.
All the parameters A, B, C, D, E and F have to input into the simulation data deck, and hence you are
responsible for fitting the mobilization curves to the above equations.
The above equation forces the IOR recovery to be zero as the flood rate approaches zero. However, even at
low flood rates, a finite amount of oil is likely to be mobilized in practice. Thus, the IOR curve is
extrapolated backwards based on the slope of 0.03 TPV/year.
You should be careful about over-generalizing the IOR mobilization curve. It is tempting to normalize a
mobilization curve, say to HCPV, and then blindly apply it to all patterns in the streamline tracer model,
regardless of injector-producer distance or variations in the residual oil saturation after water flooding.
However, a balance must be struck between generating a separate mobilization curve for each pattern in the
streamline tracer model, and scaling a single mobilization curve to all patterns in the field tracer model. It is
not recommended to scale the mobilization curve to field streamline patterns that are drastically different
from the truth model.
To illustrate the concept of scaling, consider the incremental oil produced from the simulation of a ‘typical’
injector/producer pair in the field. Table 17.3 shows the raw data given in units of MMRVB followed by
the same data normalized by HCPV, HCPV after WF, and DEPV where HCPV = TPV × (1-S wi ), HCPV
after WF = TPV × Sorw and DEPV = TPV × ( S orw -S orm ). Here, Sorm is the residual oil after miscible
flood. In this case
• the TPV of the model is 10 MMRVB
• the injector-producer distance is 1800 feet
• reservoir thickness = 175 feet
• Soi = 0.753
• Sorw = 0.342
• Sorm = 0.153.
scaling. The streamline tracer model and the truth model have the same TPV (10 MMRVB), but different
Soi and Sorw.
Generalizing the above argument, the angle-open-to flow (AOF) should be used to set the VREF
parameter on the TREFFIC keyword as follows:
VREF = αVREF TRUTH_MODEL
AOF FIELD
α =
AOF TRUTH_MODEL
Although one would expect most field injectors to be full injectors, an example of a ½ injector is
an injector that backs up to a sealing fault. In this case, the injected fluid only contacts 180
degrees of the area around the well. Another example is when FrontSim is run to tune the tracer
parameters. If the original finite-difference truth model is a ¼ pattern, then one would create a
¼-pattern, vertically-up-scaled FrontSim version of that model. In that case, α = 1 since both
injectors have a 90-degree angle open to flow.
A similar argument holds for entering TPV in TREFFIC:
TPV = αTPV TRUTH_MODEL
The TPV value is used for impacting the flood rate on recovery, and is discussed later. FrontSim
uses the following equation to convert injected solvent volumes to dimensionless basis before
computing the efficiency. Dimensionless solvent injected into injector INJ is
Since the truth model volumetrics are used in this equation, the scaling is equivalent to a
dimensional scaling of the truth model results to the streamline tracer model.
Thickness scaling with THK
For dimensional scaling, a special adjustment is used in FrontSim when the reservoir thickness
is different from the value used in the truth model. Consider the truth model below, in which
1MMRVB of solvent has been injected. Using dimensional scaling, without correcting THK,
FrontSim would compute the IOR displacement efficiency based on the front location in blue
(Truth Model) and use this efficiency for the front location in red (streamline tracer model),
since both have the same amount of solvent injected. Realistically, the displacement efficiency
between the two models should be the same when the front locations are the same.
Figure 17.18. Example of aligning front locations with the THK parameter
To align front locations, FrontSim internally scales VREF by the ratio of the reservoir thickness
at the injector in the streamline tracer model to the reservoir thickness at the injector in the truth
model. While FrontSim knows the reservoir thickness at each injector in the streamline tracer
model, the thickness of the truth model must be supplied as the THK parameter in the TREFFIC
keyword.
RANKWELL parameters for dimensional scaling
There are also TPV, VREF and THK values that appear in the RANKWELL keyword for each
injector. For dimensional scaling, it is important that the default values are chosen for these, as
shown below. The default, global values are those set in the TREFFIC keyword.
Summary of dimensional scaling
The mobilization curve is always entered in dimensionless form. The normalizing volume for
the mobilization curve is VREF TRUTH_MODEL , which can be HCPV, TPV or any other basis.
For dimensional scaling, the basis is irrelevant so long as the same basis is used for specifying
VREF in the TREFFIC keyword. VREF and VREF TRUTH_MODEL are related by the ratio of
angles-open-to flow ( α ). FrontSim internally adjusts VREF for differences between the truth
model and the streamline tracer model in reservoir thickness at the injector locations. The key
parameters are set with TREFFIC.
The corresponding TPV, VREF and THK parameters in the RANKWELL keyword should be
simply defaulted as discussed previously.
INJ
Here, VREF FIELD and THK FIELD values are entered in the RANKWELL keyword for every injector in the
field. TPVFIELD values are also entered so that FrontSim can convert flood rates to the fractional TPV/
year.
OOIP
OOIP in IOR tracer model is no different from any other two-phase models, although the initial trapped
IOR oil is in the form of the adsorbed IOR tracer T2. This is initialized by default using the TADE keyword,
or explicitly by using the TIADST2 keyword.
Injection rates
In order to use water as a swing variable, the volume of MI solvent gas injection is converted into
rvb
equivalent water volume, which is added to the total water injection ( ):
d
WWIR ′ is the true water injection rate and WSIR is the rate of MI solvent injected. Injected MI solvent is
then split into effective and ineffective portions, whose concentrations are defined as
(WSIR × B_Ti_I)
WTCTi =
WWIR × Bw
with I = 1 or 3.
Hence the MI solvent injection rate (Mscf/d) is:
( WTCT1
B_T1_I
+
WTCT3
B_T3_I ) (
× WWIR × B ) w
Production rates
We first define the well total liquid production rate as
WVPR = WOPR × Bo + WWPR × Bw
By using water as the ‘swing’ variable, it is possible that the produced water rate becomes negative if a
large amount of tracer is produced compared with the produced water volume. This is solved by
thresholding negative values of water production to zero. However, in this case, the water material balance
will not be correct when integrated over the life of the process.
The volume of produced IOR tracers is expressed as a fraction of the total RVB rate. The IOR oil
production rate (stb/d) is
WTCT2 × WVPR
WOPRIOR = .
B_T2_P
FrontSim uses Bw to convert all tracer volumes to standard conditions. The cumulative oil produced (stb) is
WTPTT2 × Bw
WOPT + ,
B_T2_P
where WTPTT 2 is the IOR production rates in equivalent water volumes. The term WTPTT 2 × Bw converts
WTPTT2 × Bw
this volume back to RVB, and the term converts this to oil rate using FVF. Similarly, the
B_T2_P
cumulative solvent produced (Mscf) is given by
( WTPTT1
B_T1_P
+
WTPTT3
B_T1_P )
×B . w
You may choose to compute additional IOR variables by adopting the above methods and by using the
existing reporting variables listed the tables given in "IOR reporting rates".
Note: Variables in Red are treated as primary variables in the IOR formulas. Rates in Bold (that is red and
bold or blue and bold) are reporting in the group and field levels. PVT properties in Blue are IOR only and
read in through the TPVT keyword.
PVT properties are read in from the input data. You should be aware that using small values for the B_T#_I
and B_T#_P formation volume factors might lead to inconsistencies in mass balance calculations.
TOTAL RATES
Variable Description Units
WWPR Well Water Production Rate SM3/D - STB/D
WWIR * Well Water Injection Rate at reservoir RM3/D - RVB/D
conditions
WVPR = ( WOPR × B o ) + ( WWPR × B w ) Well Volume Production Rate at reservoir RM3/D - RVB/D
conditions (Oil + Water)
WVIR Well Volume Injection Rate at reservoir RM3/D - RVB/D
conditions (Oil + Water)
Table 17.10: Formulae to be used for computing the total well rates of the IOR tracer variables
OIL RATES
Variable Description Unit
WOPR Well Oil Production Rate from SM3/D - STB/D
Waterflood Oil
WOPR IOR = WTC T 2 × WVPR / ( B _T 2_P ) Well Oil Production Rate from IOR Oil SM3/D - STB/D
WOPR TO = WOPR + WOPR IOR Well Oil Production Rate from all SM3/D - STB/D
Sources of Oil
Table 17.11: Formulae to be used for computing the oil well rates of the IOR tracer variables
GAS RATES
Variable Description Unit
WGPR Well Gas Production Rate from SM3/D - MSCF/D
Solution Gas from Waterflood
Oil.
WGPRIOR = WOPRIOR × RS_T2 Well Gas Production Rate from SM3/D - MSCF/D
Solution Gas from IOR Oil
WGPRRTS = (WTCT 8 × WVPR ) / B_T8_P Well Gas Production Rate from SM3/D - MSCF/D
Returned-Trapped-Solvent
WGPRES = (WTCT 1 × WVPR ) / B_T1_P Well Gas Production Rate from SM3/D - MSCF/D
Effective-Solvent
WGPRIES = (WTCT 3 × WVPR ) / B_T3_P Well Gas Production Rate from SM3/D - MSCF/D
Ineffective-Solvent
WGPRTS = WGPRRTS + WGPRES Well Gas Production Rate from SM3/D - MSCF/D
+WGPRIES All Sources of Solvent
WGPRRTLG = (WTCT 5 × WVPR ) / B_T5_P Well Gas Production Rate from SM3/D - MSCF/D
Returned-Trapped-Lean-Gas
WGPRELG = (WTCT 4 / B_T4_P + WTCT 7 / Well Gas Production Rate from SM3/D - MSCF/D
B_T7_P) × WQR Effective-Lean-Gas
WGPRIELG = (WTCT 6 / B_T6_P + WTCT 9 / Well Gas Production Rate from SM3/D - MSCF/D
B_T9_P) × WQR Ineffective-Lean-gas
WGPRTLG = WGPRRTLG + WGPRELG + Well Gas Production Rate from SM3/D - MSCF/D
WGPRIELG All Sources of Lean Gas
WGPRTG = WGPR + WGPRIOR + WGPRTS + Well Gas Production Rate from SM3/D - MSCF/D
WGPRTLG All Sources of Gas
WGIRES = WTCT 1 × WWIR × BW / B_T1_I Well Gas Injection Rate from SM3/D - MSCF/D
Effective-Solvent
WGIRIES = WTCT 3 × WWIR × BW / B_T3_I Well Gas Injection Rate from SM3/D - MSCF/D
Ineffective-Solvent
WGIRTS = WGIRES + WGIRIES Well Gas Injection Rate from All SM3/D - MSCF/D
Sources of Solvent
WGIRELG = (WTCT 4 / B_T4_I + WTCT 7 / Well Gas Injection Rate from SM3/D - MSCF/D
BT_T7_I) × WWIR × BW Effective-Lean-Gas
WGIRIELG = ((WTCT 6) / B_T6_I + (WTCT 9) / Well Gas Injection Rate from SM3/D - MSCF/D
B_T9_I) × WWIR × BW Ineffective-Lean-Gas
WGIRTLG = WGIRELG + WGIRIELG Well Gas Injection Rate from All SM3/D - MSCF/D
Sources of Lean Gas
WGIRTG = WGIRTS + WGIRTLG Well Gas Injection Rate from All SM3/D - MSCF/D
Sources of Gas
Table 17.12: Formulae to be used for computing the gas well rates of the IOR tracer variables
WATER RATES
Variable Description Unit
WWPRCORR = WWPR ⋅ WVPR × Well Water Production Rate Corrected for SM3/D - STB/D
(WTCT 1 + WTCT 2 + ...WTCT 9) / BW Tracer Production
WWIRCORR = WWIR × (1-W TCT 1 − Well Water Injection Rate Corrected for SM3/D - STB/D
W TCT 2-…WTCT 9) Tracer Injection
Table 17.13: Formulae to be used for computing the water well rates of the IOR tracer variables.
The following table lists reports in the FacilityOut and PRT files for each eligible solvent injector.
Tip: Both Petrel RE and ECLIPSE Office can be used to view the output of the simulations.
Quality-checking results
Material balance errors
A source of mass balance error may originate from a fast traveling tracer. This can occur when small APV
values are used, resulting in the IOR tracer travelling from the injectors to producers within a very short
space in time. It is possible that the tracer could travel from the injectors to the producers within one
timestep. You may choose to use smaller timestep in order to reduce this type of error.
Tracer compressibility
IOR tracers were originally designed to work with incompressible FrontSim IOR tracer models. However,
most of recent runs are based on IOR tracer models that is compressible. This use may cause errors in the
tracer mass balance, when large compressibility is used.
18
Tensor permeability
Full tensor permeabilities are often required to describe complex reservoirs. Given a detailed heterogeneous
ECLIPSE 100 reservoir description at the geological scale, upscaling is normally carried out to reduce the model size to
x ECLIPSE 300 one suitable for reservoir simulation. These upscaling procedures will generally create full tensor
x FRONTSIM permeabilities, even if the permeabilities in the fine geological grid are not represented as tensors. Full
tensor permeabilities also arise in complex cross-bedded systems where the dip directions will not in
general coincide with a local coordinate direction. A further case for full tensor permeabilities is in the
modeling of fractured systems.
Conventionally, reservoir simulators ignore the full tensor nature of the absolute permeability and assume
the permeability can be represented by a diagonal tensor whose principal axes coincide with the local
coordinate axes. This allows the construction of the usual 5 point discretization in 2D or 7 point in 3D
which can be solved efficiently in the simulator. Introduction of a full tensor permeability extends the
stencil of the discretization scheme to 9 points in 2D and either 19 or 27 points in 3D.
FrontSim allows a full tensor description of the absolute permeability. The permeability tensor may either
be supplied by a pre-processor by upscaling the properties on the geological model, or else it may be
entered by keywords PERMXX, PERMYY, PERMZZ (which describe the diagonal components) and
PERMXY, PERMYZ, PERMZX to describe the off-diagonal components.
Only positive definite symmetric tensors are allowed in the simulator. The principal directions of the tensor
must also be supplied. At present, the options are
1. the directions for the components of the tensor are aligned with the Cartesian axes.
The permeability tensor can be expressed as
k xx k xy k xz
K = k yx k yy k yz Eq. 18.1
¯
k zx k zy k zz
where by symmetry
k yx = k xy , k zy = k yz , k zx = k xz Eq. 18.2
Tensor permeability
144
FrontSim Technical Description
Note: FrontSim also accepts non-symmetric tensors although this might not be physical. You can supply a
PERMYX different from PERMXY. If only PERMXY is entered, FrontSim will assume symmetry by setting
PERMYX=PERMXY
The flow equations arising from the permeability tensor description are constructed using a Multipoint Flux
Approximation (MPFA). The transmissibilities are calculated by the control volume discretization due to
Aavatsmark et al. - see [Ref. 1] for details. The MPFA can only be used in corner point geometry, not block
centered geometry.
The discretization scheme is selected by the FDM9PNT keyword. The MPFA is a rigorous treatment of both
cell non-orthogonality and tensor permeability. Even for a diagonal isotropic tensor, the MPFA will
generally lead to a 9-point discretization in 2D in order to remove the bias of grid non-orthogonality and
grid orientation effects.
Discretization
Figure 18.1. Stencil for MPFA flow in 2D between cells (i,j) and (i+1,j)
The standard two-point flow between cells A=(i,j) and B=(i+1,j) for the corner point grid in figure 18.1 can
be written for a component c embedded in a phase p (P = o , w , g) as
c c
F pAB = T AB M pAB dP pAB Eq. 18.3
where
Tensor permeability
145
FrontSim Technical Description
and where
c
Alternatively, the MPFA constructs the flow F pAB which depends on steering terms from the neighboring
cells C, D, E and F in Figure 18.1 as
c c
F pAB = M pAB T AB dP pAB + Σ T AS dP AS
( S ) Eq. 18.4
where the summation is over steering transmissibilities S between cells AC, AD, AE and SF.
c
The mobility M pAB is evaluated in the upstream cell (A or B) according to the direction of flow in equation
18.4.
The steering potential differences dPAS are evaluated using pressures and capillary pressures for cells A
and S but using the density term ρAB for the primary flow coefficient, so that
The transmissibilities TAB and TAS are calculated following the procedure described in [Ref. 1] when the
permeability K is a full tensor.
¯
Note that the flows between adjacent cells depend on steering terms from adjacent cells.
Similarly in 3D, the flow between any two cells may depend on up to 16 steering transmissibilities and this
leads to a 19 or 27 point scheme.
In the present version of FrontSim, the MPFA transmissibilities are not calculated across faults, but the
two-point connections are used instead (see "Transmissibility calculations").
If the FDM9PNT keyword is used without supplying off diagonal tensor permeabilities PERMXY, PERMYZ
and PERMZX, these terms are taken to be zero and the MPFA scheme is applied with the diagonal tensor K
¯
=diag(PERMX, PERMY, PERMZ) in the specified basis.
Orthogonality error
The MPFA or nine point discretization reduces to a standard two point flux scheme (that is, a five-point
scheme in 2D or a seven-point scheme in 3D) if the grid is sufficiently orthogonal.
For example, the MPFA discretization reduces to 5 or 7 points when both
• the grid system is orthogonal and
• the permeability tensor K is diagonal.
¯
Tensor permeability
146
FrontSim Technical Description
In general, when the grid is either non-orthogonal or K is a full tensor then a 9-point (2D) or 27 point (3D)
¯
discretization results. It is possible to control the application of the MPFA scheme based on a cell
orthogonality error indicator. Essentially, for grids which are nearly orthogonal it is desirable to apply the
MPFA discretization only in regions of high non-orthogonality to reduce the CPU cost. In the context of a
full tensor permeability, an orthogonality indicator can be defined as follows:
Consider an interface PQ between two cells 1 and 2. The permeabilities in each cells are K 1 and K 2. The
¯ ¯
directed area normal on the interface is denoted by A . Let a 1 and a 2 be the vectors joining the midpoints of
¯ ¯ ¯
opposite faces of the cells. We call a 1 and a 2 the covariant basis vectors. Define the contravariant basis
¯ ¯
vectors a 1 and a 2 with the condition that
¯ ¯
a i • a j = δ ij
¯ ¯
where δij is the Kronecker delta.
This is evaluated separately for each of the two cells adjoining the interface A . The maximum of these two
¯ that is, the departure from a
values provides a measure of the departure from orthogonality for the interface,
two point flux approximation for this interface.
Tensor permeability
147
FrontSim Technical Description
19
The Oil/Water Front Tracking
Saturation Solver
φ is the porosity
To account for the gravity, we need to rewrite the equation slightly by separating the gravity and
convective terms. For incompressible flow, we can then rewrite the equation as:
∂ → → → →
φS + ∇ ⋅ ( F i ) + ∇ ⋅ G i = 0
∂t ( i) ( ) Eq. 19.2
Fi = fi vt Eq. 19.3
→ →
Gi = fi λi ∇Ddρ g Eq. 19.4
We can now use the operator splitting concept (Bratvedt et al. [Ref. 6]) for the following equations:
∂Si 1→
∂t
+
φ ( )
→
∇ ⋅ Fi = 0 Eq. 19.5
∂Si 1→
∂t
+
φ ( )
→
∇ ⋅ Gi = 0 Eq. 19.6
Equation 19.5 models the convective flow without gravity and is solved by the front-tracking method as
described below. Equation 19.6 models the gravity segregation of the fluids. The gravity vector in equation
19.4 is of course constant and known, so the counterparts to the streamlines, the gravity lines, always are
defined. Equation 19.6 can also be solved using the front-tracking method.
Assumptions
Piecewise constant initial saturation
One of the assumptions for the front-tracking method is that the initial saturation must be
piecewise constant. This is always the case in FrontSim where the initial condition is saturations
that are constant for each grid cell.
Piecewise linear flow-function
The flow-function (F and G) must be piecewise linear. In FrontSim, the flow-function is
computed for a set of saturation points and assumed linear between these points. For a water-oil
case this means that the user-defined water saturation values in the relative permeability
functions are taken to be the sampling points for the flow-function. Any saturation between
these points will be linearly interpolated.
Streamline solution
Let us first show two examples on how the front-tracking algorithm works.
The first example is for the flow-function along a streamline while the second is for a gravity segregation
step on a gravity line.
On a streamline, the flow-function will basically be the fractional flow function. For a water-oil case the
fractional flow (fw ) is defined as:
fw = λw / (λw + λo )
Eq. 19.7
λ w = k rw / μ w , λ o = k ro / μ o
Figure 19.1. Fractional flow function approximated by a continuous piecewise linear function
In figure 19.1, the fractional flow function is the blue dotted line. Five linear segments have approximated
this function as piecewise linear. The relative permeability is defined in six points (Swc, S1, etc.). This
approximation yields a piecewise constant saturation function, the red line in the figure.
Figure 19.2. Initial saturation at time t1 Figure 19.3. Saturation at time t2 with flow from left
to right
For example, given the initial saturation as shown in figure 19.2 and the fractional flow-function shown in
figure 19.1, the saturation profile along a streamline would look like the one in figure 19.3 after a given
time, if the flow direction (Vt) is from left to right.
Figure 19.4. Saturation at time t3 with flow Figure 19.5. Saturation at time t4 with flow
direction from right to left direction from right to left
If the flow direction (vt) changes at time t3 the saturation profile is shown in figure 19.4. In this case, the
lower envelope decides the size of the saturation fronts and their velocity. Initially, after the change of
direction, the saturation profile breaks into fronts with the front between S2 and S3 moving with highest
velocity. When this front catches up with the front between S3 and S4 they merge into a saturation front
between S2 and S4, but with a slower velocity than the S1 to S2 saturation front. Eventually the S2 to S4
front and the S1 to S2 front merge into a front between S1 and S4, which moves faster than the Swc to S1
saturation front. This situation is shown in figure 19.7 at time t6.
Figure 19.6. Saturation at time t5 with flow Figure 19.7. Saturation at time t6 with flow
direction from right to left direction from right to left
From these examples, we can see that the shape of the fractional-flow function determines the shape of the
saturation profile over time. The concept can use any type of fractional-flow function.
The approximation points on the continuous piecewise linear approximation function can, of course, be
varied to suit the accuracy required. The smooth parts of the saturation distribution can also be modeled
with many small physical shocks, if needed.
∂Sw ⇀ ⇀
+∇ ⋅ Gw = 0
∂t
where G is defined as:
⇀ ⇀
G w = f w ( ρ o -ρ w ) λ o ⋅ g
Let us assume we have an initial situation where water sits on top of the oil (figure 19.8). We want to see
how this situation will evolve using the front tracking method.
For simplicity, let us use the linear relative permeability curves shown in figure 19.9, and assume
viscosities at 1.0 for both oil and water, which result in the flow function shown in figure 19.10.
Figure 19.9. Linear relative permeability Figure 19.10. Linear flow function
curves
If we then assume the water density is 1.0 and the oil density is 0.5 the difference is -0.5. Multiplying the
linear flow function with the linear oil relative permeability and the negative density difference will result
in the gravity flow function seen in figure 19.11.
Figure 19.11. Linear flow function multiplied by linear oil relative permeability and negative
density difference
For the example, we have divided the saturations into five equally spaced parts. As before, we find the
velocities for each saturation front.
Initial fronts are shown in red in figure 19.12, and new fronts after front collisions in blue in figure 19.13.
The X-axis is positive in the direction of gravity.
When water starts moving up and oil down, there are fronts moving in both directions. In figure 19.14, we
can see the initial situation, water to the left (on top) and oil to the right of the initial front. In figure 19.15,
a snapshot after time t1, the fronts are moving upwards and downwards according to the gravity flow
function in figure 19.12 and figure 19.13. When the first front (V1 / V5) hits the no flow boundaries at the
top and bottom, a front reflects back from the boundary.
Figure 19.14. Gravity flow Figure 19.15. Gravity flow Figure 19.16. Gravity flow
saturation, distribution, initial saturation, distribution, saturation, distribution,
snapshot after time t1 snapshot after time t2
In Figure 19.17 we see a snapshot at the left when fronts V4 and V04 have collided and formed the front
V03. In Figure 19.18 is a new snapshot before the two main fronts collide, and in Figure 19.19 the oil is on
top and the water is on the bottom.
If we have higher resolution of points on the saturation function, the saturation distribution will be
smoother.
Figure 19.17. Gravity flow Figure 19.18. Gravity flow Figure 19.19. Gravity flow
saturation distribution, initial saturation distribution, saturation distribution,
snapshot after time t1 snapshot after time t2
Front events
The FrontSim two-phase front tracker can handle any initial saturation distribution and is not restricted to
the number of fronts or the number of points on the saturation function. Increasing the number of points on
the saturation function (relative permeability) might slow down the simulation. During a timestep the front-
tracking algorithm will handle a large number of events of collisions of fronts and fronts hitting the wells.
Each event can either increase or decrease the number of fronts. The timing of these events is continuous
through the timestep, and the solver will continue until there are no more events for the remainder of the
simulation timestep.
20
The pressure equation
FrontSim is an IMPES (IMplicit Pressure Explicit Saturation) simulator. That is, we solve a pressure
ECLIPSE 100 equation in which all the terms that depend on saturation are evaluated at the initial saturation and where
ECLIPSE 300 the spatial derivatives of the pressure are evaluated using the pressure at the end of the timestep. Although
x FRONTSIM IMPES is potentially unstable, it may be used on ‘easy’ problems such as history matching applications
where the timesteps are usually small.
The Implicit pressure is a non-linear equation and is solved using a Newton Raphson method. The Newton
Raphson itself results in a system of linear equations, which are solved using Algebraic Multi-Grid
equation solver.
Pressure equation
The pressure equation that FrontSim solves is given below.
∂P
f (P ) = ∇ • ν t + c o ν o ∙ ∇ P + c w ν w ∙ ∇ P + c g ν g ∙ ∇ P + Q -φC T Eq. 20.1
∂t
where
dB o ( B g -R v B o ) dR s
co =
1
Bo
- (
dP
+
(1-R v R s ) dP )
,
dB g ( B o -R s B g ) dR v
cg =
1
Bg
- (
dP
+
(1-R v R s ) dP )
,
1 dB w
cw = - ,
B w dP
and
νt = νo + ν + νg ,
and where for each phase p (that is, for subscripts o, w and g):
v p = − λ p (∇ • P − ρ p g ∇ d ) and
kkrp
λp =
μp
where:
φ is the porosity
initial error was already smooth this process is highly effective. In fact, the combination of both processes
yields a convergence rate independent of the number of equations and is optimally efficient. The algorithm
is implemented recursively, with the reduced set of equations itself being solved by smoothing and coarse
grid correction.
In SAMG, the definition of the required sequence of reduced unknown sets, and the operators to transfer
data between them, are all generated automatically. These are based on the coefficients of the original
matrix, represented in sparse compressed-row format.
Convergence criteria
The convergence criteria for both the linear and the non-linear solver are controlled by the keyword
TUNEFSPR. These controls fall into two categories.
First, you can set a maximum number of iterations for both the linear and the non-linear solver beyond
which FrontSim will accept the solution. Care should be taken when accepting unconverged solutions, as
the results may not be accurate.
The second set of controls is based on how quickly the solution is changing. The linear norm is given by
(100 × ΣAbs(Δp))
L =
(Σp)
where Δp is the sum of the absolute changes in the pressure estimate as a result of the current linear
iteration, divided by the sum of the current estimate of the pressure.
The non-linear norm is given by
(100 × ΣAbs(Δp))
NL =
(Σp)
where ΔP is the sum of the absolute changes in the pressure estimate as a result of the current non-linear
iteration, divided by the sum of the pressure at the beginning of the timestep.
21
Parallel multicore option
This chapter describes the parallel multicore option, which is a separately licensed extension to FrontSim.
ECLIPSE 100
ECLIPSE 300
Note: The keyword GEOFLOFS (added in 2008.1) can be used for conducting incompressible simulations
x FRONTSIM using parallel multicore without requiring parallel multicore licenses. All other parallel simulations on
more than four cores require additional parallel Shared Memory Parallel (SMP) licenses. The base
FrontSim license will automatically support up to four cores in parallel.
The Parallel Multicore option allows the simulation of a single data set to be explicitly split up into
multiple threads on a single shared memory parallel architecture computer with multiple processors and/or
cores. This implies that all the processors access the same physical memory. Typically, such machines
include the new multicore laptop computers, desktop PCs and high performance workstations (Windows
and Linux). The availability of 64-bit operating systems and large amounts of installed memory means that
fairly high resolution models can be simulated on simple personal computing hardware.
Note: The Parallel Multicore option is by design not available for cluster computing using multiple
processes and process interconnect.
one high end card available FrontSim will take advantage of this and run on multiple cards. If you set
the GPU option and no cards are available FrontSim will switch to the default linear solver (2).
For two-phase problems, the use of the EXPL solver must be explicitly set using the TUNEFS1D keyword.
Note: One consequence of multithreading is that there will be minor differences in results between serial
and parallel runs.
The Multicore Parallel option is easy to use and requires a single keyword THREADFS in the RUNSPEC
section. You need to specify the number of threads to be used. Corresponding number of SMP licenses
must be available.
Note: The run stops if the required number of licenses is not available.
Ideally, the number of threads specified should equal the number of physical processor cores for best
performance. For further improvements in speed the recommended tuning options for serial runs is still
relevant. In particular, the sensitivity of the solution to number of streamlines used should be analyzed
using the TUNEFSSA keyword.
During the simulation, streamlines will be distributed to the available cores for parallel processing. Load
balancing is automatic and no user interaction is required.
You may change the number of processors during a restart run.
Note: The keyword is not currently supported in the GUI in Petrel and has to be introduced using the
keyword editor.
Scalability
The scalability with number of cores is dependent on the type of model.
The total CPU time for a FrontSim simulation is broadly divisible into two parts a) the pressure solution
and b) the saturation solution. Below is an extract from the FrontSim PRT file showing a detailed reporting
of the time spent in the various modules. The first block is describing the workload for the different threads
in the saturation solver. The number of streamlines processed by the different threads can differ — mainly
because of the streamlines are different (the number of segment could vary between the streamlines:
The next block is an extract of the CPU Times for the pressure solver — the pressure solver setup is done
using multithreading, the linear pressure solve is either done in parallel using a parallel (OpenMP)
algebraic multigrid solver or optionally a GPU solver running one or multiple graphics card. The velocity
calculations are done as a serial task.
The last block is an extract of the CPU Times for the transport solver. Here time for saturation solution
includes the time generate streamline startpoints (only task done in serial), generate (trace) streamlines,
solve streamlines (transport) and also compute the gravity lines.
Depending on the nature of the problem, the proportion of time spent on either of the solvers will differ. In
general the saturations solver is scaling better than the pressure solver so models and in serial mode is
spending most of the time in the saturation solver will benefit tremendously from using multicore parallel
processing. For the model above the pressure solver in serial model uses approximately 2200 seconds (less
than 2x speedup) seconds while the saturation solver uses 4200 seconds (more than 3.5x speedup) when
comparing with running with 4 threads on a 6x Dual Core machine.
High resolution models often require a large number of streamlines so they make a perfect candidate for
parallel multicore processing. Fractured dual porosity models are another candidate. The high throughput
along streamlines passing through fracture cells require shorter timesteps due to stability considerations
resulting in longer computation times for the saturation solver.
22
Pattern flood management
Streamline simulation is being increasingly used for managing waterflood operations in some of the largest
ECLIPSE 100 fields in the world (SPE 54616, SPE 63152, SPE 105393). Underpinning the analyses of a waterflood is the
ECLIPSE 300 relationship between injection and production wells. This relationship can be directly and fully quantified
x FRONTSIM on reservoir models through streamline simulation as is clear from figure 22.1. This ability of streamline
simulation is unique. In the past, engineers have used time-consuming trial and error methods to optimize
waterflood simulations using streamline data. In this chapter, we discuss the use of the Pattern Flood
Management (PFM) option which is a separately licensed extension to FrontSim. This option provides an
automated way of optimizing streamline waterflood simulations. The techniques currently used are
standard reservoir engineering methods and not black box optimization. The left image in figure 22.1
shows a waterflood simulation with finite difference method. The right image shows same simulation using
FrontSim streamline solution with the front tracking method.
FrontSim PFM uses streamline simulation properties to determine how much water to allocate to injectors
in order to enhance the performance of a waterflood. Given a history matched reservoir simulation model, a
set of active wells and an overall injection limit, the FrontSim PFM option recommends well by well
injection and production rate schedule for the waterflood. These rate schedules help to manage the reservoir
in such a way that oil rate decline is arrested, water breakthrough delayed or water production suppressed,
and volumetric efficiency and ultimate recovery are increased. Thus, field redevelopment, modification of
flood pattern and similar waterflood design and planning studies can be undertaken efficiently. FrontSim
PFM is highly suited for fields with large number of wells and high resolution reservoir models. Multiple
field development options can be studied quickly and the impact of uncertainty can be analyses through
rapid screening of multiple realization of equi-probable geology.
Problem solving
PFM can be used to solve the following problems:
Using PFM
PFM is easy to use and is triggered by a single keyword, WCONPAT. There are various output summary
vectors associated with this option that allow analysis of the simulation (see tables to in the "FrontSim User
Guide").
PFM is compatible with three-phase black oil systems. If only oil-water slightly compressible simulation is
required then advantage can be taken of the front tracking solver. The Front Tracker solver is faster and
introduces very little numerical dispersion while maintaining sharp flood fronts during the simulation.
FrontSim PFM optimizes the allocation of water injection at every timestep or user-defined intervals during
run time. Individual well constraints, economic limits are taken into account by the allocation process.
FrontSim PFM is compatible with well workover logic.
FrontSim PFM runs can be made with the parallel multicore option, this makes it possible to implement
high resolution waterflood simulation on a daily basis for reservoir surveillance.
Workflow
You can choose from three different rate allocation strategies. For a successful waterflood one can envisage
three distinct phases as shown in figure 22.3.
Figure 22.3 is adapted from Ganesh Thakur, Integrated Waterflood Asset Management, SPE Applied
Technology Seminar, Mumbai, 2005.
A 'fill-up' phase followed by an oil rate 'incline' phase before breakthrough and finally a 'decline' phase
after breakthrough. Corresponding to these three phases of 'fillup', incline and decline one can specify in
WCONPAT either the VREP, RECOV and INJEFF allocation criteria, respectively. There is, however, no
restriction on the sequence of use for these different allocation strategies.
Note: When getting started almost all the parameters of the WCONPAT keyword can be set to default except
for the allocation strategy.
To start the pattern management feature the wells in the reservoir model must have an initial set of
operating rates. Therefore, the use of WCONPAT should always be preceded by well rate assignments using
WCONPROD / WCONHIST / WCONINJE and/or group allocation controls GCONPROD and GCONINJE. The
run with pattern management could be a restart run from an earlier history match run. First a timestep, as
explained above, is required in the schedule section of the restart run to set initial well rates. In the next
step, the WCONPAT keyword is introduced to begin the optimized rate allocation strategy. The history
match could be either an ECLIPSE or a FrontSim run.
Often there are a large number of injectors and the WLIST keyword is used to group injectors. The list
name is then directly used in the WCONPAT keyword. It is therefore possible to apply PFM to a portion of a
field, for example a pilot project.
For green field or facility up gradation studies, it is best to run PFM with minimal constraints to gauge field
capacity for all existing and planned wells. For capacity constrained simulations care should be taken when
formulating schedule sections that seek to combine general well management target and constraints with
PFM control. (Please review the rules for combining PFM with standard well management towards the end
of this chapter).
It is recommended that you use well economic limits to remove very low rate producers (WECON) and
injectors (WECONINJ) as they can interfere negatively with the optimization exercise.
Injection capacity limit can be applied to each list of injectors. Optimization allocation computations are
done at every step.
For the application of pattern flood management to the real reservoir, both the data driven tools (OFM,
Decide!) and the model based simulation tool (FrontSim PFM) are required in a closed loop monitoring
system. Field inter-well measurements, for example, tracer tests, interference tests, logging, and so on are
required to verify or to calibrate computed (data-driven or model based) allocation factors. When there is a
match, then the model based system can be used to prescribe production and injection rates for field
implementation.
The FrontSim simulation model must be updated continuously and history matched prior to using it as a
surveillance model for prescribing rates for field implementation.
Waterflood patterns
Classical methods for waterflood design employ some standard well patterns, for example, line drive, 5-
spot, 9-spot or inverted 5-spot.
Figure 22.4. Repeated 5-spot waterflood pattern. P wells are producers and I wells are injectors
Patterns are also conceived for the purpose of water flood monitoring. Patterns are thus groups of wells that
you identify and can be based on the original waterflood design, for example, 5-spot, or wells in close
proximity, reservoir blocks/compartments or even reservoir history. Figure 22.4 shows a repeated 5-spot
pattern of wells in a homogeneous permeability field. Patterns can also be considered as fixed volumes of
the reservoir containing a group of wells. For each well in a pattern, it is recognized that only a fraction of
its production or injection could be allocated to that pattern. In figure 22.4, producer P5 would contribute to
the production of 4 different patterns.
Allocation factors are difficult to measure or estimate independently but they form the basis of all pattern
based waterflood analyses. If you know the 'actual' pattern of wells then geometrical methods could be used
to estimate the allocation factors. For example, in figure 22.4 well P5 could have an allocation factor of
0.25 for each of the 4 patterns.
There are many data-driven production data based polynomial fitting methods, for example neural
networks, for both identifying connected wells as well as estimating allocation factors.
FrontSim patterns
In reality, well patterns can be far from perfectly symmetrical shapes. This is because wells are not often
drilled in perfect patterns, the geology is not homogeneous and well rates are not in proportion relative to
the pattern or that some wells are simply shut in.
Figure 22.5. Repeated 5-spot waterflood pattern but with a heterogeneous permeability field
Observe complete change in patterns. Plot on the right shows dynamic injector based patterns
Figure 22.5 shows how the introduction of channel geology to the model in figure 22.4 can completely
change the flooding patterns. This picture is more realistic than what we see in figure 22.4. However, now
the computation of well relationships and allocation factors becomes extremely complicated.
Correspondingly, allocation of injection water based on erroneous/simplistic allocation factors could be
risky.
FrontSim PFM can identify well patterns and generate allocation factors for any given geology, well
locations and rates. The pattern of connected wells in FrontSim are time-dependent. The patterns identified
by FrontSim are called 'dynamic' and those which you specify are called 'static' or 'user-defined'.
FrontSim goes one step further than alternative data driven methods that are applied to detect connected
well relationships and total allocation factors. FrontSim can further define allocation factors for individual
fluid phases. In this example, PFM indicated that 40% of the oil production from a producer could be
attributed to a particular pattern, while the allocation of water production to the same pattern is as high as
60%.
FrontSim PFM can identify patterns of producers by their connection to an injector. Such patterns are
called injector based patterns. Patterns can also be identified as a set of injectors influencing a producer.
Such patterns are called producer-based patterns. Thus, patterns in FrontSim are normally associated with a
single producer or injector. It is possible to identify producers or injectors with associated streamline
bundles that do not start or end in any other well. This commonly happens when fluids are produced from
or injected into aquifers, depletion/expansion processes and compression of fluids.
Single phase or total allocation factors produced by FrontSim can be loaded into Oilfield Manager (OFM)
using a custom interface. Use the RPTSCHED and RPTALLOC keywords to output separate files containing
allocation factor information.
Note: FrontSim supports the use of the WCONINJP keyword for user-defined injector based patterns.
Injection leakage outside the user-defined pattern can be reported using the SUMMARY keyword
WPLEAKUD.
Allocation Strategy
In FrontSim, a bundle of streamlines not only indicates which injector is connected to which producer but
also provide a wealth of other information, for example phase injection/production flow rates, bundle pore
volumes, phase volumes such as mobile oil volumes, pressures, and so on within this bundle.
Figure 22.6 shows 5 separate bundles of streamlines connecting one injector (I24) to 5 different producers.
Such information is used by the Pattern Flood Management option together with a chosen recovery strategy
to allocate new injection and production rates according.
Strategies
There are currently three strategies available to choose from.
Weighting scheme
The weighting scheme to determine the bundle allocation is based on published work by Thiele et al
(SPE84080). The following needs to be read in conjunction with the WCONPAT keyword and its data items.
The basic rate change formula is
The general formulae used to calculate the weights for each injector-producer pair i are as follows:
Beta is a bundle parameter value that relates to the control strategy (item 2), that is oil cut if reduce
recycling is chosen or rate of flooding of remaining mobile oil if recovery balancing is chosen. The
parameter values at the end of the previous timestep are used in the allocation process for the current
timestep. In order for the allocation process to be meaningful, FrontSim tries to ensure that the bundle
configurations or patterns do not significantly change across timesteps.
Beta avg is the local average over all the bundles representing the list of injector wells participating in the
optimization. This is computed by FrontSim at run time.
Beta min , Beta max defines the parameter range (item 4) within which to apply proportional weighting.
Beta min and Beta max are not directly input, instead the range is input (item 4) and Beta min and Beta max
are calculated. The computation of Beta min and Beta max is controlled by item 5. If item 5 is set to 0
(default) then Beta min and Beta max straddles Beta avg , else if item 5 is set to 1 then Beta min and Beta max
is fixed around a Beta avg = 0.5.
Alpha (item 3) can be used to control the distribution of weights. If Alpha is set to 1, then the relationship
between bundle property and the weights is linear. This means bundles are assigned weights in proportion
to the difference of the bundle parameter value from the average. If Alpha is set to 2, then the relationship
is non-linear and bundles with values close to the average bundle value will be less affected (Wi ~ 1.0)
while the outlier bundles will see higher changes.
The final injector rates are scaled to meet total injection capacity or the total injection rate from the
previous timestep.
Figure 22.7 shows a) picture on the left is for alpha=1 and b) picture on the right is for alpha=2
The above graphs showing weights for range of Beta values were computed using the following input in the
WCONPAT keyword:
• Alpha = 1, 2 (item 3)
• Range for Beta = 0.75 (item 4)
• Method to compute Beta Limits = 0 (Default for item 5)
• WMIN = -1.0 (item 6)
• WMAX = 1.0 (item 7)
• Betamin and Betamax were calculated using the default formula (item 5) for the given range.
Betaavg = 0.45 (Either average oil cut or average recovery efficiency as requested by item 2 will be
computed by FrontSim).
For weighting schemes in both graphs above, it can be observed that injectors with oil cuts or recovery
efficiency at the extremities are affected the most by the rate adjustment. Weights above 1 imply the
injection rate is increased and weights below 1 imply the injection rate will be decreased. If alpha is 1 then
the rate increase or decrease is proportional to the variance of beta around the average value. If alpha is 2
then injectors around the average beta value remain relatively unaffected as the weights are close to 1.
The effect of choosing a range < 1 can cause the worst offending injectors to shut in (for example above
weight = 0 for beta < 0.1) while capping the injection rate for the best injectors.
There is considerable flexibility in designing a specific weighting scheme for a specific region. The
WCONPAT keyword accepts multiple record entries such that multiple 'lists' of injectors with different
weighting strategies can be operated upon simultaneously. It is also where the feature is different from a
regular optimization problem as engineering is required to produce a strategy that gives the maximum
benefit for a particular reservoir.
If Beta is changing rapidly at any time during the simulation then it may be advisable to use shorter
timesteps for the optimization exercise to produce quality results.
Debug output that details the calculations can be produced by setting item 51 in OPTIONFS to = 1.
Aquifers
Bundle of streamlines connecting an aquifer to a producer is automatically accounted for in the above
strategy. However, bundles of streamlines connecting an injector to a aquifer represents how much water or
oil could be lost to the aquifer. The injection to the aquifer is cut back arbitrarily according to your
specification (item 10). The amount of injection cut back can be reallocated among other injectors or the
overall injection reduced (item 11).
Multi-zone waterfloods
FrontSim PFM supports multi-zone waterflooding. This requires that zones be identified by lumping
simulation layers together. The COMPLUMP keyword is used to describe zone completions in wells. To
activate multi-zone waterflood in FrontSim the switch for multi-zone in WCONPAT must be turned ON.
When multi-zone is selected, all allocation calculation will now be done at the completion level for the
injectors as opposed to well level as is the default algorithm. To account for the allocation at zone level the
target for each completion is set and solved as separate entities. To compute a consistent BHP for the wells
an extra constant pressure drop is calculated for each of the completions and added to the well equation for
each connection. See the chapter on well inflow for more.
The 2008.x versions of FrontSim cannot apply the completion target that the PFM algorithm calculates. In
these versions, the rates are accumulated to the well level even though the algorithm works on the
completion level. You can set backward compatibility using FrontSim 2009.1. See OPTIONFS parameter
61.
Also, an option is available to apply the targets at completion level for the producers connected to the
injectors affected by the PFM algorithm. The default in the PFM algorithm is to accumulate the completion
targets for the producers to well level. See OPTIONFS parameter 61.
Economic limits can be set at the completion level with workover action to shut in connections for
producers (CECON). Injection wells can be worked over on the basis of completion injection efficiency
when the CECONINJ keyword is used. A separate set of summary vectors at the completion level can be
produced, for example, COPRL, CWPRL. Special summary vectors at the completion/zone level for pattern
flood management can also be reported (See tables to in the FrontSim User Guide).
FrontSim PFM also supports zone based rate allocations to directly honor lumped connections. Zone rate
based allocations to PFM wells that spans multiple layered geologic structure, where rate allocations can be
different for lumped connections to achieve good oil recovery, Through a new parameter in the WCONPAT
keyword you can decide whether to use zone based rate allocation for each connections, or to use
accumulated rates for the well.
challenging task and in the current version only limited functionality with respect to constraining the PFM
allocation is available.
Note: It is recommended, wherever possible, to start PFM with none or few well and group constraints/
limits and simple well schedules. Complex scheduling and application of intricate well management
routines together with PFM can be challenging. Contact the help desk before proceeding.
Note: The control keywords included in the . PFM_SCHED file are only at the well control level. No group
control keywords are supported.
All wells are by default set to control at RESV target conditions but this can be changed to RATE injector
target and LRAT target for producers by using item 66 in OPTIONFS.
23
Solvent model
The solvent model in FrontSim is based on the ECLIPSE solvent model as described in the ECLIPSE
x ECLIPSE 100 Technical Description. The implementation in FrontSim is based on the streamline approach and some
ECLIPSE 300 differences with ECLIPSE are therefore expected.
x FRONTSIM
This chapter describes a four-component extension of the black-oil model. The aim of the extension is to
enable modeling of reservoir recovery mechanisms in which injected fluids are miscible with the
hydrocarbons in the reservoir.
An injected fluid sets up a miscible displacement if there is no phase boundary or interface between the
injected fluid and the reservoir oil. A miscible displacement has the advantage over immiscible
displacements such as water flooding, of enabling very high recoveries. An area swept by a miscible fluid
typically leaves a very small residual oil saturation.
In miscible gas injection processes, total displacement of the oil in the swept regions does not guarantee a
high overall recovery efficiency. This is because the high adverse mobility ratio inherent in gas injection
means that the flow is unstable and leads to the growth of viscous fingers that leave regions of by-passed
oil in the reservoir at gas breakthrough. Gravitational fingering may also be present as a result of the large
density differences between the injected gas and the in-place oil. The flow is unstable to finger formation at
mobility ratios greater than unity, or in places where a dense fluid overlies a less dense fluid, and the
fingers grow rapidly from small fluctuations in reservoir homogeneity. Reservoir simulation models must
account for the growth of fingers whenever they might arise in the reservoir.
A further feature of miscible fluid displacement to be included in a simulation model is the mixing of the
miscible components. Component mixing occurs on a microscopic scale and results from molecular
diffusion and fluid velocity variations within the porous medium on the scale of the pore size. The mixing
process is represented by a diffusion term in the component equations. Correct treatment of this mixing
effect within the simulation model is important since the mixing term exerts a considerable damping effect
on the growth of viscous and gravity fingers
The simulation of incompressible miscible displacement was initially based on a direct solution of the
convection-diffusion equations for the local concentration of each of the miscible components. However,
such models are unreliable unless the fine scale structure of the fingers can be resolved, otherwise mixing
cell effects will dampen the finger growth rates and produce optimistic oil recovery forecasts. The
numerical diffusion inherent in finite difference models also masks the true mixing of the miscible
components unless the grid is sufficiently fine. The number of grid cells required for accurate field-scale
study of miscible displacement is unacceptably high and the cost of computing time prohibitive.
Solvent model
173
FrontSim Technical Description
Implementation
The model is optionally a four-component system consisting of water, oil, reservoir gas and an injected
solvent, or a three-component system of water, oil and solvent gas or an oil/solvent system.
In regions of the reservoir containing only solvent and reservoir oil (possibly containing dissolved gas), the
solvent and reservoir oil components are assumed to be miscible in all proportions and consequently only
one hydrocarbon phase exists in the reservoir. The relative permeability requirements of the model are
those for a two-phase system (water/hydrocarbon).
In regions of the reservoir containing only oil and reservoir gas, the gas and oil components will be
immiscible and will behave in a traditional black oil manner. In regions containing both dry gas and
solvent, an intermediate behavior is assumed to occur. The modeling of the immiscible/miscible transition
is described in subsequent sections.
The Todd-Longstaff model is an empirical treatment of the effects of physical dispersion between the
miscible components in the hydrocarbon phase. The model introduces an empirical parameter, ω , whose
value lies between 0 and 1, to represent the size of the dispersed zone in each grid cell. The value of ω thus
controls the degree of fluid mixing within each grid cell. A value of ω = 1 models the case where the size
of the dispersed zone is much greater than a typical grid cell size and the hydrocarbon components can be
considered to be fully mixed in each cell. In this case the miscible components have the same value for the
viscosity and density, as given by the appropriate mixing rule formulae. A value of ω = 0 models the effect
of a negligibly thin dispersed zone between the gas and oil components, and the miscible components
should then have the viscosity and density values of the pure components. In practical applications an
intermediate value of ω would be needed to model incomplete mixing of the miscible components. By
default the viscosity and density values will be calculated using the same mixing parameter, ω . However, if
the mixing parameter is being used as a history matching parameter, it is sometimes useful to specify two
separate mixing parameters, one for the viscosities and one for the densities.
Applications
There is a wide variety of secondary and tertiary recovery schemes in which the aim is to enhance the
reservoir sweep by using a miscible injection fluid.
Typically, the miscible injection fluid is expensive compared with traditional flooding fluids, such as dry
gas and water. Miscible fluids are often referred to as ‘solvents’; examples of solvent schemes are listed
below:
• High pressure dry gas processes, in which mass transfer effects at the gas-oil contact generate miscible
flow conditions between the gas and the oil.
• A solvent such as LPG or propane may be injected as a ‘slug’ to be followed by an extended period of
lean gas injection. The slug fluid is miscible with both the gas and oil, and the success of the method
depends upon maintenance of both the reservoir pressure and the solvent slug itself.
• Certain non-hydrocarbon gases such as carbon dioxide produce miscible displacement of oil at
pressures above a threshold value.
• All-liquid miscible displacements by fluids such as alcohol, normally injected as a slug between the
in-place oil and the injected chase water.
In many of the schemes, the cost of the solvent is such that the recovery scheme needs to be ‘engineered’ to
allow enough solvent to be injected to increase the total oil recovery while keeping the solvent costs low
enough to make the project economic.
Solvent model
174
FrontSim Technical Description
In applications where the reservoir pressure falls below the bubble point, and in schemes where a solvent
slug is chased by a lean gas flood, there is a requirement to model four components within the reservoir
(water, oil, solvent and lean gas). The Solvent Model provides a simple method of modeling these recovery
mechanisms.
Model formulation
The solvent model is an extension of the standard three-phase, three-component model (water, oil, and gas),
whereby an extra conservation equation is solved for the solvent. Below we detail the modeling of the
different flow parts and the mixing rules used which are based on the empirical treatment suggested by M.
Todd and W. Longstaff in the appendix of [Ref. 40].
When two gas components are present, the assumption is made that the total relative permeability of the
gas phase is a function of the total gas saturation,
krgt = krg (Sg + Ss ) Eq. 23.1
This total relative permeability is obtained from the SGFN keyword. Then the relative permeability of each
gas component is taken as a function of the fraction of each gas component within the gas phase as:
Fraction of solvent:
Ss
Fsol = Eq. 23.2
Sg + Ss
Typically the functions krfs = krs / krgt and krfg = krg / krgt (Equation 23.4) are ‘straight line’ functions such
that
k rfs (0.0) = 0.0 k rfg (0.0) = 0.0
k rfs (1.0) = 1.0 k rfg (1.0) = 1.0
However, FrontSim allows you to specify these gas-solvent functions using the SSFN keyword.
Solvent model
175
FrontSim Technical Description
Ss + Sg
k rgt = k rn ( S n ) Eq. 23.6
Sn
where
k rn ( S n ) is the relative permeability of hydrocarbon to water obtained from the SOF2 keyword.
Then, the gas and solvent component relative permeability are computed from krgt as above, equations 23.2
- 23.4. It is possible to modify the straight line miscible relative permeabilities, using the MSFN keyword to
supply multipliers Mkro and Mkrg . The oil and total gas relative permeabilities will then be:
So
k ro = M kro ( ) (
Sn
k rn S n ) Eq. 23.7
Ss + Sg
k rgt = M krg ( ) Sn
k rn ( S n ) Eq. 23.8
Note that saturations end-points are taken into account in the previous equations as explained below.
where
Solvent model
176
FrontSim Technical Description
Sorm is the miscible residual oil saturation (this is taken from SORWMIS, or defaulted to zero if
SORWMIS is not present)
Sori is the immiscible residual oil saturation (this is taken from Sogcr in the SOF3 table, or SOGCR
if entered)
where
Ssgrm is the miscible residual solvent + gas saturation (taken from SGCWMIS or defaulted to zero)
Ssgri is the immiscible residual solvent + gas saturation (taken from Sgcr in the SGFN table, or
SGCR if entered)
2. Calculate the miscible and immiscible relative permeabilities at the scaled saturations using the new
end points. Then the relative permeability is again an interpolation between the two using the
miscibility function:
k r = k rm M + k ri (1-M ) Eq. 23.11
where
krm the scaled miscible relative permeability
The formulae above, equations 23.5 to 23.8, are modified to take into account these new saturation
end points, so that:
S g + S s -S gc
k rgt = ( S n -S gc - S or ) k rn ( S n ) Eq. 23.12
S o -S or
k ro = ( S n -S gc - S or )k rn ( S n ) Eq. 23.13
Modifying the straight line miscible functions using the MSFN keyword will result in
S g + S s -S gc
k rgt = M krg ( S n -S gc - S or ) k rn ( S n ) Eq. 23.14
S o -S or
k ro = M kro ( S n -S gc - S or )k rn ( S n ) Eq. 23.15
where the Mkro and Mkrg functions are supplied with the MSFN keyword.
The saturations supplied in this keyword are normalized and honor the end-point supplied in the
SORWMIS and SGCWMIS keywords. The critical oil to water saturation Sor is entered with the
SORWMIS keyword and the critical oil to gas saturation Sgc is supplied with the SGCWMIS keyword as
Solvent model
177
FrontSim Technical Description
a function of the water saturation and weighted as appropriate as explained above (1). See also the
"Effect of water saturation".
Pressure miscibility is not taken into account when calculating capillary pressure in FrontSim.
For completeness, a corresponding mobile gas saturation has been defined in which a critical gas saturation
( S gc = S gc ( S w )) is specified for the miscible flood and input with the SGCWMIS keyword. Then the
mobile gas saturation is taken as:
The mobile oil and gas saturations S o*, S g* are used to determine the miscible component relative
permeabilities and the effective viscosities and densities in each grid cell. When End-point Scaling is used
in conjunction with SORWMIS, then Sorm is replaced by the scaled value of the critical hydrocarbon to
water saturation taken from the SOF2 table (or keyword SOGCR if entered). When endpoint scaling is used
in conjunction with SGCWMIS, then Ssgrm is replaced by the scaled value of SGCR.
Viscosity model
The full three hydrocarbon components mixing calculation can be thought of as two separate miscible
displacements: gas/solvent and solvent/oil. The effective viscosities of the hydrocarbon components follow
the Todd and Longstaff model:
Solvent model
178
FrontSim Technical Description
ω
μo eff = μ o1-ω ⋅ μ mos
where
The mixture viscosities μmos , μmsg and μm are defined using the 1/4th-power fluid mixing rule, as follows:
μo μs
μmos = 4
So Ss Eq. 23.20
( Sos
μs 1/4 +
Sos
μo1/4 )
μo μs μg
μm = 4
So Ss Sg Eq. 23.21
( Sn
μs 1/4μg1/4 +
Sn
μo1/4μg1/4 +
Sn
μo1/4μs 1/4 )
μs μg
μmsg = 4
Ss Sg Eq. 23.22
( Ssg
μg1/4 +
Ssg
μs 1/4 )
where Sn = So + Ss + Sg , Sos = So + Ss and S sg = S s + S g
These effective viscosities are also used to compute the effective densities as detailed below.
Density model
The treatment of effective oil, gas and solvent densities is based on the fourth power law for the effective
viscosities above. By default, the density calculation can be based on the same mixing parameter as the
viscosity, however a separate mixing parameter may be specified for the effective density calculation if
required.
The densities are computed by the following procedure. First, the effective viscosities are calculated using
equations 23.20 to 23.22 above. The value of each effective component viscosity is then used in turn in
equations 23.20 to 23.22 to yield an effective saturation fraction to be used in oil, gas and solvent density
calculations as:
So μ o1/4 μ o1/4
( eff - μ s
1/4
)
( )
Sn oe
=
μ o1/4
eff
1/4 1/4
( μ o - μ s )
Eq. 23.23
Solvent model
179
FrontSim Technical Description
Sg μ s 1/4 μ g1/4 - μ g
( 1/4
)
( )
Sn ge
=
μ g1/4
eff (μs 1/4
−
eff
μ g1/4 )
Eq. 23.24
μo1/4μs 1/4μg1/4
Ss
( ) =
μo1/4μg1/4 -
( 1/4
μs eff )
+ μo1/4 μg1/4-μs 1/4 Sse
( ) Eq. 23.25
Sn se μs 1/4 μo1/4-μg1/4
( )
where
Ss
Sse =
Sn
The effective oil, gas and solvent densities (ρo eff, ρg eff, ρs eff) are now computed from the effective
saturation fractions in equations 23.23 to 23.25, and the pure component densities (ρo , ρg , ρs ) using the
following formulae
So So
ρo eff = ρo ( )
Sn oe
+ ρs 1- ( ) Sn oe
Eq. 23.26
Sg Sg
ρg eff = ρg ( )
Sn ge
+ ρs 1- ( ) Sn ge
Ss Ss
ρs eff = ρ s S se + ρ o ( ) Sn se
+ ρ g 1- ( )
Sn se
- S se
Note that equations 23.23 to 23.25 are singular for unit mobility ratio displacements. In that case, for
example where μo = μg , the effective densities are computed as follows. First, a mixture density is defined
as:
So Sg Ss
ρm = ρo ( ) ( ) ( )
Sn
+ ρg
Sn
+ ρs
Sn
Eq. 23.27
Then
ρo eff = (1-ω )ρ o + ωρ m Eq. 23.28
ρs eff = (1-ω )ρ s + ωρ m
Where ω is the Todd and Longstaff parameter input with the TLMIXPAR keyword.
Solvent model
180
FrontSim Technical Description
1 1 1
= M + 1-M p )
Bg B gm p B gi ( Eq. 23.30
where
Mp is the pressure dependent miscibility function entered using the PMISC keyword.
Note that the above equation is different to the one used for ECLIPSE due to the difference in the way that
these parameters are stored in tables and interpolated in the simulators. ECLIPSE uses the reciprocal of
viscosity multiplied by the volume factor, however FrontSim interpolates on the viscosity.
Note that for the relative permeability the interpolation can be a combination of both MISC and PMISC
keywords.
Solvent model
181
FrontSim Technical Description
If SOLVENT is specified, then the four-component model is used. The SOLVENT keyword should only be
used with the other three components/phases (water, oil, gas) present.
If the solvent model is run in immiscible mode, the mixing is not performed, and the four components take
their pure PVT properties. The relative permeabilities are calculated as for a traditional black oil case, with
the solvent and gas taking their respective fraction of the total ‘gas’ relative permeability.
PVT data
This consists of the following keywords:
PVDS Pressure dependent data for each PVT region (analogous to PVDG)
These PVT data can be used with the mixing parameter ω which is input in the PROPS section with the
keyword TLMIXPAR as described in the "Viscosity model" and "Density model". If the grid contains cells
whose MISCNUM region is zero, this mixing parameter is automatically set to zero in those cells. The
miscibility region numbers are specified using keyword MISCNUM in the REGIONS section. The first
argument NTMISC of the keyword MISCIBLE sets the maximum number of regions which can be defined
(not used by FrontSim).
SOF2 Three-component or miscible case: cases with MISCNUM=0 in at least one cell, SOF2 gives krog.
Four-component case: SOF2 gives krhc (kr of the miscible hydrocarbon phase to water).
SOF3 Three-component cases: Three-phase cases with MISCNUM=0 in at least one cell
In four-component cases, the miscibility function needs to be defined to control the transition from miscible
to immiscible relative permeabilities. This is done using the MISC keyword in the PROPS section.
The miscible solvent-oil relative permeability curves can modified using the MSFN keyword. If the MSFN
keyword is omitted, straight line relative permeability curves will be used.
MISC Tables of the miscibility function versus local solvent fraction (four-component)
Solvent model
182
FrontSim Technical Description
MISC is required for all four-component runs, but PMISC is optional. If PMISC is not specified, the
solvent/oil displacement is assumed to be miscible at all pressures.
Summary of keywords
RUNSPEC section
The keywords are:
Keyword Description
SOLVENT Activates the separate solvent component.
MISCIBLE Initiates the mixing calculation.
Table 23.1: RUNSPEC section
PROPS section
The keywords are:
Keyword Description
MISC Solvent fraction dependent miscibility tables.
MSFN Miscible gas/oil saturation functions.
PMISC Pressure dependent miscibility tables.
PVDS Pressure dependent PVT properties for solvent gas.
SDENSITY Solvent density at surface conditions.
SGCWMIS Miscible critical gas saturation tables versus water saturation.
SORWMIS Miscible residual oil saturation tables versus water saturation.
SSFN Gas/solvent relative permeability functions.
TLMIXPAR Todd-Longstaff mixing parameter.
Table 23.2: PROPS section
REGIONS section
The keywords are:
Solvent model
183
FrontSim Technical Description
Keyword Description
MISCNUM Miscibility region numbers.
Table 23.3: REGIONS section
SOLUTION section
The keywords are:
Keyword Description
SSOL Initial solvent saturations.
Table 23.4: SOLUTION section
SUMMARY section
The following keywords control the output of data specific to the Solvent Model.
Note: As for ECLIPSE, FrontSim reports the field, group and well gas rates and totals for the total gas
phase, including the solvent gas. The total gas phase is also used when calculating the GOR. This was not
the case for version 2012.1.
Solvent model
184
FrontSim Technical Description
SCHEDULE section
The keywords are:
keyword Description
WSOLVENT Sets solvent concentrations for gas injection wells.
WCONPATS Manage the solvent allocation algorithm.
ALLPROPS SOL_DEN, SOL_VISC, 1OVERBS and SOLKR are output if the SOLVENT option is
active.
Table 23.7: SCHEDULE section
Example problem
RUNSPEC
RUNSPEC
TITLE
SPE Fifth Comparison Test Problem - Scenario 2 - 4 Phase
DIMENS
7 7 3 /
OIL
WATER
GAS
SOLVENT
FIELD
MISCIBLE
/
START
1 'JAN' 1986 /
GRID
GRID ==============================================================
DEPTHZ
64*8325 /
DXV
7*500 /
DYV
7*500 /
DZV
20 30 50 /
EQUALS
'PORO' 0.3 /
'PERMX' 500 /
'PERMZ' 50 /
'PERMX' 50 1 7 1 7 2 2 /
Solvent model
185
FrontSim Technical Description
'PERMZ' 50 /
'PERMX' 200 1 7 1 7 3 3 /
'PERMZ' 25 /
/
COPY
'PERMX' 'PERMY' 1 7 1 7 1 3 /
/
PROPS
PROPS =============================================================
SWFN
0.20 0.0 45.00
0.2899 0.0022 19.03
0.3778 0.0180 10.07
0.4667 0.0607 4.90
0.5556 0.1438 1.80
0.6444 0.2809 0.50
0.7000 0.4089 0.05
0.7333 0.4855 0.01
0.8222 0.7709 0.00
0.9111 1.0000 0.00
1.0000 1.0000 0.00 /
SGFN
0.0000 0.0 0.0
0.0500 0.0 0.0
0.0889 0.001 0.0
0.1778 0.01 0.0
0.2667 0.03 0.001
0.3556 0.05 0.001
0.4444 0.1 0.03
0.5333 0.2 0.8
0.6222 0.35 3.0
0.6500 0.39 4.0
0.7111 0.56 8.0
0.8000 1.0 30.0 /
SOF2
0.0 0.0
0.0889 0.0
0.1778 0.0
0.2667 0.0
0.3000 0.0
0.3556 0.0123
0.4444 0.0835
0.5333 0.2178
0.6222 0.4153
0.7101 0.6769
0.8000 1.0000 /
SOF3
-- KROW KROG
0.0 0.0 0.0
0.0889 0.0 0.0
0.15 0.0 0.0
0.1778 0.0 0.0110
0.2667 0.0 0.0370
0.3000 0.0 0.05
0.3556 0.0123 0.0878
0.4444 0.0835 0.1715
0.5333 0.2178 0.2963
0.6222 0.4153 0.4705
0.7101 0.6769 0.7023
0.75 0.7 0.8800
0.8000 1.0000 1.0000 /
SSFN
-- KRG* KRS*
0 0.0 0.0
1.0 1.0 1.0
Solvent model
186
FrontSim Technical Description
MISC
0.0 0.0
0.1 1.0
1.0 1.0 /
PVTW
4000.0 1.000 3.3D-6 0.70 0 /
ROCK
4000.0 5.0D-6 /
DENSITY
38.53 62.40 0.06867 /
SDENSITY
0.06243 /
TLMIXPAR
0.7 /
PVDG
14.7 211.4160 0.0107
500.0 5.9242 0.0127
1000.0 2.8506 0.0134
1200.0 2.3441 0.0138
1500.0 1.8457 0.0145
1800.0 1.5202 0.0153
2000.0 1.3602 0.0159
2302.3 1.1751 0.0170
2500.0 1.1025 0.0177
3000.0 0.9852 0.0195
3500.0 0.9116 0.0214
4000.0 0.8621 0.0232
4500.0 0.8224 0.0250
4800.0 0.8032 0.0261 /
PVDS
14.7 223.2140 0.011
500.0 5.6022 0.012
1000.0 2.5310 0.013
1200.0 2.0354 0.014
1500.0 1.5593 0.016
1800.0 1.2657 0.018
2000.0 1.1296 0.019
2302.3 0.9803 0.022
2500.0 0.9085 0.023
3000.0 0.7807 0.027
3500.0 0.6994 0.031
4000.0 0.6430 0.034
4500.0 0.6017 0.037
4800.0 0.5817 0.038 /
PVTO
0.0000 14.7 1.0348 0.310 /
0.1176 500.0 1.1017 0.295 /
0.2226 1000.0 1.1478 0.274 /
0.2677 1200.0 1.1677 0.264 /
0.3414 1500.0 1.1997 0.249 /
0.4215 1800.0 1.2350 0.234 /
0.4790 2000.0 1.2600 0.224 /
0.5728 2302.3 1.3010 0.208
3302.3 1.2988 0.235
4302.3 1.2966 0.260 /
0.6341 2500.0 1.3278 0.200 /
0.7893 3000.0 1.3956 0.187 /
0.9444 3500.0 1.4634 0.175 /
1.0995 4000.0 1.5312 0.167 /
1.2547 4500.0 1.5991 0.159 /
1.3478 4800.0 1.6398 0.155
5500.0 1.6305 0.168 /
/
Solvent model
187
FrontSim Technical Description
SOLUTION
SOLUTION ============================================================
EQUIL
8400 4000 9900 0 1000 0 1 0 0 /
RSVD
8200 0.5728
8500 0.5728 /
SUMMARY
SUMMARY ============================================================
FOPR
FNPR
FGPR
SCHEDULE
SCHEDULE ============================================================
WELSPECS
'PRODUCER' 'G' 7 7 8400 'OIL' /
'INJ-G ' 'G' 1 1 8335 'GAS' /
'INJ-W ' 'G' 1 1 8335 'WAT' /
/
COMPDAT
'PRODUCER' 7 7 3 3 'OPEN' 0 -1 0.5 10000.0 /
'INJ-G ' 1 1 1 1 'OPEN' 0 -1 0.5 10000.0 /
'INJ-W ' 1 1 1 1 'OPEN' 0 -1 0.5 10000.0 /
/
WCONPROD
'PRODUCER' 'OPEN' 'ORAT' 12000 4* 3000 /
/
WECON
'PRODUCER' 1* 1* 5.0 10.0 1* 'WELL' 'YES' /
/
WCONINJE
'INJ-W' 'WAT' 'OPEN' 'RATE' 45000 1* 1* 1* 4500 /
'INJ-G' 'GAS' 'OPEN' 'RATE' 20000 1* 1* 1* 4500 /
/
WSOLVENT
'INJ-G' 1.0 /
/
MAXSTEP
5/
TUNEFS1D
1* 2* 2* 3* 10 100 1.0 1* /
-- YEAR 1 ------------------------------------------------------
INCLUDE
'CASE2.ONEYEAR' /
-- YEAR 2 ------------------------------------------------------
INCLUDE
'CASE2.ONEYEAR' /
END
Solvent model
188
FrontSim Technical Description
Included file
-- INCLUDED FILE: CASE2.ONEYEAR
-- FIRST 3 MONTHS ------------------------------------------------
--*WATER*--
WELOPEN
'INJ-G' 'SHUT' /
'INJ-W' 'OPEN'/
/
TSTEP
91.25
/
WELOPEN
'INJ-W' 'SHUT' /
'INJ-G' 'OPEN' /
/
TSTEP
91.25
/
WELOPEN
'INJ-G' 'SHUT' /
'INJ-W' 'OPEN' /
/
TSTEP
91.25
/
WELOPEN
'INJ-W' 'SHUT' /
'INJ-G' 'OPEN' /
/
TSTEP
91.25
/
-----------------------------------------------------------------
Solvent model
189
FrontSim Technical Description
the serial filling up of solvent into injector patterns followed by a solvent allocation strategy where the
injectors are ranked based on user-selected control criteria.
Sors - is the minimum residual oil saturation after solvent flood and current pressure.
• WPVIEFFS
is a measure of how efficient the solvent injected into the pattern mobilizes the oil due to miscibility.
The calculation uses the change of the Sor over the timestep relative to the throughput. Throughput is
calculated as the average of the injection and production voidage rates.
∂
Σ (PV ⋅ (Sorw - Sor))
∂ t ss
VIEFFS =
Σ Qr
sl
where M is the miscibility fraction at current pressure and solvent saturation and Vo is the oil volume.
• WPMOIPS
is a measure on how much oil can theoretically be mobilized by miscible injection in the pattern.
MOIPS = Σ ( PV ⋅ bo ⋅ ( Sor - Sors ))
ss
where bo is the inverse oil formation volume factor and PV the pore volume.
• WPMOPOTS
Solvent model
190
FrontSim Technical Description
where PV is the pore volume and bo is the inverse oil formation volume factor.
Note: The volumetric calculations for the streamlines can be limited by the TOF (time-of-flight) to the
producer along the streamline by setting a value for the maximum TOF in the WCONPATS keyword. Note
that this will impact all the solvent based pattern quantities that include a volumetric calculation along the
streamlines. Figure 23.1 shows an example of the different streamline volumes used for these calculations
when the maximum TOF was defaulted (left) and limited to 3650 days (right).
Figure 23.1. Effect of maximum TOF settings on streamline volume based calculations
where
WNIT is the total injected solvent for the injector until current time
Bs is the solvent formation volume factor calculated at the well block pressure
WPHCPV is the injector pattern hydrocarbon pore volume calculated by the streamlines for previous
timestep.
Solvent model
191
FrontSim Technical Description
Note:
Note that WPHCPV varies over time due to changes in streamline pattern and will affect the calculation
of the slug size. Slug size can decrease if pattern volume is increasing.
You can select the control criteria used. Current options are:
• SINJEFF - Solvent injection efficiency. See the definition of WPVIEFFS in "Solvent pattern
quantities".
• SRECOV - Potential volume of extra oil that can be recovered by injecting the miscible solvent
into the injector pattern. See definition of WPMOPOTS in "Solvent pattern quantities".
All wells with a slug size less than the user-defined slug size limit for the fill-up phase are ranked first
and in same sequence as they were listed in the WLIST definition.
The remaining wells with a slug size larger than the slug size limit are ranked according to their
control criteria value.
2. Distribute the available solvent
The user-defined solvent rate capacity is distributed among the injectors. The injection rates are not
changed by this algorithm, only the target injection phase. You can directly set rates or they can be
calculated as part of PFM or group control. These rates are converted to the phase rates (solvent, gas
or water) that get allocated by this algorithm.
The distribution of the solvent is done in sequence down the ranked list as long as there is solvent
available (the solvent capacity).
The injectors that do not get solvent allocated will inject the other phase (reservoir gas or water) which
you specify in the WCONPATS keyword.
The last well in the list that gets allocated solvent might not get sufficient solvent for the full timestep.
If so, for the rest of the timestep it will then inject the other phase instead of solvent.
An example of how the injectors are ranked and allocated solvent is shown in table 23.8. The WLIST
keyword identifies that the injectors prioritized at the wells in the following sequence: 14, 15, 16, 17.
The minimum slug size was set to 0.10. Wells 14 and 17 were ranked first due the slug size being less
than the minimum slug size, with well 14 being prioritized before 17. Well 15 has higher value for the
control criteria and is ranked before 16. The solvent is allocated from the top of the list.
You can change the solvent capacity for each report timestep. For instance, a process where solvent is
injected followed by a period of water injection can be obtained by setting the solvent capacity to a
very low value (or 0.0) during the water injection period.
Rank Well Slug size Criteria value Rate (RESV) Solvent conc.
1 14 0.0428 1.0000 8.91 1.000
2 17 0.0578 0.8580 24.95 1.000
3 15 0.1717 0.9729 34.59 0.085
4 16 0.1526 0.6117 6.15 0.000
Table 23.8: Example ranking and solvent allocation
Solvent model
192
FrontSim Technical Description
Solvent model
193
FrontSim Technical Description
Solvent model
194
FrontSim Technical Description
WELSPECS
P1 A 8 8 1* LIQ 3* 1* 3* /
P2 A 24 8 1* LIQ 3* 1* 3* /
P3 A 40 8 1* LIQ 3* 1* 3* /
P4 A 8 24 1* LIQ 3* 1* 3* /
P5 A 24 24 1* LIQ 3* 1* 3* /
P6 A 40 24 1* LIQ 3* 1* 3* /
P7 A 8 40 1* LIQ 3* 1* 3* /
P8 A 24 40 1* LIQ 3* 1* 3* /
P9 A 40 40 1* LIQ 3* 1* 3* /
I1 INJ 16 16 1* WATER 3* 1* 3* /
I2 INJ 32 16 1* WATER 3* 1* 3* /
I3 INJ 16 32 1* WATER 3* 1* 3* /
I4 INJ 32 32 1* WATER 3* 1* 3* /
/
COMPDAT
P1 8 8 1 1 2* 1* 0.75 /
P2 24 8 1 1 2* 1* 0.75 /
P3 40 8 1 1 2* 1* 0.75 / -- horizontal well section
P3 40 7 1 1 2* 1* 0.75 /
P4 8 24 1 1 2* 1* 0.75 /
P5 24 24 1 1 2* 1* 0.75 /
P6 40 24 1 1 2* 1* 0.75 /
P7 8 40 1 1 2* 1* 0.75 /
P8 24 40 1 1 2* 1* 0.75 /
P9 40 40 1 1 2* 1* 0.75 / -- horizontal well section
P9 39 40 1 1 2* 1* 0.75 /
P9 38 40 1 1 2* 1* 0.75 /
P9 37 40 1 1 2* 1* 0.75 /
I1 16 16 1 1 2* 1* 0.75 /
I2 32 16 1 1 2* 1* 0.75 /
I3 16 32 1 1 2* 1* 0.75 /
I4 32 32 1 1 2* 1* 0.75 /
/
WLIST
'*PRI_PROD' NEW P1 P2 P4 P5 P6 /
'*SEC_PROD' NEW P3 P7 P8 P9 /
'*INJ' NEW I* /
/
GCONPROD
-- Cmode oil wat gas Liq Work 6* Resv
FIELD RESV 1* 1* 1* 1* 1* 6* 200.0 /
/
WCONPROD
P* OPEN GRUP 1* 1* 1* 1* 1* 700.0 /
/
WECON
P* 1.0 1* 0.97 1* 1* WELL /
/
TSTEP
1.0 6*91.25 / -- 1.5 years of depletion
GCONINJE
INJ WATER RESV 1* 400.0 /
/
WCONINJE
I* WATER OPEN GRUP 1* 1* 10000.0 /
Solvent model
195
FrontSim Technical Description
/
TSTEP
1.0 4*91.25 / -- 1 year of fillup injecting at 2 times the total production
GCONPROD
-- Cmode oil wat gas Liq Work 6* Resv
FIELD RESV 1* 1* 1* 1* 1* 6* 400.0 /
/
TSTEP
1.0 28*91.25 / -- 6.5 years of incline + decline
-- End of history
WCONPAT
-- WELLS CITERIA ALPHA RANGE TYPE MIN. MAX Res Voidage Aquifer Aquifer Injection
-- WT WT erved Fraction Cutback Realloc Capacity
*INJ RECOV 1.0 1.0 0 -0.1 0.1 1* 1* 1* 0 400 /
/
TSTEP
60*91.25 /
TSTEP
60*91.25 /
WCONPAT
-- WELLS CITERIA ALPHA RANGE TYPE MIN. MAX Res Voidage Aquifer Aquifer Injection
-- WT WT erved Fraction Cutback Realloc Capacity
*INJ RECOV 1.0 1.0 0 -0.1 0.1 1* 1* 1* 0 400 /
/
-- Inject Solvent / Gas
WCONPATS
*INJ SRECOV 400 G 36500.0 0.12 /
/
TSTEP
10*90 /
WCONPATS
-- *INJ SRECOV 200 W 36500.0 0.12 /
*INJ SINJEFF 200 W 36500.0 0.12 /
/
TSTEP
10*90 /
-- Inject reservoir gas
WCONPATS
*INJ SINJEFF 0.0 W 36500.0 0.12 /
/
TSTEP
40*90 /
WCONPAT
-- WELLS CITERIA ALPHA RANGE TYPE MIN. MAX Res Voidage Aquifer Aquifer Injection
-- WT WT erved Fraction Cutback Realloc Capacity
*INJ RECOV 1.0 1.0 0 -0.1 0.1 1* 1* 1* 0 400 /
Solvent model
196
FrontSim Technical Description
/
-- Back on water only
WCONPATS
*INJ SINJEFF 0.0 W 36500.0 0.12 /
/
TSTEP
100*60 /
END
Solvent model
197
FrontSim Technical Description
24
Three-phase saturation solver
Unlike the two-phase case, it is not currently possible to solve streamlines by front tracking when three
ECLIPSE 100 phases are present. In this case, the streamlines are converted to one-dimensional finite volume models and
ECLIPSE 300 solved using standard finite volume simulation techniques.
x FRONTSIM
The one-dimensional streamlines are then solved by one of four techniques that you can specify, and the
results mapped back onto the grid.
Operator splitting is used to incorporate gravity segregation effects. After the streamline solution is mapped
to the underlying grid, we construct vertical gravity streamlines which are also solved as a series of one-
dimensional finite volume models.
Streamline solution
Refer to "1D grids", which describes how the 1D finite difference grid is constructed from a streamline.
Having constructed these one-dimensional models we then solve them using standard finite volume
techniques. There are four choices available; these are controlled using the TUNEFS1D keyword. The four
options are
• IMPLICIT
• AIM
• IMPES
• EXPLICIT.
The first three of these use, essentially, a cut-down version of ECLIPSE 300 to solve the streamlines. In
each of these cases streamlines are bundled together in groups containing approximately 1000 cells
(although you can control this), with each streamline separated from the next by a zero transmissibility, “no
flow” barrier. They are then solved using a standard finite volume technique. The solutions are solved
using mini timestepping, that is to say intermediate timesteps are used to solve the streamlines, and the
solution is marched forward to the end of the timestep used in FrontSim. During each mini timestep,
pressure is recalculated along the streamline as well as the saturations or molar densities. This means that at
the end of the timestep we may end up with a pressure along the streamline, which is different from that
used to calculate the original streamline. At the end of the timestep, the solution is mapped back to the
original user grid.
The parameters IMPLICIT, IMPES and AIM indicate the method of solving these one-dimensional
streamlines. They respectively represent a fully implicit solution, an IMPES (IMplicit Pressure, Explicit
Saturation), and an adaptive implicit solution of each mini timestep. The limits on the length of the mini
timestep and the number of Newton iterations per mini timestep are controlled using the TUNEFS1D
keyword.
IMPES
The IMPES (IMplicit Pressures Explicit Saturations) residual is similar to the fully-implicit residual, except
that all flow and well terms are computed using saturations (or Rs , Rv ) in a black oil run; or molar densities
in a compositional run at the beginning of each timestep.
M t +dt -M t
R = + F ( P t +dt , S t ) + Q ( P t +dt , S t ) Eq. 24.1
dt
The mass terms Mt +dt are evaluated using both pressures and saturations at the end of the timestep. This
makes the non-linear residual equation, R = 0, much easier to solve because there are now no nonlinear
values arising from relative permeabilities that remain fixed throughout the timestep. However, to solve the
IMPES equations correctly it is still necessary to iterate until all residuals have been reduced to a
sufficiently small value.
The linear equations arising from Newton’s method are also much easier to solve in the IMPES case
because derivatives of flows with respect to saturations are zero. The linear equations are solved
sequentially, first for pressure and subsequently for saturation changes. This contrasts with the fully
implicit method where the linear equations must be solved simultaneously. The IMPES formulation is
strictly an IMPEM (IMplicit Pressure Explicit Mobility) method. The mass terms M t +dt are evaluated
using both pressures and molar densities at the end of the timestep. The flow terms between cells are
evaluated assuming the saturations, generalized mobilities and reservoir density terms are all fixed at the
previous timestep.
AIM
The Adaptive IMplicit method (AIM) is a compromise between the fully implicit and IMPES procedures.
Cells with a high throughput ratio are chosen to be implicit for stability and to obtain large timesteps, while
the majority of cells can still be treated as IMPES where the solution may be changing little. All
completions are treated implicitly.
More details of these can be found in "Formulation of the equations" in the ECLIPSE Technical
Description.
Explicit
This is (2005A) the default method for three-phase black oil models.
The explicit option is an explicit upstream finite volume saturation update along the streamline. This is
much faster than the other 3 solution techniques, but will might require that the full field pressure equation
be solved more frequently.
where
Vi is the volume of grid cell i i that also forms part of the streamline cell.
Most of the properties of the streamline cell are then calculated using the pore volume weighted average of
the property
ΣV i X i
X sl =
V sl
In the case of the amount of each fluid in the cells, we use the specific volumes, that is surface volumes per
unit reservoir volume for black oil cases and molar densities for compositional cases. In the case of
pressures, you have two alternative methods of calculating the pressure. The default method is to calculate
the pressure at which the fluid exactly fills the cell. This should conserve volume. Alternatively, you can
optionally use the pore volume weighted average of the pressure. In this case, the volume of fluid in the cell
is adjusted so that the saturation of water is preserved, and also the ratio of surface gas to surface oil in
black oil cases. In compositional cases the moles of the components are simply scaled so that the fluid
occupies the entire cell. This latter technique introduces a material balance error; however, if the fluids are
fairly incompressible, the material balance error should be small and the initial pressure will tend to be
smooth.
The choice of initial pressure is controlled by item 7 of the OPTIONFS keyword.
where
Vnsl is the volume of the grid cell which is not contained in a streamline,
The cell fluid abundances are again calculated by taking volume-weighted averages of specific volumes, or
molar densities, depending on whether the model is a black oil model or a compositional model. The
volume not contained in the streamline is accounted for by adding in the fluid contained in that fraction of
the cell at the beginning of the timestep. This helps to prevent material balance errors.
As in the case of mapping to the streamlines we have a number of ways of determining the pressure in the
cell. As before, we can choose the pressure so that the fluid in the cell exactly fills the cell. Also as before it
is possible to take a pore-volume weighted average of the streamline pressure. The third possibility is to use
the pressure distribution that we initially calculated in order to trace the streamlines. In the latter two cases,
we adjust the amount of fluid in the cell so that the fluid exactly fills the cell. This is done in such a way
that the water saturation remains constant and the ratio of surface oil and surface gas in the cell also
remains constant. You choose the method using item 7 of OPTIONFS and item 6 of TUNEFS1D. Methods
2 and 3 will introduce material balance errors, but may be useful in situations where the fluid is highly
incompressible. If the fluids are incompressible, if we use method 1 any small material balance errors in the
solution for an individual streamline, or even inconsistencies between neighboring streamlines, may result
in a pressure distribution that is not very smooth. This can lead to problems solving subsequent pressure
steps. Using method 3, the pressure field will be smooth, and any error due to scaling the fluids-in-place in
individual cells so that they fit the cell will be small.
Numerical Dispersion
The mapping process can be very dispersive.
Take the case above where we have 2 grid cells, one above and one below the gas oil contact, and with
100% gas above the contact and 100% oil below. If we then have a streamline cell (indicated by the dotted
line) which straddles the contact, then the streamline cell will contain 50% gas and 50% oil. If we now map
the fluids back to the grid, the upper cell will have 75% gas and 25% oil. This is without moving any fluids.
Please note that while shortening timesteps will generally improve the quality of the solution along the
streamline, any improvement may be more than offset by the increase in numerical dispersion.
Tuning
Three-phase data sets frequently need tuning. The most common problems are simulations stopping due to
high material balance errors or unphysical solution values. These can often be solved by one of the
following.
• Increasing the number of Newton iterations that can be used in each mini timestep in the saturation
solver - item 12 of TUNEFS1D. Values above 12 rarely provide any benefit.
• Decreasing the minimum size of the mini timestep allowed in the saturation solver. This is controlled
using item 4 of keyword TUNEFS1D; it is a multiple of the actual timestep. It is unlikely that a value
which corresponds to a mini timestep of less than 0.5 days will help.
• Decreasing the timestep may help with problems.
• Ensuring that the initial pressure solve has converged also can overcome problems with three-phase
simulations. This can often be done by increasing the number of Newton iterations in the pressure
solver. This is controlled by item 5 of keyword TUNEFSPR.
In each case, there is a cost in terms of the simulator performance. You can however apply the change just
before the point at which the problem occurs. It is worth noting that problems often only appear 1 or 2
timesteps after the actual problem has occurred, so it is can be effective to apply these tuning changes 3 or
4 timesteps before the observed problem.
Keywords
There are two keywords that provide control over the three-phase saturation solver:
• TUNEFS1D is the main keyword for controlling the three-phase saturation solver.
• OPTIONFS primarily provides back compatibility with previous code versions, but allows some
tuning of the three-phase solution method.
25
Total compressibility checks
In black oil models, FrontSim checks for positive compressibility of each single reservoir fluid as the PVT
x ECLIPSE 100 data is read (the formation volume factor must be a monotonically decreasing function of pressure
x ECLIPSE 300 assuming all other variables are held fixed).
x FRONTSIM
However, FrontSim also checks that oil-gas mixtures have a positive total compressibility even when there
is mass transfer between the two phases. For example, it is well known that oil sometimes swells when the
pressure increases, apparently in violation of physical principles. This swelling occurs because gas is
dissolving in the oil. Provided that the reduction in the volume of gas is greater than the increase in the
volume of oil, the total volume of the oil-gas mixture reduces as the pressure increases, and the paradox is
resolved.
It is possible to calculate a value for the total compressibility of a hydrocarbon system where mass
exchange may occur between the reservoir liquid and vapor phases. Consider a volume Vg of separator gas
and a volume Vo of stock tank oil at surface conditions. Compress the mixture to pressure P, volume V and
assume that a two-phase equilibrium state is formed. The material balance equations for the oil and gas
components are
V ⋅ Sg V ⋅ Rs ⋅ So
Vg = + Eq. 25.1
Bg Bo
V ⋅ So V ⋅ Rv ⋅ Sg
Vo = + Eq. 25.2
Bo Bg
Equations 25.1 and 25.2 allow the mixture volume V and gas saturation Sg to be computed. If the pressure
of the system is increased, the volume occupied by the liquid-vapor system must decrease for physically
well-defined fluids. The total compressibility of the system, C t = -(1 / V )(dV / dP ), can be shown to be
given by the following expression
Sg dB g dR v B o -R s B g So dB o dR s B g -R v B o
Ct =
Bg ( -
dP
+
dP
⋅
1-R s R v ) (
+
Bo
-
dP
+
dP
⋅
1-R s R v ) Eq. 25.3
where the pressure derivatives are taken along the saturation curve.
This can also be written as
Ct = Sg Ct ,gas + So Ct ,oil Eq. 25.4
which splits the total compressibility into gas and oil dependent terms.
since the volumes of stock tank oil and separator gas are fixed.
Solving for So and Sg gives
Rv Vg - Vo Bo
So = ⋅ Eq. 25.7
V Rs Rv - 1
and
R s V o - V g Bg
Sg = ⋅ Eq. 25.8
V Rs Rv - 1
1
V =
( s v - 1)
R R (
⋅ Vo (Rs Bg - Bo ) + Vg (Rv Bo - Bg )
) Eq. 25.9
Hence
1 dV
Ct = - ⋅
V dp
( R s dR v / dp + R v dR s / dp)
=-
( R s R v - 1) Eq. 25.10
dB g dR s dB o dB o dR v dB g
+
{ Vo Rs
dp
+ Bg
dp dp
- + Vg Rv
dp
+ Bo
dp
-
dp }
Vo (Rs Bg - Bo ) + Vg (Rv Bo - Bg )
which after some manipulation, and substitution for Vo and Vg using the above relations, leads to the
desired expression for Ct .
Sg dB g So dB o
Ct = - ⋅ - ⋅ >0 Eq. 25.11
Bg dP Bo dP
Sg dB g So dB o dR s
Ct = -
Bg
⋅
dP
-
Bo
⋅ ( dP
-B g
dP ) Eq. 25.12
FrontSim checks the total compressibility of the hydrocarbon PVT data as it is read from the input data file.
For each PVT region in the simulation grid a pressure range is selected from the corresponding oil and gas
PVT data tables to span the complete range of pressure data in the two tables. This pressure range is then
subdivided into 30 equally spaced pressure nodes for the evaluation of the total hydrocarbon
compressibility using equation 25.3.
The sample pressure range is the maximum of the oil pressure (maximum bubble point pressure in PVTO or
maximum pressure specified in PVDO) and the gas pressure (maximum dew point pressure specified in
PVTG or maximum gas pressure specified in PVDG).
At each pressure node two limiting compressibility values are calculated corresponding to Sg = 0 and
Sg = 1 in equation 25.3. If either or both values should be negative, a warning message will be issued
indicating the offending pressure value and the gas saturation range for which the compressibility is
negative. It should then be possible using equation 25.3 to determine how to change the saturated gas/oil
PVT data to ensure the total compressibility remains positive for all pressures.
If the range of sample pressures extends above the maximum bubble point specified in the PVTO table or
above the maximum dew point specified in the PVTG table, then FrontSim will be forced to extrapolate
above the highest entered bubble point or dew point. This extrapolation is linear in 1 / Bo etc. (see the PVTO
keyword). In this case, it is not unlikely that negative compressibilities could occur as a result of
extrapolation.
In some cases, if the pressure is extrapolated severely, then the linearly-extrapolated formation volume
factors may become unphysical. It is recommended that the highest bubble point nodes in the PVTO table
are constructed so avoid extrapolations above the highest entered Rs in the PVTO table during the
simulation (similarly, in a run with vaporized oil present, it is recommended that the highest dew point
nodes in the PVTG table are constructed to avoid extrapolations above the maximum entered Pdew during
the simulation).
Note: The effect of a negative total compressibility is usually to cause the simulator to experience
numerical difficulties (convergence failures and/or erratic changes in the solution) in regions where the
total compressibility is negative.
26
Tracer tracking
The tracer tracking option is a general facility to follow the movement of ‘marked’ fluid elements during a
x ECLIPSE 100 simulation run.
x ECLIPSE 300
The tracer tracking option has a wide variety of reservoir modeling applications. In the case of tracers
x FRONTSIM
defined to exist in the water phase, it may be used, for example, to determine the movement within the
reservoir of water injected into any number of injection wells or to predict the variations in salinity or
concentration of other chemical species in the water produced from the reservoir
Tracers may also be defined to exist in the oil phase.
The tracer concentrations can be initialized on a grid cell basis to trace fluids from certain areas of the
reservoir.
The current tracer tracking option assumes that the presence of tracers does not affect the PVT properties of
the phases in which they are embedded. The tracers are thus to be regarded as passive. The tracer equations
are a set of conservation equations for each tracer species.
Tracer tracking for three-phase models was implemented in FrontSim 2012.1, but does not allow
adsorption functions for the tracers. Tracer tracking for the combination of dual porosity and two-phase
models is currently not available in FrontSim.
Tracer tracking
206
FrontSim Technical Description
∂
a c − k 1 c ( A − (c )) − k 2 a (c ) Eq. 26.1
∂t ( )
Here:
Several options are possible for the units for the adsorbed amount. The mass of tracer per mass of rock is
frequently used.
If we assume that the time scale for the adsorption process is short compared to the time scales of interest
in reservoir simulation, we may assume that equilibrium is established instantaneously. Thus, the above
equation gives:
k 1Ac
a (c ) = Eq. 26.2
k 1 + k 2Ac
For adsorption processes, hysteresis is also an important effect. Anything between no hysteresis and
complete irreversible adsorption may occur, and may complicate the modeling to some extent.
For the one-phase tracer model in FrontSim, the adsorption is used explicitly to compute the tracer shock
speed. The conservation law for the tracer is:
∂
(c + a (c )) + Δ (vc ) = 0 Eq. 26.3
∂t
where v is the flow velocity.
Thus, the shock speed of a tracer shock (separating cL and cR ) is given by
c R -c L
σ = v Eq. 26.4
c R + a( c R ) - c L - a( c L )
Tracer tracking
207
FrontSim Technical Description
In the present version of the code, hysteresis is accounted for by assuming that if present, the adsorption is
irreversible. Thus, in the above expression, in case of irreversibility (IRREVERSIBLE), the immobile
concentrations a ( c L ) and a ( c R ) are determined not by the actual floating concentrations, but by the
maximum value ever obtained at the actual location. The adsorbed tracer distribution is updated globally
after each timestep.
Tracer tracking
208
FrontSim Technical Description
27
Transmissibility calculations
This chapter describes the expressions used by FrontSim to calculate transmissibility values, between cells
x ECLIPSE 100 in the grid, and between cells and numerical aquifers.
x ECLIPSE 300
The transmissibility calculations for each type of geometry are detailed in the next section. In the corner
x FRONTSIM
point case, transmissibility values between cells that are not neighbors in the basic indexing grid may be
calculated on the same basis as those for neighboring cells. In both cases, the mutual interface area is
calculated, and this may be non-zero for non-neighboring cells at faults.
Transmissibility calculations
There is one transmissibility calculation available in FrontSim.
It is based upon the use of cell corner points, which are available to FrontSim when the COORD/ZCORN
form of grid definition is used. It is possible to distinguish unambiguously between cell dip and fault
displacement, and fault transmissibilities are generated automatically.
Transmissibility calculations
209
FrontSim Technical Description
X- transmissibility
The X-transmissibility is given by the expression:
CDARCY ⋅ TMLTX i
TRANX i =
1 1 Eq. 27.1
+
Ti Tj
where
A ⋅ Di
T i = PERMX i ⋅ RNTG i ⋅
Di ⋅ D i
with
(A ⋅ D i ) = A X ⋅ D iX + A Y ⋅ D iY + A Z ⋅ D iZ
and
(Di ⋅ D i ) = D iX
2 2
+ D iY 2
+ D iZ
AX , AY and AZ are the X-,Y- and Z- projections of the mutual interface area of cell i and cell j (which
need not be neighbors in the Cartesian indexing grid), and
DiX , DiY and DiZ are the X-, Y- and Z-components of the distance between the center of cell i and the
center of the relevant face of cell i, these centers being obtained as the appropriate
average.
Y- and Z- transmissibility
The Y- and Z-transmissibility expressions are similar, the net to gross ratio being absent from the Z
expression.
The calculation is illustrated by the following figure (where PERMX is represented by Kx):
Transmissibility calculations
210
FrontSim Technical Description
28
Well inflow performance
This chapter outlines the relationships that FrontSim uses to calculate well inflow performance.
x ECLIPSE 100
We define the flow path between the well bore and a single reservoir grid block as a “connection”.
x ECLIPSE 300
x FRONTSIM The total flow rate (oil + water + gas) at reservoir conditions across a connection is given by the Inflow
Performance Relationship.
qj is the total volumetric flow rate in connection j at reservoir conditions. The flow is taken as positive
from the formation into the well, and negative from the well into the formation.
Mwj is the total mobility for the grid block containing the connection. This mobility is used both for
injection and production wells.
Hwj is the well bore pressure head between the connection and the well's bottom hole datum depth.
The calculation of the terms in this relationship is described in the following sections of this chapter.
c is a unit conversion factor (0.001127 in field units and 0.008527 in metric units).
q is the angle of the segment connecting with the well, in radians. In a Cartesian grid its value is 6.2832
(= 2π ), as the connection is assumed to be in the center of the grid block. For wells located on an edge
(or a corner) of a grid block, use keyword WPIMULT after COMPDAT to scale the resulting connection
factors by 0.5 (or 0.25).
Kh is the effective permeability, multiplied by the net thickness of the connection. For a vertical well the
permeability used here is the geometric mean of the x- and y-direction permeabilities, K = (Kx Ky )1/2
The pressure equivalent radius of the grid block is defined as the distance from the well at which the local
pressure is equal to the nodal average pressure of the block. For a Cartesian grid, Peaceman's formula is
used, which is applicable to rectangular grid blocks in which the permeability may be anisotropic. The well
is assumed to penetrate the full thickness of the block, through its center, perpendicularly to two of its
faces.
Equations 28.2 and 28.3 are intended for vertical wells. Horizontal wells may penetrate the block in either
the x- or y- direction, or the appropriate components of permeability and block dimensions are substituted
in these equations. For a well penetrating in the x-direction, for example, the quantities Ky , Kz , Dy and Dz
will be used in equations 28.2 and 28.3.
A net-to-gross ratio applied to a grid block containing a horizontal well will not affect the Kh product, but
will still affect the equivalent radius ro through the reduction in the value Dz .
where
The simulator calculates the productivity index of each well from this expression, and can optionally print
it out at each well report.
The reservoir pressure at the drainage radius could be obtained from a representative grid block, or the
average pressure of the field or a suitable fluid-in-place region could be used.
29
Well Modeling Facilities
Well completions
x ECLIPSE 100
x ECLIPSE 300
Multiple connections
x FRONTSIM Each well can be completed in several layers of the reservoir. A communication between the well bore and
a single grid block is defined as a connection. A given well may have any number of connections.
The connections belonging to a particular well need not all lie in the same vertical column of grid blocks,
so it is possible to model highly deviated wells. Moreover, a well can be completed in several grid blocks
within the same layer, enabling the simulator to model horizontal wells.
Inflow performance
The flow rate of a phase (oil, water or gas) through a connection is proportional to the product of three
quantities:
• the transmissibility between the grid block and the well bore
• the mobility of the phase in the grid block at the perforations
• the pressure drawdown between the grid block and the well bore.
In certain situations the drawdown in one layer may have the opposite sign to the drawdown in the other
completed layers. The simulator will then allow crossflow to take place between the reservoir layers
through the well bore. The crossflow facility can be turned off if the engineer does not wish this to occur,
using a switch in the keyword WELSPECS.
Economic limits
There is an additional class of limits that can be applied to production wells. The engineer can specify
values of the oil or gas production rate, the water cut, the gas-oil ratio and the water-gas ratio which
represent the limits of economic operation of the well. The violation of one of these limits will result in the
well, or one or more of its connections, being automatically closed. The economic limit options are:
• Lower limits for the oil, gas and liquid production rates for each well. The well is closed, if any of
these limits are broken.
• Upper limits for the water cut, the gas-oil ratio, the gas-liquid ratio and the water-gas ratio of each
well. If a well violates one of these limits, the well is closed.
Keyword WECON is used to set the limiting values and define the choice of workover action.
There is a choice of actions to be taken if a well violates one of these limits:
• The worst-offending connection (that is the connection with the highest water cut, gas-oil ratio or
water-gas ratio) in the well is closed.
• The worst-offending connection and all connections below it in the well are closed. Here, “below” is
interpreted as “further from the wellhead according to the connection ordering”. The connection
ordering may be specified in the COMPORD keyword.
• The well itself is closed.
The economic limits are checked at the beginning of the timestep, and the appropriate action is taken if any
limits are violated. The action is taken before the new production data is read for the this timestep. Thus a
well may produce ‘uneconomically’ for one timestep before remedial action is taken. This behavior is
different from ECLIPSE in fully implicit mode.
Note: There are three different ways of defining the flow rate, water fraction and gas fraction in producer
VFP tables. You should select the most appropriate definitions for the type of well being modeled. For
example, if it is an oil well which eventually waters out, a VFP table defined in terms of the liquid rate,
water cut and gas-liquid ratio would be suitable. For gas wells, the VFP table should be defined in terms of
the gas rate, water-gas ratio and oil-gas ratio.
The artificial lift quantity (ALQ) is a fifth variable that can be used to incorporate an additional look-up
parameter, such as the level of artificial lift. For example, if gas lift is being applied, the artificial lift
quantity could refer to the injection rate of lift gas into the well bore.
productivity indices to apportion group targets among individual wells. The item 21 of OPTIONFS can be
set to 1 for backward compatibility.
The individual wells can be subject to their own pressure constraints. For example, if a well would violate
its bottom hole pressure limit when producing its full share of the group's production target, the well will
operate at its bottom hole pressure limit. The production rates of the other wells will increase in proportion
to their guide rates (or potentials) to meet the group's target, as long as they do not violate any of their own
flow or pressure limits. A well that is producing its full share of the group's production target is said to be
under group control, while a well constrained by its own pressure limits is said to be under individual
control.
Economic limits
The set of economic limits described earlier for wells can also be applied to the overall production of
groups, and of the field as a whole. If the oil or gas production rate of the group (or field) falls below a
minimum value, all its production wells are closed. If the group (or field) water cut, gas-oil ratio or water-
gas ratio exceeds a maximum value, then the worst-offending connections or wells in the group (or field)
will be shut down. The economic limit values are set using keyword GECON.
30
The wellbore friction option
The wellbore friction option models the effects of pressure loss due to friction in the well tubing along the
x ECLIPSE 100 perforated length, and between the perforations and the bottom hole reference point of the well. The facility
ECLIPSE 300 is primarily intended for use with horizontal wells, in which frictional pressure losses may be significant
x FRONTSIM over the horizontal section of the wellbore and in the branches.
In the standard well model, frictional pressure losses between the well connections and the bottom hole
reference point are neglected entirely. The difference between the pressure at the connections and the
bottom hole pressure is purely the hydrostatic head of the fluid mixture in the wellbore acting over the
difference in true vertical depth between these locations. In wells completed vertically through the
formation, the frictional pressure drop acting over the relatively short length of the perforated section is
generally negligible.
In horizontal wells, however, the perforated section may extend over many hundreds of feet. The frictional
pressure drop over this length may have a significant effect on the behavior of the well. The pressure in the
wellbore towards the far end of the perforations (that is, away from the wellhead) will be higher than the
pressure at the near end, so the drawdown will vary over the perforated length. This may cause the
productivity per unit length of perforations to fall off towards the far end. Furthermore, the lower wellbore
pressure at the near end of the perforations may cause localized water or gas coning to occur in this region,
thus reducing the effectiveness of the horizontal well in overcoming coning problems. It is therefore
important to consider the effects of frictional pressure losses when deciding on the optimum length and
diameter of a horizontal well.
Transforming the flow velocity into the local volumetric flow rate Q (in rb/day or m3/day) and taking into
account the unit conversion factors, the pressure drop becomes
Cf ⋅ f ⋅ L ⋅ ρ ⋅ Q 2
δP f = Eq. 30.2
D5
where
The Fanning friction factor depends upon the Reynolds number, Re. For laminar flow (Re < 2000),
16
f = Eq. 30.3
Re
For Re > 4000 we use Haaland’s formula ([Ref. 23]),
1 10/9
f
= - 3.6 log10 ( 6.9 +
e
Re ( 3.7D ) )
Eq. 30.4
where
In the “uncertain region” (2000 < Re < 4000) we use a linear interpolation between the values at Re = 2000
and Re = 4000. The above scheme has the advantage of providing a direct calculation for values of f that
are continuous in Re and are in reasonable agreement with the friction factor chart (see [Ref. 41], for
example). It should be noted, however, that these formulae do not take account of fluid inflow through the
perforations. Its influence on the effective roughness of the tubing is largely unknown at present, and the
engineer is advised to vary the roughness to gauge the sensitivity of the results to this parameter.
The Reynolds number is
ρvD
Re = Eq. 30.5
μ
where
Converting v to the volumetric flow rate Q and including the unit conversion factors, this becomes
Cr ρQ
Re = Eq. 30.6
Dμ
where
If there is more than one free phase flowing in the well, we assume the flow along the perforated length is
homogeneous (that is, no slip between the phases). The homogeneous mixture density (mass flow rate / Q)
is used in the equations for Re and δPf and the viscosity is the volumetric flow weighted average of the
phase viscosities.
Wellbore friction is included in FrontSim by adding the frictional pressure losses to the hydrostatic term
that illustrates the pressure drop between each pair of adjacent connections.
31
Units
Units
222
FrontSim Technical Description
Constants
The following table gives the values of some principal constants in the two unit conventions.
Conversion factors
The following table gives some useful conversion factors between the unit systems.
0.02831685 m3 =1 ft3
Mass 1 kg = 2.204623 lb
0.45359237 kg =1 lb
Density 1 kg/m3 =0.06242797 lb/ft3
Units
223
FrontSim Technical Description
API gravity
API gravity = (141.5 / liquid gravity) - 131.5
P is pressure
V is volume
n is number of moles
T is temperature
Units
224
FrontSim Technical Description
A
FrontSim development history
This appendix contains an extensive, detailed record of the developments to FrontSim.
Behavioral Changes
• MULTREGT is now supported in the GRID and EDIT sections. Item #6 is added (as ECLIPSE) to
support choice of region array: MULTNUM (M) or FLUXNUM (F) .
• The restriction on multiple equilibration regions when using GEOFLOFS is removed
• The MultiCore license model is changed to four threads included in the FrontSim Black Oil license
followed by one MultiCore license for each additional four threads.
• Summary report of aquifer rates The summary outputs of the analytical aquifer rates and totals in the
case of backflow from the reservoir to the aquifer have been changed in FrontSim 2015.2 to be
compatible with ECLIPSE. To be consistent with the ECLIPSE simulators FrontSim now only
account for the water flow when calculating a potential backflow to the analytical aquifer. Previously,
FrontSim used the total flow (all phases) at reservoir condition multiplied by the water volume factor
for this purpose. This change mainly results in different values for the summary vectors FAQR/
AAQR/FAQT/AAQT. This change has no effect when flow is strictly from the aquifer to the
reservoir. An option switch has been added in OPTIONFS (item 25) for backward compatibility.
• For the IOR scale-up option (9–tracer model) the solvent supply available for re-injection previously
did not account for the returned trapped solvent (tracer number 8). A backward compatibility switch
has been added to install previous behavior. See OPTIONFS switch 47.
Altered Keywords
The following keywords have been changed:
• RPTRST — mnemonic FLOWTOT is redundant and thereby removed.
Large Models
By introducing a new version of the Pressure Solver, FrontSim can run larger models than with previous
versions. FrontSim can now handle models with more than 250 million active cells without terminating
assuming that the required amount of free RAM is available for the process.
Behavioral Changes
For time-of-flight (TOF) reports:
• XXXX _ TOF. TXT
The number of bins (rows) for a time-of-flight data report (_ TOF. TXT) is increased to 100. This
value can be modified by using the RPTFSGEO keyword. Also, the binning has changed to hold equal
amount of pore volume for each bin instead of the equal amount of accumulated 1/TOF in previous
versions..
• Report in XXXX. PRT
The TOF report that was included by default for GEOFLOFS runs is now disabled. You can enable it
by setting OPTIONFS(56) to a value larger than zero.
• The summary outputs of the analytical aquifer rates and totals in the case of backflow from the
reservoir to the aquifer have been changed in FrontSim 2015.2 to be compatible with ECLIPSE. To be
consistent with the ECLIPSE simulators FrontSim now only account for the water flow when
calculating a potential backflow to the analytical aquifer. Previously, FrontSim used the total flow (all
phases) at reservoir condition multiplied by the water volume factor for this purpose. This change
mainly results in different values for the summary vectors FAQR/AAQR/FAQT/AAQT. This change
has no effect when flow is strictly from the aquifer to the reservoir. An option switch has been added
in OPTIONFS (item 25) for backward compatibility.
New Keywords
Schedule section
The new optional keyword FBHPDEF provides a default bottom hole pressure (BHP) target or limit to be
used where none is specified for a well. The keyword has two values, one for injection wells and one for
production wells.
Altered Keywords
The following keywords have been changed:
• RPTRST — mnemonic FLOWTOT is redundant and thereby removed.
Behavioral changes
Initialization — PVT data
The initialization of Rs/Pbub/Rv/Pdew in black-oil mode was slightly changed in FrontSim 2013.1.
Previously, for some cases, the initialization of for instance Rs for undersaturated oil, was not consistently
honored by the simulator. FrontSim should now consistently honor the input. For backward compatibility
parameter number 22 in the OPTIONFS keyword will revert back to pre-2013.1 behavior.
Summary reports
• For GEOFLOFS simulations, well reports (W***) are only generated by default for Type 2 runs.
• To be consistent with ECLIPSE the gas rates and totals now include the solvent.
New keywords
RUNSPEC section
The following keywords have been added:
Keyword Description
NOINSPEC Disables the initial index file output.
NORSSPEC Disables the restart index file output.
Table 32.1: New RUNSPEC keywords
GRID section
The following keywords have been added:
Keyword Description
JFUNCR Activates the Leverett J-function option per saturation table
Table 32.2: New GRID keywords
SOLUTION section
The following keywords have been added:
Keyword Description
SSOL Initial solvent saturations
Table 32.3: New SOLUTION keywords
SUMMARY section
The following keywords have been added:.
Keyword Description
WPNIP/CPNIPL Pattern in-place solvent volume
WPNPR/CPNPRL Pattern solvent production rate
WPNPT/CPNPTL Pattern solvent production total
*MISCF (*= F,WP,CP..L) Fraction of oil under miscible conditions (Solvent model only)
*MOIPS (*= F,WP,CP..L) Volume of oil that can be released by miscibility (Solvent)
*MOPOTS (*= Fraction of oil volume that can be released by miscibility (Solvent)
F,WP,CP..L)
*MOEFFS (*= Fraction of original MOPOT that has been released by miscibility
F,WP,CP..L) (Solvent)
*MVIEFFS (*= Solvent Injection Efficiency. Ratio of released oil due to miscibility
F,WP,CP..L) and injected/produced volume.
Table 32.4: New SUMMARY keywords
SCHEDULE section
The following keywords have been added:
Keyword Description
WCONPATS Solvent Injection Rate Allocation
Table 32.5: New SCHEDULE keywords
Altered keywords
The following keywords have been changed:
Keyword Description
OPTIONFS Added a backward compatibility switch (parameter 22) for black-oil initialization.
OPTIONFS Removed item 2 and 3.
Table 32.6: Altered keywords
Keyword Description
WLIST In the 2011.2 release and beyond, a well can be a member of multiple instances of a
well list. However, when using WCONPAT, we can have a well in multiple instances of
the WLIST, but only one instance of the list should be used in WCONPAT to avoid
having the same well in different WCONPAT definitions.
GEOFLOFS/ In the 2011.2 release and beyond, only the main points data report is generated for a
ZONEMAP GEOFLOFS Type 2 run (same as Type 1).
Table 32.7: Altered keywords
Reporting
• Data for saturation function and saturation function endpoints for the .INIT file have been updated to
be compatible with ECLIPSE. This supports new functionality in Petrel RE.
• Generation of .GRID files is abandoned when PETGRID is used to import a GSG file. This is done to
be compatible with ECLIPSE 100/300. If the GRIDFILE keyword is specified to generate a .GRID
file, a warning is issued.
• The generation of .FSCAT files has been slow in previous releases (especially when the number of
zones/layers is high). The algorithm has been redesigned to be more efficient.
Keyword Description
PETOPT Options for Petrel runs
Table 32.8: New RUNSPEC keywords
GRID section
The following keywords have been added:
Keyword Description
ADDREG Adds a constant to the specified array in either a flux region or MULTNUM region
COPYREG Copy by either FLUXNUM region or MULTNUM region
EQUALREG Sets an array to a constant value in a flux region or MULTNUM
MAXVALUE Apply a maximum limit to an array in the current box
MINVALUE Apply a minimum limit to an array in the current box
MULTIREG Multiplies an array by a constant in a given flux region or MULTNUM region
Table 32.9: New GRID keywords
EDIT section
The following keywords have been added:
Keyword Description
ADDREG Adds a constant to the specified array in either a flux region or MULTNUM region
COPYREG Copy by either FLUXNUM region or MULTNUM region
Keyword Description
EQUALREG Sets an array to a constant value in a flux region or MULTNUM
MAXVALUE Apply a maximum limit to an array in the current box
MINVALUE Apply a minimum limit to an array in the current box
MULTIREG Multiplies an array by a constant in a given flux region or MULTNUM region
Table 32.10: New EDIT keywords
PROPS section
The following keywords have been added:
Keyword Description
ADDREG Adds a constant to the specified array in either a flux region or MULTNUM region
COPYREG Copies by either FLUXNUM region or MULTNUM region
EQUALREG Sets an array to a constant value in a flux region or MULTNUM
MAXVALUE Applies a maximum limit to an array in the current box
MINVALUE Applies a minimum limit to an array in the current box
MULTIREG Multiplies an array by a constant in a given flux region or MULTNUM region
Table 32.11: New PROPS keywords
REGIONS section
The following keywords have been added:
Keyword Description
ADDREG Adds a constant to the specified array in either a flux region or MULTNUM region
COPYREG Copies by either FLUXNUM region or MULTNUM region
EQUALREG Sets an array to a constant value in a flux region or MULTNUM
MULTIREG Multiplies an array by a constant in a given flux region or MULTNUM region
Table 32.12: New REGIONS keywords
SOLUTION section
The following keywords have been added:
Keyword Description
ADDREG Adds a constant to the specified array in either a flux region or MULTNUM region
COPYREG Copies by either FLUXNUM region or MULTNUM region
EQUALREG Sets an array to a constant value in a flux region or MULTNUM
MULTIREG Multiplies an array by a constant in a given flux region or MULTNUM region
Table 32.13: New SOLUTION keywords
SUMMARY Section
The following keywords have been added:
Keyword Description
PERFORM Outputs a set of performance data vectors from the run to the summary files
Table 32.14: New SUMMARY keywords
Keyword Description
MULTPV The behavior of this keyword when used in the EDIT section has been changed to be
compatible with ECLIPSE 100. Backward compatibility is available through item 9 in
keyword OPTIONFS .
PETGRID This keyword can now also be used to import Generic Simulation Grids (GSG)
RPTALLOC A new mnemonic (PAVPRESS) is added to support reporting of pattern average pressure
(PAPressure)
WCONPAT The voidage fraction parameter can now be used to activate calculation of the injection
capacity for the RECOV and INJEFF options, based on the voidage replacement fraction.
OPTIONFS MULTPV backward compatibility (see above)
Table 32.15: Altered keywords
Grid Initialization
To be compatible with ECLIPSE, the TRANZ keyword has been changed so that it does not affect any
pinched grid connection in the Z-direction.
Well Management
• NTG can be used when calculating KH for well blocks (only used for Z-penetrated well blocks).
• There is a new item 12 in the GCONINJE keyword.
• For the VREP option in GCONINJE and re-injection option in WCONINJ, the calculation of the
injection fluid rate has been slightly changed to account for the difference in pressure in the producers
and injectors. The new implementation is compatible with ECLIPSE (only field level is available in
the 2010.1 release). A backward compatibility switch is available in OPTIONFS (parameter 72).
• The value of the OPTIONFS(65) switch has been swapped. OPTIONFS(65)=1 in pre-2010 versions is
equal to OPTIONFS(65)=0 in 2010.1 and vice versa.
Keyword Description
ZONEMAP Generate zone maps for point data reports
Table 32.16: New REGIONS keywords
SCHEDULE section
The following vectors have been added:
Vector Description
DEFWPAT Auto-generation of source/sink well patterns
MULTX Transmissibility multipliers in the X-direction
MULTX- Transmissibility multipliers in the negative X-direction
MULTY Transmissibility multipliers in the Y-direction
MULTY- Transmissibility multipliers in the negative Y-direction
MULTZ Transmissibility multipliers in the Z-direction
MULTZ- Transmissibility multipliers in the negative Z-direction
Table 32.17: New SCHEDULE keywords
Keyword Description
OPTIONFS Activate special program options
Table 32.18: Altered keywords
Behavioral changes
Performance enhancements
• FrontSim 2009.2 has an improved run time CPU performance in the three-phase explicit saturation
solver on Windows platforms, and this performance enhancement is particularly noticeable on the
Windows Vista 64 platform.
• The performance of FrontSim’s two-phase front tracker saturation solver has also been improved on
the Windows Vista 64 platform, in terms of CPU performance time. The front tracker solver is, in
general, five to six times faster than the explicit saturation solver.
• FrontSim 2009.2 should support a 10 to 12 million active cell two-phase problem using a standard
configuration Windows Vista 64 PC with 16GB or less core memory. It can also support a three-phase
Black Oil version of the same model on such a machine.
• You are encouraged to run multiple realizations using the GEOFLOFS facility in an uncertainty
workflow.
Geologic Ranking
• GEOFLOFS has default output options that include GRID and INIT files. Default reporting no
longer includes restart and streamline files. You need to request these files using RPTRST and
RPTSLN.
• Both RPTRST and RPTSLN are accepted (all mnemonics) in a GEOFLOFS run. Streamline allocation
data is available in a GEOFLOFS screening run.
Saturation Solver
• FrontSim supports streamline density output higher than 1.0 using the TUNEFSSA keyword.
• FrontSim has improved support of streamline outputs for visualization and bundle flow pattern
analysis through RPTSLN.
• Due to support of the multi-threading solvers, FrontSim no longer supports automatic streamline
density computation and SAVE streamlines during a simulation. These functions were previously
supported in items 2 and 6 of the TUNEFSSA keyword. The absence of the SAVE streamline function
can lead to higher CPU time, which can usually be made up using the multi-threading feature.
Input
• Default value interpolation represented by 1* is supported by both families of saturation table. The
first family of keywords are SWFN, SGFN, SOF2 and SOF3, and the second family of keywords are
SWOF and SGOF.
Well model
• The usability of the well model has been improved. The well model will now close a well if the
estimated rates could cause the pressure solver to fail.
• CECON with CWCT workover behavior is ECLIPSE compatible. It acts on average connection water
cuts instead of the maximum water cut amongst the qualified connections.
• GCONPROD now correctly supports maximum rate limits in item 7, in addition to the rate control
constraints in item 2.
Aquifer
• A known problem with numerical aquifers producing unreasonable aquifer rates in the presence of
gravity has been fixed.
Dual Porosity
• Block centered grids should work with dual porosity using the DXV/DYZ and DZV keywords.
Restarts
• A restart run will give an error and exit when a well has no rate control data at the restart time. This is
to ensure all wells have valid controls which are either inherited or updated at restart time.
Reporting
• An issue related to FLPR/FLPT reporting has been corrected.
• An issue with incorrect units for history fluid rates being given on SUMMARY mnemonics FOPTH,
FWPTH and FGPTH has been fixed.
Keyword Description
RSCONST Used to declare that dead oil contains a constant and uniform concentration of dissolved gas.
RVCONST Used to declare that dry gas contains a constant and uniform concentration of vaporized oil.
Table 32.19: New PROPS keywords
Keyword Description
GEOFLOFS Default reporting no longer includes restart and streamline files. You need to
request these files using RPTRST and RPTSLN.
Both RPTRST and RPTSLN are accepted (all mnemonics) in a GEOFLOFS run.
Streamline allocation data is available in a GEOFLOFS screening run.
TUNEFSSA Supports streamline densities higher than 1.0 for the Saturation Solver.
No longer supports automatic streamline computation and the SAVE streamlines
function during run time.
CECON This keyword with CWCT workover behavior is now ECLIPSE compatible. It now
acts on average connection water cuts instead of the maximum water cut amongst
the qualified connections.
SWFN, SGFN, Default value interpolation represented by 1* is supported by both families of
SOF2, SOF3, saturation table.
SWOF and SGOF.
Table 32.20: Altered keywords
Dual Porosity
• Dual Porosity regions. FrontSim 2009.1 now honors the DPNUM keyword. You can, in a Dual Porosity
model, specify regions within the reservoir to be treated as single porosity only.
New Reports
• PORV (at reservoir conditions) is included in the restart file if the RPORV mnemonic is specified on
the RPTRST keyword
• The keyword RPTALLOC has been slightly changed, new mnemonics have been introduced and others
retired.
• When Pattern Flood Management is activated FrontSim will by default export all PFM rates to the
PFM_SCHED file using WCONPROD/ WCONINJE keywords. DATES keywords are also included so
this file could be automatically be included into ECLIPSE (or FrontSim). By default all wells are
controlled by RESV, this can be changed by setting item 66 in the OPTIONFS keyword.
Well management
• In some cases where the surface rate targets are very sensitive to the saturation solution in previous
step the solution might differ slightly from previous releases.
Performance
Multi core parallel Option
In FrontSim 2009.1 the MultiCore shared memory has been further developed and the key developments
are:
• The Streamline Tracing algorithm is parallel
• A parallel Front Tracker for two phase problems
• All parallel features are available on Linux (not Windows PC) only.
See "Multicore Parallel Option" for more information about this option.
Keyword Description
DPNUM Identify extent of dual porosity region
Table 32.21: New RUNSPEC keywords
SUMMARY section
The following new vectors have been added:.
Vector Description
F/G/WOPTH Oil Production Total History
F/G/WGPTH Gas Production Total History
F/G/WWPTH Water Production Total History
F/G/WLPR Liquid Production Rate
F/G/WLPRH Liquid Production Rate History
F/G/WLPT Liquid Production Total
F/G/WLPTH Liquid Production Total History
WMCTL Mode of control for well
FMF*R Field Matrix to Fracture flow rate (* V = total reservoir, W/O/G at surface)
FMF*T Field Matrix to Fracture total (* V = total reservoir, W/O/G at surface)
WPMF*R Pattern Matrix to Fracture flow rate (* V = total reservoir, W/O/G at surface)
WPMF*T Pattern Matrix to Fracture total (* V = total reservoir, W/O/G at surface)
CPMF*RL Pattern Matrix to Fracture flow rate (* V = total reservoir, W/O/G at surface)
CPMF*TL Pattern Matrix to Fracture total (* V = total reservoir, W/O/G at surface)
Table 32.22: Summary Vectors
Keyword Description
WCONPAT Added item 9 for turning on Multi Zone
RPTRST Added mnemonic RPORV
Table 32.23: Altered keywords
Solver
FrontSim is able to run a simulation without storing streamlines on a single core run, with an exception on
a multi-core run when the SaveStreamlines mnemonic has to be set to YES in the TUNEFSSA keyword.
Performance enhancements
Memory consumption is decreased due to the following efforts:
• Reduction of memory usage in streamline module.
• Reduction of memory usage in well model.
Documentation improvements
• Multiple keywords TRANX/Y/Z, MULTX/MULTZ-, PERMX/PERMY/PERMZPERMXY/PERMZZ, KRO /
KRORW/KRORG are listed separately for clarification see the "Keywords" section in the "FrontSim
User Guide" for the new keyword entries.
• The Pattern Flood Management documentation is improved
Initialization
• The JFUNC keyword works with models with inactive cells. Prior to 2008.2, JFUNC only worked on
models that had no inactive cells.
• The SWATINIT saturation initialization is constrained by the SWL. This is inconsistent with the
ECLIPSE behavior.
• The improved PVTO data consistency check aims to reduce possible run time problems.
• The MULTPV and PORV keywords are expected to work. Prior to the 2008.2 these keywords could be
nonfunctional.
Restarts
• FrontSim will restart a live oil model by default using RPTRST keyword. Previously mnemonic
RESTART had to be specified in order to restart such models.
Reporting
• The number of reported contacts to the PRT file correctly reflects changes made by transmissibility
multipliers.
• The LINES mnemonics of the RPTSLN keyword works instead of defaulting to 300 lines. This is how
a user specifies the output of number of streamlines in each timestep.
• RPTLINFS works in a mode compatible with the ECLIPSE RPTONLY keyword. The RPTLINFS
keyword should normally be used with GEOFLOFS type runs, or runs that can be made with one
single large timestep. See the GEOFLOFS keyword for information on this type of run. The RPTLINF
keyword does not necessarily support non-GEOFLOFS type runs by default.
• Various errors have been fixed for historical rates reporting in RESTART runs.
• It is possible to convert OPF file format to GRID file format by performing a FrontSim NOSIM run.
• GEOFLOFS type 3 and 4 runs no longer output FSCAT reporting file.
Well Model
• Improved GCONPROD group control on individual well rate limit and well water cut limit with
appropriate actions.
• WEFAC works at individual well level.
• WECON works on water pattern flood or PFM runs.
Keyword Description
ENKRVD Relative permeability end point versus depth tables
Table 32.24: New PROPS keywords
• The ECLIPSE keyword WTES has been implemented. The keyword controls the testing and opening
of shut-in wells based on various criteria. The FrontSim version of the keyword includes a subset of
the ECLIPSE functionality.
• Well model convergence under regular group or PFM control has been improved
New reports
• RPTALLOC - this keyword controls the formatted output of allocation/bundle information to the .ALN
-file for better connectivity to OFM or MS EXCEL.
• GEOFLOFS - this keyword uses the Petrel format for storing points data (.fscat files). Point data is
created at the grid surface location for every well. This can be used to produce maps in Petrel. For
multiple realizations mean and variance maps to represent uncertainty can be created.
Restarts
FrontSim will restart from ECLIPSE models with different number of active/inactive cells whenever
feasible. A report is provided in the print file on differences detected and actions taken. You may wish to
continue with the restart simulation or refresh the grid. Previously FrontSim stopped with an error message.
Solver
• Some changes have been done in the 1D EXPL saturation solver including the gravity segregation
solver. The change will affect cells where saturation is close to critical saturation and decreasing. The
accuracy in this situation has been improved. In Dual Porosity models this change have reduced the
need to tune the local timestepping in the 1d saturation solver (TUNEFS1D - parameter 4 and 5) to
avoid mass balance errors. A backward compatibility switch is available in OPTIONFS parameter 59.
• In the case of the explicit 1Dsolver the default setting for TUNEFS1D parameter number 4 is now
consistently 0.1. In previous version this parameter was defaulted to 0.34 if the keyword TUNEFS1D
was not set by the user and 0.1 otherwise (keyword used but parameter number 4 defaulted).
Keyword Description
GEOFLOFS Setup Simple Simulations for Flow Analysis
Table 32.25: New RUNSPEC keywords
SUMMARY section
The following new vectors have been added:
Vector Description
FOE Field Oil Recovery
Table 32.26: Summary Vectors
• New Field, Region and Field, Group and Well tracer quantities.
• New Field, Region and Field, Group and Well temperature quantities.
The following summary vectors are produced by default when GEOFLOFS is used. Application outside
GEOFLOFS should be done with care.
Vector Description
WPDRAIN Fraction of oil drained by producer from its pattern.
WPFLOOD Fraction of oil swept by injector from its pattern
EOPR Edge oil production rate
EOPT Edge cumulative oil production.
EWCT Edge water cut.
EWIR Edge water injection rate
EWIT Edge total water injection.
Table 32.27: Summary Vectors for GEOFLOFS
SCHEDULE section
The following new keywords have been added:
Keyword Description
WCONPEND Switch Off Injection Rate Optimization
CECONINJ Economic limits for injection well
RPTALLOC Controls on output to the .ALN file
WTEST Instructions for periodic testing of closed
Table 32.28: SCHEDULE keywords
Keyword Description
WCONPAT Item 1 only supports wells list names formed using WLIST.
Item 12 now reads injection capacity.
OPTIONFS Parameter 54, 59.
Table 32.29: Altered keywords
Dual Porosity
.A dual porosity option for three phase, compressible and black oil fluids is now available in FrontSim as a
separately licensed option. The option uses the conventional matrix-fracture transfer function and supports
expansion and imbibition recovery processes. (Gravity drainage recovery from matrix blocks is not
currently supported). The option is available with the EXPL saturation solver only. The feature is ECLIPSE
compatible and supports the following keywords: DUALPORO, DPGRID, SIGMA, SIGMAV, NODPPM.
See "Dual Porosity" for more information about this option.
Aquifers
FrontSim will now connect aquifers to split cell faces if at least one part of the cell face is connected to an
inactive cell or the boundary.
Allocation information is available separately for each aquifer in the Allocation reports (see below).
Direct input of water saturation using SWATINIT is now available. In addition more general methods of
capillary pressure scaling using PCW and PPCWMAX are available.
Behavioral changes
Saturation solver
• The discretization for the 1d finite volume solver (EXPL solver) has been improved to better track
large discontinuities in saturation. Extra points in the 1d grid are added to maintain the discontinuity
and reduce numerical dispersion.
• The EXPL solver is now available for two-phase models as well as for three-phase (TUNEFS1D). It is
the default solver for three-phase and the only solver that can handle Dual Porosity. The front-tracking
solver is not available for dual porosity models and the EXPL solver must be used for two-phase dual
porosity models.
Performance
Multicore parallel Option
Parallel execution in a shared memory environment is available as a separately licensed extension to
FrontSim. In FrontSim 2007.1, this is only available for Windows PC platforms and limited to use with the
EXPL saturation solver. The option is ideally suited for multicore workstation and desktop PC’s and laptop
computers providing extremely good performance to price benefits. The new keyword THREADFS controls
this option.
See "Multicore Parallel Option" for more information about this option.
New keywords
RUNSPEC section
DUALPORO Activates dual porosity option (licensed)
THREADFS Activate multicore parallel option (licensed)
PERFORM FrontSim performance tuning
GRID section
DPGRID Make matrix cell properties for fracture cell
JFUNC Activates the Leverett-J option
NODPPM No dual porosity multiplier
SIGMA Dual Porosity matrix-fracture coupling
SIGMAV Dual Porosity matrix-fracture coupling
PROPS section
PCW Sets the maximum Oil Water capillary pressure.
PPCWMAX Sets the maximum Oil Water capillary pressure that can result from the Leverett JFUNC
calculation.
SOLUTION section
SWATINIT Sets the capillary pressure scaling based on initial water saturation
SUMMARY section
TIMESTEP Summary vector for size of timesteps
EXCEL Summary output will be done in Excel format
RUNSUM Tabulated output of summary data at the end of the print file.
SEPARATE Summary output to separate RSM file.
COMPLUMP Completion level vectors for pattern flood management
SCHEDULE section
CECON keyword for economic limits for connections
WECONINJ keyword for economic limits for injector wells
WCONPAT keyword for Pattern Flood Management
Altered keywords
OPTIONFS
• Item 51. Controls output for the PFM option
B
Bibliography
1. Aavatsmark, I., Barkve, T., and Mannseth, T. “Control-Volume Discretization Methods for 3D
Quadrilateral Grids in Inhomogeneous, Anisotropic Reservoirs,” paper SPE 38000, Society of
Petroleum Engineers Journal (1998) 3, No. 2, 146-154; also presented at the SPE Reservoir
Simulation Symposium, Dallas, Texas, USA (June 1997).
2. Anthony, J. L. and Meggs, A. J. M. “An approach for the determination of economically optimum
injection and production rates in a Large Multi-Pattern Waterflood,” paper SPE 16957, presented at
the SPE Annual Technical Conference and Exhibition, Dallas, Texas, USA (27-30 September, 1987).
3. Aziz, K. and Settari, A. Petroleum Reservoir Simulation, London, UK, Applied Science Publishers
(1979) 398.
4. Bratvedt, F., Bratvedt, K., Buchholz, C.F., Holden, L., Holden, H., and Risebro, N.H. “A New Front-
Tracking Method for Reservoir Simulation,” paper SPE 19805, SPE Reservoir Engineering (1992) 7,
No. 1, 107-116.
5. Bratvedt, F., Bratvedt, K., Buchholz, C. F., Gimse, T., Holden, H, Holden, L., and Risebro, N. H.
“FRONTLINE and FRONTSIM. Two Full Scale, Two-Phase, Black Oil Reservoir Simulators Based
on Front Tracking,” Surveys on Mathematics for Industry (1993) 3, 185.
6. Bratvedt, F., Gimse, T., and Tegnander, C. “Streamline Computations for Porous Media Flow
Including Gravity,” Transport in Porous Media (1996) 25, 63.
7. Carter, R. D. and Tracy, G. W. “An Improved Method for Calculating Water Influx,” Transactions of
AIME (1960) 219, 215-417.
8. Chakravarty, A., Liu, D.B., and Scott Meddaugh, W. “Application of 3D Streamline Methodology in
the Saladin Reservoir and Other Studies,” paper SPE 63154, presented at the SPE Annual Technical
Conference and Exhibition, Dallas, Texas, USA (October 1-4 2000).
9. Chik, A. N., Elias, M. R., Selamat, S., Wakatake, M. T., White, J. P. and “Guntong Field:
Development and Management of a multiple-Reservoir Offshore Waterflood,” Journal of Petroleum
Technology, (1996) 48, No. 12, 1139-1143.
10. Coats, K. H. “Simulation of Gas Condensate Reservoir Performance,” paper SPE 10512, presented at
the Sixth SPE Symposium on Reservoir Simulation, New Orleans, Louisiana, USA (February 1-3
1982).
11. Crane, M., Bratvedt, F., Bratvedt, K., Childs, P., and Olufsen, R. “A Fully Compositional Streamline
Simulator,” paper SPE 63156, presented at the SPE Annual Technical Conference, Dallas, Texas,
USA (October 1-4 2000).
Appendix B Bibliography
251
FrontSim Technical Description
12. Crowe, C. M. and Nishio, M “Convergence Promotion in the Simulation of Chemical Processes - The
General Dominant Eigenvalue Method,” American Institute of Chemical Engineering Journal (1975)
23, No. 3, 528-533.
13. Dafermos, C.M. “Polygonal Approximation of Solutions of the Initial Value Problem for a
Conservation Law,” Journal of Mathematical Analysis (1972) 38, 33-41.
14. Dennis, J. E. and Schnabel, R. B. “ Numerical Methods for Unconstrained Optimisation and
Nonlinear Equations,” Classics in Applied Mathematics (unabridged and corrected ed.) Society for
Industrial and Applied Mathematics (1996), first published by Prentice-Hall, Englewood Cliffs, New
Jersey, USA (1983).
15. Emanuel, A.S. and Milliken, W.J. “History Matching Finite Difference Models with 3D Streamlines,”
paper SPE 49000, presented at the SPE Annual Technical Conference and Exhibition, New Orleans,
Louisiana, USA (September 27-30, 1998).
16. Fetkovich, M. J. “A Simplified Approach to Water Influx Calculations - Finite Aquifer Systems,”
Journal of Petroleum Technology, (1971) 23, No. 7, 814-828.
17. Flanders, W.A. and Bates, G. R. “Optimizing Reservoir Surveillance by Using Streamlines and the
Microcomputer,” paper SPE 16482, presented at the Petroleum Industry Application of
Microcomputers, Lake Conroe, Texas, USA (23-26 June, 1987).
18. Ghori, S. G., Jilani, S. Z., Al-Huthali, A. H., Krinis, D. and Kumar, A. “Improving Injector
Efficiencies Using Streamline Simulation: A Case Study in a Giant Middle East Field,” paper SPE
105393, presented at the SPE Middle East Oil and Gas Show and Conference, Kingdom of Bahrain
(11-14 March, 2007).
19. Giordano, R.M., Redman, R,S., and Bratvedt, F. “A New Approach to Forecasting Miscible WAG
Performance at the Field Scale,” paper SPE 36712, SPE Reservoir Evaluation & Engineering (1998)
1, No. 3, 192-200. First presented at the SPE Annual Technical Conference and Exhibition, Denver,
Colorado, USA (October 6-9, 1996).
20. Grinestaff, G.H & Caffrey, D.J “Waterflood Management: A Case Study of the Northwest Fault Block
Area of Prudhoe Bay, Alaska, Using Streamline Simulation and Traditional Waterflood Analysis,”
paper SPE 63152, presented at the SPE Annual Technical Conference and Exhibition, Dallas, Texas,
USA (October 1-4, 2000).
21. Grinestaff, G.H. “Waterflood Pattern Allocations: Quantifying the Injector to Producer Relationship
with Streamline Simulation,” paper SPE 54616, presented at the SPE Western Regional Meeting,
Anchorage, Alaska, USA, (May 26-27, 1999).
22. Gunasekera, D., Childs, P., Cox, J., and Herring, J. “A Multi-Point Flux Discretization Scheme for
General Polyhedral Grids,” paper SPE 48855, presented at the International Oil & Gas Conference and
Exhibition, Beijing, China (November 2-6, 1998).
23. Haaland, S.E. “Simple and explicit formulas for the friction factor in turbulent pipe flow,”
Transactions of the ASME, Journal of Fluids Engineering (1983) 105, No. 1, 89-90.
24. Kazemi, H., Merrill JR., L. S., Porterfield, K. L., and Zeman, P. R. “Numerical Simulation of Water-
Oil Flow in Naturally Fractured Reservoirs,” paper SPE 5719, Society of Petroleum Engineers Journal
(1976) 16, No. 6, 317-326.
25. King, M. J. and Datta-Gupta, A. “Streamline simulation: A current perspective,” In Situ (1998) 22,
No. 1, 91-140, 1998.
26. Kozlova A., Bratvedt, F., Bradvedt, K., and Myasnikov, A. “A Three-Phase Compressible Dual-
Porosity Model for Streamline Simulation,” paper SPE 102549, presented at the SPE Annual
Technical Conference and Exhibition, San Antonio, Texas, USA (September 24-27, 2006).
Appendix B Bibliography
252
FrontSim Technical Description
27. Lolomari, T., Bratvedt, K., Crane, M., Milliken, W.J., and Tyrie, J.J. “The Use of Streamline
Simulation in Reservoir Management: Methodology and Case Studies,” SPE 63157, presented at the
SPE Annual Technical Conference and Exhibition, Dallas, Texas, USA (October 1-4, 2000).
28. Martin, J. J. “Cubic Equations of State-Which?” I and EC Fundamentals, (1973) 18, 81.
29. Michelsen, M. L. “The isothermal flash problem. Part I. Stability,” Fluid Phase Equilibria (1982) 9,
1-19.
30. Milliken, W.J., Emanuel, A.S. & Chakravarty, A. “Applications of 3D Streamline Simulation to Assist
History Matching,” paper SPE 63155, presented at the SPE Annual Technical Conference and
Exhibition, Dallas, Texas, USA (October 1-4, 2000).
31. Pollock, D. W. “Semianalytical Computation of Path Lines for Finite Difference Models,” Ground
Water, (1988) 26, No. 6, 743-750.
32. Prévost, M., Edwards, M.G., and Blunt, M.J. “Streamline Tracing on Curvilinear Structured and
Unstructured Grids,” paper SPE 66347, SPE Journal (2002) 7, No. 2, 139-148; also presented at the
SPE Reservoir Simulation Symposium, Houston, Texas, USA (February 11-14, 2001).
33. Rian, D.T., & Hage, A. “Automatic Optimization of Well Locations in a North Sea Fractured Chalk
Reservoir Using a Front Tracking Reservoir Simulator,” paper SPE 28716, presented at the
International Petroleum Conference and Exhibition, Veracruz, Mexico (October 10-13, 1994).
34. Smoller, J. Shock Waves and Reaction-Diffusion Equations, New York, Springer Verlag (1983).
35. Sovold, K, Rian, D.T., & Sandvik, A. “Front Tracking Applied to the Simulation of Water Flooding in
a Braided River System,” paper SPE 21084, presented at the SPE Latin America Petroleum
Engineering Conference, Rio de Janeiro, Brazil (October 14-19, 1990).
36. Stone, H. L. “Estimation of Three-Phase Relative Permeability and Residual Oil Data,” Journal of
Canadian Petroleum Technology (1973) 12, No. 4, 53-61.
37. Stone, H. L. “Probability Model for Estimating Three-Phase Relative Permeability,” paper SPE 2116,
Journal of Canadian Petroleum Technology (1973) 22, No. 2, 214-218.
38. Thiele, M. R. and Batycky, R. P. “Using Streamline-Derived Injection Efficiencies for Improved
Waterflood Management,” paper SPE 84080, SPE Reservoir Evaluation & Engineering (2006) 9, No.
2, 187-196; also presented as “Water Injection Optimization Using Streamline-Based Workflow” at
the SPE Annual Technical Conference and Exhibition, Denver, Colorado, USA (October 5-8, 2003).
39. Tyrie, J.J., Gimse, T. “Some Powerful Reasons for Adopting Front Tracking Simulation,” paper SPE
30444, presented at Offshore Europe, Aberdeen, UK (September 5-8, 1995).
40. Todd, M. and Longstaff, W. “The Development, Testing and Application of a Numerical Simulator for
Predicting Miscible Flood Performance,” paper SPE 3484, Journal of Canadian Petroleum
Technology (1972) 24, No. 7, 874-882.
41. Welty, J.R., Wicks, C.E., and Wilson, R.E. Fundamentals of Momentum Heat and Mass Transfer,
New Jersey, USA, John Wiley and Sons (1984).
Appendix B Bibliography
253