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.txtRun experiments from their directories, eg.
$ git checkout POD-NN
$ cd experiments/2d_ackley
$ python3 main.pyAvailable 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.pyOr to distribute on a machine with 5 GPUs
$ python3 gen.py && horovodrun -np 5 -H localhost:5 python3 train.py --distribute && python3 pred.pyAvailable 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.pyAvailable 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