Manual Changes
Manual Changes
Overview
This introduction is divided into the following sections:
-
Introduction to STARS
Introduction 1
Introduction 3
13. New keyword *TRANZONE allows you to use water-oil capillary pressure curves
to generate a water-gas transition zone in a water-gas system.
14. New keyword *WOC_SW allows you to specify the water saturation below oilwater contact for an initialization region.
15. New keyword *DTMIN allows you to over-ride the default minimum timestep size
for applications at small time scales.
16. New geomechanics keyword *DILANGLE allows you to specify a dilation angle
for Mohr-Coulomb and Drucker-Prager materials. This is accompanied by new
*SOLVERG subkeywords *AIMSOLN and *PGSOLN which allow you to solve
the corresponding non-associated flow problem.
17. New geomechanics keywords *NCOUPLING, *PRESSTOL, *STRESSTOL and
*POROSTOL, together with new *GCOUPLING option 3, allow you to specify
iterative coupling to the fluid-flow solution. This feature makes it possible to
model more advanced loading processes.
18. New geomechanics keyword *GULOGINT allows you to change the interpolation
algorithm for look-up from tables *GPERMES, *GPERMTS and *GPERMVL.
19. Geomechanics dimension-override keywords *MPLNE, *MCONNG and
*MDICLU_PG were moved from the I/O Control section.
20. New keywords *MODELSHUT and *EQUILIBRATE allow fluid equilibration in
shut-in wells via crossflow between layers.
21. New keyword *WELLINIT specifies that bottom hole pressure values should be
reinitialized before every time step or Newtonian iteration.
22. New subkeyword *SHUTMOWS of *GCONP and *GCONM allows you to
specify that a list of prioritized most-offending wells should be shut if a given
monitor is violated.
23. Well control keyword *OPERATE has new subkeywords *DWN, *DWA and
*DWB which allow you to specify a drawdown pressure constraint type. Also,
under *OPERATE the descriptions of *STF and *BHF were merged.
24. New *PHWELLBORE *SAMODEL subkeyword *PUMP-MAX-PRESSUREINCREASE allows you to specify a maximum pressure increase for a pump with a
specified power.
25. New *MONITOR subkeyword *WHYSTAB allows you to monitor hydraulics
stability for a well using constraint type *WHP with *PHWELLBORE.
26. New *GCONP subkeyword *VREP specifies a voidage replacement production
target, coordinating with the existing *GCONI subkeyword *VREP with new suboptions *GMKUP and *WMKUP.
27. New *GCONP and *GCONI subkeyword *RECYCLE specifies a recycling
injection target. See templates STWWM010-13.
28. New *GCONP and *GCONI subkeyword *PMAINT specifies that the well rates
in a group shall be adjusted to maintain an average pressure in a sector.
Introduction 5
Introduction 7
15. The *ON-TIME option was improved to account for well groups, and the manual
entry for *ON-TIME was re-written. See new template stwwm036.dat.
16. Section Matrix/Fracture Addressing Defaults was added to the end of the manual
description for keywords *HEATR, etc.
17. In the *DYNAGRID manual page the description of keyword *DYNAGRIDTSINT was improved and section Viewing Dynamic Grid Changes was added.
18. The explanation of heterogeneous properties with *DYNAGRID was replaced
with sections Property Models and Grid Changes, In-Place Amounts,
Heterogeneous Property Models and Properties with Hysteresis.
19. The values of *AVISC and *BVISC in Table 4 have been corrected.
20. Electrical heating code and documentation state that the option is not allowed
together with the *ISOTHERMAL formulation option, adaptive-implicit (*AIM)
options and dynamic (*DYNAGRID) and recurrent gridding options.
21. Electrical heating rate updates are done in a time step until the electrical boundary
constraints stop changing, including the first time step.
22. Multiple electrical boundary constraints of type *CURRENT are honoured
simultaneously; previously only the most restrictive one was used.
23. All electrical heating keyword descriptions were moved for Appendix G to the
main Users Guide sections (I/O Control, Other Reservoir Properties, Well and
Recurrent Data).
24. Improvements were made to the documentation of Numerical Control keywords.
In the summary section of the Numerical Methods Control chapter see Usage in
Other Sections and Changing Numerical Controls at Restart.
25. Descriptions of parallel processing and PARASOL input data were improved, and
PARASOL data values are now echoed.
stsmo031.dat
stsmo032.dat
stsmo033.dat
stsmo034.dat
stsmo035.dat
stsmo036.dat
stsmo037.dat
stsmo038.dat
stsmo039.dat
stsmo040.dat
( -f input_data )
( -log )
( -r input_restart )
( -restart ( nstart ) )
( -restime restime )
( -stoptime stoptime )
( -checkonly )
( -dimsum )
( -onestep )
( -maxsteps nstop )
( -wd path | -dd )
( -wait )
( -doms ( ipldom ) )
( -parasol ( n ) )
( -aimsol )
DEFINITIONS:
stars.exe
STARS invocation command, usually the name of an executable file. It can
be a local file, a link to a file or merely accessible via search rules.
-f input_data
Specifies that input_data is the path name to a STARS input data file.
-log
Specifies that consol diary output will be redirected to a file whose name
has the same base as the output files but extension .log. This file will not
contain error or status messages from the operating system.
-r input_restart
Specifies that input_restart is the path name to a STARS input restart IRF
generated by a previous STARS run. The MRF and possibly RRF files
required for restart also will be obtained from similar pathnames. This
option overrides pathnames specified by subkeywords *INDEX-IN, *MAINRESULTS-IN, and *REWIND-IN of keyword *FILENAMES that may
occur in the data.
-restart ( nstart )
Equivalent to putting *RESTART in your data, with or without nstart. See
manual entry for *RESTART. This command-line argument overrides
User's Guide STARS
Introduction 11
*RESTART data in the file. If both -restart and -restime appear in the
command line, -restart is ignored.
-restime restime
Equivalent to putting *RESTIME restime in your data. See manual entry for
*RESTIME. This command-line argument overrides *RESTIME data in the
file. If both -restart and -restime appear in the command line, -restart is
ignored.
-stoptime stoptime
Stops the simulation at stoptime (days | days | mins) which must correspond
to a simulation reference time specified via *TIME or *DATE in the
recurrent data section before the first *STOP keyword.
-checkonly
Equivalent to putting *CHECKONLY in your data. See the manual entry for
*CHECKONLY.
-dimsum
Equivalent to putting *DIM *DIMSUM in your data.
-onestep
Equivalent to putting *MAXSTEPS 1 in your data.
-maxsteps nstop
Equivalent to putting *MAXSTEPS nstop in your data.
-wd path
Output files will be written to the directory given by path. This option is
useful in an environment where the current directory may not be defined.
-dd
Output files will be written to the directory that contains the data file. This
option is intended to be used when an absolute pathname has been supplied
via the -f argument.
-wait
If all available licenses are being used, this argument keeps the process in a
sleep mode until a license is available (up to 72 hrs). Available on PC only.
This option is useful when several jobs are submitted via the CMG
Technology Launcher at one time (e.g., over the night or weekend) and the
number of licenses is limited. An alternate way to run a series of jobs
sequentially is to use a batch file. See Running Your Simulation in the
Tutorial chapter.
-doms ( ipldom )
Enables parallel processing for Jacobian building. Optional ipldom specifies
the target number of planes per Jacobian domain (default 4). This argument
overrides all data specified via keywords *DPLANES and *DTYPE.
-parasol ( n )
Enables parallel processing for matrix solution via PARASOL. Optional n
specifies the number of threads to use (default 2). See keyword *SOLVER.
-aimsol
Enables AIMSOL. See keyword *SOLVER.
DEFAULTS:
If an input data filename is not supplied here via argument "-f", then STARS will prompt for it.
If this is a restart run and the input restart filename is not supplied here via argument "-r" or
via keywords *FILENAME *INDEX-IN, then STARS will prompt for it.
If neither wd nor dd is supplied, then output filenames are obtained from the *FILENAMES
keyword. If *FILENAMES is absent, then the output files are written to the current working
directory.
Introduction 13
*RESTART, *RESTIME
PURPOSE:
Specify the starting timestep or time.
FORMAT:
*RESTART
*RESTIME
(nstart)
restime
DEFINITIONS:
*RESTART ( nstart )
Specify number of the time step from which to restart the simulation.
Command-line argument -restart is another way to specify *RESTART.
*RESTIME restime
Specify time (days | days | mins) of the time step from which to restart the
simulation. This option works best when restime corresponds to a simulation
reference time specified via *TIME or *DATE in the recurrent data section of
the previous run. Also, restime may be a non-reference time but it must match
the time of the target restart record within the first 7 decimal digits. Use
*RESTART when *RESTIME picks incorrectly from a group of records
whose times do not differ in the first 7 digits. Command-line argument restime is another way to specify *RESTIME.
DEFAULTS:
If *RESTART and *RESTIME are absent, no restart records are read and the first timestep
number is 1.
If *RESTART is present without nstart, the last restart record in *INDEX-IN is used.
CONDITIONS:
If *RESTART or *RESTIME is present, then the restart files denoted by *INDEX-IN and
*MAIN-RESULTS-IN (and possibly *REWIND-IN) are required and must contain the restart
record corresponding to the specified time or timestep number.
If both *RESTART and *RESTIME are present, or each appears multiple times, only the last
occurrence is used. For example, if *RESTART 10 appears before *RESTIME 50.5 then the
restart will come from the time step at 50.5 days.
EXPLANATION:
See How To Do a Restart in the Tutorial section.
*SRFASCII, *XDR
PURPOSE:
*OUTSRF identifies what information is written to the Simulation Results File.
FORMAT:
*OUTSRF *WELL { comp_unit | *DOWNHOLE
| *COMPONENT ( *NONE | *ALL | comp_list )
| *LAYER ( *NONE | *ALL ) }
*OUTSRF *GRID ( *ALL | *NONE | (*REMOVE) item_list )
*OUTSRF *SPECIAL { special_his }
*DYNSR2MODE ( *STATIC | *DYNAMIC )
*SR2PREC ( *SINGLE | *DOUBLE )
*SRFASCII
*XDR ( *ON | *OFF )
DEFINITIONS:
...
*GRID ( *ALL | *NONE | (*REMOVE) item_list )
This subkeyword causes the specified grid quantities (one value for each grid
block) to be written to the SR2 file at times determined by *WSRF *GRID.
Generally, each item on the SRF_GRID list is flagged for writing as either
enabled or disabled. The simulation starts with all items disabled. Use
item_list (keywords in the SRF_GRID list) to enable individual items. Use
*ALL to enable all items except FLUXSC, VELOCSC, FLUXRC, VELOCRC
and STRMLN. Use *REMOVE with item_list to disable individual items, or
use *NONE to disable all items.
Enabling SRF_GRID items for writing can increase the size of the SR2 files.
Some items cause writing of more than one set of block values. An item
whose description starts with component will write one set for each
appropriate component. The availability of some items depends on the use of
other keywords or options.
SRF_GRID List
The SRF_GRID list consists of all properties and quantities in the following
table, as well as all items in the PRN_GRID list (see *OUTPRN *GRID)
with these exceptions: FRCFLOW is replaced by WATFRFL, OILFRFL and
GASFRFL, and POREVOL and IMEXMAP are disallowed.
The alternate concentration and composition unit types used by some items
in the PRN_GRID list can be used here as well. The unit type choices made
in *OUTPRN *GRID, *OUTSRF *GRID and *OUTSRF SPECIAL are
Introduction 15
independent of each other. For *OUTSRF *GRID and *SPECIAL one item
can be dumped with more than one unit type at the same time. For example,
*OUTSRF *GRID VOL ADSORP NUM ADSORP
causes adsorbed components to be reported in RESULTS in units of both
volume fraction and number density.
...
FLUXRC:
STRMLN
...
*SPECIAL { special_his }
This subkeyword defines one or more special histories, each of which writes
a single value to the SR2 at times specified by *WSRF *WELL. Each
special_his may be one of the following:
...
OBHLOSSCUM (previously OBHLOSS)
Net cumulative energy lost (-) or gained (+) by the overburden heat
loss model.
OBHLOSSRATE
Rate of net energy lost (-) or gained (+) by the overburden heat loss
model.
CCHLOSSCUM (previously CCHLOSS)
Net cumulative energy lost (-) or gained (+) by a constant/convective
heat transfer model. See also *WPRN *SECTOR.
CCHLOSSRATE
Rate of net energy lost (-) or gained (+) by a constant/convective heat
transfer model. See also *WPRN *SECTOR.
DELPBLK uba1 uba2
Pressure in block uba1 minus pressure in block uba2.
CPUSRATE, CPUSCUM
CPUSRATE gives CPU seconds per simulation time over individual
time steps. CPUSCUM gives accumulated CPU seconds from the start
of time stepping, starting at zero for both restart and non-restart runs.
Introduction 17
EXPLANATION:
...
Streamline Plots
*OUTSRF *GRID subkeyword STRMLN causes information to be written to the SR2 which
allows RESULTS to overlay grid information with streamlines. This subkeyword adds three
connection-length arrays to each grid dump.
...
Reservoir Description
Cartesian
ii) Radial
iii) Variable depth/thickness
b) Corner Point
For the FD grid option, the following keywords are required:
*GRID
*DI
*DJ
*DK
9-point option.
Specify the dip angles in the I and J direction.
Using refine grid options.
Volume and area modifier option.
For specifying null blocks.
Introduction 19
Porosity (Required)
*POR
PURPOSE:
*POR indicates input of porosities.
ARRAY:
*POR
DEFAULTS:
Required keyword. No defaults.
CONDITIONS:
This keyword must be in the RESERVOIR DESCRIPTION keyword group.
EXPLANATION:
Units are in fractions, dimensionless.
Porosity for wellbore and tubing blocks will be calculated automatically and reported along
with the matrix values.
See Zero-Porosity Blocks in the introductory section of this chapter. Note that a zero value
for porosity or permeability may indicate a zero-porosity block.
Reference Porosity
Porosities entered via *POR are interpreted as either reference or initial values. See the
EXPLANATION for keyword *PORINTERP in the Other Reservoir Properties data section.
...
Introduction 21
prpor
cpor
ctpor
cptpor
cpor_p2 ppr1 ppr2
pormax
( *REF | *INIT )
DEFINITIONS:
prpor
Reference pressure (kPa | psi | kPa). The suggested range is from 100 kPa
(14.504 psi) to 1.0e6 kPa (1.45e5 psi); prpor must be non-negative.
cpor
Effective formation compressibility, that is, of the formation's pore space
(1/kPa | 1/psi | 1/kPa). The lower limit is 0, and the suggested upper limit is
0.01 1/kPa (0.069 1/psi).
ctpor
Effective thermal expansion coefficient of the formation (1/C | 1/F | 1/C).
The lower limit is 0, and the suggested upper limit is 0.01 1/C (0.0056 1/F).
cptpor
Pressure-temperature cross-term coefficient of the formation effective
porosity (1/kPa-C | 1/psi-F | 1/kPa-C).
cpor_p2
Effective formation compressibility near ppr2 (1/kPa | 1/psi | 1/kPa). The
lower limit is 0, and the suggested upper limit is 0.01 1/kPa (0.069 1/psi).
ppr1, ppr2
Lower (ppr1) and upper (ppr2) reference pressures for pressure-dependent
formation compressibility (kPa | psi | kPa). At ppr1 the compressibility is
nearly cpor, and at ppr2 the compressibility is nearly cpor_p2.
ppr1 must be non-negative, and ppr2 must be greater than ppr1. The
suggested lower limit of ppr1 is 100 kPa (14.504 psi), and the suggested
upper limit of ppr2 is 1.0e6 kPa (1.45e5 psi).
pormax
Maximum allowed fractional increase in porosity due to pressure. One aspect
of sand dilation can be modelled very simply by using a large
compressibility, i.e., greater than 0.0001 1/psi. Unphysical porosity increases
are avoided by enforcing a maximum porosity fractional increase pormax.
The value of pormax must be greater than zero and less than one. A typical
value is 0.10 to 0.20. The default value of 10 effectively disables this limit.
This option is considered obsolete and has been replaced by *DILATION.
*PORINTERP ( *REF | *INIT )
Per-block porosities specified by keyword *POR can be interpreted in one of
two ways:
*REF:
*INIT:
DEFAULTS:
If *PRPOR is absent, the porosity reference pressure is equal to the initial pressure in the first
active block in natural ordering of the corresponding rock type.
If *CPOR is absent, the formation compressibility is zero.
If *CTPOR is absent, the formation thermal expansion coefficient is zero.
If *CPTPOR is absent, cptpor = 0 is assumed.
If *PORMAX is absent, the corresponding option is disabled.
If *CPORPD is absent, the corresponding option is disabled.
If *PORINTERP is absent then option *REF is assumed.
CONDITIONS:
This keyword must be in the Other Reservoir Properties keyword group.
Keywords *CPTPOR and *CPORPD may not be used together.
EXPLANATION:
Fluid porosity f contains the fluid phases but not the solid phase and is calculated as
f p, T, C i v p, T * 1 C i / si
Introduction 23
v
p
T
Ci
si
There are several ways to calculated void porosity v from pressure and temperature.
1. Linear Elastic: Use *CPOR for pressure dependence:
v(p,T) = vr{1 + min[ pormax, cpor(p-prpor) ] ctpor(T-Temr) }
vr
p
T
Temr
cporpd
Note
-2.68e-5
0
2.75e-3
2.00e-2
8.00e-2
Low pressure
P = PRORP = PPR1
P = Pav
P = PPR2
High pressure
Introduction 25
Rock-Fluid Data
temperature dependence
relative permeability hysteresis for wetting and non-wetting phase and capillary pressure hysteresis
velocity dependence
any phases
different values for each grid block for each grid direction
any component
any phases
different values for each grid block for each grid direction
...
Introduction 27
*KRTEMTAB
PURPOSE:
Specify temperature dependence for critical saturations and endpoints.
FORMAT:
*KRTEMTAB key(1) . . . key(n)
{ T val(1) . . . val(n) }
DEFINITIONS:
*KRTEMTAB
A list of relative permeability endpoint keywords must follow, along with a
table of corresponding endpoint values versus temperature.
key(i)
Any keywords from the RELATIVE PERMEABILITY ENDPOINT keyword
group (*SWR, *SWCRIT, *SORW, *SOIRW, *SGR, *SGCON, *SORG,
*SOIRG, *SWRG, *SWIRG, *KRWIRO, *KRWRO, *KROCW, *KRGCW,
*PCWEND, *PCGEND) in any order. A maximum of 10 keywords are
allowed.
T
Temperature table entry (C | F). There must be at least 2 entries, and all
temperature entries must be evenly spaced. The maximum allowed number
of temperature entries is 10. The first T entry is the reference temperature for
data entered via keywords *SWT, *SLT, *SWR, etc. and *BSWR, etc.
val(i)
Table values corresponding to keyword key(i).
DEFAULTS:
If *KRTEMTAB is absent, no temperature dependence is assumed.
If *KRTEMTAB is present, then for each endpoint keyword absent from the table the
corresponding quantity will be independent of temperature.
CONDITIONS:
This keyword must occur after *SWT and *SLT.
For the size of the mobile regions 1-Swcrit-Sorw and 1-Sgcrit-Slrg, the minimum allowed value is
0.02 and the minimum recommended value is 0.3.
EXPLANATION:
See the section in this chapter's introduction entitled "CRITICAL AND CONNATE
SATURATIONS, SCALE-UP FACTORS, AND NORMALIZATION". See also
Appendix D.6.
comp_name
comp_name
comp_name
comp_name
comp_name
comp_name
comp_name
comp_name
comp_name
Introduction 29
DEFAULTS:
If there is no molecular diffusion keyword for a component/phase combination, then there is
no molecular diffusion of that component in that phase.
If keyword *TORTU is not present then *TORTU *INCPORSAT is assumed.
CONDITIONS:
For each component/phase combination specified, all three directions must be specified.
The molecular diffusion option may not be used together with the total dispersion option
(keywords *DISPI_WAT, etc.).
The dependence of molecular diffusion on temperature and viscosity depends upon the use of
keyword *DIFF_TVDEP.
EXPLANATION:
The propagation of injected tracers and chemicals employed in EOR processes are influenced
by the tortuous flow paths and (random) heterogeneities of the porous media in which they
flow. Normally this contribution to dispersion - the broadening and spreading of concentration
fronts - dominates that due to molecular diffusion. Because of this, much useful information on
porous media structure can be gained from the analysis of dispersion.
Dispersion is affected by transmissibility multipliers specified by keywords *TRANSI, etc.
Therefore, if the transmissibility multiplier for a given pair of adjacent blocks is decreased,
then both the convective flow and dispersive flow will decrease accordingly.
In some circumstances these coefficients may be regarded as adjustable parameters that need to
be tuned to give acceptable results. Indeed, laboratory values may not correspond to what is
needed for large grid blocks used in reservoir simulation.
The flux Jijk of component i in phase j in direction k due to diffusion is given by:
J ijk S j D * ij / Fjk k j X i , j
where
, Sj
D*ij
Fjk
k jx i, j
=
=
=
=
The coefficients entered here are effective because they include the effect of formation tortuosity
and optionally Sj.
Tortuosity is defined as the ratio of the true path length travelled by a particle flowing through
the medium to the macroscopic distance travelled.
When molecular diffusion is being modelled it may be necessary to run in fully implicit mode
(*AIM *OFF in Numerical Control).
Examples
**Moleculardiffusion
*DIFFI_OIL'C3H8'*CON0.03**C3H8inoilphase
*DIFFJ_OIL'C3H8'*CON0.03
*DIFFK_OIL'C3H8'*CON0.03
*DIFFI_OIL'C7H16'*CON0.02**C7H16inoilphase
*DIFFJ_OIL'C7H16'*CON0.02
*DIFFK_OIL'C7H16'*CON0.02
*DIFFI_GAS'C3H8'*CON0.05**C3H8ingasphase
*DIFFJ_GAS'C3H8'*CON0.05
*DIFFK_GAS'C3H8'*CON0.05
Introduction 31
*MOLDIFF_DEP
PURPOSE:
Specify temperature and viscosity dependence of molecular diffusion for the desired
component and phase.
ARRAY:
*MOLDIFF_DEP comp_name phase ( *TDEP Tref ) ( *VISDEP ref )
DEFINITIONS:
comp_name phase
The dependence is applied to the component with name comp_name (in
quotes) in the fluid phase indicated by phase (see table below). The
component must be found in that phase, as determined by *MODEL and the
K value data entered.
phase
*WATER
*OIL
*GAS
Fluid phase
water (aqueous)
oil (oleic)
gas (gaseous)
*TDEP Tref
Temperature dependence is applied to molecular diffusion by multiplying by
ratio (T/Trefabs), where T is the current temperature in absolute degrees and
Trefabs is the reference temperature Tref (C | F) converted to absolute degrees.
*VISDEP ref
Viscosity dependence is applied to molecular diffusion by multiplying by
ratio (ref/), where is the current phase viscosity and ref is the reference
phase viscosity (cp). Note that = 0 will defeat viscosity dependence.
DEFAULTS:
If *TDEP is absent for a diffusing component/phase combination, then the corresponding
molecular diffusion coefficient does not change with temperature.
If *VISDEP is absent for a diffusing component/phase combination, then the corresponding
molecular diffusion coefficient does not change with viscosity.
CONDITIONS:
Keyword *MOLDIFF_DEP is effective only if molecular diffusion data has been specified
for the same component/phase combination via keywords *DIFFI_WAT, etc.
Keyword *MOLDIFF_DEP requires that *TORTU *NOPORSAT be used.
EXPLANATION:
This keyword lets you specify dependence of molecular diffusion on temperature and viscosity
in the form
D*ij proportioned to T /
where T is temperature in absolute degrees and is viscosity.
Let Duij be molecular diffusion coefficients entered by the user via keywords *DIFFI_WAT,
etc. When calculating diffusion at a blocks local conditions, the coefficient D*ij described in
that keywords EXPLANATION is affected by *MOLDIFF_DEP in the following ways.
*TDEP
Absent
Present
Absent
Present
*VISDEP
Absent
Absent
Present
Present
Stokes-Einstein
Wilke, C.R., Chang, P, Correlation of Diffusion Coefficients in
Dilute Solutions, A.I.Ch.E. Journal, June 1955, P 264-270.
= 0.46
= 0.545
Introduction 33
Initial Conditions
*INITIAL
PURPOSE:
*INITIAL indicates the beginning of initial condition values.
FORMAT:
*INITIAL
DEFAULTS:
Required keyword.
CONDITIONS:
This keyword must be the first keyword in the INITIAL CONDITIONS keyword group,
which must come immediately after the ROCK-FLUID DATA keyword group.
The only required keywords in this section are those which define the initial pressure
distribution.
Introduction 35
PURPOSE:
Specify the vertical equilibrium option.
FORMAT:
*VERTICAL ( *OFF
| *DEPTH_AVE )
*REFPRES ref_pres
*REFDEPTH ref_depth or *REFBLOCK uba
*TRANZONE
DEFINITIONS:
*OFF
Do not perform gravity equilibrium calculation.
*DEPTH_AVE
Perform depth-averaged capillary-gravity vertical equilibrium calculation in
conjunction with *DWOC and *DGOC. See EXPLANATION, below.
*REFPRES ref_pres
Pressure at reference depth (kPa | psi). ref_pres must lie within the allowed
pressure range (see *MINPRES and *MAXPRES). This keyword may be
specified for each initialization region.
*REFDEPTH ref_depth
Reference depth for *REFPRES (m | ft | cm). This depth must lie within the
range of depths contained in the reservoir (a fatal error is issued if not). If the
block has both matrix and fracture, then the fracture is indicated. This
keyword may be specified for each initialization region.
*REFBLOCK uba
Address of reference block in UBA format. The depth of this blocks center is
used as ref_depth. This keyword may be specified for each initialization region.
*TRANZONE
Use water-oil capillary pressure curves to generate a water-gas transition
zone in a water-gas system. In such a zone Sg is above its critical value and
Sw varies from Swcon to 1. For a water/gas system it is assumed that Soirw =
Sorw = 0. This keyword is available only for water/gas systems, that is, where
the same value is specified for the two contact depths *DWOC and *DGOC.
DEFAULTS:
If *VERTICAL is absent, then *VERTICAL *OFF is assumed.
If *TRANZONE is absent, there will be no transition zone for a water/gas reservoir.
36 Well and Recurrent Data
CONDITIONS:
*REFPRES and either *REFDEPTH or *REFBLOCK are required with the *DEPTH_AVE
option. If *REFDEPTH and *REFBLOCK appear together for the same initialization region,
*REFBLOCK is ignored.
If *VERTICAL *DEPTH_AVE and *PRES appear together, *PRES is ignored.
*VERTICAL *DEPTH_AVE uses information from *DWOC, *DGOC and *WOC_SW, and
will honour information entered via *SW, *SO and *SG.
Introduction 37
*PRES, *TEMP
PURPOSE:
Specify initial reservoir pressures and temperatures.
ARRAY:
*PRES
*TEMP
DEFINITIONS:
*PRES
Initial oil phase pressure in reservoir (kPa | psi). It must lie within the
allowed pressure range (see *MINPRES and *MAXPRES).
*TEMP
Initial temperature in reservoir (C | F). It must lie within the allowed
temperature range (see *MINTEMP and *MAXTEMP).
DEFAULTS:
If *TEMP is absent, then *TEMP *CON temr is assumed (see *TEMR).
CONDITIONS:
*PRES is required if *VERTICAL *DEPTH_AVE is not used.
If *VERTICAL *DEPTH_AVE and *PRES appear together, *PRES is ignored.
thermal or isothermal
Required Data
There are no required or mandatory keywords in this section. Each keyword has a default
value which can be used. If no keywords from this section are used, then the *NUMERICAL
keyword may be omitted.
Critical Keyword Ordering
There is no critical keyword ordering.
Introduction 39
Use of Defaults
The defaults used in the numerical solution techniques provide a robust and efficient solution
to most simulation problems. You should override the defaults only if you have a good
understanding of the solution methods involved. Inappropriate overriding of the defaults may
result in the use of much more CPU time than would otherwise be required for a problem.
For detailed explanations of the matrix solution controlling keywords (*NORTH, *SORDER,
*PIVOT, *SDEGREE, *PRECC, *ITERMAX), please refer to section Improving Numerical
Performance in the Tutorial chapter.
Usage in Other Sections
The following keywords in this section may be used also in the Well and Recurrent Data
section:
*MAXSTEPS
*DTMAX
*DTMIN
*NUMSET
*NORM
*CONVERGE
*MATBALTOL
*NEWTONCYC *UNRELAX
*UPSTREAM
*PRECC
*NORTH
*PIVOT
*ITERMAX
*AIM
*PVTOSCMAX
*NCUTS
Changing Numerical Controls at Restart
Except for *TFORM and *ISOTHERMAL, any of the numerical control data can be changed
at a restart. This includes changing the linear equation solver choice (AIMSOL versus
PARASOL) as well as individual solver operation parameters. In general, numerical control
data (e.g., *SDEGREE) that can be changed at a restart but not in recurrent data has an effect
on storage allocation done at the beginning of the run.
When you change or add keywords to the Numerical Control section at a restart, be careful
that the new data is not overwritten by a pre-existing keyword in the Recurrent Data section.
For example, suppose a data set has *DTMAX 10 in Numerical Control and *DTMAX 3 in
Recurrent Data at 40 days. If you wish to restart from 40 days but with *DTMAX changed to
5, then it would be necessary to change the *DTMAX value specified at 40 days from 3 to 5;
changing the *DTMAX value in Numerical Control would not work.
Equations and Their Solution
Appendix F contains detailed discussions of construction of equations, as well as methods for
their solution.
Orthogonalization (Optional)
*NORTH
PURPOSE:
*NORTH controls the maximum number of orthogonalizations to be performed before
resetting for the iterative solution method.
FORMAT:
*NORTH num
DEFINITIONS:
num
An integer defining the maximum number of orthogonalizations allowed.
DEFAULTS:
*NORTH 30
CONDITIONS:
This keyword may be located also in the Well and Recurrent Data section. This quantity
affects the amount of storage used. If more than one *NORTH keyword appears then the
largest num is the value used for storage allocation purposes.
EXPLANATION:
A "matrix failure" occurs when the number of matrix solver inner iterations is cut off (see
*ITERMAX) before the desired residual reduction is reached. In general, simulations with
grids and reservoir properties that are not too far from uniform should have almost no matrix
failures. However, very non-uniform grids and/or properties may result in a significant
amount of matrix failures. Increasing *NORTH above the default can reduce the frequency of
these matrix failures.
Increasing *NORTH can increase the CPU cost of each solver iteration, but a reduced number
of iterations should result in a net savings. There is a modest cost in storage with increased
*NORTH.
There is no advantage in specifying a value for *NORTH larger than the value of *ITERMAX.
Examples:
A 1000-block simulation with uniform block sizes and permeabilities probably can use the
default.
A 40000-block simulation with widely varying block thicknesses, and permeabilities in
adjacent blocks different up to a factor of 1000, may use *NORTH 50.
Introduction 41
CONDITIONS:
1. maxpres must always be greater than minpres, and
2. maxtemp must always be greater than mintemp.
*PNTHRDS
PURPOSE:
Specify the number of parallel processing threads to use in the simulation.
FORMAT:
*PNTHRDS ithrds
DEFINITIONS:
ithrds
Number of parallel processor threads to use.
DEFAULTS:
If keyword *PNTHRDS is absent then the following default value is used, in the order of
decreasing priority in the condition. Here ncpu is the number of logical CPUs available.
Condition
Default
min(n,ncpu)
min(2,ncpu)
Otherwise:
Introduction 43
*SOLVER
PURPOSE:
Choose which solver to use, AIMSOL or PARASOL.
FORMAT:
*SOLVER (*AIMSOL | *PARASOL)
DEFINITIONS:
*AIMSOL
Use CMGs non-Parallel Iterative Solver.
*PARASOL
Use CMGs Parallel Iterative Solver.
DEFAULTS:
If both keyword *SOLVER and command-line argument -parasol are absent, then
*AIMSOL is assumed.
CONDITIONS:
*SOLVER *PARASOL is required in order to solve the linear system of equations in parallel,
in which case the conditions of keyword *PNTHRDS apply.
Command-line arguments -parasol and -aimsol over-ride keyword *SOLVER.
EXPLANATION:
The CMG Launcher controls parallel STARS with these command line arguments:
Command-line argument
Equivalent to keywords
-parasol n
*SOLVER *PARASOL
*PPATTERN *AUTOSLAB n
*PNPROSL n
*PNTHRDS m
-aimsol
*SOLVER *AIMSOL
(overrides any PARASOL keywords)
where n is an integer greater than 0, representing the desired target number of threads and m
= min(n,ncpu) where ncpu is the number of logical CPU's on the current machine.
*PPATTERN
PURPOSE:
*PPATTERN sets the basic partitioning of the reservoir into non-connected regions and
separators that makes possible the parallelization of the linear solution.
FORMAT:
*PPATTERN
or
*PPATTERN
or
*PPATTERN
or
*PPATTERN
or
*PPATTERN
or
*PPATTERN
*AUTOPSLAB inum
ipatrn
*PARTITION
{ partition_table }
*PPARTITION
{ p_partition_table }
*GPARTITION
{ p_partition_table }
*APARTITION
{ p_partition_table }
DEFINITIONS:
*AUTOPSLAB inum
inum is the target number of level 1 classes. There are inum-1 separating
plane classes plus 0 or 1 class containing demotions. The direction taken is
such that the planes do not cut the dominant transmissibility direction. Thus
inum corresponds to the target number of processors desired.
ipatrn
ipatrn can have the values 0 to 9. Figure 10.1 below provides a geometrical
representation of different classes under ipatrn 1 through 7. Table 10.1
below summarizes the class distribution in the ipatrns. Column 5 of the table
shows the number of level-1 classes under each ipatrn, corresponding to the
target number of threads desired.
Note: Unlike *AUTOPSLAB, the specification under *PPATTERN using
ipatrn does not adjust the partitioning automatically due to presence of null
blocks. The user is expected to select a particular ipatrn based on the
reservoir geometry, dominant flow direction, and distribution of null blocks
in the reservoir.
partition_table
One to 64 table rows, each starting on a new line and each with the following
structure. The first four columns are quoted character strings.
User's Guide STARS
Introduction 45
column 1:
'class partitioned'
column 2:
'1st major new class'
column 3:
'2nd major new class'
column 4:
'separator class'
column 5:
( *I | *J | *K )
column 6:
ind
Each row directs the partitioning of the first class into two major and one
separator classes, with the original class no longer existing after the partition.
The partitioning is planar, with the separator plane normal to the I, J, or K axis
as specified, with index value ind. Initially there is the one class 'FIELD';
each row creates three new classes and destroys one, for a net gain of two
classes per row. The names serve only to identify the classes while the pattern
is being created; they are not referred to thereafter.
p_partition_table
One to 64 table rows, each starting on a new line and each with the following
structure. All four columns are quoted character strings.
column 1:
'class partitioned'
column 2:
'1st major new class'
column 3:
'2nd major new class'
column 4:
'separator class'
Like partition_table, except that the simulator uses an algorithm to decide
what direction plane to use and where to put it.
*PPARTITION
This partitioning method equalizes class sizes as much as possible and
minimizes the size of the separator class.
*GPARTITION
Use Alan Georges rooted-level-structure partition method, which is like
*PPARTITION but doesn't use planes.
*APARTITION
Use the "agglomeration partition" method, which is like *GPARTITION but
provides classes somewhat more nearly equal in size but somewhat less regular
in shape.
DEFAULTS:
Optional keyword. If *PPATTERN is absent then *AUTOPSLAB 2 is assumed.
CONDITIONS:
This keyword is used only with *SOLVER *PARASOL.
EXPLANATION:
The parallelization of the linear equation solver requires the partitioning of the reservoir into
disjoint sets of blocks (classes). These classes are further organized into levels.
There must be no flow between blocks which are in different classes at the same level.
Example:
Consider a 101 x 50 x 10 reservoir partitioned it into 3 classes as follows:
Class 1:
I = 1:50
J = 1:50
K = 1:10
Class 2:
I = 52:101
J = 1:50
K = 1:10
Class 3:
I = 51
J = 1:50
K = 1:10
The large classes, 1 and 2, have no direct flow interactions because all flow between them
must go through blocks in class3. Classes 1 and 2 are at Level 1; class 3 is at level 2. Each
of the three following data fragments can be used to specify this class partitioning.
**Method1
*PPATTERN*AUTOPSLAB2
**Method2
*PPATTERN2
**Method3
*PPATTERN*PARTITION
'FIELD''Class1''Class2''Class3'*I51
Introduction 47
Description
Total
levels
Total
classes
Level
1
Class
Distribution
Level
2
Remarks
Level
3
Level-3 contains
demotions only
16
16
Level-3 contains
demotions only
Level-3 contains
demotions only
Level-3 contains
demotions only
32
16
15
Level-3 contains
demotions only
64
32
31
Level-3 contains
demotions only
Introduction 49
*DPLANES
PURPOSE:
Specify target number of planes per domain for parallel Jacobian building.
FORMAT:
*DPLANES ( ipldom )
DEFINITIONS:
*DPLANES ( ipldom )
Enable parallel processing for Jacobian building, and optionally specify the
target number of planes per Jacobian domain. Planes are chosen in the grid
direction with the largest number of non-trivial planes. ipldom is the number
of corresponding non-trivial planes in this direction per domain.
DEFAULTS:
If both *DPLANES, command-line argument -doms and *DTYPE are all absent, then
Jacobian building is performed using a single processor.
If *DPLANES appears without ipldom, then ipldom = 4 is assumed.
CONDITIONS:
To use *DPLANES, multiple processors must be available. See *PNTHRDS.
*DPLANES keyword data is over-ridden by command-line argument -doms.
If both keywords *DPLANES and *DTYPE appear, then the *DTYPE data is ignored.
EXPLANATION:
There are three ways to enable parallel processing for Jacobian building. If more than one of
these methods is used together, the priority is shown from highest to lowest.
1. Command-line argument -doms,
2. Keyword *DPLANES, and
3. Keyword *DTYPE.
If parallel processing is enabled for Jacobian building, the number of threads used for that
task is determined by *PNTHRDS.
A common and convenient method of enabling parallel processing for Jacobian building is
via command-line argument -doms. This method is used by the CMG Laucher.
*DTYPE
PURPOSE:
*DTYPE specifies domain numbers of individual blocks for parallel Jacobian building.
ARRAY:
*DTYPE
DEFINITIONS:
*DTYPE
Enable parallel processing for Jacobian building, and specify a positive
integer for each blocks domain number.
DEFAULTS:
If *DTYPE, *DPLANES and command-line argument -doms are all absent, then Jacobian
building is performed using a single processor.
CONDITIONS:
To use *DTYPE, multiple processors must be available. See *PNTHRDS.
*DTYPE keyword data is over-ridden by command-line argument -doms.
If both keywords *DTYPE and *DPLANES appear, then the *DTYPE data is ignored.
EXPLANATION:
This keyword explicitly sets the Jacobian domains of individual blocks. See
EXPLANATION for keyword *DPLANES.
Introduction 51
Geomechanics
PURPOSE:
Compute permeability multiplier due to geomechanical responses.
FORMAT:
*GPERMLC Cn1
or
*GPERMES
{ E kx/kx0 ky/ky0 kz/kz0 }
or
*GPERMTS
{ T kx/kx0 ky/ky0 kz/kz0 }
or
*GPERMVL
{ v kx/kx0 ky/ky0 kz/kz0 }
*GULOGINT
DEFINITIONS:
*GPERMLC Cn1
Use the empirical model of Li and Chalaturnyk to specify a matrix
permeability multiplier, where Cn1 (dimensionless) is an experimental
parameter. Multiplier k/k0 = exp[ Cn1 v ] is applied to a blocks
permeability in all three directions, where v is the volumetric strain.
*GPERMES
Use a table to specify matrix permeability multiplier as a function of mean
effective stress change from initial value E (kPa | psi). The stress change
entries must be monotonically increasing.
*GPERMTS
Use a table to specify matrix permeability multiplier as a function of mean
total stress change from initial value T (kPa | psi). The stress change
entries must be monotonically increasing.
*GPERMVL
Use a table to specify matrix permeability multiplier as a function of
volumetric strain v (dimensionless). The strain entries must be
monotonically increasing.
kx/kx0 ky/ky0 kz/kz0
Permeability multipliers in the X, Y and Z directions, respectively
(dmensionless). These multiplier entries must be monotonic. Multipliers can
be different in the three grid directions.
Introduction 53
*GULOGINT
Use logarithmic interpolation for table look-up of the permeability-ratio
columns. Let x be the independent variable (v, E or T) and let y be the
dependent variable (kx/kx0, ky/ky0 or kz/kz0); let subscripts 1 and 2 denote two
adjacent table rows and let * denote values between the table rows. The
logarithmic interpolation algorithm is
[log(y*)-log(y1)]/[log(y2)-log(y1)] = [x*-x1]/[x2-x1]
whereas the linear interpolation algorithm is
[y*-y1]/[y2-y1] = [x*-x1]/[x2-x1]
DEFAULTS:
If none of these permeability multiplier options is specified for a rock type, then blocks in
that rock type will experience no permeability change due to geomechanical effects.
If keyword *GULOGINT is absent then table look-up used linear interpolation.
CONDITIONS:
These keywords are assigned to the current rock type specified via *GEOROCK, or to rock
type #1 if *GEOROCK is absent.
EXPLANATION:
In order to include the geomechanical responses in the reservoir fluid flow, the permeability
multiplier can depend on geomechanical information such as volumetric strain or mean stress.
Two different approaches are available: empirical formula and three table look-up options.
Table Look-up
This approach is more flexible than the empirical formula since the permeability multipliers
may differ in the three directions. The first column of the table can be either volumetric
strain, mean effective stress change, or mean total stress change. The stress change is current
stress minus initial stress on a per-node basis. The curves of multipliers (kx/kx0), (ky/ky0) and
(kz/kz0) versus stress change or volumetric strain can be linear or nonlinear, but they must be
monotonic. To ensure that permeabilities entered as data are used as initial values, the table
must contain a row with kx/kx0 = ky/ky0 = kz/kz0 = 1 at v, E or T = 0.
Example
*GEOROCK1
*GPERMLC100**Empiricalformulaisused
*GEOROCK2
*GULOGINT**Logarithmicinterpolation
*GPERMES**Meaneffectivestresschange
**meaneff
**stressdif(kx/kx0)(ky/ky0)(kz/kz0)
600.1.51.52.0
500.1.41.41.8
200.1.11.11.2
0.1.01.01.0**Initial
300.0.80.80.7
500.0.750.750.6
54 Well and Recurrent Data
800.0.70.70.5
Introduction 55
*GEOROCK3
*GPERMVL**Volumetricstrain
**Volstrain(kx/kx0)(ky/ky0)(kz/kz0)
0.0051.51.51.6
0.0011.41.41.5
0.00051.31.31.4
0.00011.21.21.3
0.000051.11.11.2
0.000011.051.051.02
0.01.01.01.0**Initial
0.00010.80.80.7
0.00050.70.70.6
Note that positive stress means compression and negative volumetric strain means expansion.
Empirical Formula
Based on the work of Li and Chalaturnyk (Li, P. and Chalaturnyk, R.J., Permeability
Variations Associated with Shearing and Isotropic Unloading during the SAGD Process,
CIPC Paper 2004-240), the following multiplier is applied to a blocks permeability in all
three directions
k/k0 = exp[ Cn1 v ]
where
Cn1
...
Heater Options
There are six different models for specifying heater or heat loss control:
1. Constant Model
Keyword *HEATR allows assignment of a heat gain (+) or loss (-) rate on a per
block basis.
2. Convective Model
Keyword *UHTR allows assignment of a heat gain (+) or loss (-) proportional rate
coefficient on a per block basis; heat transfer rate will depend also on a
temperature setpoint defined via *TMPSET. Keywords *UHTRAREAI-, etc.,
assign the rate coefficient on a per area basis.
3. Automatic Switching
Keywords *AUTOHEATER and *AUTOCOOLER allow combination of
*HEATR and *UHTR to create a heater/cooler control that operates on a constant
rate below/above a given temperature.
User's Guide STARS
Introduction 57
4. Adiabatic Model
Keyword *ADHEAT allows assignment of data to model a heat gain rate which
depends on the difference in temperature between a heater block and a reference block.
5. Slaved Model
Keyword *HEATSLAVE allows assignment of data to model a heat gain rate in a
slave block which depends on the rate in another master block.
6. Heater Well
Keyword *HTWELL allows you to specify heat-only gain or loss in the same
locations as a fluid well defined by keyword *WELL.
Note that these heater options are not related to the Electrical Heating option (see keyword
*ELECHEAT in the Other Reservoir Properties chapter as well as Appendix G). It is
possible, but not recommended, to use *ELECHEAT together with one or more of the above
heater options.
Keywords from Other Sections
The following is a list of keywords from other sections which may appear in recurrent data.
Input/output Control:
Reservoir Description:
Other Reservoir Properties:
Component Properties:
Rock-Fluid Properties:
Numerical Methods:
...
*GROUP
PURPOSE:
*GROUP is used to identify gathering centres, groups and platforms. The information entered
with this keyword is used to build a tree structure of groups.
*GROUPWT is obsolete. Use *REPORTING-GROUP instead.
FORMAT:
*GROUP 'child_1' ... 'child_n' *ATTACHTO 'parent'
DEFINITIONS:
'child_1', child_2 .. , child_n
Names of child groups that are attached to the 'parent' group. Each group is
identified by a unique name up to 16 characters long and enclosed in single
quotes. The *ATTACHTO keyword is not optional and must be present.
*ATTACHTO
Defines the parent group of all groups named in the list following *GROUP.
'parent'
Name of the parent group.
...
EXPLANATION:
This keyword identifies the group, by name, and assigns it to a parent group. There is no limit
to the number of levels of groups allowed in the group hierarchy:
1. Top-level. Only one group is allowed at this level; it has no default name and can
be assigned any name not exceeding 16 characters in length by the user. This group
cannot have wells attached directly to it. This group represents the whole field. The
name of this group is entered after *ATTACHTO in a *GROUP line. The top-level
group is identified as the only group whose name appears after *ATTACHTO in at
least one *GROUP line but whose name never appears in a list immediately
following *GROUP in a *GROUP line.
2. Level 2. These groups have the top-level group as their parent. When a group
structure exists, there is always at least one group in this category, with the name
'Default-Group'. 'Default-Group' has connected to it any wells not explicitly attached
to a parent group. Level 2 groups can have either wells or groups attached to them,
but not a mixture of the two. That is, if a level 2 group is named after the
*ATTACHTO subkeyword in a *WELL line, then that group must not appear after
the *ATTACHTO subkeyword in any *GROUP line, and vice versa.
3. Level n. These groups have level n-1 groups as their parents. A level n group may
consist entirely of attached wells or entirely of attached groups but not a mixture of
the wells and groups.
Introduction 59
*INCOMP
PURPOSE:
Specifies which phases are to be injected, along with their compositions.
FORMAT:
*INCOMP *WATER
*INCOMP *OIL
*INCOMP *GAS
*INCOMP *WATER-GAS
*INCOMP *WATER-OIL
*INCOMP *WATER-GAS-OIL
*INCOMP *CYCLING
DEFINITIONS:
*WATER w(1) ... w(numx)
Mole fractions of injected water phase. The allowed range for each is 0 to 1.
They should sum to one, but will be normalized if not. See keyword *MODEL.
*OIL x(1) ... x(numx)
Mole fractions of injected oil phase. The allowed range for each is 0 to 1. They
should sum to one, but will be normalized if not. See keyword *MODEL.
*GAS y(1) ... y(numy)
Mole fractions of injected gas phase. The allowed range for each is 0 to 1. They
should sum to one, but will be normalized if not. See keyword *MODEL.
*WATER-GAS v(1) .v(numy)
Inject water or steam together with a component that exists in the gas phase
at surface conditions, for example, gaseous solvent with steam.
*WATER-OIL v(1) .v(numx)
Inject water or steam together with a component that exists in the oil phase at
surface conditions, for example, liquid solvent with steam.
*WATER-GAS-OIL v(1) .v(numy)
Inject water or steam together with multiple components, each of which
exists in either the oil or gas phase at surface conditions. This is a
generalization of *WATER-GAS and *WATER-OIL and can mimic them
with suitable surface K values.
*CYCLING
This subkeyword specifies the water cycling injector whose phase
composition is to be obtained from the water phase produced by assigned
producers.
v(i)
Volume fraction of component injected at surface conditions. The allowed
range is 0 to 1. The v(i) should sum to one, but will be normalized if not. The
value for water v(1) must be non-zero. See Multi-phase Co-injection, below.
DEFAULTS:
There are no defaults.
The composition of a water cycling injector is initialized to the lumped water phase
composition produced by the producers under the same group, or the entire field if no group
hierarchy exists. This composition will then be reset accordingly if the group water recycling
option is in effect (see *GCONI *RECYCLE).
...
Introduction 61
*LEP-WELL, *LEP-DIAMETER,
*LEP-DISCHARGE-COEFF, *LEP-DISCHARGE-COEFF-CNST
PURPOSE:
Use limited entry perforations (LEP) for specified injectors.
FORMAT:
*LEP-WELL well_list
*LEP-DIAMETER well_list
diam_list
*LEP-DISCHARGE -COEFF well_list
dcoef_list
*LEP-DISCHARGE -COEFF-CNST well_list
dcoef_list
DEFINITIONS:
well_list
One or more quoted well names to specify the wells to which this definition
applies. These names must be on the same line as the keyword. If more than
one line is required for the well list, the keyword must be repeated. See
Wildcarding Well Names at the beginning of this chapter.
diam_list
List of perforation diameters (m|ft), one for each well in order in well_list. All
values must appear on a new line immediately after the *LEP-DIAMETER line.
*LEP-DISCHARGE COEFF
Discharge coefficient will be altered with gas content.
*LEP-DISCHARGE COEFF-CNST
Discharge coefficient is constant.
dcoef_list
List of discharge coefficients (dimensionless), one for each well in order in
well_list. All values must appear on a new line immediately after the *LEPDISCHARGE -COEFF line.
DEFAULTS:
When *LEP-WELL is absent for a well, that wells flow rates are calculated in a standard
way as described in APPENDIX A.
When *LEP-DIAMETER is absent for a well, that wells perforation diameter is assumed to
be 0.0125 m or 0.041 ft (12.5 mm).
...
*GCONI
PURPOSE:
*GCONI is used to specify group injection controls.
FORMAT:
*GCONI 'group_name_1' 'group_name_2' ... 'group_name_n'
(*MAX)
(*TARGET)
(*VREP)
(*RECYCLE)
(*PMAINT)
(*IIP)
(*STG)
(*STW)
(*BHG)
(*BHW)
(*STG)
(*STW)
(*BHG)
(*BHW)
(*GAS)
(*WATER)
(*GMKUP)
(*WMKUP)
(*GAS)
(*WATER)
(*GAS)
(*WATER)
value
(*STOP)
(*CONT)
value
vrep_frac
recyc_frac
(make_up_volume)
(*PMSECT) sector_name
(*PMTARG) p_targ
(*PMCOEF) c1 c2 c3
obsolete
DEFINITIONS:
'group_name_1', group_name_2, ... , group_name_n
Are the groups to which the following constraints apply. The wells that are
connected to each group must already have been specified using the *WELL
keyword. The injection targets are apportioned using one of the available
apportionment methods specified by *APPOR-METHOD.
*MAX
Specifies that the constraint is a maximum constraint, which is checked for
violations. This value becomes an injection rate target for the group only as
the result of a violation with the *CONT action.
...
make_up_volume
The amount of make-up gas (m3/day | SCF/day | cm3/day) or water (m3/day |
STB/day | cm3/day) to be injected with the recycled gas or water.
Introduction 63
*STOP
Action subkeyword indicating that if the constraint cannot be met then the
simulation should be stopped.
*CONT
Action subkeyword indicating that the simulation continues with the violated
constraint switched to target constraint.
DEFAULTS:
Optional keyword. Default is no constraints on groups.
CONDITIONS:
This keyword must be located in the WELL AND RECURRENT DATA keyword group. A
group must be defined, by appearing in the list directly following *GROUP in a *GROUP line
or after the *ATTACHTO keyword on a *GROUP line, before it can be given any constraint
values. Constraint types *TARGET, *VREP, *RECYCLE and *PMAINT are exclusive in one
timecard for the same injection stream (gas or water), and only the latest entry counts. If a
group is assigned by *GCONI with any of the following dependent constraints: *VREP,
*RECYCLE, or *PMAINT for any of the injection streams, such a group cannot be assigned by
*GCONP with these constraints for group production. In addition, only one injection stream
can be assigned with voidage make-up (*VREP *GMKUP / *WMKUP) or pressure
maintenance (*PMAINT) for the same targeted group. Error message will be issued if the
consistency of the dependent constraints is violated.
If a non-zero water make-up rate is specified via *GCONI *RECYCLE *WATER, the
composition of that water must be supplied via keyword *WMKCOMP.
EXPLANATION:
*GCONI is used to specify maximum or target fluid injection rates for the group. *GCONI
can also be used to specify voidage replacement, recycling or pressure maintenance targets.
This allows group controls to adjust injection rates in response to production.
Example: This is an example using voidage replacement. Here, 50% of the voidage is being
replaced by water injection, and the other 50% by gas injection. Note that voidage
replacement is done at reservoir conditions and consequently surface rates will not agree with
the ratio of 50%, even though the reservoir rates will be in a ratio of 50%.
*GCONI'Group1'
*VREP*WATER0.5
*VREP*GAS0.5
If there is any water cycling injector (defined by *INCOMP *CYCLING) contributing to the
water recycling target, its injected water phase composition will be determined by summing
up all the water components produced by the producers under the same group, in addition to
the user-specified recycling make-up rate. The produced water amount can be reduced before
re-injection selectively by component using the mask fraction keyword *WRECYMASK.
...
Introduction 65
*WMKCOMP
PURPOSE:
*WMKCOMP is used to specify the composition of water injected as part of a group water
recycling target to supplement the recycled fluid.
FORMAT:
*WMKCOMP group_list w(1) ... w(numx)
DEFINITIONS:
group_list
One or more group names in quotes.
w(i)
Mole fraction for component i in the make-up water phase used to
supplement water reinjection. The allowed range is 0 to 1. The w(i) should
sum to one; if they do not, they will be normalized internally.
DEFAULTS:
No default.
CONDITIONS:
A group name must have been defined previously by keyword *GROUP or *WELL before it
can appear in group_list.
If a non-zero group water make-up rate is specified via *GCONI *RECYCLE *WATER, and
there is at least one water cycling injector contributing to that target, then specification of
make-up composition via keyword *WKCOMP is mandatory for that group.
EXPLANATION:
The *WMKCOMP keyword affects injection rates only if a group water recycling injection
target is currently in effect (*GCONI *RECYCLE *WATER) with a non-zero make-up rate,
and there is at least one water cycling injector (*INCOMP *CYCLING) contributing to the
target.
Example
Group Group1 acquires the specified make-up water composition for a seven-component
water phase description.
*WMKCOMP'Group1
0.990.010.00.00.00.00.0
Introduction 67
*WMKUPTO
PURPOSE:
Specify a total recycling (produced plus make-up) group water injection rate target.
FORMAT:
*WMKUPTO group_list water_rate_list
DEFINITIONS:
group_list
One or more group names in quotes.
water_rate_list
One or more non-negative total injected water rate values (m3/day |
STB/day / cm3/day). If only one rate value is entered, it is applied to all of
the groups listed. If more than one rate value is entered, there must be one
rate for each group in the list and the first rate is assigned to the first group,
etc.
DEFAULTS:
If keyword *WMKUPTO is absent for a group, that groups water make-up rate is controlled
by the make_up_volume entered via *GCONI *RECYCLE *WATER (which itself defaults to
zero).
CONDITIONS:
A group name must have been defined previously by keyword *GROUP or *WELL before it
can appear in group_list.
EXPLANATION:
A specified total injected water rate has no effect unless a group water recycling target is
currently in force (see the *GCONI entry). The make-up rate can be specified with *GCONI
*RECYCLE *WATER make_up_volume. The total injection rate can be specified only with
*WMKUPTO. Zero total rates may be entered, but they are interpreted as meaning that the
groups water make-up rate is controlled completely by the make-up rate entered. The group
water injection rate will be set to the total water rate unless this total rate exceeds the
injection rate of recycled water by more than a maximum make-up rate, in which case the
total water injection rate is set to the recycling rate plus the maximum make-up rate. The
total rate specified here differs from a group STW target in that the target entered here will
not be met if the make-up water would have to exceed a specified maximum rate in order to
meet the total rate.
Example
Groups Group1 and Group2 both acquire the single specified total water injection rate.
*WMKUPTO'Group1Group2'300.
*GCONM
PURPOSE:
*GCONM is used to specify monitored group production constraints. Unlike the controls
specified under *GCONP and *GCONI, the quantities specified under *GCONM cannot be
assigned as group targets, and no action resulting in setting the violated value as a target is
possible.
FORMAT:
*GCONM 'group_name_1' 'group_name_2' ... 'group_name_n'
*GOR
*WCUT
*WGR
*MAXGAS
*MAXSTW
value
*MINOIL
*MINGAS
*MINBHF
*MINREC
value
value
value
value
(*STOP)
(*SHUTALL)
(*SHUTMOWS)
(*SHUTMOW)
(*SHUTMOL)
(*SHUTMOLDOWN)
(*SHUTMOLUP)
(*STOP|*SHUTALL)
(*STOP|*SHUTALL)
(*STOP|*SHUTALL)
(*STOP|*SHUTCYCINJ|*SHUTALL)
DEFINITIONS:
...
*MINREC
This subkeyword specifies that if the total group water rate available for
recycling falls below the specified value (m3/day | SCF/day | cm3/day) then
perform the remedial action, which can be one of *STOP, *SHUTALL or
*SHUTCYCINJ. The total recycling rate includes the make-up volumes.
...
*SHUTCYCINJ
Action subkeyword indicating that, if a monitored constraint is violated for a
group, all currently open water cycling injectors in the group should be shut.
...
Introduction 69
*UHTR *CON 0
*UHTRAREAI-, etc., all default to zero.
If *AUTOHEATER is absent then *OFF is assumed for all blocks.
If *AUTOCOOLER is absent then *OFF is assumed for all blocks.
CONDITIONS:
With the array-reading option *IJK, referring to only select grid blocks is allowed.
For the convective heating model, it is recommended that you use either *UHTR or
*UHTRAREAI-, etc., but not both. *UHTR will overwrite previous data (on a block by block
basis), whereas with *UHTRAREAI-, etc., contributions will be added to what has been
specified by *UHTR up to that point.
*TMPSET must be entered for each block which has a none-zero *UHTR or *UHTRAREAI-,
etc.
*AUTOHEATER may not be used with heat loss, that is, negative values of *HEATR or
*UHTR. *AUTOCOOLER may not be used with heat gain, that is, positive values of
*HEATR or *UHTR.
If an attempt is made to enable both *AUTOHEATER and *AUTOCOOLER for the same
block at the same time, *AUTOCOOLER will be ignored for that block. All other
combinations of those two keywords are allowed.
A heater model may be applied only to a non-null block that is not the parent of a refine grid.
EXPLANATION:
Data Echo and Output
Heater control data is echoed in the .out file under Summary of Current Heater
Specifications each time heater data is changed. Heater performance from all heater types
lumped together can be dumped to SR2 via *OUTSRF *GRID and to the .out file via
*OUTPRN *GRID using subkeywords *CCHLOSS for rate and *CCHLOSSCUM for
accumulation. Lumped heater performance is available also for sectors (SR2 and .out file).
The .out file includes a detailed summary Heater Rate Split which reports how much of
each blocks heating rate comes from the individual heating models (constant, proportional,
adiabatic or heater well). This is especially useful with *AUTOHEATER and
*AUTOCOOLER which switch automatically between constant and proportional models.
Inheritance Issues
Extrinsic quantities *HEATR, *UHTR and *UHTRAREAI-, etc., use inheritance only to
assign values to fine blocks. The parent value is not split amongst the child blocks. For
example, fundamental block (1,1,1) is refined into a grid of 2x2x2 = 8 fine blocks which
inherit their *HEATR values from their parent block.
*HEATR *IJK 1:2 1 1 200.
assigns the value 200 to each of the 8 fine blocks (not 200 / 8 = 25) as well as to block
(2,1,1). On the other hand, if you had intended that the value of *HEATR be the same on a
per-volume basis for these blocks, then the data should be
*HEATR *IJK 2 1 1 200.
*HEATR *IJK 1 1 1 25.
User's Guide STARS
Introduction 71
Since *AUTOHEATER and *HEATR have different matrix/fracture addressing defaults, the
autoheater control (on fracture only) does not match the heater (on matrix and fracture),
leading to unexpected results.
For this reason, it is recommended that block assignments be given explicit matrix/fracture
addresses, that is, (i,j,k FR) and/or (i,j,k MT) for UBA and *MATRIX and/or *FRACTURE
for grid arrays.
*ADHEAT
PURPOSE:
Assign data for controlling adiabatic heat gain.
FORMAT:
*ADHEAT heat_blk heat_coef (T_diff) *REF ref_blk
*ADHEAT heat_blk heat_coef (T_diff)
...
CONDITIONS:
The adiabatic control of a range of blocks may be specified via heat_blk, but there must a
one-to-one correspondence between the heat_blk range and the ref_block range.
Each heat_blk's ref_blk must be explicitly defined when heat_coef is first defined. A heat_blk
may not be its own ref_blk, that is, two distinct blocks must be used.
Keyword *HEATSLAVE may not use heat_blk as either slave or master block.
...
Introduction 73
*HEATSLAVE
PURPOSE:
Assign data for slaved heater control.
FORMAT:
*HEATSLAVE slave_block factor_option master_block
*HEATSLAVE slave_block *OFF
...
CONDITIONS:
The master block must not be a slave to another block through *HEATSLAVE, that is, nested
slaving is not allowed. In particular, the slave block must be different from the master block.
The master block may not be heated via *ADHEAT.
Both slave and master blocks must not be the parent of a refined grid.
...
Data Echo and Output
See the EXPLANATION for *HEATR.
Heater Well
*HTWELL
PURPOSE:
Assign data for a heater well.
FORMAT:
*HTWELL well_name ( rate_option ) ( T_option )
or
*HTWELL well_name *OFF
where
rate_option = *HTWRATE Qhspec | *HTWRATEPL Qhlspec
T_option = *HTWTEMP Twspec
DEFINITIONS:
well_name
Single quoted well name previously defined by keyword *WELL. No
wildcarding is allowed.
*HTWRATE Qhspec
Specify maximum total heating rate Qhspec (J/day | Btu/day) which is
distributed evenly over the total length of the well by assuming a uniform
per-length heating rate. A positive value denotes heating and a negative
value denotes cooling.
*HTWRATEPL Qhlspec
Specify maximum total heating rate per well length Qhlspec (J/day-m | Btu/dayft). This quantity is multiplied internally by the total well length to get total
well heat rate Qhspec, and then execution proceeds the same as if Qhspec had
been entered via *HTWRATE.
*HTWTEMP Twspec
Specify wellbore temperature Twspec (C | F).
*OFF
Stop the transfer of heat, that is, disable the heater well.
DEFAULTS:
Keyword *HTWELL is optional.
CONDITIONS:
At least one of rate_option, T_option or *OFF must be present after *HTWELL.
*HTWELL and other heater options (*HEATR, *UHTR, *ADHEAT, etc.) may be applied to
the same block, but this practice is not recommended.
At any one time, all enabled heater wells may not have any active completion layers in
common. This does not apply to heater wells that are disabled as well as individual
User's Guide STARS
Introduction 75
completion layers that are shut in. Since different fluid wells are allowed to have grid cells in
common, this is an additional restriction of heater wells.
EXPLANATION:
Of the several methods for specifying heating or cooling for certain grid blocks, the heater
well option allows you to use *WELL and *PERF data already entered for a fluid well.
Keyword *HTWELL may be used with a fluid well of any type (*INJECTOR,
*PRODUCER) and open status (*OPEN, *SHUTIN) and with any perforation data (*WELL,
*GEOMETRY, *PERF, *PERFV, *LAYERIJK, *LAYERXYZ).
In the following,
Lk
Lw
Ihk
Tk
Qh
and the resulting Qh varies. Note that in this case Qh will be positive or negative, depending
only on the relative values of Twspec and Tk. If you wish to prevent heat transfer of a particular
sign, you must use dual controls.
Dual rate/temperature control
When both *HTWTEMP and a heat rate (*HTWRATE or *HTWRATEPL) are specified,
control switches automatically between them on a per-layer basis. Qhspec is distributed among
the layers as
qhkspec = Qhspec Lk / Lw
For heating (Qhspec 0) the layer heat rate expression
qhk = min[ Ihk ( Twspec Tk ), qhkspec ]
causes Qh to be the minimum of Qhspec and the rate calculated from Twspec (zero when Tk > Tw),
similar to *AUTOHEATER.
For cooling (Qhspec < 0) the layer heat rate expression
qhk = max[ Ihk ( Twspec Tk ), qhkspec ]
causes Qh to be the maximum of Qhspec and the rate calculated from Twspec (zero when Tk < Tw),
similar to *AUTOCOOLER.
If you use *HTWTEMP and wish to restrict heat transfer to one sign, specify via
*HTWRATE a small non-zero rate of the opposite sign. For example, to get only positive
heat transfer (heat transfer is zero instead of negative for T k > Twspec), specify a very small
negative rate (e.g., -10-6). Remember that a rate of exactly zero turns the heater well off
completely.
Data Echo and Output
Heat rates and accumulations generated by *HTWELL can be viewed for separate heater
wells via *OUTSRF *SPECIAL *HTRWELL. Accumulation of shut-in layers is included in
a heater wells total accumulation.
Cell-based output is obtained from the PRN_GRID list quantities CCHLOSS and
CCHLOSSCUM which can be used with *OUTPRN *GRID, *OUTSRF *GRID and
*OUTSRF *SPECIAL. However, these cell-based outputs are for all the heater options
lumped together.
See the EXPLANATION for *HEATR.
Examples
Combustion Tube Heater
The following heater definition from template sttst01.dat
*TIME0
*HEATR*IJK1112200**Turnonheater
*TIME.5
*HEATR*CON0**Shutoffheater
Introduction 77
*TIME0
*PERF'INJECTOR'**ijkwi(gas)
11125.54
*HTWELL'INJECTOR'*HTWRATE200**Turnonheater
*TIME.5
*HTWELL'INJECTOR'*OFF**Shutoffheater
Deviated Wellbore
Well EDGE PRDCR, which is deviated from vertical, heats with a well temperature of 200
degrees and stops heating when the cell is hotter than the heater.
*LAYERXYZ'EDGEPRDCR'
**blockentry(x,y,z)exit(x,y,z)length
5,5,1131.2131.21000.131.2131.21010.10
5,5,2131.2131.21010.131.2118.31030.23.83
5,4,3131.2116.61031.131.2116.61055.23.75
5,5,4131.2116.71055.131.2145.81080.38.41
*HTWELL'EDGEPRDCR'*HTWTEMP200*HTWRATE1E6
Cooling Well
Well Cooling Well has temperature of -10 F and maximum cooling rates that change
several times during the run. This well has no fluid flow.
*TIME0
*WELL'COOLINGWELL'*VERT91*FRAC0.125
*PRODUCER'CoolingWell'
*GEOMETRY*K0.30.24910
*PERFV*GEO'CoolingWell'
**kfh
10.4**Partialcompletion
21.0
31.0
40.62**Partialcompletion
*SHUTIN'CoolingWell'
*HTWELL'CoolingWell'*HTWTEMP10*HTWRATE6.0E6
*TIME2
*HTWELL'CoolingWell'*HTWTEMP10*HTWRATEPL50000
*TIME4
*HTWELL'CoolingWell'*HTWTEMP10*HTWRATE2.0E6
*ELBOUND, ELTARGET
PURPOSE:
Specify electrical heating boundaries and operating conditions.
FORMAT:
*ELBOUND 'name' uba_range (dir)
uba_range (dir)
*ELTARGET
*ELTARGET
*ELTARGET
*ELTARGET
*POTENTIAL
*CURRENT
*POWER
*NOFLASH
DEFINITIONS:
*ELBOUND 'name' uba_range (dir)
String 'name' is the name of the boundary in quotes. Characters after the first
12 are ignored.
uba_range is the address of a single block or range of blocks in UBA format.
See section User Block Address in chapter Keyword Data Entry System. A
range is allowed in any number of directions at any grid level. Reference to
a null block, a zero-porosity block (if that blocks rock conductivity is zero
for any direction or temperature) or a refined parent block will result in a
warning message and that block will be skipped. If an electrical boundary is
attached to the inside of the inner-most ring of a hybrid-type locally refined
block, be sure to specify a non-zero value for the well radius via *REFINE
*HYBRID *RW (the default value of zero represents a zero area for
electrical conduction).
dir is the optional boundary face specifier. Allowed values are subkeywords
-I, +I, -J, +J, -K and +K. This specifies exactly the face of the host block(s).
Here, + or - refers to the face between the host block and its neighbour with
an index in the indicated direction (I, J or K) that is one lower (-) or one
higher (+). For example, to access the face between blocks (i,j,k) and
(i+1,j,k) use +I from (i,j,k) or use -I from (i+1,j,k).
Multiple sets of uba_range (dir) may be specified as well, one per line.
For example, in a 13x1x4 grid with *KDIR *UP the entire top of the grid is
indicated by the range "1:13 1 4" with direction specifier "+K". This is a
case where the default algorithm (see below) will choose the default.
Normally dir is used to indicate a block face on the outer reservoir boundary,
but an interior block face may be specified.
Introduction 79
...
EXPLANATION:
...
Examples:
**Changeelectrodevoltageduringrun
*TIME0
*ELBOUND'Electrode'111:6i
*ELTARGET*POTENTIAL'Electrode'220
*ELTARGET*POWER25
*TIME10
*ELTARGET*POTENTIAL'Electrode'160
*ELTARGET*CURRENT'Electrode'40
**Hybridgrid
*ELBOUND'Electrode'443:5/111:2i
**UBAlistcannotbespecifiedwithsinglerangeset
*ELBOUND'Electrode'443/111i
443/112i
445/111I**skipk=4
445/112i
**Threephase220Vconfiguration
*ELTARGET*POTENTIAL'E1'2200**0deg
*ELTARGET*POTENTIAL'E2'110+190.5**120deg
*ELTARGET*POTENTIAL'E3'110190.5**240deg
*ELTARGET*POWER55
B.1
Description
sttst1.dat
sttst2.dat
sttst3.dat
sttst4.dat
sttst5.dat
sttst6.dat
sttst7.dat
sttst8.dat
sttst9.dat
sttst10.dat
sttst11.dat
sttst12.dat
sttst13.dat
sttst14.dat
sttst15.dat
sttst16.dat
sttst17.dat
sttst18.dat
sttst19.dat
sttst20.dat
sttst21.dat
sttst22.dat
sttst23.dat
sttst24.dat
sttst25.dat
sttst26.dat
Introduction 81
No.
sttst27.dat
sttst28.dat
sttst29.dat
sttst30.dat
sttst31.dat
sttst32.dat
sttst33.dat
sttst34.dat
sttst43.dat
sttst46.dat
sttst47.dat
sttst48.dat
sttst49.dat
sttst50.dat
sttst54.dat
sttst55.dat
sttst56.dat
sttst57.dat
sttst58.dat
sttst59.dat
sttst61.dat
sttst62.dat
sttst63.dat
sttst64.dat
sttst65.dat
sttst66.dat
sttst67.dat
sttst68.dat
sttst69.dat
sttst70.dat
sttst71.dat
sttst72.dat
sttst73.dat
sttst74.dat
sttst75.dat
sttst76.dat
Description
Lab Scale Insitu-generated Foam Propagation, Chevron #2
Modified Kazimi's Dual Porosity Problem (*DUALPOR option)
Pruess Geothermal Problem on 1/8 5-spot (*MINC option)
Gravity Drainage Problem (*DUALPERM option)
Chen Problem (*SUBDOMAIN option)
Lab Scale Foam Run with Lamella Model, Chevron #3
SAGD with Discretized Circulating Injector and Producer
Modelling Near-well Phenomena with Hybrid Grid
Smaller Version of Test Bed No. 31
Test Bed #7 with 31x31x10 Full Pattern Grid
Test Zero-porosity Blocks and Full Printout
Dilation-Recompaction Option
Intermediate-Wet Relative Permeability Option *INTMED1
Oil-Wet Relative Permeability Option *OILWET
Model Metal Tube Wall with Zero Porosity and Radial Grid
Dilation and Thermal Conductivity Nine-Point Options
Foam with Horizontal Wells, Troll Field
Multiple Contact Miscible with STARS
Switch Between Mixed Surface/Downhole Constraints
Upper/lower Trans. Mult. For LGR Cartesian, redefined with time
Water/Oil Vertical Equilibrium Illustration
Water/Oil/Gas Vertical Equilibrium with Two Transition Zones
Steam Trap Well Control Option Illustration
Horizontal Discretized Wellbore Inside Hybrid Grid
Illustrate Foamy Oil Process Bubbly Oil Approach
Illustrate Foamy Oil Process Oily Foam Approach
Steam Trap Alternate Location Option
SAM Wellbore option with Source/Sink Wells
SAM Wellbore option with DW Tubing/Annulus
SAM Wellbore option with DW & Wellhead Constraints
Dead Oil Steam Flood with *FAULT
Vapex with 2D Corner-point Grid
Thermal Conductivity Options, Slaved Heater and Variable-Permeability
Elastic-Plastic Compaction-Rebound
Test/Illustrate BBM Kr Hysteresis (Water Wet)
Test/Illustrate Carlson Method for Kro, Krg and Pcog Hysteresis
Data sets in directory "verify" in the STARS template release area are used to verify
operation of some specific options and are not particularly useful for template purposes.
Directory restart contains data sets that verify multi-segment restart option.
In directory "output" in the STARS template release area are summaries of the results of
running all the data sets from "testbed", "restart" and "verify" on all the supported platforms.
Included are numbers of time step, iterations and timestep cuts, along with CPU time for the
specific computer model indicated.
B.2
- Drive Mechanisms
- Fluid Types
- Fractured Reservoirs
- Geomechanics
- Grid Options
- Horizontal Wells
- Simulator Options
- SPE Problems
- Wells and Well Management
Each directory contains a text file which documents the data files in that directory. The main
template directory tpl contains file template.txt which contains brief descriptions of all
the data sets in these template directories. The following are the data files in these template
directories that are not copies of the test bed data sets.
Fluid Types
stflu018.dat
stflu019.dat
stflu020.dat
stflu021.dat
stflu022.dat
stflu023.dat
stflu024.dat
stflu025.dat
stflu026.dat
stflu027.dat
stflu028.dat
stflu029.dat
stflu030.dat
stflu031.dat
Introduction 83
Geomechanics
stgeo002.dat
stgeo003.dat
stgeo004.dat
stgeo005.dat
stgeo006.dat
stgeo007.dat
stgeo008.dat
stgeo009.dat
stgeo010.dat
stgeo013.dat
stgeo014.dat
stgeo015.dat
stgeo016.dat
stgeo017.dat
stgeo018.dat
stgeo019.dat
stgeo020.dat
stgeo021.dat
stgeo022.dat
stgeo023.dat
stgeo024.dat
stgeo025.dat
stgeo026.dat
stgeo027.dat
Geomechanics-Dependent Permeability
stgeo028.dat
stgeo029.dat
stgeo030.dat
stgeo031.dat
stgeo032.dat
stgeo033.dat
stgeo034.dat
stgeo035.dat
stgeo036.dat
stgeo037.dat
stgeo038.dat
stgeo039.dat
stgeo040.dat
Grid Options
stgro007.dat
stgro008.dat
stgro009.dat
stgro010.dat
stgro013.dat
stgro014.dat
stgro015.dat
stgro016.dat
stgro017.dat
stgro018.dat
stgro019.dat
stgro020.dat
stgro021.dat
stgro022.dat
stgro023.dat
stgro024.dat
stgro025.dat
stgro026.dat
stgro027.dat
stgro028.dat
stgro029.dat
stgro030.dat
stgro031.dat
stgro032.dat
stgro033.dat
stgro034.dat
stgro035.dat
stgro036.dat
stgro037.dat
stgro038.dat
Introduction 85
stgro039.dat
stgro040.dat
stgro041.dat
stgro042.dat
stgro043.dat
stgro044.dat
stgro045.dat
stgro046.dat
Horizontal Wells
sthrw007.dat
sthrw008.dat
sthrw009.dat
Simulator Options
stsmo010.dat
stsmo011.dat
stsmo012.dat
stsmo013.dat
stsmo014.dat
stsmo015.dat
stsmo016.dat
stsmo017.dat
stsmo018.dat
stsmo019.dat
stsmo020.dat
stsmo021.dat
stsmo022.dat
stsmo023.dat
stsmo024.dat
stsmo025.dat
stsmo026.dat
stsmo027.dat
stsmo028.dat
stsmo029.dat
stsmo030.dat
stsmo031.dat
stsmo032.dat
stsmo033.dat
stsmo034.dat
stsmo035.dat
stsmo036.dat
stsmo037.dat
stsmo038.dat
stsmo039.dat
stsmo040.dat
stwwm010.dat
stwwm011.dat
stwwm012.dat
stwwm013.dat
stwwm014.dat
stwwm015.dat
stwwm016.dat
stwwm017.dat
stwwm018.dat
stwwm019.dat
stwwm020.dat
stwwm021.dat
stwwm022.dat
stwwm023.dat
stwwm024.dat
stwwm025.dat
stwwm026.dat
stwwm027.dat
stwwm028.dat
stwwm029.dat
stwwm030.dat
stwwm031.dat
stwwm032.dat
stwwm033.dat
Introduction 87
stwwm034.dat
stwwm035.dat
stwwm036.dat
stwwm037.dat
stwwm038.dat
stwwm039.dat
stwwm040.dat
stwwm041.dat
stwwm042.dat
stwwm043.dat
elec2.dat
elec3.dat
elec4.dat
elec5.dat
elec6.dat
elec7.dat
Overview
This appendix is organized in the following manner:
G.1
G.2
G.3
G.4
G.5
G.6
Introduction 89
G.4
Templates
Most of these templates have extensive output enabled to both the text output and SR2, and
some have the current density field available as a vector plot in RESULTS 3D. All have a
significant list of special histories, for example, total heat rate and accumulation, and
boundary potentials, currents and accumulated charge.
ELEC1: Constraint Changes, *ELWCOMPTAB and *ELSCOMPTAB
This template has recurrent data in which the downhole electrode potential changes several
times during the run. Also, the list of blocks associated with the electrode is changed several
times. You can see in a cross-section view of the block electric potential in RESULTS that
the change in electrode block assignments changes the electric field shape near the well.
This template also has composition-dependent electrical conductivities for both the water and
solid phases. There are two water components: original in-place water and injected water
with enhanced conductivity. Two different solid components are found coating the rock
matrix in separate regions of the reservoir. Note that you need a chemical reaction present in
order to satisfy mass conservation of the solid components, but the reaction has a zero rate.
ELEC2: Electrical Heating with 3D Cartesian Grid
In this 13104 Cartesian grid the electrode is at one corner and the ground is at an opposite
edge, and sector output allows you to track the heat generated in the 4 layers separately.
ELEC3: Metal Electrode and Constraint Switching
This template models primary production with a radial grid. The electrode interval at the
wellbore changes with time, and ground is the top of the overburden. The innermost radial
block is used to mode a metal electrode. The 10-ft pay zone, the 67-ft overburden and the
metal electrode each have a different set of electrical properties. The water electrical
conductivity varies with temperature. Electrode potential target starts at 220 V but is
immediately cut back due to the 5 kW maximum total power constraint. Later the potential is
manually decreased in steps to 120 V so that the power falls below its maximum. This can be
seen by viewing the total power and boundary potentials in RESULTS Graph.
The change of conductivity can be viewed via a plot of total resistance between the electrode
and ground. Some potential gradients also are written to the SR2.
ELEC4: No-Flash Option
This template is similar to ELEC3 but the fluid flow is larger and the No-Flash option is
enabled. The data requests that the temperature in any grid block not exceed that blocks
water flashing temperature minus 50 degrees.
The electrode starts on 220 V, but hits the 20 kW power limit as the region around the
wellbore heats and the electrical conductivity increases. As blocks near the wellbore
approach the water flashing temperature, the no-flash constraint kicks in and reduces the
power even further. In the last half of the run the temperature and power are very steady,
indicating the pseudo-steady process of in-flowing fluid cooling the wellbore. This can be
seen very well by plotting with RESULTS Graph the total power together with temperature of
block (1,1,6).
220 V at 90 deg
200 V at 60 deg
180 V at 150 deg
160 V at 240 deg
120 V at 330 deg
If this data is re-run in single-phase mode, the heating result will be the same.
ELEC7: Three-Phase Triangular Configuration
This template tests and illustrates the use of a three-phase configuration for electrical heating.
Three electrodes are placed at the vertices of an equilateral triangle, all with potentials at 220
V but differing in phase by 120 deg. Plots viewed in Results 3D show triangular symmetry
for all "magnitude" results including heating, voltage and current density. Real and
imaginary potentials and currents have some symmetry but not triangular symmetry.
The run starts on specified potentials, each electrode with its own phase. Later, the maximum
power constraint is reached, after which the electrode current constraints are used.
Note that Electrode 1 with phase angle 0 has some imaginary component current during the
*POTENTIAL and *POWER constraint operation, but it has no imaginary current component
while it is on *CURRENT constraint since the specified current uses the phase specified by
the *POTENTIAL constraint.
Introduction 91