Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pierremtb/pod-uqnn
Uncertainty Quantification in the POD-NN framework
https://github.com/pierremtb/pod-uqnn
computational-fluid-dynamics deep-neural-networks principal-component-analysis
Last synced: about 2 months ago
JSON representation
Uncertainty Quantification in the POD-NN framework
- Host: GitHub
- URL: https://github.com/pierremtb/pod-uqnn
- Owner: pierremtb
- License: mit
- Created: 2019-09-27T14:47:59.000Z (over 5 years ago)
- Default Branch: POD-EnsNN
- Last Pushed: 2020-09-10T11:34:16.000Z (over 4 years ago)
- Last Synced: 2024-04-14T05:18:05.925Z (9 months ago)
- Topics: computational-fluid-dynamics, deep-neural-networks, principal-component-analysis
- Language: Python
- Homepage:
- Size: 9.2 MB
- Stars: 19
- Watchers: 5
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Uncertainty Quantification in the POD-NN framework
Source code from [_Non-intrusive reduced-order modeling using uncertainty-aware Deep Neural Networks and Proper Orthogonal Decomposition: application to Flood Modeling_](https://arxiv.org/abs/2005.13506).
An overview of this work is available [here](https://pierrejacquier.com/POD-UQNN/).
Requires Python 3.6+.
Dependencies are in the file `requirements.txt` on any branch, and are installable via `pip` (or `pip3` if Python 3 isn’t the default one):
```console
$ pip3 install -r requirements.txt
```## Running our POD-NN implementation (Wang et al., 2019)
Run experiments from their directories, eg.
```console
$ git checkout POD-NN
$ cd experiments/2d_ackley
$ python3 main.py
```
Available experiments in `experiments`:
- `1d_shekel`, the 1D [Shekel](https://en.wikipedia.org/wiki/Shekel_function) function
- `2d_ackley`, the 2D [Ackley](https://en.wikipedia.org/wiki/Ackley_function) function
- `1dt_burger`, a solution of the 1D, unsteady [Burger’s Equation](https://en.wikipedia.org/wiki/Burgers%27_equation)## Running the POD-EnsNN model (Uncertainty Quantification via Deep Ensembles)
```console
$ git checkout POD-EnsNN
$ cd experiments/2d_ackley
$ python3 main.py
```
Or to distribute on a machine with 5 GPUs
```console
$ python3 gen.py && horovodrun -np 5 -H localhost:5 python3 train.py --distribute && python3 pred.py
```
Available experiments in `experiments`:
- `1d_shekel`, the 1D [Shekel](https://en.wikipedia.org/wiki/Shekel_function) function
- `2d_ackley`, the 2D [Ackley](https://en.wikipedia.org/wiki/Ackley_function) function
- `1dt_burger`, a solution of the 1D, unsteady [Burger’s Equation](https://en.wikipedia.org/wiki/Burgers%27_equation)
- `2d_shallowwater`, Flood Modeling on simulations results from CuteFlow, solving 2D [Shallow Water Equations](https://en.wikipedia.org/wiki/Shallow_water_equations)
- `1dt_shallowwater`, Dam Break test case, solving 1D, unsteady [Shallow Water Equations](https://en.wikipedia.org/wiki/Shallow_water_equations)
- `2dt_shallowwater`, Dam Break simulations results from CuteFlow, solving 2D, unsteady [Shallow Water Equations](https://en.wikipedia.org/wiki/Shallow_water_equations)## Running the POD-BNN model (Uncertainty Quantification via Bayesian NN)
```console
$ git checkout POD-BNN
$ cd experiments/2d_ackley
$ python3 main.py
```
Available experiments in `experiments`:
- `1d_shekel`, the 1D [Shekel](https://en.wikipedia.org/wiki/Shekel_function) function
- `2d_ackley`, the 2D [Ackley](https://en.wikipedia.org/wiki/Ackley_function) function
- `1dt_burger`, a solution of the 1D, unsteady [Burger’s Equation](https://en.wikipedia.org/wiki/Burgers%27_equation)
- `2d_shallowwater`: Flood Modeling on simulations results from CuteFlow, solving 2D [Shallow Water Equations](https://en.wikipedia.org/wiki/Shallow_water_equations)
- `1dt_shallowwater`, Dam Break test case, solving 1D, unsteady [Shallow Water Equations](https://en.wikipedia.org/wiki/Shallow_water_equations)
- `2dt_shallowwater`, Dam Break simulations results from CuteFlow, solving 2D, unsteady [Shallow Water Equations](https://en.wikipedia.org/wiki/Shallow_water_equations)## Runner files for Compute Canada clusters
For each branch, we provide `experiments/runner.sh` to run all simulations. It is meant to be used on Compute Canada clusters, such as Beluga, located at ÉTS.
A Python 3.6+ environment at `~/env` needs to contain the packages required in `requirements.txt`, plus `horovod`.## Citations
The preprint is out and can be cited as follows.
```
@misc{jacquier2020nonintrusive,
title={Non-Intrusive Reduced-Order Modeling Using Uncertainty-Aware Deep Neural Networks and Proper Orthogonal Decomposition: Application to Flood Modeling},
author={Pierre Jacquier and Azzedine Abdedou and Vincent Delmas and Azzeddine Soulaimani},
year={2020},
eprint={2005.13506},
archivePrefix={arXiv},
primaryClass={physics.comp-ph}
}
```
This work is building on techniques from _Wang et al._
```
@article{Wang2019,
author = {Wang, Qian and Hesthaven, Jan S. and Ray, Deep},
doi = {10.1016/J.JCP.2019.01.031},
issn = {0021-9991},
journal = {Journal of Computational Physics},
month = {may},
pages = {289--307},
publisher = {Academic Press},
title = {{Non-intrusive reduced order modeling of unsteady flows using artificial neural networks with application to a combustion problem}},
url = {https://www.sciencedirect.com/science/article/pii/S0021999119300828},
volume = {384},
year = {2019}
}
```## License
MIT LicenseCopyright (c) 2020 Pierre Jacquier