We are happy to announce the release of OGSTools 0.5.0!
Links
OGSTools 0.5.0 Release Notes
- Recommended OGS Version: 6.5.4
- Python support: 3.10, 3.11, 3.12, 3.13
API breaking changes
- FeflowModel-class introduced:
- FeflowModel.mesh → to get the mesh with all FEFLOW properties, replaces feflowlib.convert_properties_mesh()
- FeflowModel.ogs_bulk_mesh → to get the mesh with only materialIDs
- FeflowModel.subdomains → access the boundary conditions and the source terms of the FEFLOW model, replaces feflowlib.extract_point_boundary_conditions(), feflowlib.extract_cell_boundary_conditions()
- FeflowModel.process → see the process to be simulated
- FeflowModel.material_properties → access the material_properties, replaces feflowlib.get_material_properties_of_H_model(), feflowlib.get_material_properties_of_HT_model(), feflowlib.get_material_properties_of_CT_model()
- FeflowModel.project → access the project file
- FeflowModel.setup_prj() → create the project file, replaces feflowlib.setup_prj_file()
- FeflowModel.save() → save the mesh, subdomain, and the project-file
- FeflowModel.run() → run the FEFLOW model in OGS
- MeshSeries.data → MeshSeries.values
- MeshSeries.clear → MeshSeries.clear_cache
- In aggregate functions func str is replaced by callables (e.g. numpy.min)
- meshlib.gmsh_meshing.remesh_with_triangle → meshlib.gmsh_meshing.remesh_with_triangles
- msh2vtu python interface was replaced with meshes_from_gmsh
- CLI tool msh2vtu is not affected by this
- parameter keep_ids was removed (in our OGS world there is no reason to keep the gmsh data names and the wrong data types in the meshes, which would happen if k was used)
- parameter log_level was changed to log (True or False)
- removed:
- MeshSeries.spatial_data_unit/spatial_output_unit/time_unit (see MeshSeries.scale())
- plot.linesample/linesample_contourf
- meshlib.data_processing.interp_points/distance_in_profile/sample_polyline (see updated line sample example)
Bugfixes
- FeflowModel: fix material_properties for HT process
- FeflowModel: could not convert mixed celltypes in FEFLOW mesh
- Failed sub library imports led to incomplete and unhandled package import
- MeshSeries was unable to handle xdmf with just one timestep correctly
- MeshSeries kept the hdf5 file handle open - parallel read access was not possible
- OMP_NUM_THREADS was not working on Windows
- plot functions had sometimes different color schemes in the color bar
- Tortuosity was not a medium property
- BHE mesh (z coordinate negative)
Features
- FeflowModel: heterogeneous material properties are now saved on the mesh and not a separate mesh
- FeflowModel: allow generic creation of project files for unsupported processes to have a proposal of a project file, which needs to be modified manually to have working OGS model
- FeflowModel: allow configuration of time stepping and error tolerance for all processes
- FeflowModel: use materialIDs from FEFLOW-user-data, if defined
- MeshSeries gets copy() method.
- MeshSeries gets transform() method, that applies an arbitrary transformation function to all time steps.
- MeshSeries get extract() method to select points or cells via ids
- MeshSeries can be sliced to get new MeshSeries with the selected subset of timesteps
- MeshSeries gets a modify function that applies arbitrary function to all timestep - meshes.
- MeshSeries gets a save function (only for pvd implemented yet)
- difference() between two meshes is now possible even with different topologies
- Project write_input, path can be specified
- MeshSeries gets scale() method to scale spatially or temporally
- variables.get_preset will now return a Variable corresponding to the spatial coordinates if given “x”, “y” or “z”
- plot module gets line() function as a general purpose 1D plotting function
- plot.setup get spatial_unit and time_unit which are used for labeling
Infrastructure
- Python 3.13 support (CI testing)
- Testing of all supported Python version 3.10-3.13 (pip and conda)
- Testing with pinned dependencies in regression tests and with open dependencies in maintenance tests
- msh2vtu - complete overhaul
Examples
- All examples use
import ogstools as ot
. To not be confused with ogs python bindings - New examples to show post-conversion modifications of FEFLOW model(modify boundary conditions and project-file)
Footnotes
- All related Merge requests are tagged with 0.5.0 Release Merge requests · ogs / OpenGeoSys Tools / OGSTools · GitLab