Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
740bfc2
Move relperm driver
dkachuma Apr 24, 2026
43eeddb
Merge branch 'develop' into dkachuma/refactor/rel-perm-driver
dkachuma May 20, 2026
74ce7ea
Merge branch 'develop' into dkachuma/refactor/rel-perm-driver
dkachuma May 22, 2026
e90b28a
Add 3-phase test
dkachuma May 22, 2026
a640350
Move test files
dkachuma May 22, 2026
e9bcd7b
Add 2-phase hysteresis test
dkachuma May 22, 2026
9eaf1ac
Add Brooks-Corey tests
dkachuma May 22, 2026
1f6d531
Add doc example
dkachuma May 22, 2026
335a382
add documentation
dkachuma May 22, 2026
9d2da80
Add van Genuchten-Mualem models
dkachuma May 22, 2026
07441d8
Simplify definition
dkachuma May 22, 2026
cd0acd7
Use std::tie
dkachuma May 22, 2026
284c528
Fix rst heading level
dkachuma May 22, 2026
68a8e2f
Rebaseline
dkachuma May 23, 2026
962fe5b
Add saturation functions
dkachuma May 23, 2026
971c595
Change tests
dkachuma May 23, 2026
468e4cb
Add historical saturation
dkachuma May 23, 2026
fecc624
Adjust test
dkachuma May 23, 2026
3fca2a3
Documentation
dkachuma May 23, 2026
be8506d
Documentation
dkachuma May 23, 2026
b9f7bd7
Fix documentation
dkachuma May 23, 2026
f02ad2c
Fix script
dkachuma May 23, 2026
ab799db
Fix script
dkachuma May 23, 2026
2d505f0
Fix script
dkachuma May 23, 2026
0e716f2
Update baseline entry for PR #4040
dkachuma May 24, 2026
83a1bf4
Update date for PR #4040 in baseline notes
dkachuma May 24, 2026
9166050
Update baseline path in integrated_tests.yaml
dkachuma May 24, 2026
c837674
Move relperm hysteresis test
dkachuma May 28, 2026
8c5746e
Merge develop
dkachuma May 28, 2026
f0937f9
Merge branch 'develop' into dkachuma/refactor/rel-perm-driver
dkachuma May 28, 2026
37929cb
Update baseline entry for PR #4040
dkachuma May 29, 2026
05736d3
Update baseline path in integrated tests configuration
dkachuma May 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .integrated_tests.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
baselines:
bucket: geosx
baseline: integratedTests/baseline_integratedTests-pr4062-16784-6d8782e
baseline: integratedTests/baseline_integratedTests-pr4040-16801-f0937f9

allow_fail:
all: ''
Expand Down
3 changes: 3 additions & 0 deletions BASELINE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ This file is designed to track changes to the integrated test baselines.
Any developer who updates the baseline ID in the .integrated_tests.yaml file is expected to create an entry in this file with the pull request number, date, and their justification for rebaselining.
These notes should be in reverse-chronological order, and use the following time format: (YYYY-MM-DD).

PR #4040 (2026-05-28) <https://storage.googleapis.com/geosx/integratedTests/baseline_integratedTests-pr4040-16801-f0937f9.tar.gz>
Move relperm driver to use bew constitutive driver framework

PR #4062 (2026-05-26) <https://storage.googleapis.com/geosx/integratedTests/baseline_integratedTests-pr4062-16784-6d8782e.tar.gz>
Add Porous Solid other than PorousElasticity for ALM solver

Expand Down
19 changes: 18 additions & 1 deletion inputFiles/constitutiveDriver/constitutiveDriver.ats
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,30 @@ def create_pvt_test(name, description=None):
check_step=0,
restartcheck_params=RestartcheckParameters(**restartcheck_params))

def create_relperm_test(name, description=None):
if description is None: description = name
return TestDeck(
name=name,
description=description,
partitions=[(1, 1, 1)],
restart_step=0,
check_step=0,
restartcheck_params=RestartcheckParameters(**restartcheck_params))

