1D Flame Speed Analysis
FLAME SPEED ANALYSIS
THEORY:
Flame Speed tells us how fast the flame diffuses i.e. When we ignite the flame at one point how soon the flame propagates and reaches the other end. The reaction properties alone for the flame are not important, we consider the diffusion properties as well. When the species diffuses fast, flame speed is going to be higher and vice versa for slow diffusion of the species.
For a premixed flame shown in the figure above fuel and air are mixed and ignition is achieved by means of a heat source. Flame propagates when ignited and will stop at a particular region. Premixed flame has burned and unburned regions. Region is separated by burned and unburned regions and we treat the flame as a 1D flame numerically, because the characteristics of the flame are oriented towards one direction.
1. What type of analysis is this, steady-state or transient ?
Because of its transient properties the flame propagates with respect to time causing a change in species concentration along with the location of the flame front f. The temperature and pressure will also vary
The speed at which the flame propagates is represented as SL= f ( T, P, Y)
where,
S - Speed of flame
L - Laminar
But we translate this problem to a steady state problem by using flame reference coordinates as shown in the image above. i.e. We fix the orgin at the flame front and as the flame moves the coordinates move as well. Now with respect to the flame and orgin it becomes a steady state problem. So the unburned gases coming into the flame will get burned and go out as burned gases.
Thus flame coordinates are helpful in translating an unsteady problem into a steady probem. Also flame speed is an attribute that deals with steady state and not the unsteady problem as it takes too much time for computations.
2. Why do we need a separate file to simulate Hydrogen Mechanism can't it be done using GRI 3.0 ?
Yes, the hydrogen mechanism can be simulated using GRI 3.0. The presence of dedicated file for Hydrogen Mechanism will help us in ways such as:
- Take less time for the results to converge. Also the mechanism is optimized in such a way to provide accurate results
- GRI 3.0 works well with hydrocarbons as the mechanism file helps us in providing good results for our calculations. The same way a dedicated mechanism file for a hydrogen mechanism is also important for getting better results.
3. What do you infer from the graphs, Explain in detail for both the graphs, So if you had to state one value as the 1D Flame which one would you say it is and Why ? What does the sudden increase in velocity or temperature tell us ?
The code for the GRI mechanism is shown below:
"""
1D Flame Speed Analysis for GRI 3.0 Mechanism
"""
from __future__ import print_function
import cantera as ct
import numpy as np
import matplotlib.pyplot as plt
#Simulation Parameters
p = ct.one_atm #static pressure [Pa]
Tin = 300.0 # unburned gas temperature [K]
reactants = 'CH4:0.45, O2:1.0, N2:3.76'
width = 0.01 # m
#IdealGasMix object used to compute mixture properties
gas = ct.Solution('gri30.xml', 'gri30_mix')
gas.TPX = Tin, p, reactants
#Flame Object
f = ct.FreeFlame(gas, width = width)
f.set_refine_criteria(ratio = 3, slope = 0.07, curve = 0.14)
print(f.grid)
f.solve(loglevel=1, refine_grid=True, auto=False)
# Volumetric Heat Release Rate
Q = abs(sum(f.standard_enthalpies_RT * f.net_production_rates, 0) * ct.gas_constant * f.T)
plt.subplot(3,1,1)
plt.grid ('on')
plt.plot(f.grid, f.T)
plt.ylabel('Flame Temperature [k]')
plt.subplot(3,1,2)
plt.plot(f.grid, f.u)
plt.grid ('on')
plt.ylabel('Flame Velocity [m/sec]')
plt.subplot(3,1,3)
plt.plot(f.grid, Q)
plt.grid ('on')
plt.xlabel('width of the Flame')
plt.ylabel('Volumetric Heat release[J/m3]')
plt.figure(2)
plt.plot(f.grid,f.X[gas.species_index('CO2'), :])
plt.xlabel("Flame Width")
plt.ylabel("Mole Fraction of CO2")
plt.title("Variation of Mole Fraction in CO2")
plt.grid('on')
# Concentration of CO2 in the GRI mechanism
plt.figure(3)
plt.plot(f.grid, f.concentrations[gas.species_index('CO2'), :])
plt.grid('on')
plt.xlabel("Flame Width")
plt.ylabel("Concentration of CO2")
plt.show()
The output we get is shown below:
Similiarly we provide the code for the Hydrogen Mechanism as shown below:
"""
1D Flame Speed Analysis for Hydrogen Mechanism
"""
from __future__ import print_function
import cantera as ct
import numpy as np
import matplotlib.pyplot as plt
#Simulation Parameters
p = ct.one_atm
T_inlet = 300.0
reactants = 'H2:2, O2:0.5'
width = 0.01
#Ideal Gas mix object used to compute mixture properties
gas = ct.Solution('H2_mech.cti')
gas.TPX = T_inlet, p, reactants
#Flame Object for hydrogen mechanism
f = ct.FreeFlame(gas, width=width)
f.set_refine_criteria(ratio=3, slope=0.07, curve=0.14)
print(f.grid)
f.solve(loglevel=1, refine_grid=True, auto=False)
# Volumetric Heat Release Rate
Q = abs(sum(f.standard_enthalpies_RT * f.net_production_rates, 0) * ct.gas_constant * f.T)
plt.subplot(3,1,1)
plt.grid ('on')
plt.plot(f.grid, f.T)
plt.ylabel('Flame Temperature [k]')
plt.subplot(3,1,2)
plt.plot(f.grid, f.u)
plt.grid ('on')
plt.ylabel('Flame Velocity [m/sec]')
plt.subplot(3,1,3)
plt.plot(f.grid, Q)
plt.grid ('on')
plt.xlabel('width of the Flame')
plt.ylabel('Volumetric Heat release[J/m3]')
plt.figure(2)
plt.plot(f.grid,f.X[gas.species_index('CO2'), :])
plt.xlabel("Flame Width")
plt.ylabel("Mole Fraction of CO2")
plt.title("Variation of Mole Fraction in CO2")
plt.grid('on')
# Concentration of CO2 in the Hydrogen Mechanism
plt.figure(3)
plt.plot(f.grid, f.concentrations[gas.species_index('CO2'), :])
plt.grid('on')
plt.xlabel("Flame Width")
plt.ylabel("Concentration of CO2")
plt.show()
The output we get is shown below:
INFERENCE:
- For the overall length of the domain expressed by the width parameter width = 0.01, there will be changes in the temperature, pressure and volumetric heat release rate due to combustion that happens.
- Unburned products are ignited with the help of a light source and they go out a burned products. From both our graphs we see that as we pass through the flame reference coordinate there is a rise in certain quantities like temperature, pressure and volumetric heat release rate and so on.
- The flame temperatures and velocities for hydrogen mechanism are in the range of 2700K and 70 m/s whereas when we compare it with GRI mechanism its values are much lower i.e. 2100 K and 2.5 m/s
- Owing to the higher temperatures and velocities, burning during combustion is much intense for hydrogen mechanism than during the combustion of methane fuel. Also Hydrogen diffuses faster which is why it propagates faster.
- Flame propagates in one direction and in all other directions it is homogeneous. Also the gradients in our problem are only present in the axial directions. For laminar flame speed we ensure that we remove all the spatial effects in our 1D flame. So we get flame propagation in one direction and in other direction we assume a flat flame.
4. Substantiate your answer for the previous question by plotting variation in the concentration for "CO2" and explain what you infer from it ?
For the GRI mechanism the concentration of CO2 is shown in the graph below:
For the hydrogen mechanism the concentration of CO2 is shown below:
INFERENCE:
- In the reaction of methane with nitrogen and oxygen, CO2 is an active product which is obtained during the combustion, so the concentration of CO2 will increase.
- Eventhough there is a plot for CO2 concentration in hydrogen mechanism, when we take into account our elementary reactions where we combine hydrogen and oxygen there is no formation of CO2 in our products. So there is an absence of CO2 species production.
5. Does the "width" parameter have an effect on the solution, If so or not so, please explain why?
As long as the domain is large enough for CANTERA to perform time integration, width parameter will not have an effect on solution. The width parameter basically represents the length of the domain. The flame will travel along the length of this domain. When we provide a value for the width parameter it effectively provides the spacing between the grid points which are present in the entire length of the domain for the overall width. When we increase or decrease the value of the width parameter we see that the spacing between the grid points increases or decreases which directly has an impact on the time taken for computing the results effectively. So the plots will remain the same but time taken to converge will be impacted drastically.