- CFD, Fluid Flow, FEA, Heat/Mass Transfer
- +91 987-11-19-383
- amod.cfd@gmail.com

Combustion Simulation in OpenFOAM

Combustion is one of the most complex phenomena in engineering which requires to deal with turbulent fluid flow, radiative and convective heat transfer, chemical reaction and pollutant formation, mixing and quenching, particle break-up, evaporation and mass transfer. Internal combustion engines, industrial furnaces used in metal and cement industries can greatly benefit with increased insight into the combustion system used there. Three primary mode of combustion can be nicely summarized in terms of images shown in later paragraphs.

This content is not approved or endorsed by OpenCFD Limited, the producer of the OpenFOAM software and owner of the OpenFOAM and OpenCFD trademarks.

Some of the resources from the web are listed below. ** IPR: ** the ownership and copyright of these documents lie with the author mentioned in the document.

- This web page from CHALMERS university is a comprehensive list of article, research report and presentations on OpenFOAM
- This is a wiki page which is an excellent attempt to categorize the documents with ease of search.
- fireFoam: pool fire
- sprayFoam (dieselFoam): injector centrally located in a vertical column - lagrangian/sprayFoam/aachenBomb
- Soot model in lagrangian/sprayFoam/aachenBomb

**Flame Wrinkling Parameter Xi [Ξ]**refers to the ratio [St/Su] where St is Turbulent Flame Speed and the object Su is Laminar Flame (deflagration) Speed (3 different models: unstrained, equilibrium, transport). The premixed laminar flame speed is proportional to (α R)^{0.5}where α is a diffusivity and R is a reaction rate. The laminar flame can be artificially thickened, without altering the laminar flame speed, by increasing the diffusivity and decreasing the reaction rate proportionally. The thickened flame can then be feasibly resolved on a coarse mesh while still capturing the correct laminar flame speed.- All species fractions are given on mass-basis.
**constant/chemistryProperties**- This file under 'constant' folder of the case lists initial chemical time step, ODE solver and solver properties to be used.**constant/combustionProperties**- Here turbulence chemistry interaction model and model constants are listed. Parameters such as fuel name [e.g. Propane, Methane, IsoOctane], laminar flame speed, equivalence ratio, XiModel, GuldersCoeffs, spark or ignition zone and its location / size / strength / duration, fuel fraction in ignition site ... are specified through this file.**constant/reactions**- The detailed reaction mechanism in native OpenFOAM format (m^{3}, kmole, Joules, K) or CHEMKIN format (mol, cm^{3}, s, K; cal) is specified through this file. The utility chemkinToFoam can be used to convert CHEMKINIII thermodynamics and reaction data files into native OpenFOAM format.**constant/thermo.compressibleGas**- Thermophysical data for the chemical species involved in reactant and product are listed here.- The initial and boundary conditions, in addition to standard U, p, T files, are specified by additional files such as CH4, CO2, H2O, N2, O2, Ydefault in 0/ directory to store chemical species mass fractions.
**Ydefault**specifies initial and boundary conditions for all species other than O2, N2 and fuel such as CH4, C7H16... that appear in reaction mechanism either on the reactants or products side.-
**ft**is the fuel mass fraction i.e. fuel/(fuel + oxidant [usually air]), fu is unburnt fuel fraction. **Mean reaction regress variable 'b' - also known as normalized fuel fraction**in file 0/b specifies non-dimensional temperature boundary condition at all flow inlets: fresh gas [unburnt mixture] b = 1.0 and burnt gas [burnt mixture] b = 0.0. This is based on assumption that the reaction is effectively instantaneous so the value jumps from 1 to 0 at the flame front.This is analogous to Reaction Progress Variable 'c' in CFX which subdivides the flow field in two different areas, the burnt and the unburnt mixture. In CFX, 'c' is defined as the probability of the reacted state of the premixed fluid. For example, c = 0.8 implies that the fluid (the gas mixture) at a given position is fully reacted during 80% of the time and non-reacted during the remaining 20% of the time. Burnt regions [c ~ 1] are treated as a diffusion flame whereas unburnt regions [c ~ 0] represent cold mixture.

- The object b is defined as b = [T
_{BURNT-GAS}- T] / [T_{BURNT-GAS}- T_{FRESH-GAS}], Ξ = Flame Wrinkling Parameter **Tu**: Temperature of unburnt gas at the boundaries and internal field is specified by object Tu in the file 0/Tu.

