Towards extraction of orthogonal and parsimonious non-linear modes from turbulent flows

Introduction

The code in this repository features a Python implemention of $\beta$-variational autoencoders ($\beta$-VAEs) based on convolutional neural networks (CNNs) to decompose and reconstruct the urban flow fields generated through well-resolved large-eddy simulation (LES) using the open-source numerical code Nek5000. Input data are instanteous fields of streamwise velocity fluctuation component. More details about the implementation and results from the training are available in "Towards extraction of orthogonal and parsimonious non-linear modes from turbulent flows", Hamidreza Eivazi, Soledad Le Clainche, Sergio Hoyas, Ricardo Vinuesa(2022,Expert Systems with Applications)

Pre-requisites

The code was run successfully using Tensorflow>=2.6.0, using 1 GPU for training

Data

The dataset used for training and testing are available in order to ensure the reproducibility of the results. Please, get in touch using the email address for correspondance in the paper to arrange the transfer. For details of data, please read data description

Training and inference

The $\beta$-VAEs training can be performed after cloning the repository

git clone https://github.com/Fantasy98/Towards-extraction-of-orthogonal-and-parsimonious-non-linear-modes-from-turbulent-flows.git

python train_cnn_vae.py

All the training parameters are defined in the train config

Prediction can be performed as follows:

python prediction.py

Pre-trained models

We offer models with pre-trained parameters in /model folder. The models are saved as format of .h5 file and name as (encoder/decoder) _ (model type) _ (latent dim) _ (beta value).h5

Post-processing

/postprocessing: Codes can be used for evaluating results and plot figures.

/postprocessing/fig: Store the figures plotted by script.

/postprocessing/pred_data: Prediction data generated by three kinds of autoencoders in paper and reconstruction by POD.