Motivation#

Problem statement#

Python is utilized in numerous OpenGeoSys(OGS)-related projects, spanning both the preparation and assessment of simulation results. Our positive experience with ogs6py and VTUInterface highlights the community’s strong reliance and extensive usage of these tools. However, the identified need for a wider spectrum of functionalities remains, essential for catering to the diverse requirements across various projects. OGSTools aims to address this need by expanding functionalities to accommodate past requirements and current project-specific needs.

Target audience#

OGSTools is for OpenGeoSys users and developers aiming to effectively automate their pre- and post-processing tasks (workflows). Proficiency in basic Python, accompanied by knowledge of essential libraries like Pandas, NumPy, Matplotlib in addition to familiarity with OpenGeoSys - Benchmarks, constitutes the required skill level.

Functionality and unique features#

OGSTools consists of features designed specifically for OpenGeoSys but can be applied broadly across multiple OpenGeoSys-specific projects. The functionality is grouped thematically into sub-libraries that are developed to collaborate with each other.

Versatility and Flexibility#

All sub-libraries either

  • transform from OpenGeoSys specific data into data structure of common python libraries

  • transform from data structures of common libraries to OpenGeoSys specific data This compatibility enables OpenGeoSys users to harness the full potential of Python’s extensive ecosystem.

Community Support and Maintenance#

OGSTools is part of the core development (with a dedicated team of developers). Progress is mainly made by project-specific requests. It is ready for broader adoption with the OGS Community.

Use Cases#

Projects#

  • AREHS - OGSTools extracted from and used within a snakemake based complex workflow

  • OpenWorkflow - OGSTools used within a workflow for thermal dimensioning of a deep geological repository, OGSTools infrastructure setup was used as a template (e.g. for project setup, testing, documentation generation, …)

  • OpenGeoSys - Benchmarks

Workflows#

Larger workflows have been constructed using the workflow manager snakemake. Within its main building blocks, called rules the functionality of OGSTools is combined with generic Python libraries or OGS Command Line Tools. We see that workflows are specific to the project but should be assembled from components that are generic. Ideally, the amount of project-specific code is significantly smaller than the generic project code. Therefore, we tend to invest a considerable portion of our development effort in establishing a robust foundation for the software stack described in the image below. We have basic experience with other workflow managers (e.g. Parsl and AiiDA) to confirm compatibility and ensure that our code will function seamlessly across different workflow manager environments.