decks = [
create_pvt_test("testPVT"),
create_pvt_test("testPVT_CO2Brine", "PVT Driver test for CO2 fluid models"),
create_pvt_test("testPVT_CO2BrineTables", "PVT Driver test for CO2 fluid models with solubility tables"),
create_pvt_test("testPVT_PhaseComposition", "PVT Driver test with composition output"),
create_pvt_test("testPVT_ThreePhaseCompositional", "PVT Driver test for three phase compositional models"),
create_pvt_test("testPVT_docExample", "PVT Driver documentation example")
create_pvt_test("testPVT_docExample", "PVT Driver documentation example"),

create_relperm_test("testRelperm_Table_2_phase", "Relperm driver for 2 phase tables"),
create_relperm_test("testRelperm_Table_3_phase", "Relperm driver for 3 phase tables"),
create_relperm_test("testRelperm_TableHyst2ph", "Two-phase hysteresis with large tables"),
create_relperm_test("testRelperm_BrooksCorey", "Three-phase Brooks-Corey with Baker and Stone II mixing rule"),
create_relperm_test("testRelperm_VanGenuchten", "Three-phase van Genuchten-Mualem models"),
create_relperm_test("testRelperm_docExample", "Relperm Driver documentation example")
]

generate_geos_tests(decks)
64 changes: 64 additions & 0 deletions inputFiles/constitutiveDriver/testRelperm_BrooksCorey.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?xml version="1.0" ?>

<Problem>
<Tasks>
<RelpermDriver
name="testBrooksCoreyBaker"
relperm="brooksCoreyBaker"
steps="65"
phaseNames="{ gas, water }"
saturationControls="{ THREE.PHASE.SATURATION.0, THREE.PHASE.SATURATION.1 }"
output="testRelperm_BrooksCorey_Baker.txt"
logLevel="1" />

<RelpermDriver
name="testBrooksCoreyStone2"
relperm="brooksCoreyStone2"
steps="65"
phaseNames="{ oil, water }"
saturationControls="{ THREE.PHASE.SATURATION.1, THREE.PHASE.SATURATION.0 }"
output="testRelperm_BrooksCorey_Stone2.txt"
logLevel="1" />
</Tasks>

<Outputs>
<Restart
name="restartOutput"/>
</Outputs>

<Events
maxTime="1">
<SoloEvent name="event_testBrooksCoreyBaker" target="/Tasks/testBrooksCoreyBaker" />
<SoloEvent name="event_testBrooksCoreyStone2" target="/Tasks/testBrooksCoreyStone2" />

<PeriodicEvent
name="restarts"
timeFrequency="1"
targetExactTimestep="0"
target="/Outputs/restartOutput" />
</Events>

<Constitutive>
<BrooksCoreyBakerRelativePermeability
name="brooksCoreyBaker"
phaseNames="{ oil, gas, water}"
phaseMinVolumeFraction="{ 0.1, 0.05, 0.2 }"
waterOilRelPermExponent="{ 2.0, 2.0 }"
waterOilRelPermMaxValue="{ 1.0, 1.0 }"
gasOilRelPermExponent="{ 2.0, 2.0 }"
gasOilRelPermMaxValue="{ 0.8, 0.4 }"/>

<BrooksCoreyStone2RelativePermeability
name="brooksCoreyStone2"
phaseNames="{ oil, gas, water }"
phaseMinVolumeFraction="{ 0.1, 0.05, 0.2}"
waterOilRelPermExponent="{ 2.0, 2.0}"
gasOilRelPermExponent="{ 2.0, 2.0 }"
waterOilRelPermMaxValue="{ 1.0, 1.0 }"
gasOilRelPermMaxValue="{ 0.8, 0.4 }"/>
</Constitutive>

<Included>
<File name="testRelperm_data/relperm_tables.xml" />
</Included>
</Problem>
66 changes: 66 additions & 0 deletions inputFiles/constitutiveDriver/testRelperm_TableHyst2ph.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<?xml version="1.0" ?>

<Problem>
<Tasks>
<RelpermDriver
name="testRelperm"
relperm="relperm"
steps="100"
phaseNames="{ gas }"
saturationControls="{ gasSaturation }"
output="testRelperm_TableHyst2ph.txt"
logLevel="1" />
</Tasks>

<Outputs>
<Restart
name="restartOutput"/>
</Outputs>

<Events
maxTime="1">

<SoloEvent name="event_testRelperm" target="/Tasks/testRelperm" />

<PeriodicEvent
name="restarts"
timeFrequency="1"
targetExactTimestep="0"
target="/Outputs/restartOutput" />
</Events>

<Constitutive>
<TableRelativePermeabilityHysteresis
name="relperm"
phaseNames="{ water, gas }"
drainageWettingNonWettingRelPermTableNames="{ drainageWaterRelativePermeabilityTable,
drainageGasRelativePermeabilityTable }"
imbibitionNonWettingRelPermTableName="imbibitionGasRelativePermeabilityTable"
imbibitionWettingRelPermTableName="imbibitionWaterRelativePermeabilityTable"/>
</Constitutive>

<Functions>
<TableFunction
name="drainageWaterRelativePermeabilityTable"
coordinateFiles="{ testRelperm_data/drainagePhaseVolFraction_water.txt }"
voxelFile="testRelperm_data/drainageRelPerm_water.txt"/>
<TableFunction
name="drainageGasRelativePermeabilityTable"
coordinateFiles="{ testRelperm_data/drainagePhaseVolFraction_gas.txt }"
voxelFile="testRelperm_data/drainageRelPerm_gas.txt"/>
<TableFunction
name="imbibitionWaterRelativePermeabilityTable"
coordinateFiles="{ testRelperm_data/imbibitionPhaseVolFraction_water.txt }"
voxelFile="testRelperm_data/imbibitionRelPerm_water.txt"/>
<TableFunction
name="imbibitionGasRelativePermeabilityTable"
coordinateFiles="{ testRelperm_data/imbibitionPhaseVolFraction_gas.txt }"
voxelFile="testRelperm_data/imbibitionRelPerm_gas.txt"/>

<TableFunction
name="gasSaturation"
coordinates="{ 0.0, 1.0, 2.0 }"
values="{ 0.0, 1.0, 0.2 }"
interpolation="linear" />
</Functions>
</Problem>
85 changes: 85 additions & 0 deletions inputFiles/constitutiveDriver/testRelperm_Table_2_phase.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
<?xml version="1.0" ?>

<Problem>
<Tasks>
<RelpermDriver
name="test_2_phase_residual"
relperm="2_phase_residual"
steps="10"
output="testRelperm_Table_2_phase_2_phase_residual.txt"
phaseNames="{ gas }"
saturationControls="{ LINEAR.SATURATION }"
logLevel="1" />
<RelpermDriver
name="test_2_phase"
relperm="2_phase"
steps="15"
output="testRelperm_Table_2_phase_2_phase.txt"
phaseNames="{ water }"
saturationControls="{ LINEAR.SATURATION }"
logLevel="1" />
<RelpermDriver
name="test_2_phase_hysteresis"
relperm="2_phase_hysteresis"
steps="15"
output="testRelperm_Table_2_phase_2_phase_hysteresis.txt"
phaseNames="{ water }"
saturationControls="{ LINEAR.SATURATION }"
logLevel="1" />
<RelpermDriver
name="test_2_phase_hysteresis_historical"
relperm="2_phase_hysteresis"
steps="15"
phaseNames="{ gas }"
saturationControls="{ LINEAR.SATURATION }"
logLevel="1" />
</Tasks>

<Outputs>
<Restart
name="restartOutput"/>
</Outputs>

<Events
maxTime="1">
<SoloEvent
name="event_2_phase_residual"
target="/Tasks/test_2_phase_residual" />
<SoloEvent
name="event_2_phase"
target="/Tasks/test_2_phase" />
<SoloEvent
name="event_2_phase_hysteresis"
target="/Tasks/test_2_phase_hysteresis" />
<SoloEvent
name="event_2_phase_hysteresis_historical"
target="/Tasks/test_2_phase_hysteresis_historical" />

<PeriodicEvent
name="restarts"
timeFrequency="1"
targetExactTimestep="0"
target="/Outputs/restartOutput" />
</Events>

<Constitutive>
<TableRelativePermeability
name="2_phase_residual"
phaseNames="{ gas, water }"
wettingNonWettingRelPermTableNames="{ KRW_D1, KRG_D1 }" />
<TableRelativePermeability
name="2_phase"
phaseNames="{ gas, water }"
wettingNonWettingRelPermTableNames="{ KRW_D0, KRG_D0 }" />
<TableRelativePermeabilityHysteresis
name="2_phase_hysteresis"
phaseNames="{ gas, water }"
drainageWettingNonWettingRelPermTableNames="{ KRW_D1, KRG_D1 }"
imbibitionNonWettingRelPermTableName="KRG_I1"
imbibitionWettingRelPermTableName="KRW_I1" />
</Constitutive>

<Included>
<File name="testRelperm_data/relperm_tables.xml" />
</Included>
</Problem>
62 changes: 62 additions & 0 deletions inputFiles/constitutiveDriver/testRelperm_Table_3_phase.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
<?xml version="1.0" ?>

