Source code from Non-intrusive reduced-order modeling using uncertainty-aware Deep Neural Networks and Proper Orthogonal Decomposition: application to Flood Modeling.
An overview of this work is available here.
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):
$ pip3 install -r requirements.txt
Run experiments from their directories, eg.
$ git checkout POD-NN
$ cd experiments/2d_ackley
$ python3 main.py
Available experiments in experiments
:
1d_shekel
, the 1D Shekel function2d_ackley
, the 2D Ackley function1dt_burger
, a solution of the 1D, unsteady Burger’s Equation
$ git checkout POD-EnsNN
$ cd experiments/2d_ackley
$ python3 main.py
Or to distribute on a machine with 5 GPUs
$ 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 function2d_ackley
, the 2D Ackley function1dt_burger
, a solution of the 1D, unsteady Burger’s Equation2d_shallowwater
, Flood Modeling on simulations results from CuteFlow, solving 2D Shallow Water Equations1dt_shallowwater
, Dam Break test case, solving 1D, unsteady Shallow Water Equations2dt_shallowwater
, Dam Break simulations results from CuteFlow, solving 2D, unsteady Shallow Water Equations
$ git checkout POD-BNN
$ cd experiments/2d_ackley
$ python3 main.py
Available experiments in experiments
:
1d_shekel
, the 1D Shekel function2d_ackley
, the 2D Ackley function1dt_burger
, a solution of the 1D, unsteady Burger’s Equation2d_shallowwater
: Flood Modeling on simulations results from CuteFlow, solving 2D Shallow Water Equations1dt_shallowwater
, Dam Break test case, solving 1D, unsteady Shallow Water Equations2dt_shallowwater
, Dam Break simulations results from CuteFlow, solving 2D, unsteady Shallow Water Equations
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
.
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}
}
MIT License
Copyright (c) 2020 Pierre Jacquier