|
[Sponsors] |
June 24, 2015, 14:26 |
Combustion Modelling with OF - Overview
|
#1 |
New Member
EG
Join Date: Jun 2013
Posts: 3
Rep Power: 13 |
I am relatively new with the combustion modelling in OpenFoam.
What I find hard from the user guide to understand is which models are currently available (like flamelet, PSR etc ). So my questions are the following 1. Can someone provide the list of models available and how to "call" them in the constant/combustionProperties file? I went through the tutorials and for example at dieselEngien it is pretty clear it is a partially stirred reactor model however of at fireFoam it is an infinitely fast model. What I do not know though is how to find the full list of the models available 2. Any good tutorials/material relevant to Diesel Engine combustion modelling with OpenFoam 3. Any links to other models that do not come with the standard version of OpenFoam? Thanks!!! |
|
December 11, 2015, 10:03 |
|
#2 |
Member
Ben Jankauskas
Join Date: Jun 2013
Location: Exeter
Posts: 34
Rep Power: 13 |
Hi,
I can help you with your first question, unfortunately I have no idea about the 2nd and the 3rd. There couple of ways of finding out the models currently available in OpenFOAM. First one involves making the solver complain and output all the possible model combinations to you when you try to run it. This can be done by modifying $FOAM_CASE/constant/combustionProperties and changing the name value after combustionModel to anything else, eg. dummy An example from modified combustionProperties file: Code:
combustionModel dummy<psiChemistryCombustion>; Code:
Selecting combustion model dummy<psiChemistryCombustion> --> FOAM FATAL ERROR: Unknown psiCombustionModel type dummy<psiChemistryCombustion> Valid combustionModels are : 15 ( noCombustion<psiThermoCombustion> infinitelyFastChemistry<psiThermoCombustion,gasHThermoPhysics> diffusion<psiThermoCombustion,constGasEThermoPhysics> infinitelyFastChemistry<psiThermoCombustion,constGasEThermoPhysics> PaSR<psiChemistryCombustion> laminar<psiChemistryCombustion> FSD<psiThermoCombustion,constGasHThermoPhysics> infinitelyFastChemistry<psiThermoCombustion,constGasHThermoPhysics> diffusion<psiThermoCombustion,gasEThermoPhysics> diffusion<psiThermoCombustion,constGasHThermoPhysics> diffusion<psiThermoCombustion,gasHThermoPhysics> infinitelyFastChemistry<psiThermoCombustion,gasEThermoPhysics> FSD<psiThermoCombustion,gasEThermoPhysics> FSD<psiThermoCombustion,constGasEThermoPhysics> FSD<psiThermoCombustion,gasHThermoPhysics> ) It is a good when you want to find out possible model options for your case, but if you would like to learn about ALL of the models and their combinations, then you might miss out some of them. Nonetheless, this is a great and quick way to do it. Second option requires you to look through the code. Inside $FOAM_SRC there is a folder called combustionModels it contains base class, all derived classes and finally all runtime selectable derived classes. Here's an example of what is inside $FOAM_SRC/combustionModels: Code:
. .. combustionModel diffusion FSD infinitelyFastChemistry laminar lnInclude Make noCombustion PaSR psiCombustionModel rhoCombustionModel singleStepCombustion Hope this gives you a good enough idea. Ben |
|
December 27, 2015, 20:38 |
Models available
|
#3 | |
Senior Member
Thomas Oliveira
Join Date: Apr 2015
Posts: 114
Rep Power: 12 |
Quote:
makeCombustionTypes(noCombustion, psiThermoCombustion, psiCombustionModel); makeCombustionTypes(noCombustion, rhoThermoCombustion, rhoCombustionModel); makeCombustionTypes(laminar, psiChemistryCombustion, psiCombustionModel); makeCombustionTypes(laminar, rhoChemistryCombustion, rhoCombustionModel); makeCombustionTypes(PaSR, psiChemistryCombustion, psiCombustionModel); makeCombustionTypes(PaSR, rhoChemistryCombustion, rhoCombustionModel); makeCombustionTypesThermo(diffusion, psiThermoCombustion, constGasEThermoPhysics, psiCombustionModel); makeCombustionTypesThermo(diffusion, psiThermoCombustion, constGasHThermoPhysics, psiCombustionModel); makeCombustionTypesThermo(diffusion, psiThermoCombustion, gasEThermoPhysics, psiCombustionModel); makeCombustionTypesThermo(diffusion, psiThermoCombustion, gasHThermoPhysics, psiCombustionModel); makeCombustionTypesThermo(diffusion, rhoThermoCombustion, constGasEThermoPhysics, rhoCombustionModel); makeCombustionTypesThermo(diffusion, rhoThermoCombustion, constGasHThermoPhysics, rhoCombustionModel); makeCombustionTypesThermo(diffusion, rhoThermoCombustion, gasEThermoPhysics, rhoCombustionModel); makeCombustionTypesThermo(diffusion, rhoThermoCombustion, gasHThermoPhysics, rhoCombustionModel); makeCombustionTypesThermo(FSD, psiThermoCombustion, constGasEThermoPhysics, psiCombustionModel); makeCombustionTypesThermo(FSD, psiThermoCombustion, constGasHThermoPhysics, psiCombustionModel); makeCombustionTypesThermo(FSD, psiThermoCombustion, gasEThermoPhysics, psiCombustionModel); makeCombustionTypesThermo(FSD, psiThermoCombustion, gasHThermoPhysics, psiCombustionModel); makeCombustionTypesThermo(FSD, rhoThermoCombustion, constGasEThermoPhysics, rhoCombustionModel); makeCombustionTypesThermo(FSD, rhoThermoCombustion, constGasHThermoPhysics, rhoCombustionModel); makeCombustionTypesThermo(FSD, rhoThermoCombustion, gasEThermoPhysics, rhoCombustionModel); makeCombustionTypesThermo(FSD, rhoThermoCombustion, gasHThermoPhysics, rhoCombustionModel); makeCombustionTypesThermo(infinitelyFastChemistry, psiThermoCombustion, constGasEThermoPhysics, psiCombustionModel); makeCombustionTypesThermo(infinitelyFastChemistry, psiThermoCombustion, constGasHThermoPhysics, psiCombustionModel); makeCombustionTypesThermo(infinitelyFastChemistry, psiThermoCombustion, gasEThermoPhysics, psiCombustionModel); makeCombustionTypesThermo(infinitelyFastChemistry, psiThermoCombustion, gasHThermoPhysics, psiCombustionModel); makeCombustionTypesThermo(infinitelyFastChemistry, rhoThermoCombustion, constGasEThermoPhysics, rhoCombustionModel); makeCombustionTypesThermo(infinitelyFastChemistry, rhoThermoCombustion, constGasHThermoPhysics, rhoCombustionModel); makeCombustionTypesThermo(infinitelyFastChemistry, rhoThermoCombustion, gasEThermoPhysics, rhoCombustionModel); makeCombustionTypesThermo(infinitelyFastChemistry, rhoThermoCombustion, gasHThermoPhysics, rhoCombustionModel); |
||
December 27, 2015, 22:03 |
Available models depicted
|
#4 |
Senior Member
Thomas Oliveira
Join Date: Apr 2015
Posts: 114
Rep Power: 12 |
The following numbered list summarises some research on the documentation and on the code about the combustion models available. This post makes more sense if read together with the previous post.
1) For each compressibility-based model (psi*), the correspondent density-based model (rho*) is available. For the sake of simplicity, just the psi* models are addressed in the next points. 2) The file makeCombustionTypes.H defines the macros makeCombustionTypes and makeCombustionTypesThermo. From it: 2.1) psiCombustionModel is the RTS (runtime selection) table to which the constructor of the class is added. 2.2) makeCombustionTypes adds to the RTS table a class CombModel<CombType>. CombModel is [noCombustion | laminar | PaSR]. CombType is psiThermoCombustion for noCombustion, or psiChemistryCombustion for laminar and PaSR. 2.3) makeCombustionTypesThermo adds to the RTS table a class CombModel<CombType, Thermo>. CombModel is [diffusion | FSD | infinitelyFastChemistry]. CombType is psiThermoCombustion. Thermo is [constGasEThermoPhysics | constGasHThermoPhysics | gasEThermoPhysics | gasHThermoPhysics]. 3) In the file thermoPhysicsTypes.H, we have: typedef constTransport<species::thermo< hConstThermo<perfectGas<specie>>, sensibleInternalEnergy >> constGasEThermoPhysics typedef constTransport< species::thermo < hConstThermo < perfectGas<specie> >, sensibleEnthalpy > > constGasHThermoPhysics typedef sutherlandTransport< species::thermo < janafThermo < perfectGas<specie> >, sensibleInternalEnergy > > gasEThermoPhysics typedef sutherlandTransport< species::thermo < janafThermo < perfectGas<specie> >, sensibleEnthalpy > > gasHThermoPhysics 3.1) The relevant template classes are: constTransport<Thermo> and sutherlandTransport<Thermo> species::thermo<Thermo, Type> hConstThermo<EquationOfState> and janafThermo<EquationOfState> perfectGas<Specie> 3.2) constGasEThermoPhysics and constGasHThermoPhysics are constTransport, i.e., they use constant values for dynamic viscosity, thermal conductivity and thermal diffusivity. They also use hConstThermo, i.e., constant thermodynamic properties. 3.3) gasEThermoPhysics and gasHThermoPhysics are sutherlandTransport, i.e., they use values for dynamic viscosity, thermal conductivity and thermal diffusivity that depend on pressure and temperature. They also use janafThermo, i.e., the thermodynamic properties are evaluated from pressure and temperature using JANAF tables. 3.4) constGasEThermoPhysics and gasEThermoPhysics uses sensibleInternalEnergy, i.e., the sensible internal energy is used in the energy equation. According to http://cfd.direct/openfoam/user-guide/thermophysical/, "we refer to absolute energy where heat of formation is included, and sensible energy where it is not." 3.5) constGasHThermoPhysics and gasHThermoPhysics uses sensibleEnthalpy, i.e., the enthalpy is used in the energy equation. I hope this helps. Last edited by t.oliveira; December 28, 2015 at 14:37. |
|
Tags |
combustio, combustion engine, combustion model |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Combustion modelling in OpenFOAM - Difficulties | AleDR | OpenFOAM Running, Solving & CFD | 23 | January 31, 2021 00:40 |
Modelling Combustion in Porous Zone | tanjinjack | FLUENT | 2 | September 26, 2016 05:10 |
modelling combustion in micro gas turbine | zackufairu | ANSYS | 0 | April 10, 2015 03:33 |
Combustion modelling with energy source | Marc_L | FLUENT | 0 | July 13, 2010 08:58 |
Combustion Modelling | Ridwan | FLUENT | 1 | June 27, 2005 10:43 |