Skip to content

This Python-based toolbox is designed to optimize geothermal reservoir development by combining advanced Thermo-Hydro-Mechanical (THM) numerical modeling, machine learning (ML) optimization routines, and automated feedback loops.

License

Notifications You must be signed in to change notification settings

VITObelgium/URGENT_RiskManagementToolbox

Repository files navigation

In Development

Python License

URGENT Risk Management Toolbox

Introduction

This Python-based toolbox is designed to optimize geothermal reservoir development by combining advanced Thermo-Hydro-Mechanical (THM) numerical modeling, machine learning (ML) optimization routines, and automated feedback loops. The goal is to maximize total heat energy production while minimizing the risk of induced seismicity on known faults.

Core Components:

  1. THM Reservoir Models

    Simulate the coupled thermal, hydraulic, and mechanical behavior of the subsurface, based on geological models derived from seismic data.

  2. Machine Learning Optimization

    Algorithms adjust well locations and operational parameters (e.g., flow rate, injection temperature) to balance maximum heat recovery with minimal seismic risk.

  3. Linking & Automation Scripts

    Scripts facilitate communication between the THM simulations and ML routines, enabling iterative simulation cycles to determine optimal well placement and operation.


Development Requirements

  • Operating System: Ubuntu 22.04 (recommended)
  • Python Version: 3.12 (configured in the Makefile)
  • Make and common Unix tools: git, curl

Getting Started

1. Setup Prerequisites

To install basic dependencies (git, curl) essential for setup, run:

make prerequisites

2. Environment Installation

You can install either a development environment (recommended for developers) or a streamlined release environment.

Development Environment:

This installs all the necessary tools, including development dependencies, pre-commit hooks, Docker, LaTeX, and Python/uv environments:

make install-dev

This command will specifically:

  • Install Python 3.12 and set up a virtual environment using uv.
  • Install LaTeX and TeXstudio for documentation purposes.
  • Install Docker, verifying its functionality.
  • Install all Python development dependencies and pre-commit hooks.

Note: Currently, Windows OS is not supported for this setup.

Release Environment:

Installs only the dependencies necessary to run the application in a production setting. Run:

make install-release

3. Documentation Editing

To edit the project documentation using TeXstudio, execute:

make edit-docs
  • This will open the documentation in TeXstudio if installed.
  • If TeXstudio is not detected, please install it along with LaTeX by running:
make install-latex

4. Repository Health Checks

Maintain codebase quality by executing pre-commit hooks:

make run-check

5. Docker Installation and Verification

Docker is necessary for building and containerizing deployments. Install it using:

make install-docker

After installation, verify Docker functionality with:

make verify-docker

Manual Virtual Environment Handling

  • If for some reason you did not initially run make install-dev or make install-release, activate the Python virtual environment manually and install git hooks by running:
source .venv/bin/activate
pre-commit install

Build and Test

Running Tests

Use pytest to run the project's test suite:

pytest

Pre-commit Checks Individually

To perform project compliance checks manually, run:

make run-check

Notes

  • Familiarity with Unix commands and the make utility is assumed.
  • If you encounter issues during installation or operational errors, verify system compatibility and reread the instructions carefully.

About

This Python-based toolbox is designed to optimize geothermal reservoir development by combining advanced Thermo-Hydro-Mechanical (THM) numerical modeling, machine learning (ML) optimization routines, and automated feedback loops.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •