Files
opm-simulators/tests/GROUP_HIGHER_CONSTRAINTS.DATA
T
Håkon Hægland 70096bec80 Extend group constraint tests with multi-group hierarchy
This commit extends the test_group_higher_constraints test suite with:

1. Extended hierarchy: Added MANI-2 group (with WELL-B) under PLAT to
   create realistic group competition scenarios where fractions < 1.0.
   The new hierarchy is:

     FIELD -> PLAT -> MANI -> WELL-A, WELL-A2
                   -> MANI-2 -> WELL-B
           -> PLAT-2 -> WELL-C

2. New tests for getWellGroupTargetProducer():
   - TestWellGroupTargetProducerIndividualControl: WELL-A under ORAT
   - TestWellGroupTargetProducerGrupControl: WELL-A under GRUP
   - TestWellGroupTargetProducerWithSiblingIndividualControl: WELL-A
     under GRUP with sibling WELL-A2 under ORAT (demonstrates case
     where reduction != addback)

3. Updated existing tests:
   - TestGroupHigherConstraintsWithGuideRate: scale now 0.922 (was 1.39)
   - TestGroupHigherConstraintsProdWithoutGuideRate: scale now 0.901
2026-01-03 16:30:09 +01:00

258 lines
5.7 KiB
Plaintext

