Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
cd67768
change validation for region statistics for by resvol constraint
tjb-ltk Sep 23, 2025
5ced2b7
rel mode compile fix
tjb-ltk Sep 23, 2025
b2cbc13
check if reference region defined
tjb-ltk Sep 23, 2025
c0f8148
Merge remote-tracking branch 'origin/fix/byer3/resvolconstraint_valid…
MelReyCG Sep 26, 2025
7771fbe
🚧 wip 1
MelReyCG Dec 2, 2025
37d75e5
🚧wip 2
MelReyCG Dec 2, 2025
202b6fc
Merge remote-tracking branch 'origin/develop' into bugfix/rey/split-s…
MelReyCG Dec 2, 2025
239ff24
🚧 applying merge change to task component
MelReyCG Dec 2, 2025
9ff68f4
♻️ uncoupling regions and statistics data storage (WIP, data could be…
MelReyCG Dec 9, 2025
15369ed
🐛 map alloc bugfix
MelReyCG Dec 9, 2025
f5affb5
🚧different data structures plan
MelReyCG Jan 5, 2026
c257445
🚧choosing the plan that seem like the best one
MelReyCG Jan 5, 2026
856a6c7
♻️moved stat so each aggregator has its own data in the data reposito…
MelReyCG Jan 7, 2026
1c4b603
♻️impact new aggregator on stats task + bugfixes on formatting & output
MelReyCG Jan 7, 2026
69dfad7
🔊 better messages & naming
MelReyCG Jan 12, 2026
55c0eeb
♻️continue refactorings before solvers usages
MelReyCG Jan 12, 2026
ccfede6
📝 a bit of docs
MelReyCG Jan 12, 2026
f92b9f7
🚧 draft of application on well solvers
MelReyCG Jan 12, 2026
c295ff7
♻️element manager -> meshlevel in parameters
MelReyCG Jan 12, 2026
8fdf42c
✨ implement statistics aggregator call from wellcontrols
MelReyCG Jan 13, 2026
3102971
Merge remote-tracking branch 'origin/develop' into bugfix/rey/split-s…
MelReyCG Jan 13, 2026
ae978a2
🐛compil fixes
MelReyCG Jan 14, 2026
4ce27d2
⚰️ pruning headers
MelReyCG Jan 15, 2026
3288270
🐛bugfix bad type detection
MelReyCG Jan 15, 2026
753d32b
🐛 flash pressure computing bugfix
MelReyCG Jan 15, 2026
c2bc1aa
📦schemamehcs
MelReyCG Jan 15, 2026
1b7fab5
♻️centralize flowSolver access
MelReyCG Jan 19, 2026
ffbfe25
🐛 better last-time validation (div/0 avoided?)
MelReyCG Jan 21, 2026
0394da8
🐛 accessing the right region data structure + added validations + bet…
MelReyCG Jan 21, 2026
d7c3ab0
💄better stats table (TODO justify titles left)
MelReyCG Jan 21, 2026
44e3c3e
🐛 initialized reference reservoir pressure stats at implicitStepSetup…
MelReyCG Jan 23, 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
23 changes: 23 additions & 0 deletions .clangd
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
CompileFlags:
Add:
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/GEOS/src/coreComponents
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/GEOS/src/coreComponents/linearAlgebra
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/GEOS/src/cmake/blt/thirdparty_builtin/googletest/googletest/include
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/GEOS/build-develop/include
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/thirdPartyLibs/install-master/build_stage/l1092082/spack-stage-raja-git.1d70abf171474d331f1409908bdf1b1c3fe19222_develop-dfj5hwwhvr4v32yxbduwrv2x4izvriez/spack-src/include
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/thirdPartyLibs/install-master/gcc-12.2.1/raja-git.1d70abf171474d331f1409908bdf1b1c3fe19222_develop-dfj5hwwhvr4v32yxbduwrv2x4izvriez/.spack/spack-build-dfj5hww/include
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/thirdPartyLibs/install-master/build_stage/l1092082/spack-stage-camp-git.ee0a3069a7ae72da8bcea63c06260fad34901d43_main-7wyhilu22frfttymb3dgrvaubocr3igk/spack-src/include
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/thirdPartyLibs/install-master/build_stage/l1092082/spack-stage-camp-git.ee0a3069a7ae72da8bcea63c06260fad34901d43_main-7wyhilu22frfttymb3dgrvaubocr3igk/spack-build-7wyhilu/include
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/thirdPartyLibs/install-master/build_stage/l1092082/spack-stage-fmt-10.0.0-2ckd7w7qbgdr2ysc2uybihnao6ngqtox/spack-src/include
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/thirdPartyLibs/install-master/build_stage/l1092082/spack-stage-umpire-git.1ed0669c57f041baa1f1070693991c3a7a43e7ee_develop-orylmsm4ynx3tffjsyablcrrb7xeqr75/spack-src/src
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/thirdPartyLibs/install-master/build_stage/l1092082/spack-stage-umpire-git.1ed0669c57f041baa1f1070693991c3a7a43e7ee_develop-orylmsm4ynx3tffjsyablcrrb7xeqr75/spack-build-orylmsm/include
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/thirdPartyLibs/install-master/gcc-12.2.1/umpire-git.1ed0669c57f041baa1f1070693991c3a7a43e7ee_develop-orylmsm4ynx3tffjsyablcrrb7xeqr75/include
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/thirdPartyLibs/install-master/gcc-12.2.1/chai-git.4b9060b18b9bec1167026cfb3132bd540c4bd56b_develop-kebrblc66x6zw5hvdcbh46kgnpua77n3/include
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/thirdPartyLibs/install-master/gcc-12.2.1/vtk-9.4.2-cyy6bpea5gfinatsqlbral2d6f5voaob/include/vtk-9.4
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/thirdPartyLibs/install-master/build_stage/l1092082/spack-stage-vtk-9.4.2-cyy6bpea5gfinatsqlbral2d6f5voaob/spack-src/ThirdParty/pugixml/vtkpugixml/src
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/thirdPartyLibs/install-master/build_stage/l1092082/spack-stage-vtk-9.4.2-cyy6bpea5gfinatsqlbral2d6f5voaob/spack-build-cyy6bpe/ThirdParty/pugixml/vtkpugixml/src
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/thirdPartyLibs/install-master/build_stage/l1092082/spack-stage-caliper-git.287b7f3ad2d12f520aad04268d44f353cd05403c_2.12.0-f3wivxbfbxrtiz2siwdgvm2l27cqec4j/spack-src/include
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/thirdPartyLibs/install-master/build_stage/l1092082/spack-stage-conduit-git.ad86e316ad56a75c099d30ca5ce75cff275b5924_develop-zu4a2kq24d4vq6sx2iv2wxzjvw6gu6sv/spack-src/src/libs/conduit
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/thirdPartyLibs/install-master/build_stage/l1092082/spack-stage-conduit-git.ad86e316ad56a75c099d30ca5ce75cff275b5924_develop-zu4a2kq24d4vq6sx2iv2wxzjvw6gu6sv/spack-build-zu4a2kq/libs/conduit
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/thirdPartyLibs/install-master/build_stage/l1092082/spack-stage-parmetis-4.0.3-7mo5p53bnnfmnfiuivjt4guunnu35teh/spack-src/include
- -I/data/pau901/SIM_CS/04_WORKSPACE/USERS/MelvinRey/WorkEnv/GEOSX_repos/thirdPartyLibs/install-master/build_stage/l1092082/spack-stage-scotch-*/spack-build-*/src/include
86 changes: 86 additions & 0 deletions src/CompositionalMultiphaseStatist.plantuml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@


class Group #text:00000060
class ExecutableGroup #text:00000060
class TaskBase #text:00000060
class FieldStatisticsBase #text:00000060
class ObjectManagerBase #text:00000060
class ElementSubRegionBase #text:00000060
class ElementSubRegionBase #text:00000060
class WellSolverBase #text:00000060
class PhysicsSolverBase #text:00000060

class FieldStatisticsBase< SOLVER_T > #text:00000060 {
string m_solverName (user input : "solverName")
string m_outputDir (user input : "outputDir")
bool m_writeCSV (user input : "writeCSV")
}

