Skip to content


Choose a tag to compare
@endJunction endJunction released this 13 Apr 23:10
· 18865 commits to master since this release

Release notes

Implementation of several time integration methods and non-linear solver schemes is the major advance in this release. We have chosen to implement a first order implicit quasi-linear system solver for the equations in the form of $M\dot{x} + Kx + b = 0$, where M, K, and b depend on t and x.

The explicit and the implicit Euler, the Crank-Nicholson, and the BDF (second to sixth order) time integration methods are provided. For the non-linear systems, the Picard and Newton methods are available. See implementation details in the doxygen documentation.

Overall stability of the code was improved with recent usage of clang's address and undefined behaviour sanitizers.


  • Added an ODE solver library that can solve transient and nonlinear problems
  • Move up common Process parts from particular GroundwaterFlow process
    implementation. #951, #982
  • Separate Dirichlet boundary condition class implementation. #963
  • Split process output and post timestep. #998
  • Added pre- and postTimestep and -Iteration hooks to processes. #1094, #1100, #1101
  • Added a new configuration tree parser
    • Checks configuration parameters more strictly, automatically prints error/warning messages.
    • Requires Boost >= 1.56 because of boost::optional with move semantics.
    • Command line argument --config-warnings-nonfatal that keeps OGS from terminating on warnings during
      configuration file parsing (errors still makes it terminate).
  • Improved axis aligned bounding box:
    • Is now a from the right half-open interval.
    • Removed template from class declaration.
  • Improved MeshLib: Class MeshElementGrid implements a grid data structure supporting search operations.
  • Added cmake option OGS_EIGEN_DYNAMIC_SHAPE_MATRICES that makes OGS use dynamically.
    allocated shape matrices.
  • Added several cmake options for selecting which element types, dimensions and
    orders to be built. Selecting only few element types speeds up compilation
    significantly. #1092
  • Added a command line argument of -l for OGS cli and testrunner to specify verbosity of logging. #1056
  • Added possibility to specify after which timesteps there shiuld be output.
  • Added possibility to specify timesteps of different size for use with
    transient processes.

DataExplorer and utilities

  • Added command line tool for creating layered meshes from raster files
  • Made OGSFileConverter as a separate library
  • Add a new functionality to the raster file to structured grid conversion, which can now convert pixel values in user-defined scalar arrays
  • Improved DataExplorer, which now enables the possibility to display all scalar arrays in mesh information window.
  • Added generation of structured meshes to DataExplorer
  • Restructured mesh creation access in DataExplorer
  • Added a new functionality to add mesh layers to existing meshes in DataExplorer
  • Reworked tools:
    • CreateBoundaryConditionsAlongPolyline
    • AddTopLayer
    • ResetPropertyInPolygonalRegion
    • removeMeshElements




  • Fix bugs in GeoLib:
    • lineSegmentIntersects.
    • Polygon::splitPolygonAtIntersection.
    • Grid.
  • GeoMapper: Refactoring few methods, c++11. #977
  • Rework FileIO::GMSH interface
    • Process geometries located other than in the x-y-plane.
    • Respect the scaling factor for Stations.
    • Fix memory leaks.
    • Added/modified tests for GML-, GMS- and TetGen-files.