Cantera/Adiabatic Flame Temperature Dilution
From charlesreid1
Let's analyze the effect of diluants (nitrogen and carbon dioxide) on the adiabatic flame temperature. Why, you ask? This issue of dilution is of central importance to oxy-fuel combustion, in which effluent gas containing carbon dioxide is recycled into the front of the reactor, so you're not burning with pure oxygen - a big safety hazard and an extremely hot process that'll mess up air-fired reactors.
Background
Adiabatic Flame Temperature Review
Let's review what the AFT is.
Computing the AFT in Cantera
We can compute an adiabatic flame temperature with Cantera by initializing a batch reactor, which will be adiabatic by default, and advancing it until combustion has completed. The final temperature is the adiabatic flame temperature.
in pseudocode,
function compute_adiabatic_flame_T:
create gas phase object with associated reaction network
set gas state
create reactor with gas in it
create reactor network with reactor in it
advance reactor network for a while
return reactor temperature
Translating that to real Python code,
from Cantera import *
from Cantera.Reactor import *
from numpy import *
def compute_adiabatic_flame_T( X0, T0, P0, dt=5.0e-3 ):
print "Computing an adiabatic flame temperature..."
g = GRI30()
g.set(X = X0, T = T0, P = P0)
r = Reactor(g)
n = ReactorNet([r])
ttotal = 0.10
t = 0.0
while t < ttotal:
t = t + dt
n.advance(t)
return r.temperature()
Now we can feed a list of composition vectors or composition strings, and get a list of adiabatic flame temperatures.