Group <|-- ExecutableGroup
ExecutableGroup <|-- TaskBase
TaskBase <|-- FieldStatisticsBase

Group <|-- ObjectManagerBase
ObjectManagerBase <|-- ElementSubRegionBase
ElementSubRegionBase <|-- CellElementRegion

WellSolverBase <|-- CompositionalMultiphaseWell
PhysicsSolverBase <|-- WellSolverBase
ExecutableGroup <|-- PhysicsSolverBase

class CompositionalMultiphaseStatistics {
m_computeCFLNumbers (user input: "computeCFLNumbers")
m_computeRegionStatistics (user input: "computeRegionStatistics")
m_relpermThreshold (user input: "relpermThreshold")
--
void postInputInitialization() override
void registerDataOnMesh( Group & meshBodies ) override
void execute( time_n, dt, [...], domain )
void computeRegionStatistics( time, meshLevel, regionNames )
void computeCFLNumbers( time, dt, domainPartition )
}
FieldStatisticsBase <|-- CompositionalMultiphaseStatistics : SOLVER_T = CompositionalMultiphaseBase


class RegionStatistics {
real64 averagePressure
real64 minPressure
real64 maxPressure

real64 minDeltaPressure
real64 maxDeltaPressure

real64 averageTemperature
real64 minTemperature
real64 maxTemperature

real64 totalPoreVolume
real64 totalUncompactedPoreVolume
array1d<real64> phasePoreVolume

array1d<real64> phaseMass
array1d<real64> trappedPhaseMass
array1d<real64> immobilePhaseMass
array2d<real64> componentMass
}
note left of RegionStatistics
Also exists in single-phase version with:
real64 averagePressure
real64 minPressure
real64 maxPressure

