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.