Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
04fbc7d
Just a test commit
Jun 25, 2025
9c9770d
phase contact specification added as an optional input under Hydrosta…
Jul 22, 2025
e2662a8
Merge branch 'develop' into feature/swaziri/3707-multiphase-hydrostat…
Jul 23, 2025
8fc8be2
Merge branch 'feature/swaziri/phase-contact-specification' into featu…
Jul 24, 2025
54a8b2e
Add capillary pressure inversion
dkachuma Jul 31, 2025
50f0fea
Update src/coreComponents/constitutive/capillaryPressure/InverseCapil…
dkachuma Jul 31, 2025
91255f8
Merge branch 'develop' into dkachuma/capillary-pressure-inverse
dkachuma Jul 31, 2025
16f0ef2
Two-phase hydrostatic pressure computation added
Jul 31, 2025
4d24bc3
Merge remote-tracking branch 'origin/dkachuma/capillary-pressure-inve…
Jul 31, 2025
d28177e
usage of inverse capillary pressure to compute target saturations giv…
Aug 5, 2025
849ce16
Refactor capillary pressure inverse
dkachuma Aug 5, 2025
1c4f28f
Merge remote-tracking branch 'origin' into feature/swaziri/3707-multi…
Aug 5, 2025
2017eec
Merge remote-tracking branch 'origin/feature/swaziri/3707-multiphase-…
Aug 5, 2025
f17fad7
Commented out unused vars from InverseCapillaryPressure.hpp and added…
Aug 5, 2025
777bf39
Saturation correction and phase correction added (works for two phase…
Aug 20, 2025
c760090
Flow initialization extended to three-phase cases
Aug 25, 2025
0d36943
Resolve conflicts in CompositionalMultiphaseBase.cpp
Aug 25, 2025
4b2df27
merge with develop
Aug 25, 2025
4ede493
save running version
Aug 26, 2025
d90b265
primary and contact phase evaluation and some code refactoring
Aug 29, 2025
b65c73e
refactor
Sep 9, 2025
0aba6fa
Initialise porosity and permeability
dkachuma Sep 9, 2025
bd398ad
Documentation related to multiphase hydrostatic initialization plus s…
Sep 19, 2025
45f272c
two and three phase cases added to input files
Sep 20, 2025
5d09f0b
Merge branch 'develop' into feature/swaziri/3707-multiphase-hydrostat…
dkachuma Oct 23, 2025
9454a8c
Merge branch 'develop' into feature/swaziri/3707-multiphase-hydrostat…
dkachuma Oct 27, 2025
ce53138
Some cleanup
dkachuma Oct 28, 2025
59e78da
Fix cases with contacts outside domain
dkachuma Oct 30, 2025
8afa800
Merge branch 'develop' into feature/swaziri/3707-multiphase-hydrostat…
dkachuma Oct 30, 2025
e015397
Fix single phase initialisation
dkachuma Oct 31, 2025
f9914ed
Merge branch 'develop' into feature/swaziri/3707-multiphase-hydrostat…
dkachuma Oct 31, 2025
e964fc0
Fix 3-phase initialisation
dkachuma Nov 5, 2025
014aec1
Add restarts to test cases
dkachuma Nov 5, 2025
4980b24
Fix unit test
dkachuma Nov 5, 2025
d651ad5
Move tests
dkachuma Nov 5, 2025
bec8021
Uncrustify
dkachuma Nov 5, 2025
0e9651c
Merge branch 'develop' into feature/swaziri/3707-multiphase-hydrostat…
dkachuma Nov 5, 2025
917784f
Fix GPU build
dkachuma Nov 5, 2025
00a981b
Fix build
dkachuma Nov 6, 2025
df0292d
Try to fix build
dkachuma Nov 6, 2025
903a8a5
Try again to fix build
dkachuma Nov 6, 2025
e3e1bd3
One more try
dkachuma Nov 6, 2025
0898292
Use fully scoped definition
dkachuma Nov 6, 2025
8092600
Use inline definition
dkachuma Nov 6, 2025
5a92afb
Copy JFunction multiplier back to host
dkachuma Nov 7, 2025
4b94ac9
Remove flaky tests
dkachuma Nov 11, 2025
74ba487
Merge branch 'develop' into feature/swaziri/3707-multiphase-hydrostat…
dkachuma Nov 13, 2025
e5f880d
Merge branch 'develop' into feature/swaziri/3707-multiphase-hydrostat…
dkachuma Nov 17, 2025
16ae6dd
Merge branch 'develop' into feature/swaziri/3707-multiphase-hydrostat…
dkachuma Nov 18, 2025
b7ab922
Rebaseline
dkachuma Nov 18, 2025
ff862b4
Merge branch 'develop' into feature/swaziri/3707-multiphase-hydrostat…
dkachuma Nov 24, 2025
4146b02
Merge branch 'develop' into feature/swaziri/3707-multiphase-hydrostat…
dkachuma Dec 3, 2025
c5b7636
Rebaseline
dkachuma Dec 5, 2025
35106ef
Merge branch 'develop' into feature/swaziri/3707-multiphase-hydrostat…
dkachuma Dec 9, 2025
528d47d
Merge branch 'develop' into feature/swaziri/3707-multiphase-hydrostat…
dkachuma Dec 15, 2025
62b7153
Merge branch 'develop' into feature/swaziri/3707-multiphase-hydrostat…
jhuang2601 Dec 18, 2025
600e739
resolve conflicts
jhuang2601 Dec 19, 2025
606f4ac
Merge branch 'develop' into feature/swaziri/3707-multiphase-hydrostat…
jhuang2601 Dec 19, 2025
5c89b59
update rebaseline
jhuang2601 Dec 19, 2025
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-pr3925-15032-d307303
baseline: integratedTests/baseline_integratedTests-pr3795-15047-606f4ac

allow_fail:
all: ''
Expand Down
4 changes: 4 additions & 0 deletions BASELINE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ 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 #3795 (2025-12-19) <https://storage.googleapis.com/geosx/integratedTests/baseline_integratedTests-pr3795-15047-606f4ac.tar.gz>
=====================
Addition of multiphase initialisation

PR #3925 (2025-12-18) <https://storage.googleapis.com/geosx/integratedTests/baseline_integratedTests-pr3925-15032-d307303.tar.gz>
=====================
Add traction update for ALM solver and a test with curved fractures
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,34 @@ decks = [
partitions=((1, 1, 1), (2, 1, 3)),
restart_step=23,
check_step=46,
restartcheck_params=RestartcheckParameters(**restartcheck_params)),
TestDeck(
name="initialization_2phase",
description="Two phase initialisation",
partitions=((1, 1, 1), (1, 1, 2)),
restart_step=124,
check_step=124,
restartcheck_params=RestartcheckParameters(**restartcheck_params)),
TestDeck(
name="initialization_2phase_no_cappres",
description="Two phase initialisation (No capillary pressure curves)",
partitions=((1, 1, 1), (1, 1, 2)),
restart_step=124,
check_step=124,
restartcheck_params=RestartcheckParameters(**restartcheck_params)),
TestDeck(
name="initialization_2phase_4comp",
description="Two phase initialisation (4 component fluid)",
partitions=((1, 1, 1), (1, 1, 2)),
restart_step=124,
check_step=124,
restartcheck_params=RestartcheckParameters(**restartcheck_params)),
TestDeck(
name="initialization_3phase",
description="Three phase initialisation",
partitions=((1, 1, 1), (1, 1, 2)),
restart_step=124,
check_step=124,
restartcheck_params=RestartcheckParameters(**restartcheck_params))
]

Expand Down
233 changes: 233 additions & 0 deletions inputFiles/compositionalMultiphaseFlow/initialization_2phase.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,233 @@
<?xml version="1.0" ?>

<Problem>
<Solvers>
<CompositionalMultiphaseFVM
name="compflow"
logLevel="1"
discretization="fluidTPFA"
temperature="368.15"
useMass="1"
useTotalMassEquation="0"
targetRegions="{ region00, region01, region10, region11, region20, region21 }">
<NonlinearSolverParameters
newtonTol="1.0e-5"
newtonMaxIter="10"
lineSearchAction="None"/>
<LinearSolverParameters
directParallel="0"/>
</CompositionalMultiphaseFVM>
</Solvers>

<Mesh>
<InternalMesh
name="mesh1"
elementTypes="{ C3D8, C3D8, C3D8, C3D8, C3D8, C3D8 }"
xCoords="{ 0, 10, 20, 30 }"
yCoords="{ 0, 10, 20 }"
zCoords="{ 0, 100 }"
nx="{ 1, 1, 1 }"
ny="{ 1, 1 }"
nz="{ 100 }"
cellBlockNames="{ cb00, cb01, cb10, cb11, cb20, cb21 }"/>
</Mesh>

<Events maxTime="15768000000">
<!-- output from just after initialization to 1 yr at frequency = 100 days -->
<PeriodicEvent name="OUTPUT.01" target="/Outputs/vtkOutput" targetExactTimestep="1" beginTime="0" endTime="31536000" timeFrequency="8640000" />
<!-- output from 1 10 yr at frequency = 1 yr -->
<PeriodicEvent name="OUTPUT.02" target="/Outputs/vtkOutput" targetExactTimestep="1" beginTime="31536000" endTime="315360000" timeFrequency="31536000" />
<!-- output from 10 to 500 yr at frequency = 10 -->
<PeriodicEvent name="OUTPUT.03" target="/Outputs/vtkOutput" targetExactTimestep="1" beginTime="315360000" endTime="15768000000" timeFrequency="315360000" />