In addition to C-equation, FLUENT uses a G-equation which is the premixed flame-front tracking model. The flame stretch effect can be included by multiplying the source term for the progress variable with a stretch factor G representing the probability that the stretching will not quench the flame. If there is no stretching (G = 1), the probability that the flame will be unquenched is 100%. S

- μ
_{str}is the stretch factor coefficient for dissipation pulsation, the default value of 0.26 is suitable for most premixed flames - L is the turbulent integral length scale
- η is the Kolmogorov micro-scale
- ε
_{cr}is the turbulence dissipation rate at the critical rate of strain - g
_{cr}is the critical rate of strain: should be set to a very high value (10^{10}) to prevent flame stretching - B is a constant (typically 0.5)
- α is the thermal diffusivity, also known as molecular heat transfer coefficient. Laminar flame thickness ~ α / Su.

Most of the gaseous fossile fuels are mixture of gases such as 58% CH_{4} – 20% C_{2}H_{6} – 12% C_{3}H_{8} – 10% CO_{2} for a shale gas. IN ANSYS FLUENT, species transport model allows to use a *mixture template* to include the composition of the fuel. While specifying the composition of fuel and oxidation stream, one must include the products species such as CO_{2} and H_{2}O into the mixture even if they are absent in the initial composition.

There are 3 different ways to specify the mixture composition: volume fraction, mole fraction and mass fraction of each constituents. It is worth noting that the volume fraction and mole fraction of a consituent in gaseous mixture are always equal. The conversion of volume fraction to mass fraction is explained in table below.

Species | Volume Fraction | Molecular Weight | Mole Fraction | Mass in Mixture | Mass Fraction |

i | α | MW | η | m_{i} = MW_{i} × η_{i} | η = m_{i} / M |

[ - ] | [ - ] | [g/mole] | [ - ] | [g] | [ - ] |

A | 0.10 | 30 | 0.10 | 3.00 | 0.0806 |

B | 0.20 | 16 | 0.20 | 3.20 | 0.0860 |

C | 0.25 | 28 | 0.25 | 7.00 | 0.1882 |

D | 0.30 | 58 | 0.30 | 17.4 | 0.4677 |

E | 0.15 | 44 | 0.15 | 6.60 | 0.1774 |

Total | 1.00 | - | 1.00 | M = 37.2 | 1.000 |

The lower and upper flammability limits (LFL and UFL respectively) are the limiting fuel concentrations in air that can support flame propagation and lead to an explosion. Fuel concentrations outside those limits are non-flammable. For combustion cases, a value 10% – 50% larger than the stoichiometric mixture fraction can be used for the rich flammability limit of the fuel stream. Similarly, the limiting oxygen concentration (LOC) is the minimum O

The equivalence ratio is the ratio of fuel to oxidizer ratio in the unburnt to that of a stoichiometric mixture.

