CFD solver for turbulent non-premixed flames based on the Steady Laminar Flamelets method
If you use flameletSMOKE for your publications, we kindly ask you to cite the following paper:
Cuoci, A., Frassoldati, A., Faravelli, T., Ranzi, E., OpenSMOKE++: An object-oriented framework for the numerical modeling of reactive systems with detailed kinetic mechanisms (2015) Computer Physics Communications, 192, pp. 237-264, DOI: 10.1016/j.cpc.2015.02.014
- Eigen (http://eigen.tuxfamily.org/index.php?title=Main_Page)
- RapidXML (http://rapidxml.sourceforge.net/)
- Boost C++ (http://www.boost.org/)
- Intel MKL (https://software.intel.com/en-us/intel-mkl)
In order to generate the lookup tables, the OpenSMOKE++Suite framework is required (alberto.cuoci@polimi.it).
The flameletSMOKE solver is available for OpenFOAM versions 2.2, 2.3, 2.4, 4.x and dev We strongly recommend to use OpenSMOKE-4.x or OpenSMOKE-dev. Please note that since April 2017 OpenFOAM versions lower than 4.x are not longer supported.
Two different options are available to compile the code:
-
Minimalist + Intel MKL (recommended): the Intel MKL libraries are used to carry out the most CPU expensive operations
-
Minimalist: the most expensive CPU operations are carried out by the internal functions and classes directly available in flameletSMOKE
-
Instructions to compile the Minimalist+MKL version (recommended)
- Open the
mybashrc.minimalist.mkland adjust the paths to the Intel MKL library - Type:
source mybashrc.minimalist.mkl - Compile the flameletSMOKE library: from the
libs/thermophysicalModels/basicfolder typewmake - Compile the steady-state solver: from the
solvers/flameletSimpleSMOKEfolder typewmake - Compile the unsteady solvers:
- from the
solver/flameletPimpleSMOKEfolder typewmake - from the
solver/flameletPisoSMOKEfolder typewmake(available only for OpenFOAM 2.2, 2.3, and 2.4)
- Instructions to compile the Minimalist version
- Open the
mybashrc.minimalistand adjust the paths to the compulsory external libraries - Type:
source mybashrc.minimalist - Compile the flameletSMOKE library: from the
libs/thermophysicalModels/basicfolder typewmake - Compile the steady-state solver: from the
solvers/flameletSimpleSMOKEfolder typewmake - Compile the unsteady solvers:
- from the
solver/flameletPimpleSMOKEfolder typewmake - from the
solver/flameletPisoSMOKEfolder typewmake(available only for OpenFOAM 2.2, 2.3, and 2.4)
- from the
The cases folder contains simple test cases (Sandia CO/H2/N2 turbulent jet flame).
-
The first operation to carry out is the generation of the lookup-table using the
OpenSMOKE++Suiteframework. This can be done in 2 steps: i. generation of a database of steady state, non-adiabatic laminar flamelets: from thecases/lookUpTableGeneration/Sandia_COH2N2/flameletsfolder, after modifying the paths in theinput.dicfile, typeRun.sh. In theOutputfolder the generated flamelets are available as XML files. ii. generation of the look-up table from the flamelets generated in 1a: from thecases/lookUpTableGeneration/Sandia_COH2N2/libraryfolder, after modifying the paths in theinput.dicfile, typeRun.sh. In theOutputXMLfolder the generated look-up tables are available as XML files. -
Unsteady simulation: open the
cases/flameletPimpleSMOKE/Sandia_COH2N2folder, build the mesh using theblockMeshutility, and run the case using theflameletPimpleSMOKEsolver. Even if you are interested in steady state conditions, we strongly suggest to always start with unsteady calculations to create a reasonable first-guess solution for the application of the steady state solver. -
Steady state simuation: open the
cases/flameletSimpleSMOKE/Sandia_COH2N2folder, build the mesh using theblockMeshutility, and run the case using theflameletSimpleSMOKEsolver.