fno-nf.jl

Solving multiphysics-based inverse problems with learned surrogates and constraints

https://github.com/slimgroup/fno-nf.jl

Science Score: 59.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 11 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    1 of 2 committers (50.0%) from academic institutions
  • Institutional organization owner
    Organization slimgroup has institutional domain (slim.gatech.edu)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.6%) to scientific vocabulary

Keywords

constraints fourier-neural-operator geological-carbon-storage geophysics inverse-problems inversion julia normalizing-flows reservoir-simulation
Last synced: 6 months ago · JSON representation ·

Repository

Solving multiphysics-based inverse problems with learned surrogates and constraints

Basic Info
Statistics
  • Stars: 6
  • Watchers: 4
  • Forks: 1
  • Open Issues: 0
  • Releases: 2
Topics
constraints fourier-neural-operator geological-carbon-storage geophysics inverse-problems inversion julia normalizing-flows reservoir-simulation
Created over 2 years ago · Last pushed over 2 years ago
Metadata Files
Readme License Citation

README.md

Solving multiphysics-based inverse problems with learned surrogates and constraints

Code to reproduce results in Ziyi Yin, Rafael Orozco, Mathias Louboutin, Felix J. Herrmann, "Solving multiphysics-based inverse problems with learned surrogates and constraints". Published open-access at Advanced Modeling and Simulation in Engineering Sciences. DOI: 10.1186/s40323-023-00252-0

Software descriptions

All of the software packages used in this paper are fully open source, scalable, interoperable, and differentiable. The readers are welcome to learn about our software design principles from this open-access article.

Wave

We use JUDI.jl for wave modeling and inversion, which calls the highly optimized propagators of Devito.

Multiphase flow

We use JutulDarcyRules.jl to solve the multiphase flow equations, which calls the high-performant and auto-differentiable numerical solvers in Jutul.jl and JutulDarcy.jl. JutulDarcyRules.jl is designed to interoperate these two packages with other Julia packages in the Julia AD ecosystem via ChainRules.jl.

Scientific machine learning

We use InvertibleNetworks.jl to train the normalizing flows (NFs). This package implements memory-efficient invertible networks via hand-written derivatives. This ensures that these invertible networks are scalable to realistic 3D problems.

We use FNO4CO2.jl to train the Fourier neural operators (FNOs) as learned surrogates for multiphase flow solvers in JutulDarcyRules.jl. In order for scaling to realistic 4D problems, we suggest the readers also have a look at the dfno package, which implements model-parallel Fourier neural operators that are demonstrated to scale to realistic size 4D problems (input size is over $512\times512\times512\times20$).

Installation

First, install Julia and Python. The scripts will contain package installation commands at the beginning so the packages used in the experiments will be automatically installed.

Scripts

There are 12 scripts for permeability inversion with different setups and different types of measurements, listed below.

| Inversion method \ Measurement type | Well measurement | Time-lapse seismic | Both | |---------------------|----------|----------|--------| | Unconstrained inversion with PDE solvers | well-jutul.jl | seismic-jutul.jl | combine-jutul.jl | | Unconstrained inversion with FNO surrogates | well-fno.jl | seismic-fno.jl | combine-fno.jl | | Constrained inversion with PDE solvers | well-jutul-nf.jl | seismic-jutul-nf.jl | combine-jutul-nf.jl | | Constrained inversion with FNO surrogates | well-fno-nf.jl | seismic-fno-nf.jl | combine-fno-nf.jl |

Also, the script projection-study.jl demonstrates a case study of the relationship between projection in the latent space (expansion or shrinkage) and the accuracy of pre-trained FNO for both in-distribution and out-of-distribution permeability samples.

LICENSE

The software used in this repository can be modified and redistributed according to MIT license.

Reference

If you use our software for your research, we appreciate it if you cite us following the bibtex in CITATION.bib.

Authors

This repository is written by Ziyi Yin from the Seismic Laboratory for Imaging and Modeling at the Georgia Institute of Technology.

If you have any question, we welcome your contributions to our software by opening issue or pull request.

SLIM Group @ Georgia Institute of Technology, https://slim.gatech.edu.
SLIM public GitHub account, https://github.com/slimgroup.

Owner

  • Name: SLIM GROUP
  • Login: slimgroup
  • Kind: organization
  • Email: Felix.herrmann@gatech.edu
  • Location: Georgia Institute of Technology, USA

Repositories for software by SLIM group

Citation (CITATION.bib)

@ARTICLE{yin2023smi,
  author = {Ziyi Yin and Rafael Orozco and Mathias Louboutin and Felix J. Herrmann},
  title = {Solving multiphysics-based inverse problems with learned surrogates and constraints},
  journal = {Advanced Modeling and Simulation in Engineering Sciences},
  year = {2023},
  month = {10},
  volume = {10},
  abstract = {Solving multiphysics-based inverse problems for geological carbon storage monitoring can be challenging when multimodal time-lapse data are expensive to collect and costly to simulate numerically. We overcome these challenges by combining computationally cheap learned surrogates with learned constraints. Not only does this combination lead to vastly improved inversions for the important fluid-flow property, permeability, it also provides a natural platform for inverting multimodal data including well measurements and active-source time-lapse seismic data. By adding a learned constraint, we arrive at a computationally feasible inversion approach that remains accurate. This is accomplished by including a trained deep neural network, known as a normalizing flow, which forces the model iterates to remain in-distribution, thereby safeguarding the accuracy of trained Fourier neural operators that act as surrogates for the computationally expensive multiphase flow simulations involving partial differential equation solves. By means of carefully selected experiments, centered around the problem of geological carbon storage, we demonstrate the efficacy of the proposed constrained optimization method on two different data modalities, namely time-lapse well and time-lapse seismic data. While permeability inversions from both these two modalities have their pluses and minuses, their joint inversion benefits from either, yielding valuable superior permeability inversions and CO2 plume predictions near, and far away, from the monitoring wells.},
  keywords = {AMSES, Fourier neural operators, normalizing flows, multiphysics, deep learning, learned surrogates, learned constraints, inverse problems},
  doi = {10.1186/s40323-023-00252-0},
  note = {(Advanced Modeling and Simulation in Engineering Sciences)}
}

GitHub Events

Total
  • Fork event: 1
Last Year
  • Fork event: 1

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 8
  • Total Committers: 2
  • Avg Commits per committer: 4.0
  • Development Distribution Score (DDS): 0.125
Past Year
  • Commits: 8
  • Committers: 2
  • Avg Commits per committer: 4.0
  • Development Distribution Score (DDS): 0.125
Top Committers
Name Email Commits
Ziyi Yin z****n@g****u 7
Ziyi Yin 5****7 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: about 1 year ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels