Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
A framework for fluid flow (Reynolds-averaged Navier Stokes) predictions with deep learning
| Date | Stars |
|---|---|
| 2026-07-31 | 348 |
| 2026-08-06 | 348 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
# Deep-Flow-Prediction
_Deep Flow Prediction_ is a framework for fluid flow
(Reynolds-averaged Navier Stokes) predictions with deep learning.
It contains code for data generation, network training, and evaluation.
Linux is highly recommended, and assumed as OS the following.
Full details can be found in the arXiv paper from 2018 below, which was later on published in the AIAA Journal as
"Deep learning methods for Reynolds-averaged Navier-Stokes simulations of airfoil flows":
<https://arxiv.org/abs/1810.08217>.
Authors:
*N. Thuerey, K. Weissenow, L. Prantl, Xiangyu Hu*
With additional code contributions from:
*H. Mehrotra, N. Mainali*
To arrive at high-accuracy networks of the same task, please check out our follow
up work which makes use of CNNs conditioned on C-shaped meshes:
<https://github.com/tum-pbs/coord-trans-encoding>.
Other physics-based deep learning works of our group can be found at
<https://ge.in.tum.de/publications/>.
If you find this codebase useful, please cite our paper via:
```
@article{thuerey2020deepFlowPred,
title={Deep learning methods for Reynolds-averaged Navier--Stokes simulations of airfoil flows},
author={Thuerey, Nils and Wei{\ss}enow, Konstantin and Prantl, Lukas and Hu, Xiangyu},
journal={AIAA Journal}, year={2020},
volume={58}, number={1}, pages={25--36},
publisher={American Institute of Aeronautics and Astronautics}
}
```

# A quick how-to
All scripts below assume they're executed from their respective directories.
## Required software
This codebase requires _PyTorch_ and _numpy_ for the deep learning part,
and _openfoam_ and _gmsh_ for data generation and meshing (you don't need the latter
two if you download the pre-computed training data below).
To install these under linux run, use e.g.:
```
sudo pip install torch numpy
sudo apt-get install openfoam5 gmsh
```
(Details can be found on the installation pages of [PyTorch](https://pytorch.org/get-started/locally/) and
[OpenFOAM](https://openfoam.org/download/5-0-ubuntu/).)
## Data generation
Note that you can skip the next two steps if you download the training
data packages below. Simply make sure you have `data/train` and `data/test`
in the source directory, then you can continue with the training step.
### Download airfoils
First, enter the `data` directory.
Download the airfoil profiles by running `./download_airfoils.sh`, this
will create `airfoil_database` and `airfoil_database_test` directories.
(The latter contains a subset that shouldn't be used for training.) The
airfoild database should contain 1498 files afterwards.
### Generate data
Now run `python ./dataGen.py` to generate a first set of 100 airfoils.
This script executes _openfoam_ and runs _gmsh_ for meshing the airfoil profiles.
Once `dataGen.py` has finished, you should find 100 .npz files in a new
directory called `train`. You can call this script repeatedly to generate
more data, or adjust
the `samples` variables to generate more samples with a single call.
For a first test, 100 samples are sufficient, for higher quality models, more
than 10k are recommended..
Output files are saved as compressed numpy arrays. The tensor size in each
sample file is 6x128x128 with dimensions: channels, x, y.
The first three channels represent the input,
consisting (in this order) of two fields corresponding to the freestream velocities in x and y
direction and one field containing a mask of the airfoil geometry as
a mask. The last three channels represent the target, containing one pressure and two velocity
fields.
To summarize, in the TurDataset class the inputs `data.inputs` have the channels [free-stream x, free-stream y, mask], while the
reference data `data.targets` has the channels [pressure, flow-velocity x, flow-velocity y].
## Convolutional neural network training

Switch to the directory containing the training Excerpt of 8,684 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:5e2dd2362bce72d7, llm:Repository description: "A framework for fluid flow (Reynolds-averaged Navier Stokes) predictions with deep learning"; language C++ indicates engineering code for ML-based fluid flow prediction.
matched fp:5e2dd2362bce72d7, llm:Repository description: "A framework for fluid flow (Reynolds-averaged Navier Stokes) predictions with deep learning"; language C++ indicates engineering code for ML-based fluid flow prediction.
matched fp:5e2dd2362bce72d7, llm:Repository description: "A framework for fluid flow (Reynolds-averaged Navier Stokes) predictions with deep learning"; language C++ indicates engineering code for ML-based fluid flow prediction.