Add Bilger's definition of mixture fraction(Z) to CounterflowDiffusionFlame?

1,217 views
Skip to first unread message

Chris Neal

unread,
Apr 9, 2018, 1:51:53 PM4/9/18
to Cantera Users' Group
I'd like to compare the output of the mixture_fraction method in the CounterflowDiffusionFlame class in OneDim.py to the results of using Bilger's formula, which has the following definition(in Peters's Turbulent Combustion book).

Equation:  Z = \frac{ \frac{Z_C}{mW_C} + \frac{Z_H}{nW_C} + \frac{2(Y_{O_2,2} - Z_O)}{\nu_{O_2}'W_{O_2}} }{\frac{Z_{C,1}}{mW_C} + \frac{Z_{H,1}}{nW_C} + \frac{2Y_{O_2,2}}{\nu_{O_2}'W_{O_2}} }


The subscripts 1 and 2 refer to the fuel and oxidizer streams, respectively. 

The Z_C quantity is the mass fractions of element C(same for H and O). Access to this data is available through the method: self.elemental_mass_fraction('C')

The values of m and n are the number of carbon and hydrogen atoms in the (assumed) hydrocarbon fuel C_mH_n. I believe these can be determined using the class method: self.gas.n_atoms(fuel, 'O').  

The stoichiometric coefficient for the O2 is simply the moles of O2. I think this could be computed using: 
moles = lambda el: (self.gas.elemental_mass_fraction(el) / self.gas.atomic_weight(el))
Then making a call like nu_o2 = 0.5*moles('O')

The molecular weights can be obtained using: self.gas.atomic_weight('H')

I'm a little unsure about the mass fraction of oxygen in the oxidizer stream(Y_O2,2). I could just get Z_O at the oxidizer boundary & multiply by 2, but this assumes that the only oxygen present on the oxidizer stream is from the O2. I'm curious if there is more robust way to obtain this quantity.

Chris Neal

unread,
Apr 10, 2018, 4:52:20 PM4/10/18
to Cantera Users' Group
Just an update. I implemented my method. It doesn't give me the correct Z values, but I suspect that I probably made a mistake somewhere in the implementation. An encouraging result is that the mixture fraction using Bilger's definition appears to be more monotonic than the default mixture_fraction method. I've attached the adjusted onedim.py and the script used to generate the flamelet solutions(hydrogen-oxygen). My edits are to the CounterflowDiffusionFlame class and the new method is called "bilger_mixture_fraction".

Z(default mixture fraction) based on argon




Z(Bilger's formula)

batch_flamelet.py
onedim.py

Aditya Bharadwaz

unread,
Nov 18, 2019, 12:30:56 PM11/18/19
to Cantera Users' Group
I have a follow up question. How do we extract the mixture fraction at every grid point while solving for a diffusion flame? I wanna plot Z vs Temperature and some other quantities and I am not sure on how to do that.

Wenwen

unread,
Nov 19, 2019, 8:45:44 AM11/19/19
to canter...@googlegroups.com
Hi Aditya, 
It could be achieved by adding a variable and output it during the output module for species mass fractions. 

Wenwen 

Aditya Bharadwaz <bharadw...@gmail.com> 于2019年11月19日周二 上午1:30写道:
--
You received this message because you are subscribed to the Google Groups "Cantera Users' Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cantera-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/cantera-users/84d41485-f0b8-441b-b380-cfb99a299a2d%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages