Skip to content

Releases: ufz/ogs

6.5.1

28 Mar 10:17
6.5.1
1433493
Compare
Choose a tag to compare

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

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 and gas_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

  • !4849 Minimum PETSc version 3.18.6
  • !4864 Docker Ubuntu base image is now 23.04 which has gcc 12

6.5.0

30 Nov 12:43
6.5.0
b0020fb
Compare
Choose a tag to compare

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 to x_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

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

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

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...
Read more

6.4.4

10 Mar 15:28
ed65ad7
Compare
Choose a tag to compare

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- and editMaterialID-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 variable CTEST_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...
Read more

6.4.3

19 Sep 12:14
fcbcaa9
Compare
Choose a tag to compare

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

Read more

6.4.2

01 Apr 10:51
6.4.2
Compare
Choose a tag to compare

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

  • !3924, !4014 Employ MPL in ThermalTwoPhaseFlowWithPP process.

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* to vector<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.

CMake

  • !3910 Updated Conan CMake integration.
  • !3940 Select lld over GNU gold over regular linker. Speeds up link times.
  • !3950, !4030 Added option OGS_INSTALL_PETSC OGS_INSTALL_EXTERNAL_DEPENDENCIES to install (locally build) PETSc or MFront / TFEL into CMAKE_INSTALL_PREFIX.
  • !3951 Removed `std::files...
Read more

6.4.1

11 Oct 13:43
6.4.1
80f50c4
Compare
Choose a tag to compare

See www.opengeosys.org/releases/6.4.1/ for binary downloads.

Overview

This release features the implementation of the Thermo-Hydro-Hydro-Mechanical (TH2M) fully coupled process. The process is intended for modeling two-component two-phase flow in deformable porous media under non-isothermal conditions. Testing is in progress and development continues, so handle with care or wait a little longer until it got more refined.

Another new process, the StokesFlow process, is mainly used for simulating the low-Reynolds-number incompressible flow in fractures. The Stokes equations are solved using the standard Taylor-Hood scheme. Additionally including the Darcy term in the momentum balance equations, the StokesFlow process module is capable of modeling the fluid flow in fractured porous media.

The local assembly on inclined elements, which can be used to simulate the fluid low in fracture, are implemented. As a first application, LiquidFlow is enabled to use such local assembly.

Also work continued on new material models, e.g. the Günther Salzer model for transient and stationary rock salt creep, an improved HDF5-based output file handling which allows for parallel postprocessing as well as the introduction of a first iteration of a Jupyter Notebook based user workflow. Stay tuned for more on interactive computing in future releases.

New processes

TH2M

A thermal two-phase flow in deformable solid media process.

  • !3588 Added an infrastructure for the TH2M Process that handles different models of phase transitions.
  • !3550 Monolithic scheme implementation using central differences Jacobian.
  • !3656 Collect all constitutive variables updates in single function.
  • !3684 HM flow-fully-saturated tests; liquid and gas formulations.
  • !3759 Restart; integration point data I/O.
  • !3763 Extract constitutive variables.
  • !3762 Excavation. Enable domain deactivation.
  • !3777 Switch to constant solid volume fraction
  • !3767 Implement partial analytical Jacobian, working for saturated media.
  • !3802 Gas and liquid phase density output directly from ip_data array.

Stokes flow

  • !3617 Monolithic scheme implementation.
  • !3658 Documentation
  • !3668 Extended to Stokes-Brinkman variant.

Process' changes

  • !3583 THM and TRM process need a thermal conductivity property on the medium level
  • !3561 Excavation support for coupled mechanics processes and Dirichlet boundary conditions on the excavated surfaces were added.
  • !3580 [THM] Replaced total thermal strain with incremental thermal strain
  • !3742 [THM] Adding integration point output for stress and strain and a restart test.
    !3706 Separate createLocalAssemblers respectively for BC/Source term and system of equations.

PhaseField

ThermoRichardsFlow

Component transport process / reactive transport process with coupling of Phreeqc

  • !3695 Enabled to input the amount of ion exchangers in subdomains via the MaterialPropertyLib
  • !3648 Added capability to model ion exchange reactions.
  • !3563 Added optional functionality for chemically induced porosity change.
  • !3567 Added optional functionality for irreversible equilibrium reactions to the ChemistryLib.
  • !3721 Provided a simple means of considering temperature effect on the diffusive transport process.
  • !3744 Allowed chemical calculations by means of the look-up table approach.
  • !3781 Solved the reaction equation in the reaction stage instead of doing extrapolation from integration points onto mesh nodes.
  • !3810 Incorporate the effect of change of storage capacity.

HeatTransportBHE

  • !3793 Add server communication feature after each time step

HydroMechanics

  • !3607 Simulation on a vertical slice of a 3D domain.

LIE

  • !3672 Use the existing class to compute the rotation matrix in LIE, which also corrects the orientation of the displacement jump.
  • !3676 Corrected the velocity and its orientation in the fracture.
  • !3834 Corrected matrix sizes in velocity computation.

LiquidFlow process

  • !3610 Use specific body force instead of darcy_gravity. Users LiquidFlow project files has to be adapted!
  • !3623 Use body force vector in the local assembler.
  • !3632 Add local assembly in inclined elements for simulating flow in fracture.

Richard's component transport process

  • !3606 !3614 Employ MPL in Richard's component transport process.

Richard's mechanics process

  • !3574 Extend integration point data output to solid material state internal variables used by e.g. MFront. This makes correct restart possible.
  • !3690 Local Newton-Raphson: add optional scaling for convergence tests, which is used in the computation of micro-porosity.

SmallDeformation

  • !3683 Use the element wise reference temperature.

ThermoMechanics

  • 3738 Fixed integration point (IP) data IO for restart computation.

ThermoRichardsMechanics and ThermoHydroMechanics

  • !3583 THM and TRM process need a thermal conductivity property on the medium level
  • !3758 THM/TRM; Add heat flux output. Corrected HydraulicFlow.
  • !3611 TRM; Include the thermal strain into total mechanical strain.
  • !3714 Replaced the hard coded solid density model in THM with the MPL property. With changes, the input parameter of reference_temperature is removed.
  • !3718
    Enabled integration point data I/O in THM

Material models

  • !3572 IdealGasLaw now uses molar mass from VariableArray rather than from another MPL-Property.
  • !3579 New saturation-capillary pressure relation, SaturationExponential, mainly for testing and prototyping purposes.
  • !3546 Implementing medium level property to mix thermal conductivities from phases.
  • !3599 Added orthotropic embedded fracture permeability model...
Read more

6.4.0

01 Apr 14:14
6.4.0
5a6913e
Compare
Choose a tag to compare

See www.opengeosys.org/releases/6.4.0/ for binary downloads.

The current release forms the basis for the upcoming TH2M process and further extension of the newly implemented non-isothermal Richards mechanics.
The highlights of this release are collected in the overview with details below.

Overview

The reactive transport process and its Phreeqc interface were enhanced: extended the porosity interface and provide two ways of calculating solid/liquid ratio.
Many new material models were implemented including the Clausius-Clapeyron vapor pressure, the Somerton's thermal conductivity, the FEBEX and PMQ type vapour diffusion, a water vapour density property, and a linear latent heat of water property.
A new process – the non-isothermal Richards mechanics – was implemented and extends our ability for complex thermo-hydro-mechanical interaction simulations further.
The simpler Richards mechanics process was enhanced by a double structure porosity model, which has been used for simulations with Bentonite. And finally, modelling of the excavations got a fine-grained time control over the excavation progress.

The development and continuous integration environment was enhanced with automated spell-checking of code and documentation and a collection of code coverage metrics for the merge requests. Code has be become more consistent in formatting by using the clang-format and cmake-format tools. Most of the third-party libraries, which are required for certain OGS configurations, are now managed by a more integrated approach using CPM – the CMake Package Manager – instead of git submodules and Conan packages. We may phase out Conan for package management in the future but at the moment there are still Conan packages in use, most notably Qt and PETSc.

We implemented a release branch with bug fixes workflow, see #3093 and the Discourse announcement.

Features

  • !3549 Adapted license wording to fully conform to BSD 3-clause license.

New processes

  • !3166 Non-isothermal Richards mechanics (monolithic scheme).

Process' changes

Component transport process / reactive transport process with coupling of Phreeqc

  • !3326 Hide chemical solver interface inside the ComponentTransportProcess.
  • !3358 Utilize MPL for the setup of chemical system.
  • !3362 Update porosity accessing interface in support of incremental model type in ComponentTransportProcess.
  • !3467 Replaced molecular diffusion with pore diffusion in ComponentTransportProcess.
  • !3364 Rename reactant amount as molality.
  • !3372 !3490 !3507 Set solid/liquid ratio according to solid volume fraction, porosity and fluid density.

Common process' changes

  • !3325 Include swelling stress into total strain. Fixing effective stress usage.
  • !3355 Improve generic interface for setting initial conditions.
  • !3538 Time dependent excavation. Extending time intervals to time curves.

Hydro mechanical processes

  • !3405 !3441 Add double structure model to RichardsMechanics process using micro-saturation model and compatible with swelling.
  • !3429 Use MPL in ThermoMechanics.
  • !3459 Changed the strain and stress output in HydroMechanics.
  • !3477 !3503 Fix a bug in RichardsMechanics where the initial stress was ignored when using central differences Jacobian.
  • !3498 Permeability, porosity, storage, and transport porosity are now medium properties in RichardsMechanics.
  • !3114 Permeability, storage, Biot coefficient, and porosity are now medium properties in ThermoHydroMechanics, HydroMechanics and RichardsFlow.

Boundary condition

  • !3531 Separate time dependent Dirichlet boundary conditions and subdomain deactivation boundary conditions.

Numerics

  • !3422 Improving numerical stability in RM and TRM by using secant derivative of dS_L_dp_cap in local assembler.
  • !3431 Local Newton-Raphson methods supports increment tolerance additionally to the residuum tolerance now. Previously used error_tolerance tag is deprecated.
  • !3468 Update PETSc SNES solver and add interface for constraint variables.

Parameter

  • !3342 New parameter type "RandomFieldMeshElementParameter".

Time stepping

  • !3411 Fixed a bug in IterationNumberBasedTimeStepping.
  • !3416 Fixed a bug that skips output after a rejected time step followed by successful time step.

Material models

  • !3316 A vapour pressure model 'Clausius-Clapeyron'.
  • !3356 'Modified Cam clay' model for cohesion-less soil materials.
  • !3423 Split the relative permeability property by phase.
  • !3439 Gas pressure permeability model.
  • !3449 Added a function of formKelvinVectorFromThermalExpansivity.
  • !3450 Somerton's thermal conductivity model for soil.
  • !3498 PermeabilityOrthotropicPowerLaw, PorosityFromMassBalance and TransportPorosityFromMassBalance are now defined on the medium level.
  • !3491 Added vapour diffusion type and the FEBEX type vapour diffusion property.
  • !3527 A vapour diffusion property of VapourDiffusionPMQ .
  • !3489 A water vapour density property.
  • !3519 A linear latent heat of water property.
  • !3542 Add a notion of fluid phase to MPL allowing HM process to use Gas or AqueousLiquid for fluid phase.

Bug fixes

  • !3361 !3400 CMake fixes when using the MKL library.
  • !3397 Skip secondary variables evaluation if the nonlinear-solver failed, e.g. for MFront material model.

File I/O

  • !3383 Add iteration number output option to file names.
  • !3307 New HDF5 writer based on collective MPI IO
  • !3371 Node partitioned mesh reader handles all available element types.
  • !3532 Remove unused XmlNumInterface.
  • !3533 Sort and cleanup XML interfaces.

Code base changes

  • !3502 Using std::optional through all of the code base replacing boost::optional.
  • !3517 Using std::any replacing the boost::any.

Replacing the old implementations on small vectors and matrices with Eigen equivalents:

  • !3354 Change signatures of compute{2,3}DRotationMatrixToX
  • !3319 !3320 !3346 [GeoLib] Substitute Vector3 by Eigen
  • !3345 [GL] Change interface of computeRotationMatrixToXY.
  • !3359 Final removal of MaL::DenseMatrix and MaL::Vector3
  • !3512...
Read more

6.3.3

18 Dec 20:27
Compare
Choose a tag to compare

Overview

This release contains a lot of improvements in all processes and also new material properties. Mostly bug fixes and documentation and procedures improvements. Stay tuned for the next major release 6.4.0 featuring new processes implementations.

Features

  • You can <include file="../path/to/file.xml"> other XML files into a .prj-file. !3081

Process' changes

  • Reactive transport process:
    • allow to assign chemical formula alternative to a component when defining water composition. !3122
    • output equilibrium and kinetic reactants (immobile phase) in amount. !3138, !3141
  • Heat Transport BHE process: allow to specify a flow and temperature control condition with the BHE inflow rate and temperature values both following the corresponding curves. !3125
  • ThermoHydroMechanics:
    • The storage is now derived from the fluid density and the solid bulk modulus. !3159
    • Fix bug in temperature equation for non-zero velocity. !3193
  • HydroMechanics: Allow linear shape functions for displacement. !3334
  • Use MPL properties in HeatConduction process. !3062
  • Fix bug in deactivation of subdomains !3065
  • Exterior forces output in LiquidFlow and HeatConduction. !3068
  • Allow thermal expansion to be anisotropic in ThermoHydroMechanics process. !3107
  • Improve generic interface for updating medium property variables. !3262
  • Improve generic interface for computing secondary variables. !3227
  • Component transport process: output flow velocity averaged over integration points. !3254

Boundary condition and source terms

  • Added a special Dirichlet boundary condition called "SolutionDependentDirichlet". The value assigned for the boundary condition is dependent on the process solution of last time step. !3085, !3123
  • Cleanup of source term implementations (use volumetric source terms for line source terms). !3233

Numerics

  • Changed the way to pass dot x for staggered scheme. !3082
  • Add dotx to postNonLinearSolver. !3164
  • The extrapolators now accept an empty integration point values vector, in which case these are ignored. For now relevant only for LIE/SD process. !3117
  • LIE; Update Heaviside function to [-1/2,1/2] range. !3140

Parameter

  • The "Function" type parameter becomes independent from a domain specification, i.e. it is not any longer possible and necessary to specify a domain via a mesh tag !3054
  • Extend the "Function" type parameter to handle time in the expressions introducing the t variable, additionally to the currently available x, y, z. !3054
  • Pass curves to the "Function" parameter, such that they can be used in expressions like curveA(sin(t)). !3058
  • Increased the tolerance for |A|=1 test in coordinate system. !3203

Time stepping

  • Fixed bugs in the fixed time output. !3026
  • Removed the fixed output time data from time stepper classes. !3080
  • Allow time stepping continue after nonlinear fails in the staggered coupling loop. !3106

Material models

  • New material models:
    • strain dependent permeability !3236
    • relative permeability model 'RelativePermeabilityUdell'. !3290
    • saturation dependent thermal conductivity. !3298
    • permeability model 'Kozeny-Carman Model'. !3264
  • Linear, saturation dependent swelling stress model. !3096
  • Pass variables from previous time step to MPL Property::value() calls where increments are required. All *rate variables were removed in
    favor of the increments. !3102
  • Use 2D coordinate system for LinearElasticOrthotropic solid material. A bugfix, now allowing 2D anisotropy and solid material orthotropy to be used simultaneously. !3165
  • Unused MPL properties are shown as warnings after successful run in debug mode. !3197
  • Error message now informs user of missing properties on the medium scale. !3337
  • Bugfix of a 2D case in MFront's implementation of Mohr-Coulomb-Abbo-Sloan anisotropic model. !3260
  • Update interface of the solid material models now accepting MPL Variables. !3261

File I/O

  • New optional output format XDMF:
    • light data is written into .xdmf file and heavy data into .h5 file. !3184
    • reduced number of iNodes for HPC applications and removed redundancies in file output. !3246

Visualization

  • Refactored insitu-functionality for VTK 9 / ParaView 5.8. The mpi container generated by the CI job now contains this functionality. !3092
  • partmesh tool now exports "vtkGhostType" array indicating duplicate cells. !3111
  • Fixed ghost element bug #3035. !3299

Documentation and webpages

  • Update the Heat_Transport_BHE PipeNetwork Tutorial to TESPy version 0.3.x API. !3070
  • Three-part video tutorial available on YouTube. !3278
  • New benchmark based the Liakopoulos experiment for RichardsMechanics. !3175
  • New test of heat transport in liquid flow with a constant velocity, HeatTransportInStationaryFlow. !3194, !3328
  • Fixed a formula display in "BGRa creep model". !3329
  • Switched from Pandoc to GoldMark Markdown parser. !3076
  • Added troubleshooting web page for runtime issues. !3129
  • Web site usage tracking with Plausible, No personal data is tracked. Fully GDPR-compliant. !3168
  • Added web pages on how to get support and fill a bug report. Also enabled GitLabs Service Desk feature. !3270

Tests

  • CTests now have labels based on their subdir in ProcessLib. !3079
  • LARGE benchmarks are determined by their RUNTIME given in AddTest()/OgsTest(). Current threshold: 60 s. !3079
  • Added DISABLED-paramter to AddTest()/`OgsTest(). !3079
  • Run PETSc LARGE benchmarks in CI. !3079
  • Add tests for mesh element quality criteria, fixing bug in AngleSkew criterion. !3279
  • Updated to MathJax 3 for web formulas. !3300
  • Better ctest dependencies and gui utils tests. !3323
  • Changed the output name in square_5500x5500_staggered_scheme_adaptive_dt.prj. !3331

