JFUNC
Recognised by the OPM Flow parserGRID
The JFUNC keyword activates the Leverett-J-Function117 Leverett, M. C.; “Capillary Behaviour in Porous Solids”, Trans. AIME (1941) 142, 152-168. option, which scales the capillary pressure in each cell based on the cell's porosity and permeability, and the keyword parameters. The Leverett-J-Function is a commonly used technique for normalizing measured capillary pressure data based on the surface tension and the laboratory measured core plug porosity and permeability values.
Leverett, M. C.; “Capillary Behaviour in Porous Solids”, Trans. AIME (1941) 142, 152-168.
The keyword should only be used if end-point scaling is switched on using the ENDSCALE keyword in the RUNSPEC section.
Notes:
The keyword is terminated by a “/”.
Just like the relative permeability data, capillary pressure data are measured on core plugs with varying quality and perhaps from different reservoirs. It is therefore necessary to determine average normalized data, before employing the data in engineering calculations. This is commonly done by using the Leverett J-Function118 Leverett, M. C.; “Capillary Behaviour in Porous Solids”, Trans. AIME (1941) 142, 152-168., which is a dimensionless function of water saturation defined as:
Leverett, M. C.; “Capillary Behaviour in Porous Solids”, Trans. AIME (1941) 142, 152-168.
[J ` ` (S SUB{w})~=~ {P SUB{c,res} (S SUB{w}) ~ {SQRT {k OVER φ} }} OVER {σ }]
(6.4)
Where:
Pc,res (Sw)=capillary pressure (kPa),
k=permeability (m2),
φ=porosity (fraction), and
σ=interfacial tension (mN/m).
Sometimes the equation is stated with the cos Θ term included, where Θ is the contact angle, that is:
[J ` ` (S SUB{w})~=~ {P SUB{c,res} (S SUB{w}) ~ {SQRT {k OVER φ} }} OVER {σ`` cos ` ` Θ}]
(6.5)
Since the above function is just a normalizing function, the units are not important, provided we use the same unit set when we de-normalize the average curve. Secondly, if all the capillary pressure data has been converted to reservoir conditions, we actually ignore the denominator as it is a constant, and we can therefore just use:
[J ` ` (S SUB{w})~=~ {P SUB{c,res} (S SUB{w}) ~ {SQRT {k OVER φ} }}]
(6.6)
However, in the simulator it is necessary to use the formal definition as outlined in equation (6.4). In addition, the definition of the J-Function has been generalized to allow user defined powers for the porosity and permeability instead of the standard value of 0.5 used in equation (6.4). In the simulator the J-Function is defined in terms of the input units as follows:
[J(S)~=~ {P SUB{c,res} (S) ~ left( {k sup %beta} OVER {φ sup %alpha} right) } OVER {U_{const} σ}]
(6.7)
Where:
Pc,res (S)=capillary pressure (Field: psi, Metric: bars, Lab: atm),
k=permeability (mD),
φ=porosity (fraction),
σ=interfacial tension (dynes/cm),
α=porosity power value,
β=permeability power value, and
Uconst=constant that depends on units system
(Field: 4.61678, Metric: 0.318316, Lab: 0.314153).
The JFUNC keyword allows the data entered as capillary pressure in the saturation tables, for example, by using the SGFN and SWFN keywords in the PROPS section, to be treated as J-Functions instead, and to de-normalize these curves for each active cell in the model using the options and values defined with the JFUNC keyword combined with each cell's porosity and permeability values. In the simulator, the oil-water capillary pressure in each cell is evaluated as follows (and similarly for gas-oil capillary pressure):
[P_{cow}(S_w)~=~F_{PCW} J(S_w)]
(6.3.103.5)
and the oil-water capillary pressure scaling factor (FPCW) for each cell is defined as follows:
[F_{PCW}~=~U_{const} σ_{ow} left( {φ^%alpha} OVER {k^%beta} right)]
(6.3.103.6)
Where:
J(Sw)=dimensionless function of water saturation input using, for example, the
SWFN keyword, and
σow=oil-water interfacial tension (dynes/cm) entered on the JFUNC keyword,
k=permeability of cell (mD), and
φ=porosity of cell (fraction).
The oil-water and gas-oil capillary pressure scaling factors are evaluated for each grid cell and output to the Restart file as the PCW and PCG arrays.
Note
If either the JFUNC or JFUNCR keywords are used to activate J-Function scaling then the ENDSCALE keyword in the RUNSPEC section must also be present in the input deck, in order for the dimensionless J-Function values entered on the SWFN, SGFN or the SWOF, SGOF, SLGOF keywords to be re-scaled to capillary pressure data.
Note if the ENDSCALE keyword is absent, then like the commercial simulator, J-Function scaling is not performed, and the values entered on the SWFN, SGFN or the SWOF, SGOF, SLGOF keywords are used as entered.
See also the JFUNCR keyword in the GRID section that performs similar calculations based on the J-Function parameters being declared by saturation table number.
- Records
- Fixed number of records
- Record count
- 1
- Items per record
- 6
Parameters
| No. | Name | Description | Type | Dimension | Field | Metric | Lab | Default |
|---|---|---|---|---|---|---|---|---|
| 1 | FLAGmanual: JFOPT | A defined character string that specifies the capillary pressure datasets to which the J-Function option should be applied. JFOPT should be set one of the following character strings: WATER: apply the J-Function option to the water-oil capillary pressure data only. GAS: apply the J-Function option to the gas-oil capillary pressure data only. BOTH: apply the J-Function option to the water-oil and the gas-oil capillary pressure data. | STRING | BOTH | ||||
| 2 | OW_manual: OWSTEN | A positive real number that defines oil-water surface tension used to de-normalized J-Function data entered in the PROPS section. | DOUBLE | SurfaceTension | dynes/ | dynes/ | dynes/ | None |
| 3 | GO_manual: OGSTEN | A positive real number that defines oil-gas surface tension used to de-normalized J-Function data entered in the PROPS section. | DOUBLE | SurfaceTension | dynes/ | dynes/ | dynes/ | None |
| 4 | ALPHA_manual: ALPHA | A positive real value that defines an alternative power value for the porosity term in the J-Function equation, that is instead of [sqrt{k over %varphi}] use use [{k sup 0.5} over {%varphi sup %alpha}] in the transformation. in the transformation. | DOUBLE | 0.5 | ||||
| 5 | BETA_manual: BETA | A positive real number that defines an alternative power value for the permeability term in the J-Function equation, that is instead of [sqrt{k over %varphi}] use use [{k sup %beta} over {%varphi sup 0.5}] in the transformation. in the transformation. | DOUBLE | 0.5 | ||||
| 6 | DIRECTIONmanual: PERM | PERM is a character string that sets the permeability array to be used in the transform, based on the following options: X: use the PERMX array. XY: use the average of the PERMX and PERMY arrays. Y: use the PERMY array. Z: use the PERMZ array. U: use the PERMJFUN array If NX and NY are equal to one then the PERMZ array will be used instead of the PERMX and PERMY arrays. If NX is equal to one then the PERMY array will be used instead of the PERMX array. Similarly, if NY is equal to one then the PERMX array will be used instead of the PERMY array. The grid dimensions NX, NY, and NZ are specified using the DIMENS keyword. | STRING | XY |
Example
--
-- DEFINE LEVERETT J-FUNCTION PARAMETERS
-- JFUN OILWAT GASOIL PORO PERM PERM
-- OPTN SDENS SDEN ALPHA BETA OPTN
JFUNC
WATER 22.5 1* 0.5 0.5 XY /
The above example results in the oil-water capillary pressure data entered on the SWFN keyword in the PROPS section being treated as J-Functions, and that the J-Function should be de-normalized using an oil-water surface density of 22.5 dynes/cm, using the default power values and the average of the PERMX and PERMY values for each grid block.
| [J ` ` (S SUB{w})~=~ {P SUB{c,res} (S SUB{w}) ~ {SQRT {k OVER φ} }}
OVER {σ }] | (6.4) |
|-----------------------------------------------------------------------------------------------------------|-------|
| [J ` ` (S SUB{w})~=~ {P SUB{c,res} (S SUB{w}) ~ {SQRT {k OVER φ} }}
OVER {σ`` cos ` ` Θ}] | (6.5) |
|----------------------------------------------------------------------------------------------------------------------|-------|
| [J ` ` (S SUB{w})~=~ {P SUB{c,res} (S SUB{w}) ~ {SQRT {k OVER φ} }}] | (6.6) |
|-----------------------------------------------------------------------|-------|
| [J(S)~=~ {P SUB{c,res} (S) ~ left( {k sup %beta} OVER {φ sup %alpha} right) }
OVER {U_{const} σ}] | (6.7) |
|-----------------------------------------------------------------------------------------------------------------------------|-------|
| [P_{cow}(S_w)~=~F_{PCW} J(S_w)] | (6.3.103.5) |
|---------------------------------|-------------|
| [F_{PCW}~=~U_{const} σ_{ow} left( {φ^%alpha} OVER {k^%beta} right)] | (6.3.103.6) |
|---------------------------------------------------------------------|-------------|
| Note If either the JFUNC or JFUNCR keywords are used to activate J-Function scaling then the ENDSCALE keyword in the RUNSPEC section must also be present in the input deck, in order for the dimensionless J-Function values entered on the SWFN, SGFN or the SWOF, SGOF, SLGOF keywords to be re-scaled to capillary pressure data. Note if the ENDSCALE keyword is absent, then like the commercial simulator, J-Function scaling is not performed, and the values entered on the SWFN, SGFN or the SWOF, SGOF, SLGOF keywords are used as entered. |
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|Related keywords
- Requires
ENDSCALE
Manual source: parts/chapters/subsections/6.3/JFUNC.fodt