NNPred: A Predictor Library to Deploy Neural Networks in Computational Fluid Dynamics software
A neural-networks predictor library has been developed to deploy machine learning (ML) models into computational fluid dynamics (CFD) codes. The pointer-to-implementation strategy is adopted to isolate the implementation details in order to simplify the implementation to CFD solvers. The library provides simplified model-managing functions by encapsulating the TensorFlow C library, and it maintains self-belonging data containers to deal with data type casting and memory layouts in the input/output (I/O) functions interfacing with CFD solvers. On the language level, the library provides application programming interfaces (APIs) for C++ and Fortran, the two commonly used programming languages in the CFD community. High-level customized modules are developed for two open-source CFD codes, OpenFOAM and CFL3D, written with C++ and Fortran, respectively. The basic usage of the predictor is demonstrated in a simple data-driven heat transfer problem as the first tutorial case. Another tutorial case of modeling the effect of turbulence in channel flow using the library is implemented in both OpenFOAM and CFL3D codes. The developed ML predictor library provides a powerful tool for the deployment of ML models in CFD solvers.
PDF Abstract