<!-- Restart every 100 years -->
<PeriodicEvent name="RESTART.00" target="/Outputs/restartOutput" targetExactTimestep="1" beginTime="0" timeFrequency="3155760000" />

<!-- From 0 to 1 yr at max dt = 100 days -->
<PeriodicEvent name="solverApplications.01" beginTime="0" endTime="31536000" maxEventDt="8640000" target="/Solvers/compflow" />
<!-- From 1 to 10 yr at max dt = 1 yr -->
<PeriodicEvent name="solverApplications.02" beginTime="31536000" endTime="315360000" maxEventDt="31536000" target="/Solvers/compflow" />
<!-- From 10 to 500 yr at max dt = 10 yr -->
<PeriodicEvent name="solverApplications.03" beginTime="315360000" endTime="15768000000" maxEventDt="315360000" target="/Solvers/compflow" />
</Events>

<NumericalMethods>
<FiniteVolume>
<TwoPointFluxApproximation
name="fluidTPFA"/>
</FiniteVolume>
</NumericalMethods>

<ElementRegions>
<CellElementRegion
name="region00"
cellBlocks="{ cb00 }"
materialList="{ fluid, rock, relperm, cappres01 }" />
<CellElementRegion
name="region01"
cellBlocks="{ cb01 }"
materialList="{ fluid, rock, relperm, cappres01 }" />
<CellElementRegion
name="region10"
cellBlocks="{ cb10 }"
materialList="{ fluid, rock, relperm, cappres01 }" />
<CellElementRegion
name="region11"
cellBlocks="{ cb11 }"
materialList="{ fluid, rock, relperm, cappres00 }" />
<CellElementRegion
name="region20"
cellBlocks="{ cb20 }"
materialList="{ fluid, rock, relperm, cappres01 }" />
<CellElementRegion
name="region21"
cellBlocks="{ cb21 }"
materialList="{ fluid, rock, relperm, cappres01 }" />
</ElementRegions>

<Constitutive>
<CO2BrinePhillipsFluid
name="fluid"
logLevel="1"
phaseNames="{ gas, water }"
componentNames="{ co2, water }"
componentMolarWeight="{ 44e-3, 18e-3 }"
phasePVTParaFiles="{ pvtgas.txt, pvtliquid.txt }"
flashModelParaFile="co2flash.txt" />

<CompressibleSolidConstantPermeability
name="rock"
solidModelName="nullSolid"
porosityModelName="rockPorosity"
permeabilityModelName="rockPerm"/>

<NullModel
name="nullSolid"/>

<PressurePorosity
name="rockPorosity"
defaultReferencePorosity="0.2"
referencePressure="1.1e7"
compressibility="1.0e-9"/>

<ConstantPermeability
name="rockPerm"
permeabilityComponents="{ 1.0e-24, 1.0e-24, 1.0e-13 }"/>

<BrooksCoreyRelativePermeability
name="relperm"
phaseNames="{ gas, water }"
phaseMinVolumeFraction="{ 0.05, 0.12 }"
phaseRelPermExponent="{ 3, 3 }"
phaseRelPermMaxValue="{ 0.4, 0.9 }"/>

<TableCapillaryPressure
name="cappres00"
phaseNames="{ gas, water }"
wettingNonWettingCapPressureTableName="pcgw00" />

<TableCapillaryPressure
name="cappres01"
phaseNames="{ gas, water }"
wettingNonWettingCapPressureTableName="pcgw01" />
</Constitutive>

<FieldSpecifications>
<HydrostaticEquilibrium
name="equil00"
objectPath="ElementRegions/region00"
datumElevation="25"
datumPressure="1.1e7"
elevationIncrementInHydrostaticPressureTable="0.5"
phaseContacts="{ 30 }"
componentNames="{ co2, water }"
componentFractionVsElevationTableNames="{ initCO2CompFracTable, initWaterCompFracTable }"
temperatureVsElevationTableName="initTempTable" />
<HydrostaticEquilibrium
name="equil01"
objectPath="ElementRegions/region01"
datumElevation="30"
datumPressure="1.1e7"
elevationIncrementInHydrostaticPressureTable="0.5"
phaseContacts="{ 30 }"
componentNames="{ co2, water }"
componentFractionVsElevationTableNames="{ initCO2CompFracTable, initWaterCompFracTable }"
temperatureVsElevationTableName="initTempTable" />
<HydrostaticEquilibrium
name="equil10"
objectPath="ElementRegions/region10"
datumElevation="75"
datumPressure="1.1e7"
elevationIncrementInHydrostaticPressureTable="0.5"
phaseContacts="{ 30 }"
componentNames="{ co2, water }"
componentFractionVsElevationTableNames="{ initCO2CompFracTable, initWaterCompFracTable }"
temperatureVsElevationTableName="initTempTable" />
<HydrostaticEquilibrium
name="equil11"
objectPath="ElementRegions/region11"
datumElevation="25"
datumPressure="1.1e7"
elevationIncrementInHydrostaticPressureTable="5.0"
phaseContacts="{ 30 }"
componentNames="{ co2, water }"
componentFractionVsElevationTableNames="{ initCO2CompFracTable, initWaterCompFracTable }"
temperatureVsElevationTableName="initTempTable" />
<HydrostaticEquilibrium
name="equil20"
objectPath="ElementRegions/region20"
datumElevation="75"
datumPressure="1.1e7"
elevationIncrementInHydrostaticPressureTable="0.5"
phaseContacts="{ -10 }"
componentNames="{ co2, water }"
componentFractionVsElevationTableNames="{ initCO2CompFracTable, initWaterCompFracTable }"
temperatureVsElevationTableName="initTempTable" />
<HydrostaticEquilibrium
name="equil21"
objectPath="ElementRegions/region21"
datumElevation="25"
datumPressure="1.1e7"
elevationIncrementInHydrostaticPressureTable="0.5"
phaseContacts="{ 110 }"
componentNames="{ co2, water }"
componentFractionVsElevationTableNames="{ initCO2CompFracTable, initWaterCompFracTable }"
temperatureVsElevationTableName="initTempTable" />
</FieldSpecifications>

<Functions>
<TableFunction
name="initCO2CompFracTable"
coordinates="{ 0.0, 100.0 }"
values="{ 0.04, 0.04 }" />

<TableFunction
name="initWaterCompFracTable"
coordinates="{ 0.0, 100.0 }"
values="{ 0.96, 0.96 }" />

<TableFunction
name="initTempTable"
coordinates="{ 0.0, 100.0 }"
values="{ 368.15, 368.15 }" />

<TableFunction
name="pcgw00"
coordinates="{ 0.12, 0.95 }"
values="{ 0.0, 0.0 }" />

<TableFunction
name="pcgw01"
coordinates="{ 0.12, 0.95 }"
values="{ 2.0e5, 0.0 }" />

</Functions>

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

</Problem>
Loading