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.
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:
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
- Python 3.10
- PyTorch 1.9+
- CUDA-capable GPU (recommended)
- Additional dependencies listed in
setup_env.sh
- Clone the repository:
git clone https://github.com/IsaacJu-debug/mgn_lstm.git
cd mgn_lstm
- 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.
- For subsequent uses, activate the environment:
source activate_mgn_lstm.sh
Download the benchmark datasets from our Google Drive repository:
meshPEBI_sg.pt
: Gas saturation field datameshPEBI_p.pt
: Gas pressure field data
Place the downloaded files in the mgn_lstm/datasets
directory.
Pre-trained MGN-LSTM models are available here.
To evaluate the models:
- Download the pre-trained weights
- Place them in the
mgn_lstm/best_models
directory - Run the evaluation notebook:
jupyter notebook evaluate_mgn_lstm_gas.ipynb
bash run_lstm_gas.sh
bash run_lstm_p.sh
If you encounter any problems, please open an issue.
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}
}
This project is licensed under the MIT License - see the LICENSE file for details.