<Problem>
<Tasks>
<RelpermDriver
name="test_3_phase"
relperm="3_phase"
precision="6"
steps="65"
phaseNames="{ gas, water }"
saturationControls="{ THREE.PHASE.SATURATION.0, THREE.PHASE.SATURATION.1 }"
logLevel="1" />
<RelpermDriver
name="test_3_phase_hysteresis"
relperm="3_phase_hysteresis"
output="testRelperm_Table_3_phase_3_phase_hysteresis.txt"
steps="65"
phaseNames="{ gas, water }"
saturationControls="{ THREE.PHASE.SATURATION.0, THREE.PHASE.SATURATION.1 }"
logLevel="1" />
</Tasks>

<Outputs>
<Restart
name="restartOutput"/>
</Outputs>

<Events
maxTime="1">
<SoloEvent
name="event_3_phase"
target="/Tasks/test_3_phase" />
<SoloEvent
name="event_3_phase_hysteresis"
target="/Tasks/test_3_phase_hysteresis" />

<PeriodicEvent
name="restarts"
timeFrequency="1"
targetExactTimestep="0"
target="/Outputs/restartOutput" />
</Events>

<Constitutive>
<TableRelativePermeability
name="3_phase"
phaseNames="{ gas, oil, water }"
nonWettingIntermediateRelPermTableNames="{ KRG_D1, KROG_D1 }"
wettingIntermediateRelPermTableNames="{ KRW_D1, KROW_D1 }" />
<TableRelativePermeabilityHysteresis
name="3_phase_hysteresis"
phaseNames="{ gas, oil, water }"
drainageNonWettingIntermediateRelPermTableNames="{ KRG_D1, KROG_D1 }"
drainageWettingIntermediateRelPermTableNames="{ KRW_D1, KROW_D1 }"
imbibitionNonWettingRelPermTableName="KRG_I1"
imbibitionWettingRelPermTableName="KRW_I1" />
</Constitutive>

<Included>
<File name="testRelperm_data/relperm_tables.xml" />
</Included>
</Problem>
67 changes: 67 additions & 0 deletions inputFiles/constitutiveDriver/testRelperm_VanGenuchten.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<?xml version="1.0" ?>

<Problem>
<Tasks>
<RelpermDriver
name="test_3_phase_baker"
relperm="3_phase_baker"
steps="65"
phaseNames="{ water, oil }"
saturationControls="{ THREE.PHASE.SATURATION.0, THREE.PHASE.SATURATION.1 }"
output="testRelperm_VanGenuchten_3_phase_baker.txt"
logLevel="1" />
<RelpermDriver
name="test_3_phase_stone2"
relperm="3_phase_stone2"
steps="65"
phaseNames="{ gas, water }"
saturationControls="{ THREE.PHASE.SATURATION.0, THREE.PHASE.SATURATION.1 }"
output="testRelperm_VanGenuchten_3_phase_stone2.txt"
logLevel="1" />
</Tasks>

<Outputs>
<Restart
name="restartOutput"/>
</Outputs>

<Events
maxTime="1">
<SoloEvent
name="event_3_phase_baker"
target="/Tasks/test_3_phase_baker" />
<SoloEvent
name="event_3_phase_stone2"
target="/Tasks/test_3_phase_stone2" />

<PeriodicEvent
name="restarts"
timeFrequency="1"
targetExactTimestep="0"
target="/Outputs/restartOutput" />
</Events>

<Constitutive>
<VanGenuchtenBakerRelativePermeability
name="3_phase_baker"
phaseNames="{ gas, oil, water }"
phaseMinVolumeFraction="{ 0.05, 0.25, 0.20 }"
gasOilRelPermExponentInv="{ 0.5, 0.5 }"
gasOilRelPermMaxValue="{ 0.65, 0.75 }"
waterOilRelPermExponentInv="{ 0.25, 0.5 }"
waterOilRelPermMaxValue="{ 0.65, 0.75 }" />

<VanGenuchtenStone2RelativePermeability
name="3_phase_stone2"
phaseNames="{ gas, oil, water }"
phaseMinVolumeFraction="{ 0.05, 0.25, 0.20 }"
gasOilRelPermExponentInv="{ 0.5, 0.5 }"
gasOilRelPermMaxValue="{ 0.65, 0.75 }"
waterOilRelPermExponentInv="{ 0.25, 0.5 }"
waterOilRelPermMaxValue="{ 0.65, 0.75 }" />
</Constitutive>

<Included>
<File name="testRelperm_data/relperm_tables.xml" />
</Included>
</Problem>
Loading
Loading