Skip to content

Discovering explicit Reynolds-averaged turbulence closures for turbulent separated flows through deep learning-based symbolic regression with non-linear corrections

License

Notifications You must be signed in to change notification settings

thw1021/DSRRANS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DSRRANS

This work introduces a novel data-driven framework to formulate explicit algebraic Reynolds-averaged Navier-Stokes (RANS) turbulence closures. Recent years have witnessed a blossom in applying machine learning (ML) methods to revolutionize the paradigm of turbulence modeling. However, due to the black-box essence of most ML methods, it is currently hard to extract interpretable information and knowledge from data-driven models. To address this critical limitation, this work leverages deep learning with symbolic regression methods to discover hidden governing equations of Reynolds stress models. Specifically, the Reynolds stress tensor is decomposed into linear and non-linear parts. While the linear part is taken as the regular linear eddy viscosity model, a long short-term memory neural network is employed to generate symbolic terms on which tractable mathematical expressions for the non-linear counterpart are built. A novel reinforcement learning algorithm is employed to train the neural network to produce best-fitted symbolic expressions. Within the proposed framework, the Reynolds stress closure is explicitly expressed in algebraic forms, thus allowing for direct functional inference. On the other hand, the Galilean and rotational invariance are craftily respected by constructing the training feature space with independent invariants and tensor basis functions. The performance of the present methodology is validated through numerical simulations of three different canonical flows that deviate in geometrical configurations. The results demonstrate promising accuracy improvements over traditional RANS models, showing the generalization ability of the proposed method. Moreover, with the given explicit model equations, it can be easier to interpret the influence of input features on generated models.

This paper is now availbale at https://aip.scitation.org/doi/10.1063/5.0135638, the preprint is also available at https://arxiv.org/abs/2301.09048.

The framework utilized in the present work for formulating explicit algebraic turbulence model is shown as follow:

framework

It is shown that the discovered model can improve the RANS predictions:

case_0p8_Up_comparison

Installation

Prerequisite

Ubuntu 20.04, OpenFOAM-7 and Python 3.7

Install dso package

To install all dependencies for performing training, run pip install -e ./dso[all] (please refer to dso repo for installation details).

Install OpenFOAM package

To install turbulence model module, run wclean && wmake in TurbulenceModels folder.

Getting started

Run the training

To start a training, run python -m dso.run dsoTurbulenceConfig.json in dso/dso. Change the dataset path to use your own data.

Run the simulation

You can use the runSimulation.sh script to start the simulation after finishing the compilation of turbulence model.

Configuring runs

Please refer to dso repo for the meaning of training parameters.

Help

If you have problems, feel free to open an issue or send an email to me (thw1021@nuaa.edu.cn, Hongwei Tang).

If you find this work useful for your research, please consider citing our work:

@article{doi:10.1063/5.0135638,
author = {Tang,Hongwei  and Wang,Yan  and Wang,Tongguang  and Tian,Linlin },
title = {Discovering explicit Reynolds-averaged turbulence closures for turbulent separated flows through deep learning-based symbolic regression with non-linear corrections},
journal = {Physics of Fluids},
volume = {35},
number = {2},
pages = {025118},
year = {2023},
doi = {10.1063/5.0135638},
URL = {https://doi.org/10.1063/5.0135638},
eprint = {https://doi.org/10.1063/5.0135638}
}

Typo

  1. There is a small typo in Sec.II.E. In step 5, \pmb{b}_{*}^{\bot} should be \pmb{b}^{\bot}.
  2. The \lambda in Fig. 11 should be G, i.e., \lambda_{i}, \lambda_{1}, \lambda_{2} and \lambda_{3} should be G^{i}, G^{1}, G^{2} and G^{3}, respectively.

About

Discovering explicit Reynolds-averaged turbulence closures for turbulent separated flows through deep learning-based symbolic regression with non-linear corrections

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages