Skip to content

MGN-LSTM - a graph neural network-based, deep-learning models for multiphase flow in carbon capture and storage (CCS) reservoirs with complex fault systems

License

Notifications You must be signed in to change notification settings

IsaacJu-debug/mgn_lstm

Repository files navigation

MGN-LSTM - Learning CO2 Plume Migration in Faulted Reservoirs with Graph Neural Networks

This repository is the implementation of MGN-LSTM, a novel graph neural network-based, deep-learning models for multiphase flow in carbon capture and storage (CCS) reservoirs with complex fault systems. Our model combines Message-Passing Graph Neural Networks (MGN) with Long Short-Term Memory networks (LSTM) to achieve stable long-term predictions of CO₂ plume migration in heterogeneous geological formations. The architecture is specifically designed to handle unstructured simulation meshes and accurately capture flow dynamics around geological faults.

MGN-LSTM Architecture

The figure below compares the high-fidelity numerical simulation (top row) and MGN-LSTM predictions (middle row) for CO₂ saturation evolution in a faulted reservoir over 950 days:

Temporal evolution of the CO2 saturation plume.

Overview

This repository provides:

  • Complete Python implementation of MGN-LSTM
  • A jupyter notebook for evaluating MGN-LSTM performances
  • A faulted PEBI (Perpendicular Bisector) dataset
  • Training scripts for gas saturation and pressure
  • Pre-trained models

Requirements

  • Python 3.10
  • PyTorch 1.9+
  • CUDA-capable GPU (recommended)
  • Additional dependencies listed in setup_env.sh

Installation

  1. Clone the repository:
git clone https://github.com/IsaacJu-debug/mgn_lstm.git
cd mgn_lstm
  1. Set up the virtual environment:
source setup_env.sh

This will create a virtual environment and install all required dependencies. The script also generates an activation file (activate_mgn_lstm.sh) for future use.

  1. For subsequent uses, activate the environment:
source activate_mgn_lstm.sh

Datasets

Download the benchmark datasets from our Google Drive repository:

  • meshPEBI_sg.pt: Gas saturation field data
  • meshPEBI_p.pt: Gas pressure field data

Place the downloaded files in the mgn_lstm/datasets directory.

Pre-trained Models

Pre-trained MGN-LSTM models are available here.

To evaluate the models:

  1. Download the pre-trained weights
  2. Place them in the mgn_lstm/best_models directory
  3. Run the evaluation notebook:
jupyter notebook evaluate_mgn_lstm_gas.ipynb

Training

Gas Saturation Model

bash run_lstm_gas.sh

Pressure Field Model

bash run_lstm_p.sh

Issues

If you encounter any problems, please open an issue.

Citation

If you find this work useful in your research, please cite:

@article{ju2024learning,
    title={Learning CO2 plume migration in faulted reservoirs with Graph Neural Networks},
    author={Ju, Xin and Hamon, Fran{\c{c}}ois P and Wen, Gege and Kanfar, Rayan and Araya-Polo, Mauricio and Tchelepi, Hamdi A},
    journal={Computers \& Geosciences},
    volume={193},
    pages={105711},
    year={2024},
    publisher={Elsevier}
}

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

MGN-LSTM - a graph neural network-based, deep-learning models for multiphase flow in carbon capture and storage (CCS) reservoirs with complex fault systems

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published