Skip to content

Relaxed-CNV pore-volume budget covers most of the grid on graded models #7312

Description

@hnil

tolerance-cnv-relaxed is granted when the cells violating CNV hold less than relaxed-max-pv-fraction (3%) of the total pore volume. That is a volume budget, so how much of the grid it covers depends entirely on the pore-volume distribution — and on graded, near-well or buffered models it covers most of it:

model share of cells that fit inside the 3% budget
uniform grids (SPE9, MINIFIELD, GASLIFT, MODEL3, 2_GCONINJE_NETV) 3-10%
STONE2_MOD1 74%
SPE1CASE2_RADIAL 77%
GASCONDENSATE_VAPWAT_PRECSALT 87%
CO2STORE_PRECSALT (near-well wedge, MULTPV 2488 on the outer column) 90%
DISPERC_FINGERS (OPERATE PORV ... ADDX PORV 1E+10 on the bottom layer) 98%

On DISPERC_FINGERS the 2450 ordinary cells together are 2e-15 of the total pore volume, so the budget can never be exceeded and the relaxed tolerance is in force on every iteration. --relaxed-max-pv-fraction=1e30, which makes the relaxed branch unconditional, reproduces the default run exactly: 2501 Newton iterations, 96 failed substeps in both. The same effect is visible on SPE1CASE2_RADIAL, where 1357 of 1402 iterations are accepted at tolerance 1.0 and only 45 at the nominal 1e-2.

So models with a refined near-well region, a pore-volume multiplier or a large boundary cell are effectively running at tolerance-cnv-relaxed, which defaults to 1.0, rather than at tolerance-cnv. Uniform models are not. That does not look intended, and it makes the acceptance criterion depend on grading rather than on the solution.

Measured with a small script over the runs' INIT files (PORV); happy to attach it. #7298 adds the CnvTolUsed column that makes this visible in a normal run.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions