OGSTools 0.8.0 Release Notes#
Python 3.11-3.14 OGS 6.5.7
Breaking changes#
API breaking changes#
New Core Framework and Storage System#
New unified framework: Introduced
Model,Simulation, andResultclasses that provide a complete workflow from setup to analysis. See the newplot_framework_short.pyexample for a quick overview.Storage system: All major classes (
Model,Meshes,MeshSeries,Project) now inherit fromSaveBaseand support:Unified
save()/from_folder()/from_id()interfaceAutomatic backup on overwrite (configurable via
SaveBase.Backup)Archive mode for creating self-contained copies
ID-based organization in user-defined storage paths
Simulation controllers:
Removed deprecated
ogstools.simulationmoduleNew
SimulationControllerbase class withOGSInteractiveControllerandOGSNativeControllerimplementations
Log parsing: Added
Logclass for parsing and analyzing OGS log files with methods for convergence analysis and simulation status tracking
MeshSeries and Meshes#
removed the Mesh class entirely, MeshSeries is now a Sequence of native
pyvista.UnstructuredGrid’s.MeshSeries.scalechanges the calling object and returns it.MeshSeries.read_interp->MeshSeries.mesh_interpMeshSeries.probe->MeshSeries.probe_valsMeshSeries.extract_probe->MeshSeries.probeMeshSeries.aggregate_over_domain->MeshSeries.aggregate_spatialMeshSeries.aggregate_over_time->MeshSeries.aggregate_temporalMeshSeries.plot_domain_aggregate->ms.plot_line(variable.max/mean/...)removed deprecated
MeshSeries.plot_probe->probe = MeshSeries.probe(...); probe.plot_line(...)MeshSeries.save()signature changed: now uses unified storage interface withtarget,overwrite,dry_run, andarchiveparametersMeshesnow supports storage operations:save(),from_folder(),from_id()Meshes.__init__()now accepts optionalidparameterMeshesimplements__eq__()and__deepcopy__()for proper comparison and copying
Project#
Project.__init__()signature changed:output_fileis now optional (defaults to auto-generated path if using IDs)Added
idparameter for storage system integration
Projectnow inherits fromSaveBaseand supportssave(),from_folder(),from_id()operationsProject.inputfilerenamed toProject.input_fileProjectimplements__eq__(),__deepcopy__(),__repr__(), and__str__()Removed
Project.restart; useSimulation.restartinstead.
Logfile Parser#
Add monitor for live logfile parsing in a Jupyter notebook
step_start_timecolumn added totime_step_vs_iterations()analysis
Execution#
Support for parallel execution with MPI
Logparser#
OGS V1 log format no longer supported; only V2 is parsed
Other API Changes#
Matrix.mean->Matrix.tensor_meanmeshlibhas been renamed tomesh- classes to generate a new mesh (e.g. Layer, LayerSet, Surface, …) have been moved to a submodulecreate.ot.mesh.create.LayerSet.to_region_tetraeder->ot.mesh.create.LayerSet.to_region_tetrahedronot.mesh.create.dataframe_from_csvdoesn’t require a parameters .csv anymore, but either a mapping of layer_id to surface files, or the directory containing all surfaces files (in that case the layer_ids map to the sorted file list)ot.mesh.geo.depthnow requires top_mesh as an argument.ot.mesh.geo.p_fluidwas removed. See theStress analysisexample for how to calculate fluid pressure now.ot.mesh.file_io.save()signature changed: mesh parameter now comes first
Deprecations#
Removed Modules#
Removed
ogstools.simulationmodule (replaced byogstools.coreframework)
Examples#
Changes (non API-breaking)#
Bugfixes#
plot.line seems to have been missing the very first point of a linesample, now fixed
cli dashed arguments now work as expected
cli tools with legitimately underscored arguments (e.g.
addDataToRaster,checkMesh,generateGeometry) no longer have their argument names incorrectly converted to hyphens
Features#
New Core Framework#
Model: New class combining project file, meshes, and execution settings into a complete OGS model. Can be created from components or loaded from disk.
Model.run()executes the simulation and returns aSimulationobjectModel.run(<path>)writes the simulation results into the specified folderModel.cmdproperty to inspect or reuse the full OGS command stringModel.plot_constraints()visualizes boundary conditions and source termsSupports all storage operations (save, load by folder or ID)
Simulation: Represents a completed (ongoing by SimulationController) OGS simulation with model and results.
Simulation.meshseriesprovides access to the simulation outputSimulation.logprovides access to parsed log file as aLogobjectSimulation.statusandSimulation.status_strtrack simulation stateFull save/load support with automatic storage of model, results, and logs
Simulation.restartallows restarting a simulation from a previous run.
Execution: Manages OGS execution parameters (parallelization, logging, etc.)
Configurable OMP threads and assembly threads
Execution from YAML files or programmatic configuration
ogsparameter accepts binary directory, container path (.sif/.squashfs), or URLBuilt-in container URLs:
Execution.CONTAINER_SERIAL/CONTAINER_PARALLEL(OGS 6.5.7)Auto-detection via
OGS_BIN_PATHenv var or$PATHifogsis not specifiedSite-wide defaults via
OGS_EXECUTION_DEFAULTSenv var pointing to a YAML file (seeexecution_default_example.ymlfor reference)Execution.from_default()/Execution.defaultfor sharing a session-wide configcmdproperty exposes the full OGS command string
Log: Parser and analyzer for OGS log files
convergence_newton_iteration()andconvergence_coupling_iteration()extract convergence dataplot_convergence()visualizes convergence behaviorsimulation_info()andtermination_info()provide simulation metadata
Storage System (
SaveBase): Unified base class for all saveable objectsConfigurable user path via
SaveBase.Userpathand backup strategy viaSaveBase.BackupflagID-based organization in class-specific subdirectories
Archive mode for creating portable, self-contained copies
Temporary storage support for intermediate objects
mesh#
added
ot.mesh.node_reorderingto fix node ordering of a mesh to comply with OGS standardsadded
ot.mesh.validateto check, whether a mesh complies with OGS standards
gmsh_tools#
added more control over the discretization for
remesh_with_triangles.
MeshSeries#
added support for logarithmic scaling in
ot.MeshSeries.plot_time_slice.new functions for renaming domain and subdomains
can now be scaled spatially / temporally in the Constructor
added
interpolatemethod, to interpolate the MeshSeries data on a new meshadded
comparemethod toot.MeshSeries.Storage support: can be saved and loaded by folder or ID
Meshes#
save function performs partmesh if number of partitions are given, with optional dry_run
create_partitioning() and create_metis if vtu files are already present
subdomains() -> subdomain, domain_name() -> domain_name (with setter)
plotmethod displays domain mesh and subdomains (2D domain only for now)remove_materialmethod removes specified material id from domain and updates subdomains accordinglymodify_namesmethod extends mesh names with prefix and/or suffixMeshes.from_meshnow also works for 3D domain meshesnow checks datatypes of MaterialIDs, bulk_node_ids, bulk_element_ids and coordinates upon saving
from_file()method to restore from meta.yamlStorage support with metadata preservation
Project#
dependencies() return a list of referenced/needed files (meshes, xml includes, python scripts)
plot_constraints() -> overview plot with boundary conditions and source terms
Enhanced
__repr__()and__str__()for better object inspectionStorage support with proper XML handling
plot#
add option to plot legend outside of plots.
added support for continuous contourplots via
continuous_cmap=True.Allow user to set arrowsize parameter in contourf
Variable#
added aggregation methods
min,max,mean,median,sum,std,var.
Infrastructure#
uv.lockadded for reproducible installsscripts/pull_containers.py— helper to pre-pull serial/parallel OGS containersTemporary files now isolated under
tmp/ogstools/instead of the system temp rootDrop Python 3.10 support
Add Python 3.14 support
Updated pinned environment
Test with container from 3.10 to 3.12
Dependency and tooling update
Use Intersphinx for 3rd party package documentation reference
Monitor (Bokeh) is optional dependency
Documentation#
New Examples#
plot_framework_short.py: Condensed workflow demonstrating the complete OGSTools framework (Setup → Compose → Run → Analyze → Store)
plot_storage.py: Comprehensive guide to the storage system covering basic usage, ID-based organization, overwriting with backup, archiving, and advanced topics
Updated Examples#
Updated simulation examples to use new
ModelandSimulationclassesModified examples to demonstrate the new storage system capabilities
Added example data: small_deformation simulation with complete model, execution, meshes, and results
Tests#
plotting tests now actually check whether the resulting figure is as expected
Added comprehensive tests for new framework components:
test_framework.py: Tests for Model, Simulation, Result integrationtest_model.py: Model class functionalitytest_simulation.py: Simulation lifecycle and storagetest_storage.py: Storage system, backup, and archive functionality
Imports#
Top-level API now exports additionally:
Model,Simulation,SimulationController,Execution,Log