New tools

  • Support for processing large meshes on envinf1. !3099
  • Raster2PointCloud: Converts raster data into point clouds with an intensity-based density of randomised points per pixel for visualisation in ParaView/Unity. !3077
  • Conversion of linear to quadratic mesh now supports Quad4 to Quad9 conversion. !3090
  • Raster2Mesh: Converts an ASCII raster file into 2D mesh. Pixel values can be interpreted as elevation of mesh nodes or as scalar values for mesh elements. !3109
  • AssignRasterDataToMesh: Adds raster information as a scalar array to an existing 2D mesh. !3174
  • ExtractMaterials: Splits a mesh with n material groups into n meshes, each containing only the elements of the same material. !3116
  • partmesh: Added optional -x-argument to specify metis input mesh. !3171
  • IntegrateBoreholesIntoMesh: Integrates boreholes/BHEs as line elements into pre-existing mesh. !3188
  • VerticalSliceExtraction: Constructs a vertical 2D slice out of a collection of horizontal 2D layers. !3273
  • AddElementQuality: Adds evaluation of element quality criterion as data array to the mesh. !3283

CI & Infrastructure

  • cppcheck-report. !3053.
  • Package DataExplorer into container. !3105
  • Unified and local (in the build-dir) Python environment with Poetry. !3133
  • Python formatting check with black. !3158 and #3044
  • Install dependencies for redistributable packages. !3226
  • Publish to Docker container for serial configuration. !3271

