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.