Highlights
-
We are happy to announce that the TH2M-process is now feature complete and has evaporation and dissolution implemented.
The TH2M process describes a two-phase, two-component approach, which is fully coupled with thermodynamic and geomechanical processes. Due to the complex process couplings, many different processes (e.g. in repository systems) can be investigated numerically, including media dry-out and resaturation, consolidation, stress- or deformation-dependent permeabilities, thermal expansion and heat-induced stresses, gas transport processes in fully or partially saturated media and others.
The two-component approach also enables the description of phase transition processes (evaporation, solution) under an equilibrium condition. The TH2M model is verified and validated on a benchmark suite which provides a hierarchical classification of different coupling combinations of the individual processes.
-
Python bindings were extended in two ways: OGS got python wheels and can now be installed with pip
, and has got a basic python interface to run a simulation from within python.
-
For developers the biggest improvement is the inclusion of the Eric Niebler’s ranges library. Already used in few places in OGS it greatly improves code readability through easier composition.
The following people contributed to this release (ordered by number of commits): Lars Bilke, Thomas Fischer, Dmitri Naumov, Christoph Lehmann, Wenqing Wang, Renchao Lu, Boyan Meng, Karsten Rink, Norbert Grunwald, Jörg Buchwald, Christian Silbermann, Robert Habel, Linda Günther, Mostafa Mollaali, Tobias Meisel, Jakob Randow, Sophia Einspänner, Haibing Shao, Kata Kurgyis, Olaf Kolditz, and Jaime Garibay.
Process’ changes
- !4087
Adding forward differences numerical Jacobian computation. It is less expensive then central differences, but not necessarily slower overall, and sometimes even faster.
- !4161
Refactoring of domain deactivation.
- !4204
Removes the IntegrationMethod template parameter from local assemblers that use Taylor-Hood elements.
- !4217
Removes the IntegrationMethod template parameter from the remaining local assemblers (processes, STs, BCs).
- !4233
Parameter type Function can be used for MPL property and constituitive relation parameters in THM, TRM and TR.
- !4210
[PL/TH2M] Add/correct residuum output.
- !4247
MPL: Reimplement VariableArray as own class. Less memory and a little faster. Easier usage.
TH2M
The TH2M process describes a two-phase, two-component approach, which is fully coupled with thermodynamic and geomechanical processes. Due to the complex process couplings, many different processes (e.g. in repository systems) can be investigated numerically, including media dry-out and resaturation, consolidation, stress- or deformation-dependent permeabilities, thermal expansion and heat-induced stresses, gas transport processes in fully or partially saturated media and others. The two-component approach also enables the description of phase transition processes (evaporation, solution) under an equilibrium condition. To validate the TH2M model, a benchmark suite was created that provides a hierarchical classification of different coupling combinations of the individual processes. This proves the validity and correct implementation of all terms of the model equations.
- !4131
Dissolution of gas into the liquid phase, completing the phase transition feature in TH2M
- !4131
Two tests validate the dissolution process and the diffusive transport of the dissolved gas in the water phase
PhaseField
- Spectral decomposition for energy split has been added.
ThermoRichardsFlow
- !4100
Adding thermo-osmotic and thermo-filtration effects
ThermalTwoPhaseFlowPP
- !4136
Adding a third component with equilibrium partitioning between liquid and gas phases.
- !4194
Correct the energy equation and heat pipe benchmark results.
Component transport process / reactive transport process with coupling of Phreeqc
- !4106
Enable chemical speciation parallelization on CPU.
- !4130
Update the description of governing equations in the documentation of the process.
- !4207
Enable a new type of chemical solver “self-contained chemical solver”.
HeatTransportBHE
- !4102
Server Communication (Python Interface) pre and post timestep: Enabling the server communication (python interface) before (pre) and after (post) time step.
- !4208
PowerCurveFlowCurve-function: Adding PowerCurveFlowCurve function to flow_and_temperature_control options in HeatTransportBHE process.
LiquidFlow process
- !4201
Aperture size for inclined element.
ThermoRichardsMechanics and ThermoHydroMechanics
- !4100
Adding thermo-osmotic and thermo-filtration effects / fixing contributions in THM.
- !4153
Separates the constitutive setting of the TRM process from computations involving shape matrices .
- !4198
Splits the constitutive setting of the TRM process into modular pieces.
- !4236
Re-enables pressure and temperature dependent density models in TRM.
Constitutive relations (material models)
Thermal models
- !4162
Adding temperature-dependent thermal properties due to first order phase change of pore fluid making
HeatConduction process nonlinear for capturing soil freezing phenomena
Numerics
- !4178
Isotropic diffusion stabilization for solving the advection-diffusion equation.
- !4185
Apply the isotropic diffusion stabilization to ThermoHydroMechanics process.
- !4165
Full up winding scheme for HT.
- !4196
Applied the full upwind stabilization to THM process.
- !4176
Most of the tools should now also work when OGS was built with PETSc.
- !4252
Allow the removal of point-elements from meshes via the
removeMeshElements-tool.
- !4270
Added “MeshMapping”-tool for handling all options for 2D mesh mapping, i.e. mapping based on a raster or another mesh, or to a static value.
Data Explorer
- !4250
Adding support for *.2dm triangle meshes via GMS Import.
- !4252
Allow the removal of point-elements from meshes.
- !4265
Added resolution aware scaling for GUI elements
Python / Jupyter
- !4135
Restored ipyvtklink and static PyVista rendering backend. Also added msh2vtu
.
- !4049
First basic implementation (init, exec, finalize) of a Python interface to drive OGS from Python.
- !4263
Python wheels for module (see !4049
) and ogs binaries.
- !4242
A jupyter notebook for Theis solution is added.
Testing
- !4086
Use VTK wheels from PyVista on Python 3.10 (when using the auto-generated Python virtual environment by setting
OGS_USE_PIP=ON).
- !4199
[ci] Trigger project-specific downstream pipeline.
- !4221
[ci] Added new manual job ‘advanced container’ which builds and tests ogs with
OGS_USE_INSITU=ON.
Bug fixes
- !4089
checkMesh: Fixed -p parameter. Properties were always printed even if the -p-parameter was not given.
- !4093
VerticalSliceFromLayers: Fixed mesh generation to be consistent with 3D mesh generation (i.e. meshes are built from bottom and top). This may require a fairly up-to-date GMSH version (GMSH 4.9.5 was working in our tests).
- !4115
:
- Fixes one wrongly oriented edge in Quad8 elements. Also affects Quad9 elements. Corrects the surface normal computation, in particular.
- Provides a corrected surface normal implementation for line elements.
- Corrects the determination whether a point is inside a line segment.
- !4164
Fix pvtu output when VTK is build via CPM.
- !4195
Excavation of neighbouring subdomains now produce expected results along the common boundary.
- !4226
Fixes setting the previous temperature value in the OGS MFront interface.
- !4243
Fixed a run time error when Python BC is used in the code built with PETSc.
- !4246
Fixed a bug in Python source term with PETSc.
CMake
- !4081
, !4101
Some CMake cleanup and renovations. Better Python finding logic.
- !4129
[cpm] Removed MPI dependencies in VTK.
- !4132
Use only MKLs OpenMP implementation.
- !4167
Some RPATH fixes for lib64-based systems. Also removed option
OGS_INSTALL_EXTERNAL_DEPENDENCIES, use OGS_INSTALL_DEPENDENCIES instead!. Proper RPATH both for the build tree as well as the install tree.
- !4221
Re-enabled insitu functionality. Renamed CMake variable
OGS_INSITU to OGS_USE_INSITU.
Infrastructure
- !4137
Refactored cpm offline cache handling.
- !4145
Refactored
MetisSetup.cmake and partmesh now uses 64 bit indices (was 32 bit before).
- !4094
Introducing cdash.opengeosys.org, a test report dashboard.
File I/O
- !4082
Copy bulk mesh node property values to sub-meshes specified for output.
- !4126
[jupyter] Added gmsh and msh2vtu to Jupyter image.
- !4121
PVD to XDMF (VTK to HDF5) conversion tool added.
- !4176
Single threaded PETSc simulations now also writes
.vtu instead of .pvtu files.
- !4192
Added output of active/inactive elements for subdomain deactivation.
- !4188
Refactoring / restructuring the Output class; enabled XDMF / HDF5 output for staggered scheme.
Documentation
Version info