WELL_DATA¶
The WELL_DATA block is used to set up a production or injection well in the model. WELL_DATA wells can be given several targets in terms of bottom hole pressure, surface volume flow rates or mass flow rates, and the well will automatically switch to the most restrictive mode when it is solved.
Below an example of a well definition:
WELL_DATA injg
CIJK_D 25 1 50 55
DIAMETER 0.1524 m
WELL_TYPE GAS_INJECTOR
INJECTION_ENTHALPY_P 120 Bar
INJECTION_ENTHALPY_T 45 C
BHPL 400 Bar
SHUT
DATE 1 JAN 2025
OPEN
TARG_GM 1.0 Mt/y
DATE 1 JAN 2045
SHUT
END
The instructions above define an injector initially shut, which starts injecting 1 Mt of gas in Jan 2025. Injection continues until Jan 2045 when the well is shut again. The energy of the fluid being injected is defined specifying a pressure and a temperature.
The options and setting supported by WELL_DATA are listed below:
WELL_TYPE¶
Defines the type of wells. Options are:
PRODUCER (This implies a multi-phase producer)
OIL_INJECTOR
GAS_INJECTOR
WATER_INJECTOR
SOLVENT_INJECTOR
Rate Target Options¶
Different targets can be given, these are grouped by type below.
For surface volume rate targets the options are:
TARG_OSV: Oil surface volume rate
TARG_GSV: Gas surface volume rate
TARG_WSV: Water surface volume rate
TARG_SSV: Solvent surface volume rate
TARG_LSV: Liquid (sum of oil and water) surface volume rate
For mass rate targets the options are:
TARG_OM: Oil mass rate
TARG_GM: Gas mass rate
TARG_WM: Water mass rate
TARG_SM: Solvent mass rate
- Other targets:
TARG_RV: Well reservoir volume target
The liquid target only applies to a producer.
USE_HIST_TARG¶
Historical data can be used to specify the target for a well. When using historical data as well target only one target can be specified per well. The target is imposed in the WELL_DATA section using the keyword USE_HIST_TARG followed by the target, which can be one of the following:
Target |
Target |
||
---|---|---|---|
O |
Oil volume rate at surface conditions |
OM |
Oil mass rate |
G |
Gas volume rate at surface conditions |
GM |
Gas mass rate |
W |
Water volume rate at surface conditions |
WM |
Water mass rate |
S |
Solvent volume rate at surface conditions |
SM |
Solvent mass rate |
L |
Liquid volume rate at surface conditions |
BHP |
Bottom hole pressure |
Note: a suffix SV (Surface Volume) can be added to the volume rate targets, e.g. target OSV is the same as O.
Example of using a historical target of gas mass rate for a production well:
WELL_DATA well1
WELL_TYPE PRODUCER
CIJK 10 10 1 1
USE_HIST_TARG GM
END
Wells controlled using historical data are treated differently to normal wells in the following way:
Observed rates and BHP are written to the summary file. (The mnemonic has a H added at the end).
Wells can only have one control model (other observed data is just reported). Available control modes are RATE and BHP.
For an injector well controlled by rate, the BHP limit is set to a very high value automatically to reduce the possibility of the well changing to BHP control.
For a producer well controlled by rate, the BHP limit is set to a very low value automatically to reduce the possibility of the well changing to BHP control.
When using this type of target, the corresponding historical data must be provided. See HISTORY_DATA.
CIJK_D¶
This keyword takes four compulsory arguments: I, J, KL, and KU. It requests the creation of a set of well completions in the column of cells from cell I,J,KL to cell I,J,KU.
CIJK_D <I> <J> <KL> <KU>
CIJK_D counts K-indices from the top of the reservoir downwards.
<I> = I-location of the set of well completions (GRDECL grid format)
<J> = J-location of the set of well completions (GRDECL grid format)
<KL> = K-Lower index (from the top) of the set of well completions (GRDECL grid format)
<KU> = K-Upper index (from the top) of the set of well completions (GRDECL grid format)
More than one CIJK_D keyword can be entered, to specify completions in different columns.
See example below:
CIJK_D 15 50 31 36
CIJK_D 15 51 37 40
Additional arguments can be added for each set of completions to specify the drilling direction and the completion connection factor (CCF). For the drilling direction the options are:
X (alias DIR_X)
Y (alias DIR_Y)
Z (alias DIR_Z)
For example to specify an horizontal well with two completions in the Y direction:
CIJK_D 15 50 36 36 Y
CIJK_D 15 51 36 36 Y
If the drilling direction is not specified, it will default to Z.
The user can also manually introduce the CCF or Well transmissibility factor. CCF is normally computed internally, using the radius, the connection’s effective Kh and the skin factor. However, the CCF can be introduced by the user and avoid the internal computation. This is done adding the following extra parameters:
CCFUSER = Keyword specifying that the CCF is going to be provided by the user for this completion
<Value> = Numerical value of the CCF
<Units> = Unit system of the value introduced. This can be one of the following: 1) FIELD (bbl.cp/d/psi), 2) METRIC (m^3.cp/d/bar) or 3) SI (m^3)
For example to specify a CCF manually we would do:
CIJK_D 15 50 36 36 Y CCFUSER 3.0 METRIC CIJK_D 15 51 36 36 Y CCFUSER 1.301 FIELD
Note that we had to include the drilling direction, this is also true when using the default Z direction.
The CIJK_D keywords may be placed after TIME or DATE. New completions will become active from the TIME at which they are defined. So entering data like:
TARG_OSV 32000 m^3/day
CIJK_D 10 10 3 3
TIME 1000 d
CIJK_D 10 10 2 2
TIME 2000 d
CIJK_D 10 10 1 1
will produce results in which the effect of the extra completions on the gas production rate can be seen, as shown below:
For PFLOTRAN advanced users, a CIJK card (or its alias CIJK_Z) is also available, for which the K-index counts upwards from the bottom of the reservoir.
CIJKL_D¶
Request a well completion in a local refinement. Form is similar to CIJK_D for normal completions, but extra local grid name.
For example:
CIJKL_D 3 3 1 1 XXX
Arguments are ix, iy, izl, izu, the well being completed in cells from (ix,iy,izl) to (ux,iy,izu) in refinement name XXX. The CIJKL and CIJKL_Z variants expect the iz indices to be layers counting from the bottom of the grid, the CIJKL_D expects values counting from the top of the grid.
Hereis an example of a visualisation of such a completion:
OPEN¶
When a well is defined, it is normally opened. However, SHUT may be used to shut the well, and it will then remain shut until a subsequent OPEN keyword is processed.
RADIUS¶
The radius of the well. Currently only a single value per well is supported. Note that a unit is required.
An example is:
RADIUS 0.0762 m
If not enter the radius default to 0.1524 m.
The effect of the radius upon the completion connection factor (CCF) calculated for the well is detailed in the Theory Manual in the Well Model section.
DIAMETER¶
The diameter of the well. Currently only a single value per well is supported. Note that a unit is required.
An example is:
DIAMETER 0.05 m
If not entered the diameter defaults to 0.3048 m.
The effect of the diameter upon the completion connection factor (CCF) calculated for the well is detailed in the Theory Manual in the Well Model section.
SKIN_FACTOR¶
The skin factor for the well. The default is no skin. Currently only a single value per well is supported. An example is:
SKIN_FACTOR 0.1
The effect of the skin factor upon the completion connection factor (CCF) calculated for the well is detailed in the Theory Manual in the Well Model section.
EFFECTIVE_KH¶
Defines the connection’s effective \(K_h\) (permeability x thickness). If defaulted is computed internally using the grid block data. If a value > 0 is found, and CCF is defaulted, this quantity is used to compute the CCF, ignored otherwise. The \(K_h\) accepted units are: mD.m or mD.ft. Currently only a single value per well is supported. An example is:
EFFECTIVE_KH 3000 mD.m
The effect of the connection’s effective \(K_h\) upon the completion connection factor (CCF) calculated for the well is detailed in the Theory Manual in the Well Model section.
PRESSURE_RADIUS_R0¶
Pressure equivalent radius \(r_0\), which is used to compute the CCF if CCF is defaulted, ignored otherwise. If a value > 0 is not found, it is computed internally using the grid block data. Note that distance units are required, e.g. m, ft, … Currently only a single value per well is supported. An example is:
PRESSURE_RADIUS_R0 50 m
The effect of the pressure equivalent radius \(r_0\) upon the completion connection factor (CCF) calculated for the well is detailed in the Theory Manual in the Well Model section.
CONST_DRILL_DIR¶
Defines the drilling direction for the entire well, if this changes by completion, specify this direction in CIJK_D.
The default drilling direction is in the Z vertical direction. The options available with this keyword are DIR_X, DIR_Y and DIR_Z, with the default being DIR_Z. Alternatively X can be used instead of DIR_X, Y instead of DIR_Y, and Z instead of DIR_Z.
The effect of the drilling direction upon the completion connection factor (CCF) calculated for the well is detailed in the Theory Manual in the Well Model section.
BHPL¶
The bhp limit. This is a minimum bhp for a producer and a maximum bhp for an injector. Note that the units are specified. An example is:
BHPL 689.4757 Bar
D_REF¶
This over-rides the default BHP reference depth, which is the depth of the shallowest completion. Units are required.
Z_REF¶
This over-rides the default BHP reference depth, which is the depth of the shallowest completion. This is similar to D_REF
, but is specified as an elevation rather than a depth. So a reference depth of 3000 meters would be entered as 3000 m with D_REF
, but -3000 m with Z_REF
. Units are required.
INJECTION_ENTHALPY_P¶
This specifies the pressure used to calculate the specific enthalpy of the injected fluid. Units are required. Needed only for thermal problems.
INJECTION_ENTHALPY_T¶
This specifies the temperature used to calculate the specific enthalpy of the injected fluid. Units are required. Needed only for thermal problems.
DATE¶
This specifies the date at which following well settings become effective. Example:
DATE 1 JAN 1993
The use of DATE is discussed in scheduling well operations.
TIME¶
This specifies the time at which following well settings become effective. An examples is:
TIME 2 y
Units are required. The use of TIME is discussed in scheduling well operations.
ZINJ¶
It applies to COMP EOS runs only.
It specifies the composition of the injected phase in mole percentage (PERCENT) or fraction (FRAC). For example for COMP 7 EOS (6 Hydrocarbons):
ZINJ PERCENT 77 20 3 0 0 0
GC_WEIGHT¶
Set the weight for this well in the group control. Default is the sum of the well completion connection factors.
Users are strongly advised not to mix default values and set values in a group.
Scheduling well operations¶
There must be only one WELL_DATA block for each well. Within the WELL_DATA
block a series of well operations may be defined. It is possible to set the time in the run schedule at which these operations occur. An example is:
WELL_DATA injg
RADIUS 0.0762 m
CIJK_D 1 1 1 1
WELL_TYPE SOLVENT_INJECTOR
BHPL
689.4757 Bar
SHUT
TIME 2 y
OPEN
WELL_TYPE WATER_INJECTOR
TARG_WSV 1907 m^3/day
TIME 3 y
WELL_TYPE SOLVENT_INJECTOR
TARG_SSV 339802 m^3/day
END
In this case a well called ‘injg’ is completed in the top corner cell (1,1,1). A bhp limit is set, but rather than start operating immediately, the well is shut. The well remains shut for 2 years, and then is opened as a water injector. At 3 years the well is converted into a solvent injector. This is the first part of a water alternating gas injection sequence.