The gross or higher calorific value (HCV) usually expressed as [MJ/kg] or [MJ/mTurbulent reacting flame can be modeled using the mixture fraction approach (for non-premixed systems), the reaction progress variable approach (for premixed systems), the partially premixed approach or the composition PDF Transport approach. The calculation will be performed assuming that all properties except density and specific heat are constant. The constant transport properties (viscosity, thermal conductivity and mass diffusivity coefficients) is reasonably accurate when the flow is fully turbulent. The molecular transport properties will play a minor role compared to turbulent transport.

**CHEMKIN to OpenFOAM Format:** Note that the chemkinToFoam utility updates the data for Specific Heat Capacity only and the transport data for temperature coefficients of viscosity needs to be updated manually.

Cp/R = a

H/RT = a

S/R = a

Here a

- The first 7 numbers starting on the second line of each species entry (five of the second line and the first two of the third line) are the seven coefficients (a
_{1}, a_{2}... a_{7}, respectively) for the high-temperature range. - The next seven numbers are the coefficients (a
_{1}, a_{2}... a_{7}, respectively) for the low-temperature range. - H is defined as H(T) = ΔH
^{f}(298) + [H(T) - H(298 K)]. Thus, in general H(T) is not equal to ΔH^{f}(T) and hence the data for the reference elements is required to calculate ΔH^{f}(T).

The solvers related to combustion and chemical reaction are reactingFoam, XiFoam, rhoReactingFoam, PDRFoam (Porosity/Distributed Resistance solver such as for flame propagation over obstacles in HRSG - its development was funded by Shell), sprayFoam (earlier known as dieselFoam), reactingMultiphaseEulerFoam, reactingTwoPhaseEulerFoam. sprayFoma models flows involving compressible reacting flow with Lagrangian evaporating particles (such as diesel engines) in a three-dimensional domain.

__Fast Reactions__: reaction rate is limited by turbulent mixing. Here, Da >> 1, chemical reaction rates are fast: mixing limited progress of combustion. Eddy Dissipation Model (EDM) are used in some of the commercial programs in this case. In other words, the eddy-dissipation model computes the rate of reaction under the assumption that chemical kinetics are fast compared to the rate at which reactants are mixed by turbulent fluctuations (eddies).__Slow Reactions__: reaction rate is limited by chemical kinetics. Here Da << 1, chemical reaction rates are slow: chemistry limits progress of combustion. Finite Rate Chemistry Model (FRC) is appropriate for these cases.- Conservation of mass and species has to be enforced in all combustion models.

Combustion of homogeneous fuel-air mixture: in ANSYS FLUENT, PDF Mixture Fraction model represents the transport of species by adding two equations, one of the average mixing fraction and another for the variance of the average mixture fraction. In furnaces and in most of the industrial combustions, heat transfer occurs more than 80 % by radiation. To
represent this phenomenon and indispensable for determining the correct flame temperature, a radiation model is required. In FLUENT, the Discrete Ordinate Model (DOM) is the most robust model which covers the widest range of optical thickness. Additionally, it is important to take into account the influence of the flue gases (participating media) in radiation, which are mainly triatomic gases water vapor and CO_{2}. The emissivity of these gases in FLUENT is calculated with the weighted sum of gray gases model (WSGGM) - set in material definition for variable "Radiation Absorption Coeff". The material definition also requires "critical flame strain rate" as input. The value of 3000 [1/s] can be set which is the lower bound for the typical range of near-stoichiometric methane flames. Typical values for CH_{4} lean premixed combustion range from 3000 to 8000 [s^{−1}].

Combustion of fuel droplets:

Schematic of diffusion flames:

Experimental laminar burning velocities were determined using the burner method and the spontaneous chemiluminescence technique.

**fireFoam** -- simulation of transport of heat and smoke in fire incidents. Excerpts from <<Verification, validation and evaluation of FireFOAM as a tool for performance design>> - "There are mainly two versions of FireFOAM code. One is released as a solver for transient fire and diffusion flame simulation by Open CFD (an official release). The other is an extended version of the official release, and it is maintained by FM Global consisting of modified libraries, solvers and cases for fire research."

Fires are essentially diffusion flames where fuel and air are mixing while burning as the fire propagates and increase in size and intensity. Thus, fireFoam is a turbulent diffusion combustion model. The OpenFOAM version includes fireFoam solver with "LES turbulence model" and has capability of simulating Lagrangian sprays such water sprinkler sprays for fire suppression. E.g. combustion>>fireFoam>>les>>flameSpreadWaterSuppressionPanel. As per the source code fireFoam.C, fireFoam is a "Transient solver for fires and turbulent diffusion flames with reacting particle clouds, surface film and pyrolysis modelling." Finite volume discrete ordinates model (fvDOM) is to solve radiation heat transfer equation.

The desired objective to simulate fire phenomena is to get insight into fire detection, heat transfer and temperature rise of structures and smoke expansion / filling rates. Due to sheer scale and hazard of fire, actual testing and measurements are not only expensive sometime impossible.

This simple tutorial case is a 2D domain where methane is supplied through a small opening at the bottom face. The combustion model used is infinitelyFastChemistry and no pyrolysisZone is active.The chemical reaction is specified through the file 'reactions'.

In addition to a p_rgh file, this solver needs another similar looking file ph_rgh. As per phrghEqn.H, p = ph_rgh + rho*gh + pRef. The 0/ directory also has a special file named FSDOmega. This is applicable to combustion model FSD which stands for "Flame Surface Density". A detailed description can be found in file FSD.H.

The variation of concentration of methane and CO2 with time and space are shown in the following video.

A tutorial case with 3D version of such phenomena is modelled using a cubical box as shown below.

Another interesting example under fireFoam is modeling pyrolysis of wood. The computational domain used in tutorial combustion>>fireFoam>>>LES>>flameSpreadWaterSuppressionPanel is described below.

**sprayFoam: Diesel Spray Combustion with Lagrangian method - lagrangian/sprayFoam/aachenBomb **

- Strong interaction between turbulence and chemistry.
- Fine droplets size << mesh size keeping in mind limitations on computational resource.
- Lagrangian modeling of spray droplets or parcels eliminating the need to fully resolve the spray region near injector.
- Necessity to model collision, evaporation and break-up of atomized fuel parcels.

**XiFoam - premixed and partially pre-mixed turbulent combustion**

XiFoam: Homogeneous Combustion of Propane - the computational domain is shown by following images.

Temperature at various time [in seconds] are shown below.

Temperature: t = 0.005Temperature: t = 0.010

Temperature: t = 0.015

Temperature: t = 0.020

**reactingFoam**

- This is a transient, incompressible solver based on PIMPLE algorithm for non-premixed turbulent combustion of gaseous hydrocarbons.
- The turbulence-chemistry interaction models available for this solver are [a] infinitelyFastChemistry - a single step combustion reaction and [b] diffusion based combustion model - also based on single step combustion reaction. [c] PaSR: Partially Stirred Reactor - a finite rate chemistry model based on both turbulence and chemistry time scales.
- The compressible version is
**rhoReactingFoam** - 0/Ydefault file is used in case many type of species share a common set of boundary conditions i.e. a default set which is useful in case there are many species involved.

Mixing and Combustion of Methane and Oxygen - the computational domain is shown by following images.

Velocity Magnitude: t = 0.5 [s]

Mass Fraction of Methane: t = 0.5 [s]

Mass Fraction of Oxygen: t = 0.5 [s]

Temperature: t = 0.5 [s]

/* Comments based on A Brief tutorial for XiFoam in OpenFOAM 1.7.x by Ehsan Yasari and Simulating the combustion of gaseous fuels 6th OpenFOAM Workshop Training Session by Dominik Christ and files in tutorial folders */ // Gulders, GuldersEGR, constant, SCOPE (PDRFoam); laminarFlameSpeedCorrelation Gulders; //---------------------------------------------------------------------------- /* Partially Stirred Reactor [PaSR] model - coalChemistryFoam, sprayFoam, simpleReactingParcelFoam */ /* combustionModel PaSR; active true; //False PaSRCoeffs { Cmix 1.0; turbulentReaction on; // sprayFoam: set to 'yes'; useReactionRate true; // simpleReactingParcelFoam } */ //---------------------------------------------------------------------------- // must be specified, if Gulders/GuldersEGR is selected above fuel Propane; //fuelFile "fuels/propane.dat"; //PDRFoam //Laminar Flame Speed - if laminarFlameSpeedCorrelation = constant Su Su [0 1 -1 0 0 0 0] 0.434; //model to calculate laminar flame speed: unstrained, equilibrium, transport SuModel unstrained; // The ratio [fuel-to-oxidizer ratio] / [stoichiometric fuel-to-oxidizer ratio] equivalenceRatio equivalenceRatio [0 0 0 0 0 0 0] 1; // The strain rate at extinction which obtained from the Markstein length by // extrapolating to Su --> 0 sigmaExt sigmaExt [0 0 -1 0 0 0 0] 100000; /*Methods to calculate the Xi parameters: [1] fixed (Xi = constant), [2]algebraic: Xi == scalar(1)+ (scalar(1)+(2*XiShapeCoef)*(scalar(0.5)-b))*XiCoef*sqrt(up/(Su+SuMin))*Reta; [3]transport: solve a transport equation for Xi */ XiModel transport; //Coefficients used in algebraic model for Xi //Xi = 1 + [1 + 2 * XiShapeCoef *(0.5 - b)] * XiCoef * sqrt[u' / (Su + Su_Min)] * R_eta //R_eta = u' / sqrt(epsilon * tau_eta) //tau_eta = sqrt(mu_unburnt / epsilon / rho_unburnt) XiCoef XiCoef [0 0 0 0 0 0 0] 0.62; XiShapeCoef XiShapeCoef [0 0 0 0 0 0 0] 1; //calculation of velocity fluctuation: u(t) = u_mean + u' //u' = uPrimeCoef * sqrt(2*k/3), k = TKE (Turbulent Kinetic Energy) uPrimeCoef uPrimeCoef [0 0 0 0 0 0 0] 1; //Coefficients for calculation of laminar flame speed according to the Gulders //formulation for specific fuel. GuldersCoeffs { Methane { W 0.422; eta 0.15; xi 5.18; alpha 2; beta -0.5; f 2.3; } Propane { W 0.446; eta 0.12; xi 4.95; alpha 1.77; beta -0.2; f 2.3; } IsoOctane { W 0.4658; eta -0.326; xi 4.48; alpha 1.56; beta -0.22; f 2.3; } } RaviPetersenCoeffs { HydrogenInAir { TRef 320; pPoints ( 1.0e05 5.0e05 1.0e06 2.0e06 3.0e06 ); EqRPoints (0.5 2.0 5.0); alpha ( ( (-0.03 -2.347 9.984 -6.734 1.361) ( 1.61 -9.708 19.026 -11.117 2.098) ( 2.329 -12.287 21.317 -11.973 2.207) ( 2.593 -12.813 20.815 -11.471 2.095) ( 2.728 -13.164 20.794 -11.418 2.086) ) ( ( 3.558 0.162 -0.247 0.0253 0 ) ( 4.818 -0.872 -0.053 0.0138 0 ) ( 3.789 -0.312 -0.208 0.028 0 ) ( 4.925 -1.841 0.211 -0.0059 0 ) ( 4.505 -1.906 0.259 -0.0105 0 ) ) ); beta ( ( ( 5.07 -6.42 3.87 -0.767) ( 5.52 -6.73 3.88 -0.728) ( 5.76 -6.92 3.92 -0.715) ( 6.02 -7.44 4.37 -0.825) ( 7.84 -11.55 7.14 -1.399) ) ( ( 1.405 0.053 0.022 0 ) ( 1.091 0.317 0 0 ) ( 1.64 -0.03 0.07 0 ) ( 0.84 0.56 0 0 ) ( 0.81 0.64 0 0 ) ) ); } } // yes or no ignite yes; ignitionSites ( { location (0.0 0.0 0.0005); diameter 0.003; start 0.0; duration 0.003; strength 2.0; } ); ignitionSphereFraction 1; ignitionThickness ignitionThickness [0 1 0 0 0 0 0] 0.001; ignitionCircleFraction 0.5; ignitionKernelArea ignitionKernelArea [0 2 0 0 0 0 0] 0.001;

thermoType { type heheuPsiThermo; mixture homogeneousMixture; //singleStepReactingMixture; reactingMixture [sprayFoam]; inhomogeneousMixture; transport sutherland; thermo janaf; equationOfState perfectGas; specie specie; energy absoluteEnthalpy; //sensibleEnthalpy; } stoichiometricAirFuelMassRatio stoichiometricAirFuelMassRatio [0 0 0 0 0 0 0] 15.675; //homogeneousMixture: reactants, inhomogeneousMixture: fuel, oxidant reactants { specie { //keyword nMoles 24.8095; molWeight 29.4649; } thermodynamics { Tlow 200; //Lower, Upper and Common temperatures Thigh 5000; Tcommon 1000; // Cp / R = a1 + a2 * T + a3 * T^2 + a4 * T^4 + a5 * T^5, a6:enthalpy offset,a7:entropy offset highCpCoeffs (3.28069 0.00195035 -6.53483e-07 1.0024e-10 -5.64653e-15 -1609.55 4.41496); lowCpCoeffs (3.47696 0.00036750 1.84866e-06 -9.8993e-10 -3.10214e-14 -1570.81 3.76075); } transport { //Sutherland coefficient, mu = As /[1+Ts/T] * [Ts]^0.5 As 1.67212e-06; Ts 170.672; } } // inhomogeneousMixture only /* oxidant { specie { nMoles 1; molWeight 28.8504; } thermodynamics { Tlow 200; Thigh 6000; Tcommon 1000; highCpCoeffs ( 3.10131 0.00124137 -4.18816e-07 6.64158e-11 -3.91274e-15 -985.266 5.35597 ); lowCpCoeffs ( 3.58378 -0.000727005 1.67057e-06 -1.09203e-10 -4.31765e-13 -1050.53 3.11239 ); } transport { As 1.67212e-06; Ts 170.672; } } */ inhomogeneousMixture only //homogeneousMixture: products, inhomogeneousMixture: burntProducts, products { specie { nMoles 1; molWeight 28.3233; } thermodynamics { Tlow 200; Thigh 5000; Tcommon 1000; highCpCoeffs (3.1060 0.00179682 -5.94382e-07 9.04998e-11 -5.08033e-15 -11003.7 5.11872); lowCpCoeffs (3.4961 0.00065036 -2.08029e-07 1.22910e-09 -7.73697e-13 -11080.3 3.18978); } transport { As 1.67212e-06; Ts 170.672; } } // singleStepReactingMixture; reactingMixture; /* inertSpecie N2; fuel CH4; chemistryReader foamChemistryReader; foamChemistryFile "$FOAM_CASE/constant/reactions"; foamChemistryThermoFile "$FOAM_CASE/constant/thermo.compressibleGas"; */ //sprayFoam //CHEMKINTransportFile "$FOAM_CASE/chemkin/transportProperties"; //sprayFoam /* liquids { C7H16 { defaultCoeffs yes; } } solids { // none } */

coldEngineFoam, engineFoam, moveEngineMesh, sprayEngineFoam, engineCompRatio, engineSwirl are some of the utilities available in OpenFOAM. **moveEngineMesh** only move the mesh and intended to ensure the mesh motions are working properly and to determine if the mesh quality will be acceptable during the compression/expansion strokes. **coldEngineFoam** is engineFoam without combustion. In the solver engineFoam, "no special pre-processing for movement of pistons is required because mesh motion is integrated in the solver where at every time step mesh nodes are moved and mesh topology eventually changed when needed. Thus, a mesh is used for a certain crank angle interval (CA) only. However, no new layer of mesh is generated with setting "engineMesh layered;" in engineGeometry dictionary. The mesh is compressed and expanded as the piston moves towards TDC and BDC respectively.

The main consideration of an engine mesh is to have separate patches for cylinder head, liner and piston and the appropriate values in the dictionary engineGeometry. engineMesh will still work with additional patches other than the three mentioned above but only the liner and piston patches will move, everything else will stay stationary. Other patches can be moved using utility fvMotionSolverEngineMesh.

**engineCompRatio** Calculate the geometric compression ratio. As described in the source code, "Note that if you have valves and/or extra volumes it will not work, since it calculates the volume at BDC and TCD".

The animation of temperature profile is embedded below. This is an example of spark ignition and this case cannot be used to simulation combustion of diesel injection.

Excerpt from engineFoam.C:

Solver for internal combustion engines. Combusting RANS code using the b-Xi two-equation model. Xi may be obtained by either the solution of the Xi transport equation or from an algebraic expression. Both approaches are based on Gulder's flame speed correlation which has been shown to be appropriate by comparison with the results from the spectral model.

Strain effects are incorporated directly into the Xi equation but not in the algebraic approximation. Further work need to be done on this issue, particularly regarding the enhanced removal rate caused by flame compression. Analysis using results of the spectral model will be required.

For cases involving very lean Propane flames or other flames which are very strain-sensitive, a transport equation for the laminar flame speed is present. This equation is derived using heuristic arguments involving the strain time scale and the strain-rate at extinction. The transport velocity is the same as that for the Xi equation.

Solver **sprayEngineFoam** can be used for those simulations. Official description of sprayEngineFoam is "Transient PIMPLE solver for compressible, laminar or turbulent engine flows with spray parcels".

One of the functions used in controlDict file is to adjust deltaT during the run-time:

functions { timeStep { type coded; libs ("libutilityFunctionObjects.so"); name setDeltaT; code #{ #}; codeExecute #{ const Time& runTime = mesh().time(); if (runTime.timeToUserTime(runTime.value()) >= -15.0) { const_cast

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // Parameters specified in this file are for adjusting the mesh parameters for // the mesh motion when piston moves from Top Dead Centre [TDC] to Bottom Dead // Centre [BDC] for every crank ange step size specified. The parameters are // read by engineTime.H // How engine mesh are to be treated when piston moves? engineMesh layered; //layeredAR; conRodLength conRodLength [0 1 0 0 0 0 0] 0.1470; // L bore bore [0 1 0 0 0 0 0] 0.0920; // D stroke stroke [0 1 0 0 0 0 0] 0.0840; // S clearance clearance [0 1 0 0 0 0 0] 0.00115; // c rpm rpm [0 0 -1 0 0 0 0] 1500; // N // Intake swirl specification - helpful when valve geometry is not modelled. swirlAxis (0.0 0.0 1.0); swirlCenter (0.0 0.0 0.056); swirlRPMRatio swirlRPMRatio [ 0 0 0 0 0 0 0 ] 2.0; swirlProfile swirlProfile [ 0 0 0 0 0 0 0 ] 3.11; ---------------------------------------------------------------------------- | | | | | | | | * |``` `````` ```| '''''' Clearance = c | | |------- | | _______________ | . | |! !| /|\ Piston Motion \|/ |! O !| | x |!........\......!| | | \ | \|/ | \ | ` | \ | . \ /|\ \ | O | / |`\/ Crank Angle, θ: -180 when piston is at BDC. | / O---------------------> Crank Centrer = S/2, x = c + r *(1 + L/r - cos(θ) - L/r * [1 - (sin(θ) * r/L)

Radiative heat transfer is a predominate mode of heat transfer in combustion. The dictionaries Qr, IDefault and G are used for this purpose. Qr is for viewFactor radiation model only [this method cannot handle participating media and is used when just surface to surface radiation is to be calculated]. IDefault and G are for other radiation models. Some versions of OpenFOAM doesn't support radiative transport within a solid media such as radiation through semi-transparent solid. In such cases, radiation can only be defined for fluid region(s).

The files specifying injection of particles in some older versions of OpenFOAM are [a] /constant/injectorProperties, [b] /constant/sprayProperties and in version 2.0 or v1606+ it is /constant/sprayCloudProperties. For (solid) particle injection as in multi-phase flows, the dictionary file kinematicCloudProperties is used.

Spray phenomena involves [a] particle breakup - breakupModel / atomizationModel, [b] evaporation and heat transfer -evaporationModel / heatTransferModel, [c] droplet drag - dragModel, [d] spray induced turbulence - dispersionModel, [e] combustion.

**parcel**: collection of droplets and is a representation of a gathering of real particles. This construction is plainly made because that it is almost always too computational demanding to simulate all the real particles.

**combustion >> coalChemistryFoam >> simplifiedSiwek**: As per the source code, coalChemistryFoam is a transient solver for: [a] compressible, [b] turbulent flow with [I] coal and limestone parcel injections, [II] energy source and [III] combustion.
The coal particles are injected as per specified positions mentioned in the file constant/coalCloud1Positions and constant/limestonePositions.

Excerpts from ANSYS Tutorials: "When you use the non-premixed combustion model, you need to create a PDF table. This table contains information on the thermo-chemistry and its interaction with turbulence. ANSYS Fluent interpolates the PDF during the solution of the non-premixed combustion model."

Examples includes jets, jets in cross- or co- or swirl-flows.The calculation method for temperature depends on whether the model is adiabatic or non-adiabatic. ANSYS FLUENT has two options to model pre-mixed combustion.

Premixed combustion model | Features |

Adiabatic | Adiabatic Temperature of Burnt Products Tad, which is the temperature of the burnt products under adiabatic conditions needs to be specified. This temperature will be used to determine the linear variation of temperature in an adiabatic premixed combustion calculation: T = (1 − c) × Tu + c × Tad |

Non-Adiabatic | For non-adiabatic models, the Heat of Combustion per unit mass of fuel and the Unburnt Fuel Mass Fraction need to be specified. The solver uses these values to compute the heat losses or gains due to combustion and include these losses/gains in the energy equation that it uses to calculate temperature. The Heat of Combustion can be specified only as a constant value, but one can specify either a constant value or use a UDF for the Unburnt Fuel Mass Fraction. |

Premixed flames are less stable (it is a wave) but cleaner! It is the way to the future with potential of low NOX, CO and soot.

The content on CFDyna.com is being constantly refined and improvised with on-the-job experience, testing, and training. Examples might be simplified to improve insight into the physics and basic understanding. Linked pages, articles, references, and examples are constantly reviewed to reduce errors, but we cannot warrant full correctness of all content.

Copyright © 2017 - All Rights Reserved - CFDyna.com

Template by OS Templates