CMake

  • Reduced CMake runtime by 2-3 s. !3084
  • Updated submodule MGIS for proper tfel finding. !3127
  • Added option OGS_USE_XDMF (defaults to OFF) for enabling Xdmf output. !3295
  • Use generator expressions for target_link_libraries(). !3297
  • Move global preprocessor definitions to targets. !3330

Version info

  • Pandoc requirement for web site removed! !3076
  • PETSc 3.11.2. !3094
  • Update exprtk submodule to the most recent master commit (d312ba9
    ) dated 1 Jan. 2020. !3112
  • Apple Clang (Xcode) 11.0 required. !3115
  • New (optional) dependency: HDF5 1.10.5. (!3246, !3295)
  • New (optional) dependency: Libxml2 2.9.10. (!3246, !3295)

6.3.2

16 Jul 15:21
fd8af37
Compare
Choose a tag to compare

Overview

We have migrated to GitLab (issue 2947 on GitHub)! See GitLab migration guide.

The source code license was slightly modified, PR 2977 on GitHub!

Features

Process' changes

  • Reactive transport process: perform chemical calculation on the integration points !3017, !3018, !3019
  • HeatConduction; Add Newton assembly and mass lumping. Results of the mass-lumping are discussed on the benchmarks web page. !3045

Numerics

  • Implementation of primary variable constraint Dirichlet-type boundary condition !3014
  • Add the PETSc-SNES non-linear solver to possible list of solvers. This is still experimental feature. !3049

