OGSTools 0.6.0 Release Notes (upcoming release)#

OGS version: 6.5.4 Python: 3.10 - 3.13

API breaking changes#

  • meshseries.probe now squeezes the returned array: it seems more intuitive to return a 1D array if no list of points is provided (just a single tuple)

  • meshseries.plot_time_slice has a new user interface - see the update example or the API reference. The interpolate argument was removed, as it tempts you to be used as a default (as it produces a nice image), but in doing so, can easily lead to wrong conclusions as the interpolated image might differ significantly from the raw data.

  • generalized meshseries.animate: it is now a free standing function (plot.animate) and can take any plotting function - see the updated example or the API reference

Features#

  • MeshSeries can now be initialized with from_data(meshes, timevalues)

  • MeshSeries now has an .items() iterator

  • MeshSeries has now an .extend function to combine 2 MeshSeries (e.g. for simulation restart/continuation)

  • plot.line now automatically sorts the data

  • User can select format when saving animation (gif or mp4)

  • variables.vector add BHE vector with support for slicing its components

  • Variables now have methods to create Variables related to absolute error, relative error and analytical solution corresponding to the parent Variable

  • Variable.transform now also works on MeshSeries

  • plot.line now can also handle MeshSeries - this allows to draw an array of lines in one call (e.g. lines for each pt in the MeshSeries over time or lines for each timestep over a spatial coordinate)

  • plot.contourf now only returns a figure if it wasn’t given one as an argument

  • improved axis labelling for shared axes (only the outer axes should get labelled now)

  • new: meshseries.resample to interpolate the meshseries to new timevalues

  • new: extract_probe to create a new meshseries consisting only of points and probed data at these points

  • OGS_BIN_PATH is read, this allows to specify a location of a custom OGS (ogs wheel not needed)

  • Improved errors and warnings when system has multiple or no OGS on PATH

  • ogstools.status(verbose=True) prints status of OGS installation

Infrastructure#

Tests#

  • Tests can be marked as system and tools

    • system tests: Invoke running a simulation with OGS

    • tools tests: Invoke calls to OGS binary tools and pybind11 functionality (in future)

Imports#

  • When imports are actually implementation details they should be loaded within the calling function (delayed initialization). Applied to imports that rely on OGS installation.