Units of pre-exponential factor

633 views
Skip to first unread message

Jon Tegner

unread,
Nov 7, 2011, 5:55:01 AM11/7/11
to canter...@googlegroups.com, teg...@renget.se
Hi,

Sorry if you see this twice, didn't seem like my first attempt reached the list. Anyway...

I'm trying to to some flame speed calculations, and I'm having trouble with units. For the reactions I would like to use the units as specified in the line below:

units(quantity = 'mol', length = 'cm', act_energy = 'cal/mol', mass = 'g', time = 's', energy = 'cal')

However, for different reasons I don't want to specify the units in that way, but rather specify them directly when the reactions are specified, like in the line below:

reaction( '2 C3H8 + 3 O2 => 6 CO + 8 H2', [2.21e03, ('g','cm','s','mol','cal','K'), 0.0,  30000.0, 'cal/mol'],

For the activation energy this seems to be working, but for the pre-exponential factor I'm doing it wrong. How would be the correct way of doing it?

Regards,

/jon

David.F...@dlr.de

unread,
Nov 8, 2011, 5:27:48 AM11/8/11
to canter...@googlegroups.com
Hi Jon,

the short answer seems to be: You can't specify the units for the pre-exponential factor.

In general, the syntax for specifying units in Cantera is:
variable = (value, 'units')
e.g.
density = (534, 'kg/m3') # Lithium

Since the pre-exponential factor can take quite strange units (moles and meters with fractional exponents) they are not specified explicitly, but assumed to be:
kmol/m^2/s * (m^3/kmol)^n1 * (m^3/kmol)^n2 * ...
where n1, n2, ... are the stoichiometric coefficients of species 1, 2, ... in the reacation.

Note that species in a "metal" phase do not contribute to the rate equation and hence do not affect the units of the pre-exponential factor.

I'm not entirely sure this is 100% correct, but I have been using these assumptions for several months now and Cantera does what I expect it to do :-)

Best regards,
David


-----Ursprüngliche Nachricht-----
Von: canter...@googlegroups.com im Auftrag von Jon Tegner
Gesendet: Montag, 7. November 2011 11:55
An: canter...@googlegroups.com; teg...@renget.se
Betreff: [cantera-users] Units of pre-exponential factor

Jon Tegner

unread,
Nov 8, 2011, 10:19:13 AM11/8/11
to canter...@googlegroups.com
When doing similar exercise on a more complex kinetic (12 steps instead of just one), this way of specifying the units did NOT work.

/jon

On Tue, Nov 8, 2011 at 2:43 PM, Jon Tegner <jont...@gmail.com> wrote:
David, thanks a lot!

I've been playing around with a small example, calculating flame speed. If I use

units(quantity = 'kmol', length = 'm', act_energy = 'K', mass = 'kg', time = 's', energy = 'J')

reaction( 'C3H8 + 5 O2 => 3 CO2 + 4 H2O', [2.19e8, 0.0, 10072.0], order="C3H8:1.0 O2:0.5")

I get the same results as if i use

units(quantity = 'mol', length = 'cm', act_energy = 'cal/mol', mass = 'kg', time = 's', energy = 'J')

reaction( 'C3H8 + 5 O2 => 3 CO2 + 4 H2O', [(2.19e8, 'm/kmol/s'), 0.0, (10072.0, 'K')], order="C3H8:1.0 O2:0

That is, in the second case I have changed kmol to mol, m to cm and K to cal/mol in units and it seems Cantera is smart enough to give the pre-exponential factor its correct unit (based on the fact that it should be based on kmol, m and s). Or could there be some problems with this assumption?

Regards, and thanks again,

/jon

--
You received this message because you are subscribed to the Google Groups "Cantera User's Group" group.
To post to this group, send email to canter...@googlegroups.com.
To unsubscribe from this group, send email to cantera-user...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/cantera-users?hl=en.



Jon Tegner

unread,
Nov 8, 2011, 8:43:18 AM11/8/11
to canter...@googlegroups.com
David, thanks a lot!

I've been playing around with a small example, calculating flame speed. If I use

units(quantity = 'kmol', length = 'm', act_energy = 'K', mass = 'kg', time = 's', energy = 'J')

reaction( 'C3H8 + 5 O2 => 3 CO2 + 4 H2O', [2.19e8, 0.0, 10072.0], order="C3H8:1.0 O2:0.5")

I get the same results as if i use

units(quantity = 'mol', length = 'cm', act_energy = 'cal/mol', mass = 'kg', time = 's', energy = 'J')

reaction( 'C3H8 + 5 O2 => 3 CO2 + 4 H2O', [(2.19e8, 'm/kmol/s'), 0.0, (10072.0, 'K')], order="C3H8:1.0 O2:0

That is, in the second case I have changed kmol to mol, m to cm and K to cal/mol in units and it seems Cantera is smart enough to give the pre-exponential factor its correct unit (based on the fact that it should be based on kmol, m and s). Or could there be some problems with this assumption?

Regards, and thanks again,

/jon
On Tue, Nov 8, 2011 at 11:27 AM, <David.F...@dlr.de> wrote:

Steven DeCaluwe

unread,
Nov 9, 2011, 10:01:15 AM11/9/11
to canter...@googlegroups.com
Hi David,

Your interpretation is correct - Cantera determines the pre-exponential units dynamically to assure the correct units for the overall rate coefficient.  Or it is at least consistent with what is listed in the "definingPhases" pdf, so unless it has changed in the years since that document was written, you are correct.

Based on his example below, I don't think Jon is trying to explicitly set the units, but rather define the 'building blocks' that Cantera uses in its determination (cm vs. m, kmol vs. mol, for example).
That said, Jon, I don't know of any way to accomplish what you propose.  You are essentially trying to override the 'units' declaration typically found on the first line of a cti file.  You can obviously do this to explicitly set the units for a given variable, but I'm not sure that cantera has any mechanism for temporarily overwriting the units declaration for a single variable.

I would recommend just declaring the units at the top of the cti file and converting your pre-exponentials appropriately to match these

Another thing you could try is including a new call to units before each reaction that uses a different set of basic units, and then re-set it to your default afterwards.  Not sure if the cti reader will throw an error if you have multiple calls to 'units', or if it will even work, but depending on how determined you are it might be worth trying.

Best of luck,
Steven


Jon Tegner

unread,
Nov 11, 2011, 1:01:39 AM11/11/11
to canter...@googlegroups.com
Thank you for all information.

I ended up in converting the pre-exponential factor manually (it is not THAT complicated - but you are right in that it was this step I tried to skip).

Thanks again, your input is much appreciated!

/jon
Reply all
Reply to author
Forward
0 new messages