real64 minDeltaPressure
real64 maxDeltaPressure

real64 averageTemperature
real64 minTemperature
real64 maxTemperature

real64 totalPoreVolume
real64 totalUncompactedPoreVolume

real64 totalMass
end note
CompositionalMultiphaseStatistics ....> RegionStatistics : "instanciate\n&\ncomputes\n&\nreads data from"
CompositionalMultiphaseWell ....> RegionStatistics : "reads data\nfrom"
CellElementRegion *--l--> RegionStatistics : ""regionStatistics"\nWrapper"
83 changes: 83 additions & 0 deletions src/New2CompositionalMultiphaseStatist.plantuml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@


class Group #text:00000060
class ExecutableGroup #text:00000060
class TaskBase #text:00000060
class FieldStatisticsBase #text:00000060
class ObjectManagerBase #text:00000060
class ElementSubRegionBase #text:00000060
class ElementSubRegionBase #text:00000060
class WellSolverBase #text:00000060
class PhysicsSolverBase #text:00000060

class FieldStatisticsBase< SOLVER_T > #text:00000060 {
string m_solverName (user input : "solverName")
string m_outputDir (user input : "outputDir")
bool m_writeCSV (user input : "writeCSV")
}

Group <|-- ExecutableGroup
ExecutableGroup <|-- TaskBase
TaskBase <|-- FieldStatisticsBase

Group <|-- ObjectManagerBase
ObjectManagerBase <|-- ElementSubRegionBase
ElementSubRegionBase <|-- CellElementRegion

WellSolverBase <|-- CompositionalMultiphaseWell
PhysicsSolverBase <|-- WellSolverBase
ExecutableGroup <|-- PhysicsSolverBase

class CompositionalMultiphaseStatisticsTask #text:Green {
bool m_computeCFLNumbers (wrapper: "computeCFLNumbers")
bool m_computeRegionStatistics (wrapper: "computeRegionStatistics")
float m_relpermThreshold (wrapper: "relpermThreshold")
--
void postInputInitialization() override
void execute( time_n, dt, [...], domain )
}
note bottom of CompositionalMultiphaseStatisticsTask
User defined executable task for
statistics computation & output
end note
FieldStatisticsBase <|-- CompositionalMultiphaseStatisticsTask : SOLVER_T = CompositionalMultiphaseBase

class CompositionalMultiphaseStatisticsAggregator #text:Green {
void registerDataOnMesh( Group & meshBodies ) override
void computeRegionStatistics( time, meshLevel, regionNames )
void computeCFLNumbers( time, dt, domainPartition, m_relpermThreshold )
void forRegionStatstics( functor )
}
note bottom of CompositionalMultiphaseStatisticsAggregator
Generated sub-group for instanciating
RegionStatistics over the regions &
doing statistics computation.
end note
CompositionalMultiphaseStatisticsTask *---> CompositionalMultiphaseStatisticsAggregator : "<color:Green>contains one"
CompositionalMultiphaseWell *---> CompositionalMultiphaseStatisticsAggregator : "<color:Green>contains one"

class RegionStatistics {
real64 averagePressure
real64 minPressure
real64 maxPressure

real64 minDeltaPressure
real64 maxDeltaPressure

real64 averageTemperature
real64 minTemperature
real64 maxTemperature

real64 totalPoreVolume
real64 totalUncompactedPoreVolume
array1d<real64> phasePoreVolume

array1d<real64> phaseMass
array1d<real64> trappedPhaseMass
array1d<real64> immobilePhaseMass
array2d<real64> componentMass
}
CompositionalMultiphaseStatisticsAggregator ...> RegionStatistics : "instanciate\n&\ncomputes"
CompositionalMultiphaseStatisticsTask ..> RegionStatistics : "reads data\nfrom"
CompositionalMultiphaseWell ...> RegionStatistics : "reads data\nfrom"
CellElementRegion *--l--> RegionStatistics : ""regionStatistics"\nWrapper"
115 changes: 115 additions & 0 deletions src/New3CompositionalMultiphaseStatist.plantuml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@


class Group #text:00000060
class ExecutableGroup #text:00000060
class TaskBase #text:00000060
class FieldStatisticsBase #text:00000060
class ObjectManagerBase #text:00000060
class ElementSubRegionBase #text:00000060
class ElementSubRegionBase #text:00000060
class WellSolverBase #text:00000060
class PhysicsSolverBase #text:00000060

