This project is dedicated to the development of Artificial Neural Network (ANN) models to close the subgrid terms in the filtered Two-Fluid Model, namely the filtered drag force and the solid phase subgrid stresses.
Paper Title: "Machine learning approaches to close the filtered two-fluid model for gas-solid flows: Models for subgrid drag force and solid phase stress"
Authors: "Baptiste Hardy and Stefanie Rauchenzauner and Pascal Fede and Simon Schneiderbauer and Olivier Simonin and Sankaran Sundaresan and Ali Ozel"
The dataset used to train ANN models is obtained from fine-grid Two-Fluid simulation results of a tri-periodic gas-solid fluidized bed. Simulations have been performed using the NEPTUNE_CFD software. The fine-grid simulation results have been spatially filtered for a range of filter sizes. Only a subset of the full dataset is provided in this repository (about 6%).
The data folder contains the filtered dataset obtained from 10 cases with different physical parameters detailed in the param.txt file inside each subfolder.
The filtered_drag folder contains:
-
The Python source code based on Keras API to train and validate ANN models for the filtered drag force (
filtered_drag_ANN.py). TheterminalVelocitymodule contains a routine to calculate the terminal settling velocity of a single isolated particle as a function of physical parameters. -
The
modelssubfolder containing the trained models:DF_generalizedModel_training_cases1to9: drift flux model obtained from the full datasetDF_generalizedModel_training_cases1to9_subset: drift flux model obtained from the partial dataset shared in this repository
In both cases, the model has been saved (and can therefore be uploaded) in two ways:
- TensorFlow Saved format: the whole model (architecture and weights) is saved in the
model.tffolder - JSON-HDF5 pair format: the model architecture is saved in the
model.config.jsonfile, the weights are stored in themodel.weights.h5binary file
The features to be fed (in this order) to the network are the following:
The subgrid_solid_stresses folder contains:
-
The Python source code to train and validate ANN models for the subgrid solid stress. More specifically:
mesoscale_pressure_ANN.py: training and validation of an ANN model for the mesoscale pressure, i.e. the spherical part of the subrid stress (aka the subrid kinetic energy)eddy_viscosity_ANN.py: training and validation of an ANN model for the subgrid stress using an eddy-viscosity approach (Boussinesq hypothesis)subgrid_solid_stresses_TBNN.py: training and validation of a Tensor-Based Neural Network (TBNN) to predict the individual components of the subgrid stress
These files rely on the preprocessing files
preprocessor.pyandturbulence_preprocessor.pylargely inspired from the sandialabs TBNN github repository: https://github.com/sandialabs/tbnn -
The
modelssubfolder containing the trained models, either using the full dataset or the data subset shared in this repository when the directory is appended with the_subsetsuffix -
The c++ code
TBNN_prediction.Cto load the previously trained TensorFlow TBNN model for the subgrid stress. An example fileinput.csvcontains typical values of the physical quantities needed to evaluate the input features of the TBNN model at a given spatial location (one single occurence). The TBNN model predictions (i.e. the 6 individual components of the subgrid solid stress) are exported to theoutput.csvfile.
Note: The loading and reading of TensorFlow models relies on the cppflow library that can be installed from https://github.com/serizba/cppflow
@misc{hardy2023machine,
title={Machine learning approaches to close the filtered two-fluid model for gas-solid flows: Models for subgrid drag force and solid phase stress},
author={Baptiste Hardy and Stefanie Rauchenzauner and Pascal Fede and Simon Schneiderbauer and Olivier Simonin and Sankaran Sundaresan and Ali Ozel},
year={2023},
url = {https://arxiv.org/abs/2401.00179},
}
Jiang et al.'s ANM model has been used to generate Figure-3 in the manuscript. This model has been uploaded into the "JiangANNModels" folder and can be also found in https://github.com/yundij/ANN-sub-grid-Drag.
Bibtex entries for the Jiang's studies:
@article{jiangPowTec2019,
title = {Neural-network-based filtered drag model for gas-particle flows},
journal = {Powder Technology},
volume = {346},
pages = {403-413},
year = {2019},
doi = {https://doi.org/10.1016/j.powtec.2018.11.092},
url = {https://www.sciencedirect.com/science/article/pii/S0032591018310192#s0045}
author = {Baptiste Hardy and Stefanie Rauchenzauner and Pascal Fede and Simon Schneiderbauer and Olivier Simonin and Sankaran Sundaresan and Ali Ozel}
}
@article{jiangChemEngSci2021,
title = {Development of data-driven filtered drag model for industrial-scale fluidized beds},
journal = {Chemical Engineering Science},
volume = {230},
pages = {116235},
year = {2021},
issn = {0009-2509},
doi = {https://doi.org/10.1016/j.ces.2020.116235},
url = {https://www.sciencedirect.com/science/article/pii/S0009250920307673},
author = {Yundi Jiang and Xiao Chen and Jari Kolehmainen and Ioannis G. Kevrekidis and Ali Ozel and Sankaran Sundaresan}
}