Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
120 commits
Select commit Hold shift + click to select a range
bf8c1c2
Add ImmiscibleMultiphaseFlow physics package.
CusiniM Jul 26, 2024
22aed17
catalog name, register and cmakelist.
CusiniM Jul 26, 2024
fd51d91
fix fields.
CusiniM Jul 29, 2024
c90724a
removed all compositional references.
CusiniM Jul 29, 2024
e4a9df0
Merge remote-tracking branch 'origin/develop' into feature/immiscible…
CusiniM Jul 30, 2024
446e401
Compiles and links.
CusiniM Jul 30, 2024
0d159ae
update input file so it runs
Aug 1, 2024
7783a15
adding skeleton for setupDofs
Aug 1, 2024
5fcd5d8
testing
rpiazza87 Aug 1, 2024
8e132b9
fluid model
rpiazza87 Aug 2, 2024
c21d047
rock-fluid model
rpiazza87 Aug 2, 2024
d59fa4e
new kernel file
rpiazza87 Aug 7, 2024
1fe6570
updated kernel functions
rpiazza87 Aug 12, 2024
1b190a8
x
rpiazza87 Aug 12, 2024
33c6c0f
x
rpiazza87 Aug 12, 2024
cc35e59
add temperature to input file
Ammara-14 Aug 2, 2024
297669c
Initial implementation of assembleAccumulationTerm
Ammara-14 Aug 8, 2024
dc73aa2
Few fixes in the accumulation term assumbly and added fields for the …
Ammara-14 Aug 14, 2024
f6d14dc
update datalayout
rpiazza87 Aug 19, 2024
477d87e
updated solver files
rpiazza87 Aug 19, 2024
0526164
update kernel
rpiazza87 Aug 19, 2024
40e191a
added phase mobility kernel
rpiazza87 Aug 20, 2024
cb15c30
updated kernels, apply BC and setupDOF
rpiazza87 Aug 20, 2024
2d4f897
made minor fixes to make the code compile in release mode - thanks to…
Ammara-14 Aug 22, 2024
3ecbf3d
Added first version of a simplified two phase fluid model
Sep 17, 2024
549629d
Started modifications to use twoPhaseFluid model in the flow solver.
Sep 17, 2024
02287f7
changes from commit that was removed
rrsettgast Sep 17, 2024
3d2339f
Merge remote-tracking branch 'origin/develop' into feature/immiscible…
CusiniM Sep 17, 2024
dcd2c54
Fixed fluid initialization in flow solver, updated xml input file.
Sep 19, 2024
7ab6cba
Removed density and viscosity from fields, took these from fluid mode…
Sep 19, 2024
bb4092d
Fixed loop bounds in phaseMobilityKernel.
Sep 20, 2024
6e3e41b
Fixed copyright info.
Sep 20, 2024
3b9a8f5
Merge remote-tracking branch 'origin/develop' into feature/immiscible…
Sep 20, 2024
ea17e7d
Fixed TwoPhaseFluid test to pass CI with clang.
Sep 20, 2024
f4aa73b
Made unit test initialization lighter (does not require whole Geos in…
Sep 20, 2024
75745ff
removed the SinglePhaseBaseKernels references in the ImmiscibleMultip…
Ammara-14 Sep 25, 2024
8deed6f
Fixed shape of m_dens and its derivative to match fluid model.
Sep 25, 2024
f7b5d23
Added check for density monotonicity.
Sep 26, 2024
6575af5
Implemented calculateResidual
Ammara-14 Oct 2, 2024
f331113
Fixed missing initialization of saturation and phaseMass.
Oct 3, 2024
98e2c14
Applied uncrustify formatting.
Oct 3, 2024
6a43303
Added applySystemSolution and phaseVolumeFractions boundary conditions
Ammara-14 Oct 8, 2024
c854b70
this version runs a simple test case with no convergence issues
Ammara-14 Oct 16, 2024
f4be6ef
Fixed relative permeability calculation
Ammara-14 Oct 17, 2024
2acd7c9
Clean up and formatting.
Oct 17, 2024
7089df7
Fixed GPU compilation.
Oct 18, 2024
4418aaa
Minor formatting to pass the CI uncrustify test
Oct 18, 2024
61c6169
Fixed reset function for saturations
Oct 23, 2024
b8eafc3
Added a unit test to numerically check the Jacobian.
Oct 24, 2024
fc01af3
added applySourceFlux
Ammara-14 Oct 24, 2024
da993f6
minor fix on applySourceFluxBC
Ammara-14 Oct 24, 2024
9f0c7c5
included iterative solvers
rpiazza87 Oct 24, 2024
645748d
Fooled compiler to prevent an unusedlambdacapture error
Oct 25, 2024
cb81cf9
Merge remote-tracking branch 'origin/develop' into feature/immiscible…
Oct 25, 2024
6c8eefa
Added input files for BuckleyLeverett, CapillaryPressure and Gravity …
Oct 28, 2024
05f0287
Fixed xml format.
Oct 28, 2024
83086d0
Updated unit test for better coverage.
Oct 28, 2024
a99d949
Added SPE10_layer84 test case.
Oct 29, 2024
3e698b8
Created an ats test from the gravitySegration example.
Oct 30, 2024
98cbe14
Updated integrated test ID after first dry run.
Oct 31, 2024
90e8db3
Added more ats.
Oct 31, 2024
fd702fc
Added more ats, part2.
Oct 31, 2024
41c19e1
Fixed capillaryPressure test.
Nov 5, 2024
ff37803
Removed unused function.
Nov 6, 2024
4453d20
Added documentation for the two-phase fluid model.
Nov 8, 2024
316b4b7
Fixed doc.
Nov 8, 2024
389bfb0
included total mass formulation
rpiazza87 Nov 12, 2024
90924db
Merged with develop.
Nov 14, 2024
73dc82f
updated the assembleAccumulationTerm kernel and added documentation f…
Ammara-14 Nov 18, 2024
fa42877
fixed code style and added a dedicated Kernel selector switch
Ammara-14 Nov 21, 2024
83783e6
Fixed doc references.
Nov 22, 2024
84673ee
Used pre-existing Geos readTable function.
Nov 22, 2024
b23c33d
Addressed Pavel's comments.
Dec 6, 2024
557b179
code style
Dec 7, 2024
cf32759
Merge remote-tracking branch 'origin/develop' into feature/immiscible…
Dec 9, 2024
3cef9ab
Used the newly introduced initializeState from FlowSolverBase.
Dec 10, 2024
8bb5ba6
Fixed style.
Dec 10, 2024
e8698c0
Merge remote-tracking branch 'origin/develop' into feature/immiscible…
Dec 10, 2024
3ddd347
Changed Total S.A.
Dec 10, 2024
8d0cd41
Made density averaging optional (need gpu validation).
Dec 10, 2024
434c435
Merge remote-tracking branch 'origin/develop' into feature/immiscible…
Dec 12, 2024
f39620c
Added schema.
Dec 12, 2024
16715ce
Fixed doc.
Dec 12, 2024
9e32fe5
Added rebaseline infos.
Dec 12, 2024
3395073
Added back HYPRE_BoomerAMGSetAggNumLevels.
Dec 17, 2024
fab919e
Merge remote-tracking branch 'origin/develop' into feature/immiscible…
Dec 18, 2024
84613c5
Removed ubuntu config file.
Dec 18, 2024
a00c4a6
Merged with develop.
Jan 28, 2025
04764f4
Merged with develop.
Jan 28, 2025
770e4c9
Moved TwoPhaseFluid unit test.
Jan 28, 2025
254d4df
Removed HYPRE_BoomerAMGSetAggNumLevels. Hypre setup to be addressed i…
Jan 28, 2025
bb6b0af
Removed commented sections.
Jan 28, 2025
23c5240
Additing validateDirichletBC and SourceFluxStats wrapper
Ammara-14 Feb 1, 2025
510ed8c
code style
Feb 26, 2025
6744f4f
Merge branch 'develop' into feature/immiscibleMultiphaseFlow
paveltomin Feb 26, 2025
66a1665
build fix
Feb 26, 2025
ab3cd3b
test build fix
Feb 26, 2025
79b9ff5
test fix again
Feb 26, 2025
cfbddf8
Initial implementation - trying to pass the capillary pressure model …
Ammara-14 Feb 27, 2025
b4975f9
Merge remote-tracking branch 'origin/feature/immiscibleMultiphaseFlow…
Feb 28, 2025
9ff577e
code style
Feb 28, 2025
2a25e7b
try this
Feb 28, 2025
28afb1b
first implementation of interface conditions with J-Leverett Pc curve…
Ammara-14 May 2, 2025
b47698e
updates to the array indices
Ammara-14 May 9, 2025
c22db5e
merged with develop
Ammara-14 May 9, 2025
6bcd7ee
Merge branch 'develop' into CapillaryInterfaceConditions
OmarDuran May 14, 2025
56805c9
Merge branch 'develop' into CapillaryInterfaceConditions
OmarDuran May 28, 2025
83bbd06
Merge branch 'develop' into CapillaryInterfaceConditions
OmarDuran Jun 2, 2025
553f412
Merge branch 'develop' into CapillaryInterfaceConditions
OmarDuran Oct 10, 2025
7493d29
feat: data structure for enabling capillary interface conditions (#3657)
rrsettgast Oct 10, 2025
7927b37
updated
Ammara-14 Nov 12, 2025
7a9cea9
Merge develop into feature branch
Ammara-14 Feb 4, 2026
9871058
Adding input files and compiles on release
Ammara-14 Feb 4, 2026
5f7e6c0
wip: adding interface condition test to CmakeList
OmarDuran Feb 5, 2026
3ec780e
Update testImmiscibleInterfaceConditions.cpp
OmarDuran Feb 5, 2026
0c2b288
Update uni_directional_flow_base.xml
OmarDuran Feb 5, 2026
11bfa60
wip
OmarDuran Feb 5, 2026
3d85639
wip:
OmarDuran Feb 5, 2026
cbbf98c
Update uni_directional_flow_base.xml
OmarDuran Feb 5, 2026
d915a03
Update uni_directional_flow_interface_condition.xml
OmarDuran Feb 5, 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
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
from geos.ats.test_builder import TestDeck, RestartcheckParameters, generate_geos_tests

restartcheck_params = {}
restartcheck_params['atol'] = 1.0E-8
restartcheck_params['rtol'] = 1.0E-8

decks = [
TestDeck(
name="immiscibleTwoPhase_GravitySegregation_1d",
description=
'Test that 2 fluids can be seperated based on gravity.',
partitions=((1, 1, 1), ),
restart_step=0,
check_step=45,
restartcheck_params=RestartcheckParameters(**restartcheck_params))
]

generate_geos_tests(decks)
Original file line number Diff line number Diff line change
@@ -0,0 +1,203 @@
<?xml version="1.0"?>

<Problem>
<Solvers
gravityVector="{ 0.0, 0.0, -10 }">
<ImmiscibleMultiphaseFlow
name="FlowSolver"
discretization="TPFA"
targetRegions="{ Domain }"
writeLinearSystem="0"
temperature="300"
initialDt="0.001">
<NonlinearSolverParameters
newtonTol="1.0e-6"
lineSearchAction="None"
newtonMaxIter="10" />
<LinearSolverParameters
directParallel="0" />
</ImmiscibleMultiphaseFlow>
</Solvers>

<Mesh>
<InternalMesh
name="mesh1"
elementTypes="{ C3D8 }"
xCoords="{ 0, 1 }"
yCoords="{ 0, 1 }"
zCoords="{ 0, 10 }"
nx="{ 1 }"
ny="{ 1 }"
nz="{ 10 }"
cellBlockNames="{ block1 }" />
</Mesh>

<Geometry>
<Box
name="sink"
xMin="{ -0.01, -0.01, -0.01 }"
xMax="{ 1.01, 1.01, 1.01 }" />
</Geometry>

<Events
maxTime="0.4">
<PeriodicEvent
name="outputs"
timeFrequency="0.01"
target="/Outputs/vtkOutput" />

<PeriodicEvent
name="solverApplications"
target="/Solvers/FlowSolver" />

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

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

<ElementRegions>
<CellElementRegion
name="Domain"
cellBlocks="{ block1 }"
materialList="{ fluid, rock, relperm }" />
</ElementRegions>

<Functions>
<TableFunction
name="densityTablePhase1"
coordinates="{ 0.0}"
values="{ 10 }" />

<TableFunction
name="densityTablePhase2"
coordinates="{ 0.0 }"
values="{ 1 }" />

<TableFunction
name="viscosityTablePhase1"
coordinates="{ 0.0 }"
values="{ 1.0 }" />

<TableFunction
name="viscosityTablePhase2"
coordinates="{ 0.0 }"
values="{ 1.0 }" />

<TableFunction
name="saturationTable1"
inputVarNames="{ elementCenter }"
coordinateFiles="{ x.txt, y.txt, z.txt }"
voxelFile="initialSaturation1.txt"
interpolation="nearest" />

<TableFunction
name="saturationTable2"
inputVarNames="{ elementCenter }"
coordinateFiles="{ x.txt, y.txt, z.txt }"
voxelFile="initialSaturation2.txt"
interpolation="nearest" />

<TableFunction
name="pressureTable"
inputVarNames="{ elementCenter }"
coordinateFiles="{ x.txt, y.txt, z.txt }"
voxelFile="initialPressure.txt"
interpolation="nearest" />
</Functions>

<Constitutive>
<TwoPhaseImmiscibleFluid
name="fluid"
phaseNames="{ water, gas }"
densityTableNames="{ densityTablePhase1, densityTablePhase2 }"
viscosityTableNames="{ viscosityTablePhase1, viscosityTablePhase2 }" />

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

<NullModel
name="nullSolid" />

<PressurePorosity
name="rockPorosity"
defaultReferencePorosity="1.0"
referencePressure="0.0"
compressibility="1e-9" />

<ConstantPermeability
name="rockPerm"
permeabilityComponents="{ 1, 1, 1 }" />

<BrooksCoreyRelativePermeability
name="relperm"
phaseNames="{ water, oil }"
phaseMinVolumeFraction="{ 0.0, 0.0 }"
phaseRelPermExponent="{ 1.0, 1.0 }"
phaseRelPermMaxValue="{ 1.0, 1.0 }" />
</Constitutive>

<FieldSpecifications>
<FieldSpecification
name="Porosity"
initialCondition="1"
setNames="{ all }"
objectPath="ElementRegions/Domain/block1"
fieldName="rockPorosity_referencePorosity"
scale="1.0" />

<FieldSpecification
name="initialPressure"
initialCondition="1"
setNames="{ all }"
objectPath="ElementRegions/Domain/block1"
fieldName="pressure"
scale="1.0"
functionName="pressureTable" />

<FieldSpecification
name="initialSat1"
initialCondition="1"
setNames="{ all }"
objectPath="ElementRegions/Domain/block1"
fieldName="phaseVolumeFraction"
component="0"
scale="1.0"
functionName="saturationTable1" />

<FieldSpecification
name="initialSat2"
initialCondition="1"
setNames="{ all }"
objectPath="ElementRegions/Domain/block1"
fieldName="phaseVolumeFraction"
component="1"
scale="1.0"
functionName="saturationTable2" />

<FieldSpecification
name="sinkTermP"
objectPath="ElementRegions/Domain/block1"
fieldName="pressure"
scale="500.0"
setNames="{ sink }" />
</FieldSpecifications>

<Outputs>
<VTK
name="vtkOutput" />
<Restart
name="restartOutput"/>
</Outputs>
</Problem>
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
495.0
485.0
475.0
465.0
455.0
400.0
300.0
200.0
100.0
0.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
0
0
0
0
0
1
1
1
1
1
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
1
1
1
1
1
0
0
0
0
0
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0.5
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0.5
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
0.5
1.5
2.5
3.5
4.5
5.5
6.5
7.5
8.5
9.5
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
1e7
1e7
1e7
1e7
1e7
1e7
1e7
1e7
1e7
1e7
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
0.95
0.95
0.95
0.95
0.95
0.95
0.95
0.05
0.05
0.05
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
0.05
0.05
0.05
0.05
0.05
0.05
0.05
0.95
0.95
0.95
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
4.33172935918785
1.66604975353379
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
50
50
50
50
50
200
200
200
200
200
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
50
50
50
50
50
200
200
200
200
200
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
50
50
50
50
50
200
200
200
200
200
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
0
1
Loading
Loading