class FieldStatisticsBase< SOLVER_T > #text:00000060 {
string m_solverName (user input : "solverName")
string m_outputDir (user input : "outputDir")
bool m_writeCSV (user input : "writeCSV")
}

Group <|-- ExecutableGroup
ExecutableGroup <|-- TaskBase
TaskBase <|-- FieldStatisticsBase

Group <|-- ObjectManagerBase
ObjectManagerBase <|-- ElementSubRegionBase
ElementSubRegionBase <|-- CellElementRegion

WellSolverBase <|-- CompositionalMultiphaseWell
PhysicsSolverBase <|-- WellSolverBase
ExecutableGroup <|-- PhysicsSolverBase

class CompositionalMultiphaseStatisticsTask #text:Green {
bool m_computeCFLNumbers (wrapper: "computeCFLNumbers")
bool m_computeRegionStatistics (wrapper: "computeRegionStatistics")
float m_relpermThreshold (wrapper: "relpermThreshold")
--
void postInputInitialization() override
void execute( time_n, dt, [...], domain )
}
note bottom of CompositionalMultiphaseStatisticsTask
User defined executable task for
statistics computation & output
end note
FieldStatisticsBase <|-- CompositionalMultiphaseStatisticsTask : SOLVER_T = CompositionalMultiphaseBase

class CompositionalMultiphaseStatisticsAggregator #text:Green {
void registerDataOnMesh( Group & meshBodies ) override
void computeRegionStatistics( time, meshLevel, regionNames )
void computeCFLNumbers( time, dt, domainPartition, m_relpermThreshold )
void forRegionStatstics( functor )
}
note bottom of CompositionalMultiphaseStatisticsAggregator
Generated sub-group for instanciating
RegionStatistics over the regions &
doing statistics computation.
end note
CompositionalMultiphaseStatisticsTask *---> CompositionalMultiphaseStatisticsAggregator : "<color:Green>contains one"
CompositionalMultiphaseWell *---> CompositionalMultiphaseStatisticsAggregator : "<color:Green>contains one"

class RegionStatistics #text:Green {
}
note bottom of RegionStatistics
May be removed in favor of direct statistics
end note
CompositionalMultiphaseStatisticsAggregator ...> RegionStatistics : "instanciate\n&\ncomputes"
CompositionalMultiphaseStatisticsTask ..> RegionStatistics : "reads data\nfrom"
CompositionalMultiphaseWell ...> RegionStatistics : "reads data\nfrom"
CellElementRegion *-l--> RegionStatistics : "<color:Green>'regionStatistics' wrapper"

class PressureStatistics #text:Green {
real64 averagePressure
real64 minPressure
real64 maxPressure
real64 minDeltaPressure
real64 maxDeltaPressure
}
RegionStatistics *--> PressureStatistics : "<color:Green>generated wrapper\n<color:Green>"pressure""
PressureStatistics [PressureStatistics] --> RegionStatisticsType : "<color:Green>implements"

class TemperatureStatistics #text:Green {
real64 averageTemperature
real64 minTemperature
real64 maxTemperature
}
RegionStatistics *--> TemperatureStatistics : "<color:Green>generated wrapper\n<color:Green>"temperature""
TemperatureStatistics [TemperatureStatistics] --> RegionStatisticsType : "<color:Green>implements"

class PoreVolumeStatistics #text:Green {
real64 totalPoreVolume
real64 totalUncompactedPoreVolume
array1d<real64> phasePoreVolume
}
RegionStatistics *--> PoreVolumeStatistics : "<color:Green>generated wrapper\n<color:Green>"poreVolume""
PoreVolumeStatistics [PoreVolumeStatistics] --> RegionStatisticsType : "<color:Green>implements"

class MassStatistics #text:Green {
array1d<real64> phaseMass
array1d<real64> trappedPhaseMass
array1d<real64> immobilePhaseMass
array2d<real64> componentMass
}
RegionStatistics *--> MassStatistics : "<color:Green>generated wrapper\n<color:Green>"mass""
MassStatistics [MassStatistics] --> RegionStatisticsType : "<color:Green>implements"

interface RegionStatisticsType < STATS_TYPE > #text:Green {
void init()
void setKernelViews( RegionStatisticsKernelViews< STATS_TYPE > & views )
HOST_DEVICE void collectElementStats( RegionStatisticsKernelViews< STATS_TYPE > const & views )
void kernelReduce()
void mpiReduce()
}

class STATS_TYPE::KernelViews < STATS_TYPE > #text:Green {
( structure of views necessary for collectElementStats() )
}
RegionStatisticsType [STATS_TYPE] ..> STATS_TYPE::KernelViews
Loading
Loading