1D adiabatic flame convergence

97 views
Skip to first unread message

Kévin Bioche

unread,
Feb 8, 2021, 11:31:16 AM2/8/21
to Cantera Users' Group

Hi,

Short version:
---------------------------------------------
I am unable to reach convergence with the 'auto' option of function solve(). See python code used with 'tian.xml' mechanism.
---------------------------------------------

Longer version:
---------------------------------------------
I am computing 1D adiabatic premixed propagating NH3/H2/air flames to compare the flame speed obtained with various mechanisms.

I have been succesfuly doing so with 6 different mechanisms, found in the litterature, of size ranging from 31 to 59 species. I also have 3 bigger mechanisms I would like to compare, but I observed that the set of computational parameters does not work anymore and no convergence is reached.  I am not sure how the mechanism size would impact convergence but all smaller models converged fine so I'm guessing there is something here.

As a minimal example I provide the piece of python code I'm using; along with mechanisms by Okafor (biggest mech with success in convergence) and by Tian (smallest mech with convergence fail). As seen in the command, I tried relaxing the allowed number of steps. I also tried to change the refinement criteria without success. From what I have read in the forum, with the 'auto' option of function solve(), it is no longer relevant to fiddle the time steps and tolerance parameters.
---------------------------------------------

Do you have an idea on how to converge these mech ?

Thanks for your time,
Kévin

NB : I installed cantera 2.4.0 in a conda 4.9.2 environment
okafor.xml
test.py
tian.xml

Ray Speth

unread,
Feb 8, 2021, 10:47:38 PM2/8/21
to Cantera Users' Group

Hi Kévin,

This appears to be an example of a very common error in many mechanisms, which is reactions with non-physical, extremely high reverse rate constants at low temperatures. An example of how to investigate this type of problem is included in this Jupyter notebook: https://github.com/Cantera/ncm-2019-materials/blob/master/thermo_debugging.ipynb

In this case, there are three particularly problematic reactions: 518, 605, and 608. If you disable these reactions, by adding the lines

gas.set_multiplier(0, 517)
gas.set_multiplier(0, 604)
gas.set_multiplier(0, 607)

to your script, you should find that the solver converges with no issues.

Regards,
Ray

Kévin Bioche

unread,
Feb 9, 2021, 7:58:47 AM2/9/21
to Cantera Users' Group
Hello Ray,

Thank you for your quick and relevant input. With the method presented in your link, I was indeed able to target the faulty reactions for my other mechanisms.
The Workshop materials are indeed a gold mine.

Thanks again,
Kévin
Reply all
Reply to author
Forward
0 new messages