Releases: ufz/ogs
6.5.6
Process' changes
TH2M
ThermalTwoPhaseFlowPP
- !5378 Fix: The molar mass is not set for gas density or pressure models.
HeatTransportBHE
- !5215 Add an advanced BHE
<flow_and_temperature_control>
for incorporating heat pump characteristics for heating, hot water and cooling:<AdvancedBuildingPowerCurvesFlowCurve>
.
LIE
- !5400 LIE/HM multiple fracture preparations.
Richard's mechanics process
- !5052 RichardsMechanics Initialize nonzero Stress State for Solid Models.
SmallDeformation
- !5369 Strain data at IP are not initialized in SmallDeformation.
ThermoMechanics
- !5372 Initialized strain IP data with Bu.
Parameters
- !5392 Added support for inline parameter definitions in project files.
Parameters can now be specified directly as constant values inside property definitions, e.g.,<dry_thermal_conductivity>0.5 0.3 0.2</dry_thermal_conductivity>
instead of only referencing predefined parameters like<dry_thermal_conductivity>lambda_dry_bentonite</dry_thermal_conductivity>
.
Generic features
- !5290 Point-to-point anchors can now be defined between point within elements.
- !5337 Anchor elements can be pre-stressed and obey a simple friction law.
- !5376 Release nodal force boundary condition.
- !5381 Dirichlet boundary condition with time-dependent decay.
Tools
- !5330 Extend tool createLayeredMeshFromRasters.
- !5355 Add mergeMeshToBulkMesh.
- !5405 Bundle
apply_xmlpatch
tool. Same logic as patching withogs
executable.
Python & Jupyter
- OGSTools updated from 0.6.0 to 0.7.0, see Release notes
- !5338 Logs - normalize logs when OGS is called from Python.
- !5356 Added missing binaries to wheel, e.g.
xdmfdiff
andpvtu2vtu
. - !5399, !5387 Refactored dependency handling of notebooks for development and CI. Migrated to a
uv
-based workflow. Now requiresuv
forOGS_USE_PIP=ON
! - !5406 [Python|OGSMesh] Add required functionality and fix bug outputting every time step.
Testing
- !5156 [F-bar] Jupyter Notebook test of Cooks membrane and other tests.
- !5307 From DFN generation in PorePy to reactive transport modeling in OGS.
- !5319 Interactive McWhorter benchmark.
- !5370 GreatCell benchmark suite HYDRO_MECHANICS_WITH_LIE.
- !5373 GreatCell benchmark suite HM_PHASE_FIELD.
- !5389 GreatCell benchmark suite, Hydraulic fracturing, HM_PHASE_FIELD.
- !5390 Adds a tutorial for 1D reactive-transport model.
- !5404 [T] update and polish some CT and RT jupyter notebooks.
- !5417 Modifying B-bar test for GreatCell HM-LIE.
- !5420 Fix k-regime benchmark run in PhaseField process.
Bug fixes
- !5334 Fix a bug in pvtu2vtu tool.
- !5419 PETScVector: prevent setting or adding entries from an empty vector.
- !5423 Fix hydraulic residuum names LIE-HM/THM/LF.
Infrastructure
- !5350, !5354 Guix manifest definitions. Now you can create an apptainer development container with the current sources for archival (around 2.5 GB in size) and later re-compilation with
guix time-machine -C scripts/guix/channels.scm -- pack -f squashfs -m scripts/guix/manifest-dev.scm
. - !5361 Some minor infrastructure enhancements.
- !5375 TCLAP argument comment additions (auto galaxy wrap preparation).
- !5403 [CI] Reduced pipelines.
- !5430 Packages
ogs-serial
andogs-petsc
are now in official Guix starting from Guix commit 5d31f8f406751919004ee3ae1ec3c9fcf3c3ae16. This enables to run the latest ogs release (currently 6.5.5, this release follows shortly) on systems with Guix installed with e.g.guix shell ogs-petsc -- mpirun -np 4 ogs ...
. - !5433 Switch
OpenMP_RUNTIME_MSVC
toexperimental
(wasllvm
). The llvm-runtime is not redistributable so we switched to the integrated runtime of Visual Studio. - !5436 Unify logging and improve spdlogger initialization.
File I/O
- !5349 Pass initial time to HdfWriter.
Material Property Library (MPL)
- !5392 Enable optional inline parameters for MPL property SaturationWeightedThermalConductivity.
Core functionality
Fixes
- !5274 Fix possible segfault when linear solver fails.
- !5380 Address VTK-9.5 deprecation warnings.
- !5383 Fix two errors in IterationNumberBasedTimeStepping.
- !5384 Work around library loading issues and test shared lib loading.
- !5391 Small improvements in TimeStepAlgorithm.
- !5398 Fix rare bug in identify subdomain.
- !5401 Tell linker to keep pybind11_init_xxx symbol.
Documentation
- !5322 Debugging OpenGeoSys with VS Code.
- !5345 [web] Updated container docs.
- !5347 Renamed files in Documentation for Boundary Conditions and Parameters.
- !5360 Interactive project file matrix available at https://www.opengeosys.org/docs/featurematrix/bundle.
- !5360 Link to Feature matrix web application.
- !5413 User guide for parameters updated.
- !5422 Added a model / project hub website. Two new categories models and projects can be added to pages (benchmarks) as metadata and then those pages will show up on the corresponding project or model page. Current projects shown: Decovalex and Eurad. Current models shown: analytical, material, lab-, url-, field-scale models.
- !5437 [web] Show recent notebooks instead of featured processes at https://www.opengeosys.org/docs/benchmarks/.
Version info
- !5159 Bump vtk to 9.5.0.
- !5385 Quick fix: Pinned version of pyvista.
- !5408 Bump minimum Python version to 3.10.
- [!5427](https://gitlab.opengeosys.org...
6.5.5
Process' changes
New HMPhaseField process
- !4809 Adds a hydromechanical phase-field process to address typically the hydraulic fracture problem using the phase-field fracture method.
Deprecated processes removed
- !5329 Previously deprecated processes removed: SmallDeformationNonlocal, StokesFlow, TES, ThermoMechanicalPhasefield, and ThermalTwoPhaseFlowPrho.
Component transport process / reactive transport process with coupling of PHREEQC
- !5243 Set the position function in the assembler, so that the retardation factor can be position dependent.
HeatTransportBHE
- !5179 Improve weighting factor calculation used for Algebraic BC in the HEAT_TRANSPORT_BHE process.
Richard's mechanics process
- !5255 Bugfix; compute initial strain from displacement field, do not use strain integration point data.
- !5316 Add parallel assembly.
SmallDeformation
- !5220 Add parallel assembly.
ThermoHydroMechanics
- !5288 Add parallel assembly.
Numerics
- !5221 Reuse Jacobian once every n steps to accelerate non-linear solution.
- !5187 Multithreading for CG solver can be enabled by setting matrix type (LowerUpper).
- !5236 Time dependent deactivation in a domain bounded by a circle or a sphere.
- !5237 Analytic block in the numerical Jacobian for CentralDifferences.
- !5256 Improvements in ForwardDifferencesJacobian: eliminates one redundant local assembly and leverages the pre-computed analytical Jacobian block.
- !5318 Multipliers of IterationBasedTimestepping can be linearly interpolated with
<multiplier_interpolation_type>PiecewiseLinear</multiplier_interpolation_type>
- !5262 Initial implementation of PETSc version of flux corrected transport - at the moment only for one MPI process
- !4926 Introduce an iteration number based reduction of Newton-damping.
Tools
- !5224 Remove
tetgen
dependency. We do not bundletetgen
anymore. Please install it with your package manager or Conda. - !5276 A tool
mergeMeshToBulkMesh
merges one mesh into a bulk mesh, which can be used in simulations of excavation, backfilling, and successive geo-engineering operations.
Python & Jupyter
- !5216 Conda package includes MFront functionality, see also conda-forge/ogs-feedstock#14.
- !5222 Bump ogstools (used in benchmarks on the website) to 0.6.0.
- !5238 New module ogs.mpl for MPL properties. Basic structure and for now only Constant and Linear properties bound, but more are coming.
- !5304 PyVista 0.45, removes vtk-osmesa dependency and
xvfb-run
hacks
Testing
- !5204 Adds a performance test verifying the functionality of !5194 in our CI. This MR can serve as a blueprint for other similar (performance) tests in the future. The MR contains a documentation section in the dev guide, too.
Logging
- !5295 Introduces the command line option (--log-parallel). New default behaviour under MPI: Only rank 0 writes. With option: legacy behaviour.
- !5295 Overhaul of log outputs. New log lines, more systematic, less redundancy.
- !5295 Signal handling introduced: Terminate and interrupt signals are logged
Infrastructure
- !5323 [web] Multi-site search on opengeosys.org, Doxygen and ogstools.
Material Property Library (MPL)
- !5254 Add residual saturation in sigmoid function.
- !5246 Add possibility to use time and spatial position in Curve, Linear, Exponential and Function property.
- !5317 Add the possibility to use curves in Function property.
Bug fixes
- !5227 Avoid dead-lock in MPI when AssemblyException is thrown.
- !5325 Fix XDMF/HDF5 output on sub-meshes.
Documentation
- !5244 Add a documentation page, showing how to establish a OGS mesh based on a PETREL structural model.
- !5275 Liquid flow documentation.
Version info
6.5.4
In this release the LargeDeformation
process was extended to deal with nearly incompressible materials.
Several usability and speed improvements in the HeatTransportBHE
process were implemented.
And for the material properties a "catch all" material ids option <medium id="*">
was added, simplifying input in the project files.
In the LargeDeformation
process, the F-bar method for finite element (FE) analysis of large deformation of nearly incompressible materials is implemented to address volumetric locking phenomena that occur in standard FE analysis under these conditions.
The algorithms of the F-bar method are derived for the total Lagrangian formulation of finite strain and implemented in the LargeDeformation
process.
This update introduces a new optional input tag, f_bar
, to the LargeDeformation
process. The tag accepts two values: element_center_value
, which indicates that element_average
, which specifies that
Process' changes
- !5093 SmallDeformationNonlocal, StokesFlow, TES, ThermoMechanicalPhaseField, and TwoPhaseFlow-PRho processes were not extended for some time and are now marked as deprecated. They will be removed in the 6.5.5 release.
HeatTransportBHE
-
!5106 Add id-notation to
<borehole_heat_exchanger>
with the possibility to catch all BHE withid="*"
. -
!5121 Add optional mass lumping.
-
!5194 Add assembly optimization for soil part in linear cases with
<linear>
.
LargeDeformation
- !5045 F bar method for total Lagrangian formulation.
LIE
- !5144 Replacing the parameter medium properties of HM#LIE with MPL ones. A Python script,
convert_LIE_HM2MPL.py
, to convert the project files to the present syntax is added to the input data directory:Tests/Data/LIE/HydroMechanics
.
LiquidFlow process
- !5112 Gas flow calculation in LiquidFLow. For this purpose, an optional input tag,
equation_balance_type
was introduced, which allows user to choose the volume-based or the mass-based PDE for this process.
Richard's mechanics process
- !5120 Total initial stress input.
ThermoRichardsMechanics
- !5083 concludes a long series of developments making "extended" MFront material models usable with the TRM process: This MR finally adds a bunch of 0D and 1D test cases of a bentonite material behaviour implemented in GeneralMod and interfaced with OpenGeoSys via MFront. This is a joint work of BGETEC, CEA, TUBAF, Charles University, ČVUT and UFZ.
Numerics
- !5182 Fixed parallel execution for Eigen linear solvers.
Generic features
- !5150 Added
LeastSquareCG
solver andLeastSquareDIAGONAL
preconditioner from Eigen
Python & Jupyter
Testing
B-bar tests
Additional tests for the B-bar methods have been added to further evaluate their effectiveness:
- !5105 A Jupyter Notebook benchmark for M for evaluating the B-bar method with simple tests and some others.
- !5134 3D Cooks's Membrane test for M.
Code improvements
- !5132 Reduce some redundancy in LiquidFlow and Hydromechanics.
CMake
- !5146 [CMake] Split LIE to LIE_M and LIE_HM for optional compilation.
File I/O
- !5127 Improve reading binary files with memory mapped I/O. Add the possibility to read
curve
definitions andfixed_output_times
from binary files in the project directory.
Material Property Library (MPL)
- !5111 Improved error reporting and added a "catch all" material ids option
<medium id="*">
. - !5126 Generalised SaturationVanGenuchten to independent pressure and saturation exponents. When single (pressure) exponent is used the saturation exponent is set to 1/(1-m) keeping the old behaviour.
Documentation
- !5165 [web] Improvement of the document of the Theis' problem.
Version info
6.5.3
Breaking changes
- !5063 changes the handling of mesh file paths in the
prj
file: If such a path is a relative path with a directory separator (/
or\
), this path will be resolved relative to the mesh directory (-m
flag) or theprj
file if the former is not passed. Before, such relative paths were resolved relative to the process's working directory. MR !5063 resolved that inconsistency. - !5030 Change time incrementing algorithm to use Kahan summation. This hopefully avoids any 1e-16 time steps near fixed output and end times.
New processes
- !4481 adds the two-phase well-bore process.
Process' changes
- !5050 Removed K and M matrices from
assembleWithJacobian*
interface as these are not needed. - !5054 Generalize openMP parallel assembly (Newton scheme) to staggered processes.
HeatTransportBHE
- !5025 [BHE] Add Algebraic BC in the assemble of the HeatTransportBHE Process.
HydroMechanics
- !5054 Use openMP parallel assembly for monolithic and staggered schemes.
LIE
- !5078 Fix a memory leakage bug in LIE#HM when matrix is disabled for the flow process.
- !5081 B bar method for HM#LIE.
- !5084 B bar method for M#LIE.
Generic features
- !5088 Consistent high-precision output using max_digits10 especially for time and time increments.
Tools
- !5049 Generalised xyz interface to read any xyz raster file (was just complete rectangle images previously)
Data Explorer
- !5049 Generalised xyz interface to read any xyz raster file (was just complete rectangle images previously)
Python & Jupyter
- !5058 Refactored python bindings build structure and migrated Snakemake tests into pytests. Removed Snakemake dependency.
Testing
- !4757 Reenabling TH2M process in the CI for Windows. Still takes long time to compile.
Infrastructure
6.5.2
Breaking changes
-
!4919 Removes the
molar_flux
secondary variable in favour of flux output for all chemical species. -
!4971 THM and RM processes use current state for
$C_{\text elastic}$ computation and no longer the "null"-state. -
!4984 renames the cell averaged stress output from
stress_avg
tosigma_avg
to be consistent withsigma
andsigma_ip
outputs.
Process' changes
- !4982 Correct domain deactivation behaviour for multi-variable processes; Assembly is not run iff the element is deactivated for all variables.
- !4984 introduces generic cell averaged output for all processes using reflections for IP data I/O (ATM these are TRM, LD, SD, TH2M). This enables cell average output of all IP data (except material models' internal state data) for these processes.
TH2M
- !4980 finalizes at large the extraction of the constitutive relations into individual models, similar to how it is done in ThermoRichardsMechanics.
Component transport process / reactive transport process with coupling of Phreeqc
- !4919 Adds flux output
<c>Flux
for all chemical species<c>
.
SmallDeformation
Generic features
- !5009 Enables using Python and volumetric source terms as nodal source terms.
Testing
- !5003 [ci] Fixes for win jupyter ctests
Bug fixes
- !4919 Fixes the flux output computation in the ComponentTransport process. (The FEM assembly was/is correct.)
CMake
- !4978 New CMake-preset
sanitizer
. - !4990 Refactored Eigen / MKL / OpenMP setup: Introduced new CMake option
OGS_EIGEN_PARALLEL_BACKEND
which isOpenMP
by default. When usingOGS_USE_MKL=ON
then the backend isMKL
. Also updated Eigen to a recent master.
Infrastructure
- !4973 Removed ogs-container-maker dependency. OGS user container are now generated with GNU Guix. Due to improvements in dependency management (CPM) third-party developer container (e.g. C++ VSCode Devcontainer) are sufficient to use for OGS development.
- !4974 Removed ThirdParty-folder.
- !5011 Provide MKL container on https://www.opengeosys.org/releases/.
File I/O
- !4989, !4996
ogs
andpartmesh
create output directory when invoked with-o
-parameter. - !4997
ogs -m
-switch: fallback to reading gml from.prj
-file directory.
Material Property Library (MPL)
- !4992 Allow access of
deformation_gradient
,mechanical_strain
,stress
,total_strain
, andtotal_stress
in the exprtk expressions of the MPL Function property.
Documentation
Version info
- !4974 VTK 9.3.0
- !5014, !4992, https://gitlab.opengeosys.org/ogs/ogs/-/commit/5390a73f2475c3b55ae5eed95f5379790196cf15
gcc 11.4gcc 11.3
6.5.1
This release introduces a suite of enhancements and new features across various processes within OpenGeoSys.
Notably, the introduction of FCT numerical stabilization and optimization of the assembly process for HeatConduction, memory optimizations in LiquidFlow processes, and Newton implementation in the HeatTransportBHE implementation represent significant steps forward in improving the efficiency, stability, and flexibility of simulations.
Additionally, the ability to input total stress as initial conditions in HydroMechanics and ThermoRichardsMechanics offer users greater control of their models.
For the LIE mechanics and hydro-mechanics processes the strain and stress are now output as vectorial quantities, which should simplify post-processing.
For the future we also aim for more frequent releases (around every 3 months) and with this we discontinue the bugfix branches.
Process' changes
Component transport process / reactive transport process with coupling of Phreeqc
- !4825 adds new numerical stabilization type "FCT" and apply it to the ComponentTransport process.
- !4873 adds heat transport equation to enable non-isothermal component (HTC) process only in staggered way.
HeatConduction
- !4867 adds the options
<linear>
and<linear_solver_compute_only_upon_timestep_change>
that accelerate the assembly to the T process. These options are already present for the ComponentTransport process.
HeatTransportBHE
- !4956 add the Newton nonlinear iteration feature to HeatTransportBHE process.
HydroMechanics
- !4915 Enables to input total stress as the initial stress.
LargeDeformation
- !4861 Add volume ratio to output
LIE
- !4851 For HM process, improved output such as added output for nodal values of the secondary variables, and vectorized the output of the element-wise averaged multi-component secondary variables.
- !4904 For M process, vectorized the output of the multi-component secondary variables.
LiquidFlow process
- !4962 Use shape matrix cache in LiquidFlow process to reduce memory consumption of local assemblers
ThermoHydroMechanics
- !4929 Enables to input total stress as the initial stress.
ThermoRichardsMechanics
- !4908 Enables proper restart with material models such as
PorosityFromMassBalance
via the new setting<initialize_porosity_from_medium_property>
. - !4923 Enables to input total stress as the initial stress.
- !4942 Changes the flavour of TRM that uses the extended OGS-MFront interface such that this flavour uses the full stiffness matrix to compute solid compressibility instead of only the elastic tangent stiffness.
Constitutive relations (material models)
- !4887 Linear elastic transverse isotropy model. Besides, this MR adds unit tests for LinearElasticOrthotropic too.
Parameters
- !4882 Local coordinate system containing implicit bases.
Numerics
- !4795 Class StaggeredCoupling.
Generic features
- !4891 adds the possibility to read/write matrix-valued IP data (and extrapolated data thereof) for processes doing I/O via reflections (currently most notably TRM)
Python & Jupyter
- !4866 All
ruff
issues fixed or silenced.
Testing
- !4889 [cmake] Improvements to ctest (regex output checks with e.g.
PASS_REGULAR_EXPRESSION
).
Bug fixes
- !4863 [cmake] Fix MKL dependency installation. Fixes Windows binary downloads.
CMake
- !4814 Refactor netCDF library finding and removed everything Conan-related.
- !4839 Simplify PETSc finding.
pkg-config
is now required for finding PETSc via CMake.
Infrastructure
- !4858 [ci] Build container with netcdf (ogscm only, not in Guix container yet).
- !4864 [ci] Docker Upgrade Ubuntu base image to 23.04 and gcc to 12.
- !4898 Builds on cdash.opengeosys.org can be traced back to their GitLab CI job by an additional notes file which is added to the cdash build.
- !4945 [ci] Remove linux docker jobs: test coverage is already in the other jobs and moved docker jobs to native linux jobs.
- !4961 Added some helper scripts for release automation.
File I/O
- !4872 Enable long paths in executables on Windows.
Material Property Library (MPL)
- !4808 OGS distinguishes now between
liquid_phase_pressure
andgas_phase_pressure
. This is required to for certain MPL properties such that they can be used across different processes. HM, as a single-phase process, sets both pressures equal to allow for gas and liquid phase properties.
Version info
6.5.0
The release includes a new finite strain mechanics process, several run time performance optimizations, and new output options.
The LargeDeformation process for finite strain mechanical analysis was implemented.
It is set up in a Total Lagrangian formulation.
The process uses MFront/MGIS interface for the constitutive relations of the solid, which also takes care of the corresponding pull-back operations.
The implementation will be the basis for simulations of large deformation processes, such as salt creep, crushed salt compaction, bentonite swelling or soil mechanics problems.
Optimizations include:
- OpenMP assembly in TH2M/TRM/TRF, configurable
OGS_ASM_THREADS=<n>
.
Note that this might introduce race conditions, so better double-check simulation results when you use this feature. - CT linear case optimization with speedups of around 10 for certain linear setups.
Configurable via the<linear>
and<linear_solver_compute_only_upon_timestep_change>
prj file settings.
Note: these are expert options; OGS won't check if it's valid to use them, this is the sole responsibility of the user.
Output for the users and developers was extended.
Finer-grained control options for result output (subdomains, variables) were implemented on the user's side.
For developers possibility to output assembled local and global matrices is now available.
It is configurable via the OGS_LOCAL_MAT_OUT_PREFIX="<some prefix>"
, OGS_LOCAL_MAT_OUT_ELEMENTS="0 1 5 16 123"
and OGS_GLOBAL_MAT_OUT_PREFIX="some prefix>"
environment variables.
The local matrix output is available for all processes, and the global matrix output only for small deformation, TRF, TRM and TH2M at the moment.
For better tests the vtkdiff
was extended to compare integration point data.
This new feature should be used in newly added CTests.
Other notable changes include, local coupling scheme for staggered processes, and thermo-mechanical part of a freezing liquid was implemented in ThermoHydroMechanics process; hydraulic part to come soon.
Breaking changes
This section lists changes in OGS that might make OGS terminate due to missing or unused configuration or might change OGS behaviour.
- !4811 TRM/TRF vapour properties moved.
- !4800
<media>
used in two phase flow p-rho. - !4766
<dimension>
configuration removed in HM, LIE/HM, LIE/M, RM, TH2M, THM, TRM. - !4699
x_dot
renamed tox_prev
in all assembly routines.
For new processes developed in private branches this change might entail a silent change of meaning, i.e., the code still compiles, but produces nonsensical simulation results. - !4403 The small deformation process now computes
eps_prev
instead of storing it.The only problem appeared for the back-filling (subdomain deactivation) case where a different strain was stored. This is a not so simple issue to be dealt with in the future.
- !4557 If some variables are specified for output, only those will be output, i.e., users might miss some outputs compared to before this MR. Please check/adapt your prj files if necessary.
New processes
- !4821 Large deformations process.
Process' changes
ThermoRichardsFlow
- !4811 additional gas phase added in the project file for vapour properties. This also includes property name changes. Compatibility script: move_vapour_properties_to_gas_phase.py
ThermalTwoPhaseFlowPrho
- !4800 Use
<media>
in the two phase flow p-rho process reusing MPL implementations of constitutive relations.
Component transport process / reactive transport process with coupling of Phreeqc
- !4713 and !4747 add an option
<linear>
that speeds up the simulation of linear problems. - !4730 adds an option
<linear_solver_compute_only_upon_timestep_change>
that speeds up simulations of linear problems further.
HT
- !4613 enables use of lower dimensional fracture elements in HT process.
HydroMechanics
- !4766
<dimension>
keyword removed. Script to adapt all project files found recursively: remove_dimension_keyword.py - !4578 Improvement of the fixed stress splitting approach in the staggered scheme
Richard's mechanics process
- !4766
<dimension>
keyword removed. Script to adapt all project files found recursively: remove_dimension_keyword.py
SmallDeformation
- !4403 Compute eps_prev instead of storing it.
- !4643 Modified cam clay version with constant elasticity: clean-up, bug-fix and renaming (ModCamClay_semiExpl_constE.mfront).
- !4604 Modified cam clay version with pressure-dependent elasticity (original MCC model) added (ModCamClay_semiExpl.mfront).
- !4739 SmallDeformation uses media for solid density evaluation.
- !4763 Extract constitutive relations into graph-like structure.
- !4766
<dimension>
keyword removed. Script to adapt all project files found recursively: remove_dimension_keyword.py
ThermoHydroMechanics
- !4528 Extract constitutive relations update.
- !4723 "Correct history variable update for freezing. Testing 9% volumetric strain expansion.
- !4766
<dimension>
keyword removed. Script to adapt all project files found recursively: remove_dimension_keyword.py
ThermoRichardsMechanics
- !4811 additional gas phase added in the project file for vapour properties. This also includes property name changes. Compatibility script: move_vapour_properties_to_gas_phase.py
Constitutive relations (material models)
- Solids, multi-material internal states variable output and restart:
- !4794 Add deformation gradient, second Piola-Kirchoff stress tensor, and Green-Lagrange strain to MFront interface and the MPL.
- !4794 MFront uses gradients from latest iteration for the new behaviour data state from now on.
Generic features
- !4507 adds a simple way to access blocks of finite element degrees of freedom:
auto const [x1, x2, x3] = NumLib::localDOF<N1, NumLib::Vectorial<N2, 2>, N3>(x);
. - !4522 adds a generic algorithm computing numerical derivatives.
- !4546 adds the possibility to output local and global matrices for debugging purposes.
- [!4556](https://gitlab.opengeosys.org/ogs/ogs/-/merge_reques...
6.4.4
Highlights
Some notable additions in this release include the
output of residuum vectors on submeshes (now for the TRM and TH2M processes only),
restart for parallel simulations were made possible as well as CI coverage for the PETSc configuration was increased and the
infrastructure for Jupyter notebooks was extended.
There were also some substantial efforts to enhance the documentation especially for the project file, specific process configurations and tools.
Further CI improvements include the possibility to select subsets of test jobs via merge request labels to shorten feedback cycles and we added performance tracing of benchmarks via our CDash-platform.
Process' changes
LiquidFlow
-
!4203 Make process per default non-linear. One can enforce linear treatment in project file as follows:
<process> <!-- usual process specification --> <linear>true</linear> </process>
TH2M
- !4362 Added a Jupyter notebook version of the Bourgeat test case
- !4392 Function-type parameters can be used for MPL property and constituitive relation parameters. Fixes the "coordinates not set for spatial position"-error.
- !4485 Enabled output of extrapolated node wise intrinsic permeability.
PhaseField
- !4299 Added a variational phase-field hydraulic fracture model in toughness dominated regime (K-regime).
Component transport process / reactive transport process with coupling of Phreeqc
- !4451 Added flow rates output for all components.
- !4228 Use inclined elements in ComponentTransport.
ThermoHydroMechanics
- !4386 Implemented freezing terms for the energy equation.
ThermoRichardsMechanics and ThermoHydroMechanics
- !4363 Added a constitutive setting to the TRM process to make it possible to use either the existing mechanical material models or mechanical material models that use the new extended OGS-MFront interface.
- !4410 Kelvin Vectors can now be formed from matrices, allowing the use of arbitrarily rotated anisotropic thermal expansivities if read in as a parameter property.
Constitutive relations (material models)
- !4296 Extended the OGS-MFront interface beyond passing only stresses, strains and temperatures.
- !4304 All saturation dependent thermal conductivity models have been merged into one (
SaturationWeightedThermalConductivity
) and can be accessed by specifying the mean type:arithmetic_linear
,arithmetic_squareroot
and geometric. - !4378 IAPWS density and viscosity as well as Vogels viscosity model were added to MPL.
- !4391 Upgraded TFEL / MGIS to 4.0 branch.
Generic features
- !4393 Added support to assemble and output residuum vectors on submeshes for the TRM and TH2M processes.
Tools
- !4327 Added a tool writing integration point data from OGS output meshes to a new point cloud mesh whose nodes are the integration points of the input mesh.
- !4360 Fixed issue where elevation information wasn't added for [OUTFALLS]- and [STORAGE]-entities.
- !4452 Added a tool for converting any ascii raster formats OGS can read into *.asc-format.
- !4264 Added integration point data partitioning in partmesh.
- !4294 Added a new tool to convert pvtu-files to vtu-files: pvtu2vtu.
- !4352 Added partitioning and reading of non-IP field data.
- !4492 Extended
checkMesh
- andeditMaterialID
-tools to optionally output all existing MaterialIDs for a mesh (previously it was just displaying the range). - !4513 [partmesh] Renumbered the bulk node IDs of the bulk mesh.
Data Explorer
- !4430 Reader for XYZ raster files added.
Python & Jupyter
- !4285 Adds a simple wrapper around OGS CLI tools such that they can be easily used from Python. Available in the OGS wheels/via pip.
- !4300 Enables Python BCs and STs in the OGS Python wheels.
- !4502, !4512 Added support for markdown-based notebooks via jupytext.
Testing
- !4408 Refactored PyVista in notebooks testing logic: no more special treatment for headless systems. User is responsible for providing a window environment, e.g. via
xvfb-run
, which is shortly documented. Added documentation on how to shorten pipeline run times by modifying the corresponding files. Added pipeline variableCTEST_INCLUDE_REGEX
which corresponds to the-R
ctest argument. - !4421 [ci] New job include-what-you-use.
- !4437 Enabled large tests on PETSc configs in CI. Also added a CI variable
CTEST_ARGS
for temporarily selecting benchmarks in CI.
Bug fixes
- !4281 Fixed IP data access to Kelvin vector valued data. The error was introduced in !4222.
- !4302 Reimplement Robin-BCs which were incorrect for 2D and 3D setups.
- !4369 Fixed the restart feature of the TRM process, which was broken since !4316.
- !4397 Fixed PhaseField's BC for parallel simulations.
- !4453 Corrected initial residuum computations when start time is negative.
CMake
- !4306 Enabled MSVCs Multi-ToolTask scheduler for build parallelism and better multi-platform ccache setup.
- !4408 Test properties can now directly be set. Simplifies CMake logic a bit and is potentially more powerful.
- !4417 Don't include GKlibSystem.cmake (it defined
NDEBUG
on Debug configs!) from METIS and fixed some compile errors in asserts. - !4423 Moved VTK from CPM to external dependencies.
- !4473 fmt-library is now used as a regular library. Before it was used as a spdlog-bundled library.
- !4494, [!4497](https://gitlab.opengeosys...
6.4.3
See www.opengeosys.org/releases/6.4.3/ for binary downloads.
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.
-
Stabilization is the numerical approach to eliminate the spatial oscillations produced by the Galerkin finite element method for the advection diffusion transport equation. There are two stabilization schemes, isotropic diffusion and full upwinding, are available now in HT and ThermoHydroMechanics.
-
Python bindings were extended in two ways: OGS got python wheels and can be now 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.
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.
Tools
- !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](https://gitlab.opengeosys.org/ogs/ogs/-/merge_requests/4265 "[DE] Added resolution aware scaling for GUI elements"...
6.4.2
See www.opengeosys.org/releases/6.4.2/ for binary downloads.
Overview
Some of the highlights of this release are: the extension of the TH2M process to handle phase transitions, more processes can be run in parallel with PETSc and Taylor-Hood Elements, the new HDF5-based input/output routines, and the introduction of Jupyter Notebook based benchmarks (see an example).
Process' changes
- !3963 Enabled equation wise flexibility in the use of compensate_non_equilibrium_initial_residuum.
TH2M
- !3839 Extend Jacobian with Laplacian's derivatives.
- !3942 Thermal conductivity of the medium can now be defined in the input file.
- !4034 Phase transition was revised and some errors were fixed. Energy transport now includes diffusion processes, diffusion in the mass balance is now dependent on capillary pressure. Tests have been added, including the revised heatpipe with analytical solution.
Component transport process / reactive transport process with coupling of Phreeqc
- !3796 Extend the input of surface complexation sites in moles via the MaterialPropertyLib for HC-Phreeqc coupling.
- !3903 Enable to use cation exchange and surface complexation models simultaneously for HC-Phreeqc coupling.
- !3918 Add a "fixing pe" option.
- !3931 Support the use of PETSc nonlinear solver.
- !4004 Add Newton's method based linearization scheme for solving non-conservative formulation.
- !4006 Output total mass flux and residual mass flux by node-wise.
Thermo-Richards-Mechanics
- !3980 Added liquid density and viscosity output.
- !3547
Implementation of the vapour diffusion and the latent heat terms of TRM.
HeatConduction
- !3972 Assembly in inclined elements.
Hydro-Mechanics
- !3848 Use permeability strain derivative in the jacobian for HM (for embedded fracture permeability model).
Heat Transport BHE
- !4007 Changed python based Server Communication process (e.g. with SimulationX) from postTimestep to preTimestep.
ThermalTwoPhaseFlowPP
Material models
- !3929 Add the Verma-Pruess porosity-permeability model.
- !3941 Modify the "EffectiveThermalConductivityPorosityMixing" property to allow for two- and three phase media.
- !3945 New property IdealGasLawBinaryMixture.
- !3923
[MPL/RelPermNonWettingPhaseVanGenuchtenMualem] replace the Newton-Raphson method with the Regula–Falsi Method. - !3992 Enabled fracture normal rotation with the EmbeddedFracturePermeability model.
Numerics
- !3871 Integration order 4 implemented for Tetrahedrals. For an overview over OGS's integration methods see also !4021.
- !3907 Added new Eigen iterative solvers: BiCGSTABL, IDRS and IDRSTABL.
- !3882 Adds support for Taylor-Hood elements to Python boundary conditions and Python source terms.
- !3963 Enabled equation wise flexibility in the use of compensate_non_equilibrium_initial_residuum.
- !3991 Enable to use 13 node pyramid and 15 node prism.
Parallel computing
- !3805 [partmesh] Removed the option of
-q
or--lh_elements
for the implementation of parallel computing with Taylor Hood elements. - !3866 Parallel computing with Taylor-Hood elements: implementation and tests with HydroMechanics process.
- !3920 Enable parallel computing in TRM with Taylor-Hood elements.
- !3919
Enable node search function work under MPI. - !4047 Enable parallel computing in TH2M with Taylor-Hood elements.
File I/O
- !3857 VTK mesh converter: safely convert all integer types.
- !3915 HDF output option: Fast file I/O and data integrity
- !4033 Rename HydraulicFlow and HeatFlux to VolumetricFlowRate (for volumetric formulations (mass balance divided by density) / MassFlowRate and HeatFlowRate.
Utility
- !3863 Added the conversion of quadratic quadrilateral elements in GMSH2OGS
GeoLib
- !3935 Change TemplateVec::getVector() return value from
vector<T*> const*
tovector<T*> const&
Project file syntax
- !3962 Apply patches marked with
after_includes="true"
-attribute after<include>
s are evaluatetd, docs.
ogs
- !3976 Added parameter
-m
for specifying a mesh input directory.
Testing
- !3930 Notebooks are now tested as part of
ctest
. See docs for more info. - !3901 [TRM] Added a benchmark of point heat source for TRM.
- !4001 Added a simple MKL benchmark.
- !4005 Run TaskCDECOVALEX2023 with parallel computing.
- !4021 Adds extensive unit tests for OGS's quadrature schemes. Now for each supported integration method and integration on each mesh element type we test, which polynomial order we can integrate exactly.
- !4012
Added parallel computing benchmarks for ThermoRichardsFlow.
Bug fixes
- !3932 Fixed several memory leaks and access bugs.
- !3956 THM: Fix temperature equation for case w/o thermal osmosis.
- !3978 Fix access of transport porosity as medium property in TRM.
- !3919
Enable node search function work under MPI. - !4021 Fixes pyramid integration for integration order 1. Note, the location of the single integration point was changed! If you have any restart data with integration order 1, the respective location will silently change. However, that seems acceptable since before the pyramid order 1 integration was just wrong.
- !4051 Changes the input storage order of tensorial properties of MPL. Now it is row major, before it was column major. The new row major storage order is the storage order that naturally arises in prj files. The old behavior was not a bug per se, but could very likely lead to subtle errors with asymmetric tensorial properties.
- !4055 Fixing a bug in Process::setInitialConditions under PETSc.