New tools

  • Rename AddTopLayer to AddLayer (tool can also add bottom layer) !3015

Infrastructure

Version info

  • tfel-3.3.0

6.3.1

19 Jun 12:33
dcfa23e
Compare
Choose a tag to compare

Overview

This is the last release before the announced license change (see #2973 pull request), and we are moving to GitLab! GitHub has served us well in the past years but we would like to employ the more powerful feature set of GitLab. See the announcement for more details.

Features

Process' changes

  • LiquidFlow move porosity/storage from MPL solid phase to medium scale. #2872
  • Reactive transport process: enrich Phreeqc interface using direct memory access approach for equilibrium-controlled reactions. #2883
  • Rename Groundwater flow to SteadyStateDiffusion. #2860
  • ThermoHydroMechanics now accepts linear shape functions for displacement. #2885
  • Output intgration point data in RichardsMechanics process for proper restart option. #2911
  • RichardsMechanics now uses the alternative mass balance formulation. #2914, #2921
  • Computation of all secondary variables for output and restart in RichardsMechanics process is now consistent with the latest solution. #2936
  • RichardsMechanics now relies on the solid's bulk modulus and Biot coefficient to compute grain compressibility. #2955

Numerics

  • Add bulk element mappings for triangles. #2901
  • Add mapping from points of a pyramid face to points in the pyramid element. #2913
  • Remove unused time discretization schemes. Only backward Euler is being used now. This simplifies certain upcoming refactorings. #2908

Input and output

  • Fixed bug of fixed time output not being written in case of repeated time step. #3000

Material models

  • New MPL property:

    • CurveProperty. #2857
    • van Genuchten capillary pressure model. #2919
    • Regularized van Genuchten capillary pressure model. #2959
    • PermeabilityMohrCoulombFailureIndexModel. #2989
  • Added back names of properties for better error messages. #2958

  • Store properties' definition scale for each property. #2958

  • Improve error handling in MPL when accessing a property of wrong type. #2941

  • Add computation of bulk modulus for MFront solid material models. #2955

  • Add solid pressure. Used by RichardsMechanics for solid density update. #2999

  • Generalize exponential property, which now has an additive offset. #3008

File I/O

  • Write PVD files for each subdomain output. #2949.

Testing and documentation

  • Refactored FileTools.cpp to use std::filesystem. #2918
  • Added documentation on how to use windows subsystem for linux (WSL). #2946
  • Test definitions in the project files now support regular expressions. #2945

New tools

  • Tool to convert PVTU-meshes into regular, non-partishioned meshes and remove ghost information. #2876
  • Add prism element type to structured mesh generator tool. #2903
  • Create regular mesh consisting of pyramid elements. #2909
  • Correct reordering for pyramid elements in NodeReorder tool. #2937

Data Explorer

  • Adding an array to a 2D mesh based on a raster file is now possible. #2984

Infrastructure

  • Serial container image is built with Python enabled. #2765
  • Added CMake-function ogs_add_library() as a drop-in replacement for the add_library()-function. #2881
  • Bumped minimum compiler and use std::filesystem for temporary file creation. #2827
  • Replace logog logger with a modern and type safe spdlog logger. It also includes the formatting library fmt, which is a great alternative to the iostreams. #2875, #2873, #2891, #2882
  • Add GMRES restart to linear solver options. #2910
  • More flexible algorithm to specify the file names of the output in the project file. #2927
  • Now x_dot and dt are being passed to the computeSecondaryVariables() function allowing rate dependent secondary variable evaluation. #2935
  • The order of postTimeStep() and computeSecondaryVariables() has been changed, s.t. all quantities computed in the secondary variables computation are available before the post time-step call. #2936
  • Added GitLab CI config. #2968

CMake options changes

  • Removed option OGS_USE_PCH, added option OGS_USE_UNITY_BUILDS to speed up compilation by using Unity builds. #2906

Version info

New compiler minima (#2827):

  • gcc: 9.0, see also #3006
  • clang: 9
  • msvc: 2019