Overview
Relative permeability and capillary pressure are where a black-oil simulator meets the rock. BirSim supports both Eclipse saturation-function families, three-phase oil models, endpoint scaling, Leverett-J capillary scaling, and — the focus of this report — non-wetting-phase hysteresis for WAG (water-alternating-gas) recovery.
Saturation-function families
| Family | Keywords | Handling |
|---|---|---|
| Family 1 | SWOF, SGOF | Used directly (piecewise-linear, analytic derivatives) |
| Family 2 | SWFN, SGFN + SOF3/SOF2 | Converted to the equivalent SWOF/SGOF on the union of saturation breakpoints |
The family-2 conversion is exact for piecewise-linear input. Validation confirms it:
- A family-2 deck reproduces its family-1 twin byte-for-byte inside BirSim, and OPM Flow independently confirms the two families are identical.
- A two-phase water-oil family-2 case matches OPM Flow to ~1%.
Three-phase oil relative permeability uses the saturation-weighted default,
Stone I, or Stone II (STONE1/STONE2), with multi-region support via
SATNUM.
Hysteresis (gas trapping)
In a WAG flood, gas that was mobile on the drainage path becomes trapped on
re-imbibition — its relative permeability follows a different, lower curve. BirSim
models this with the Land trapping model for the non-wetting (gas) phase,
activated by SATOPTS HYSTER + EHYSTR, with the imbibition critical gas
saturation from the ISGCR endpoint.
The imbibition scanning curve is selected by EHYSTR item 2:
EHYSTR item 2 | Model | Status |
|---|---|---|
| 0 (default) | Carlson | Validated vs OPM Flow |
| 2 | Killough | Verified by analytic construction (OPM does not implement it) |
Carlson is validated against OPM Flow on gas produced and gas in place to
~1%. Killough — which OPM Flow does not implement — tracks the OPM-validated
Carlson curve closely and is verified by its analytic construction: it gives zero
krg at the trapped saturation and meets the drainage curve exactly at the flow
reversal point, the two invariants any correct scanning curve must satisfy.
Leverett J-function (JFUNC)
With JFUNC, the SWOF/SGOF capillary column is interpreted not as a pressure
but as a dimensionless Leverett J value, rescaled per cell by the local
√(k/φ) and interfacial tension. BirSim wires JFUNC into the EQUIL
equilibration so the initial capillary-gravity balance uses the correctly-scaled
Pc — validated by running the full Eclipse equilibration workflow and matching the
initial saturation distribution.
Validation summary
| Capability | Metric | Result |
|---|---|---|
| Family-2 → family-1 | Internal equivalence | byte-identical |
| Family-2 (2-phase W/O) | vs OPM Flow | ~1% |
| Carlson gas trapping | Gas produced / gas in place vs OPM | ~1% |
| Killough gas trapping | Analytic invariants | zero krg at trap; meets drainage at reversal |
| JFUNC | Equilibration workflow | initial saturations match |
Why it matters
WAG is one of the most common enhanced-recovery schemes, and its economics hinge on how much gas is trapped on each imbibition cycle — pure drainage/imbibition curves badly mis-estimate it. Matching OPM Flow on Carlson trapping to ~1%, plus a correctly-constructed Killough option OPM doesn’t offer, lets BirSim forecast WAG recovery on the same footing as the reference simulator.
Reference
Land, C.S. (1968); Carlson, F.M. (1981); Killough, J.E. (1976); Leverett, M.C. (1941). BirSim is validated against OPM Flow’s hysteresis and saturation-function implementations on the same decks; deck paths and command lines are available on request.