From charlesreid1

Revision as of 11:05, 31 March 2014 by Admin (talk | contribs) (Created page with "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 c...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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.