-- This reservoir simulation deck is made available under the Open Database
-- License: http://opendatacommons.org/licenses/odbl/1.0/. Any rights in
-- individual contents of the database are licensed under the Database Contents
-- License: http://opendatacommons.org/licenses/dbcl/1.0/
-- Test case for group higher constraints handling in checkGroupConstraintsProd() and getWellGroupTargetProducer()
-- Group hierarchy:
--
-- FIELD (ORAT = 10000)
-- / \
-- / \
-- PLAT (GEFAC=0.9) PLAT-2 (GEFAC=0.85)
-- / \ |
-- / \ WELL-C
-- MANI (0.8) MANI-2 (0.75)
-- / \ |
-- WELL-A WELL-A2 WELL-B
--
-- This setup allows testing:
-- - local_reduction_level affects which fraction is applied at FIELD level
-- - When PLAT has guide rate: local_reduction_level=1 (PLAT), fraction at FIELD=1.0
-- - When no guide rate at PLAT: local_reduction_level=0 (FIELD), PLAT fraction<1.0
--
-- Having MANI-2 as sibling to MANI ensures:
-- - PLAT has group-controlled wells (via MANI-2)
-- - MANI competes with MANI-2 for rate allocation at PLAT level
-- - PLAT participates in FIELD-level fraction calculation
--
RUNSPEC
TITLE
EFFICIENCY_FACTOR_TEST
DIMENS
5 5 3 /
OIL
WATER
GAS
DISGAS
METRIC
START
1 'JAN' 2020 /
WELLDIMS
-- max wells, max cons/well, max groups, max wells/group
6 5 6 4 /
TABDIMS
/
EQLDIMS
/
UNIFIN
UNIFOUT
-- =============================================================================
GRID
-- =============================================================================
DXV
5*100.0 /
DYV
5*100.0 /
DZV
3*10.0 /
TOPS
25*2000 /
PORO
75*0.25 /
PERMX
75*500 /
COPY
PERMX PERMY /
PERMX PERMZ /
/
MULTIPLY
PERMZ 0.1 /
/
-- =============================================================================
PROPS
-- =============================================================================
PVTW
-- ref.pres Bw Cw Vw Vw.visc
250.0 1.02 4.0E-05 0.5 0.0 /
ROCK
-- ref.pres compressibility
250.0 4.0E-05 /
DENSITY
-- oil water gas
850 1014 1.0 /
PVDO
-- P Bo Vo
100.0 1.05 2.0
250.0 1.02 2.5
400.0 1.00 3.0 /
PVDG
-- P Bg Vg
100.0 0.010 0.015
250.0 0.005 0.020
400.0 0.003 0.025 /
SWOF
-- Sw Krw Kro Pcow
0.2 0.0 1.0 0.0
0.3 0.05 0.6 0.0
0.5 0.15 0.3 0.0
0.7 0.35 0.1 0.0
0.8 0.5 0.0 0.0 /
SGOF
-- Sg Krg Kro Pcog
0.0 0.0 1.0 0.0
0.1 0.02 0.6 0.0
0.3 0.10 0.3 0.0
0.5 0.25 0.1 0.0
0.7 0.5 0.0 0.0 /
-- =============================================================================
SOLUTION
-- =============================================================================
EQUIL
-- datum pressure OWC Pc@OWC GOC Pc@GOC RSVD RVVD SOLN
2000 250.0 2100 0.0 1900 0.0 1 0 0 /
RSVD
1900 100.0
2100 100.0 /
-- =============================================================================
SUMMARY
-- =============================================================================
WOPR
/
WGPR
/
WWPR
/
WBHP
/
GOPR
/
FOPR
FGPR
FWPR
-- =============================================================================
SCHEDULE
-- =============================================================================
GRUPTREE
'PLAT' 'FIELD' /
'PLAT-2' 'FIELD' /
'MANI' 'PLAT' /
'MANI-2' 'PLAT' /
/
-- Well specifications
WELSPECS
'WELL-A' 'MANI' 3 3 2010 'OIL' /
'WELL-A2' 'MANI' 4 4 2010 'OIL' /
'WELL-B' 'MANI-2' 5 5 2010 'OIL' /
'WELL-C' 'PLAT-2' 2 2 2010 'OIL' /
/
COMPDAT
'WELL-A' 3 3 1 3 'OPEN' 1* 1* 0.2 /
'WELL-A2' 4 4 1 3 'OPEN' 1* 1* 0.2 /
'WELL-B' 5 5 1 3 'OPEN' 1* 1* 0.2 /
'WELL-C' 2 2 1 3 'OPEN' 1* 1* 0.2 /
/
-- Group efficiency factors
GEFAC
'PLAT' 0.9 /
'PLAT-2' 0.85 /
'MANI' 0.8 /
'MANI-2' 0.75 /
/
-- Well efficiency factors
WEFAC
'WELL-A' 1.0 /
'WELL-A2' 1.0 /
'WELL-B' 1.0 /
'WELL-C' 1.0 /
/
-- Group controls
-- FIELD has overall oil rate target
GCONPROD
'FIELD' 'ORAT' 10000 1* 1* 1* 'RATE' /
/
-- PLAT is under FLD control with explicit guide rate
-- Guide rate = E_MANI*(WELL-A+WELL-A2) + E_MANI2*WELL-B = 0.8*10000 + 0.75*2000 = 9500
-- Having a guide rate on PLAT triggers local_reduction_level at PLAT in checkGroupConstraintsProd()
GCONPROD
'PLAT' 'FLD' 1* 1* 1* 1* 'RATE' 'YES' 9500 'OIL' /
/
-- PLAT-2 is under FLD control with explicit guide rate
-- Guide rate = E_PLAT2 * WELL-C = 0.85 * 3000 = 2550
GCONPROD
'PLAT-2' 'FLD' 1* 1* 1* 1* 'RATE' 'YES' 2550 'OIL' /
/
-- MANI has individual ORAT control (this triggers checkGroupConstraintsProd)
-- Guide rate = E_MANI * (WELL-A + WELL-A2) = 0.8 * 10000 = 8000
GCONPROD
'MANI' 'ORAT' 5000 1* 1* 1* 'RATE' 'YES' 8000 'OIL' /
/
-- MANI-2 is under FLD control with explicit guide rate
-- Guide rate = E_MANI2 * WELL-B = 0.75 * 2000 = 1500
GCONPROD
'MANI-2' 'FLD' 1* 1* 1* 1* 'RATE' 'YES' 1500 'OIL' /
/
-- Guide rate formula for wells (guide_rate = oil_potential)
-- Formula: guide_rate = potential^A / (B + C*R1^D + E*R2^F) where R1=wat/oil, R2=gas/oil
-- With A=1, B=1, C=0, D=0, E=0, F=0: guide_rate = oil_pot^1 / (1 + 0 + 0) = oil_pot
GUIDERAT
-- min.int type A B C D E F allow.inc damp.factor use.free.gas
0 'OIL' 1.0 1.0 0.0 0.0 0.0 0.0 'YES' 1.0 'NO' /
-- Wells under group control
WCONPROD
'WELL-A' 'OPEN' 'GRUP' 1* 1* 1* 1* 1* 100.0 /
'WELL-A2' 'OPEN' 'GRUP' 1* 1* 1* 1* 1* 100.0 /
'WELL-B' 'OPEN' 'GRUP' 1* 1* 1* 1* 1* 100.0 /
'WELL-C' 'OPEN' 'GRUP' 1* 1* 1* 1* 1* 100.0 /
/
TSTEP
1 /
END