Conversation
With EQUIL item 10 = 1 the COMPVD rows give the composition versus depth, so they decide where the gas zone ends. A contact outside the gap between the last vapour row and the first liquid row now moves to the nearest edge of that gap with a warning instead of stopping the run. Type 3 keeps the error, as it uses the contact as reference depth.
GitPaean
force-pushed
the
compvd-contact-mismatch
branch
from
October 2, 2026 22:40
4f6e38c to
f129390
Compare
GitPaean
marked this pull request as draft
October 2, 2026 22:45
Its deck comes from OPM/opm-tests#1638.
Member
Author
|
jenkins build this opm-tests=1638 failure_report please https://ci.opm-project.org/job/opm-simulators-PR-builder/10822/ |
A cell on the contact belongs to the liquid zone, so a contact moved onto the last vapour row gave that row's depth the liquid composition. With EQUIL item 10 = 1 the rows decide the phase.
The water took the liquid column's pressure even when the gas zone reaches the water-oil contact, as it does once the gas-oil contact lies below it.
Clamp once and compare, so the row gap is defined in one place. Once the boundary moves it is no longer the EQUIL contact, so the later messages stop calling it that. The rejection test checks which error it gets.
Member
Author
|
jenkins build this opm-tests=1638 failure_report please |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
With EQUIL item 10 = 1 the COMPVD rows give the composition versus depth. A two-zone table whose last vapour row and first liquid row do not straddle the gas-oil contact stopped the run. The gas zone now ends at the nearest edge of the gap between those rows, with a warning, and a cell on the last vapour row stays in the gas zone. Type 3 keeps the error, as it uses the contact as reference depth.
When the gas zone reaches the water-oil contact, the water now takes its pressure from the gas column there rather than from the liquid one.
test_compequilcovers these cases; the existing equilibration regressions are unchanged. The new regressionequil_1d_compvd_water_gascap_contact_mismatchruns the case from OPM/opm-tests#1638 and needs its reference data.Initialization flow
EQUILsupplies contact depths and reference pressure.COMPVDsupplies composition versus depth, with each row marked as vapour or liquid. The following flow applies to a COMPVD table containing both vapour and liquid rows.flowchart TD A["COMPVD contains both vapour and liquid rows"] --> B{"Are all vapour rows<br/>above the liquid rows?"} B -->|No| C["Stop: interleaved phase rows"] B -->|Yes| D{"Is the EQUIL gas-oil contact<br/>between the last vapour row<br/>and first liquid row?"} D -->|Yes| E["Use the EQUIL contact<br/>as the zone boundary"] D -->|No| F{"EQUIL initialization type?"} F -->|Type 1| G["Move the boundary to the<br/>nearest edge of the row gap<br/>and issue a warning"] F -->|Type 3| H["Stop: type 3 requires the<br/>contact as its reference depth"] E --> I["Use the selected boundary for<br/>gas and liquid pressure integration"] G --> I I --> J["Initialize water pressure when needed"] J --> K["Assign each cell its zone composition<br/>and nominal phase"] K --> L["For type 1, a cell exactly on the<br/>last vapour row remains gas"] L --> M["Downstream flash computes<br/>the final hydrocarbon phase split"]For example, with the last vapour row at 2049 m and first liquid row at 2051 m, type 1 moves a contact at 2060 m to 2051 m, or 2030 m to 2049 m. Depth increases downward.
Water-pressure anchoring
For a two-zone COMPVD region, when water pressure needs anchoring from the hydrocarbon column, the phase just above the water contact determines which pressure to use.
flowchart TD A["Water pressure needs anchoring<br/>from the hydrocarbon column"] --> B{"Does the gas zone reach<br/>the water contact?"} B -->|Yes| C["Take gas pressure<br/>at the water contact"] B -->|No| D["Take liquid pressure<br/>at the water contact"] C --> E["Subtract the specified capillary pressure<br/>and integrate the water column"] D --> EThis prevents a pressure discontinuity when moving the gas/liquid boundary makes gas touch water.