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.
- !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.
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
- Spectral decomposition for energy split has been added.
- !4100 Adding thermo-osmotic and thermo-filtration effects
- !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”.
Server Communication (Python Interface) pre and post timestep: Enabling the server communication (python interface) before (pre) and after (post) time step.
PowerCurveFlowCurve-function: Adding PowerCurveFlowCurve function to flow_and_temperature_control options in HeatTransportBHE 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)
- !4162 Adding temperature-dependent thermal properties due to first order phase change of pore fluid making
HeatConductionprocess nonlinear for capturing soil freezing phenomena
- !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
- !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.
- !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.
- !4086 Use VTK wheels from PyVista on Python 3.10 (when using the auto-generated Python virtual environment by setting
- !4199 [ci] Trigger project-specific downstream pipeline.
- !4221 [ci] Added new manual job ‘advanced container’ which builds and tests ogs with
checkMesh: Fixed -p parameter. Properties were always printed even if the
-p-parameter was not given.
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).
- 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.
- !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
RPATHboth for the build tree as well as the install tree.
- !4221 Re-enabled insitu functionality. Renamed CMake variable
- !4137 Refactored cpm offline cache handling.
- !4145 Refactored
partmeshnow uses 64 bit indices (was 32 bit before).
- !4094 Introducing cdash.opengeosys.org, a test report dashboard.
- !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
- !4192 Added output of active/inactive elements for subdomain deactivation.
- !4188 Refactoring / restructuring the Output class; enabled XDMF / HDF5 output for staggered scheme.
- !4193 Added docs on jupyter notebook generated web pages.
- !4190 VS Code development container. See docs at https://www.opengeosys.org/docs/devguide/advanced/vscode-devcontainer/.
- !4197 [web] Added mermaid diagrams.
- !4205 Added a Citation File Format for citation metadata.
- !4239 [web] Added a 1-D decay-chain benchmark in section
- !4140 Added an instruction for how to conduct parallel computing with PETSc.