Laminar Premixed Flame Simulation Problems

285 views
Skip to first unread message

Fabio Di Lenarda

unread,
Dec 8, 2017, 10:22:10 PM12/8/17
to Cantera Users' Group
Hi,
I'm trying to solve the problem of the adiabatic flame speed with the latest version of Cantera using the code adiabatic_flame.py, modified only a little bit in order to perform some simulation loops under different conditions of pressure, temperature, equivalence ratio and dilution, but I encounter some issues when the reactants temperatures ar around 700 K. I'm using the kinetic mechanism of Andrae for surragates gasoline fuels. At temperatures lower than almost 700 K I have no problems but when I try to go over these temperatures Cantera isn't able to find a solution, even if I change some simulation parameters. At 700 K the ignition delay times are not too small; I mean that the reactans reach the flame reaction zone in much less time, so they should not ignite before it. Anyhow, could these problems be related to autoignition? Or better, how does Cantera treat the cold boundary problem? Has anyone of you already experienced these kind of problems? I wish to thank you in advance,
Fabio Di Lenarda

Alex K

unread,
Dec 8, 2017, 10:46:04 PM12/8/17
to Cantera Users' Group
Hi Fabio,

Cantera should give a solution, even when the reactants autoignite and the eigenvalue solution is domain size dependent. I suspect that you may need to provide us with a minimal example so that it can be reproduced.

Best,

Alex

Fabio Di Lenarda

unread,
Dec 9, 2017, 4:22:03 AM12/9/17
to Cantera Users' Group
Hi Alex,

Firstly, thank you for your answer.
I'll attach the code and the input data in this message. I commentend the code lines in Italian but the code even easy to understand. If yuo try to change the temperatures to 750 K, for example, Cantera propably won't give you a solution. If you could give a look to my code I would be very grateful.
Thank you in advance again, Alex.
Fiamma_libera_try_t.py
chem.cti

Fabio Di Lenarda

unread,
Dec 9, 2017, 4:27:34 AM12/9/17
to Cantera Users' Group
Anyway I have read sone papers where was reported that when the mixture autoignite the laminar flame speed is an eingenvalue of the problem anymore and its depend on the domain width. In fact I encounter this problem for high temperatures (673 K) when I diluite the mixture with water, maybe because the water has a positive chemical kinetic effect. But if I try to solve the simple undiluted laminar flame spedd problem at 773 K, for example, I'm not able to find a solution, even if i change the domanin width. Sorry, but I forget to give this further information in the prevoius message.

Fabio Di Lenarda

unread,
Dec 11, 2017, 5:31:11 PM12/11/17
to Cantera Users' Group
Nobody could help me? :( It's a very important point for my thesis.

Mikolaitis,David W

unread,
Dec 11, 2017, 6:10:09 PM12/11/17
to Cantera Users' Group
I did spend some time looking at the C++ code a couple of days ago to see if there was a resolution to your problem, but I didn't get deep enough in. There is a lot of code to sift through!

In the free flame propagation solution it is required that one of the nodes has to be at a particular temperature. I was trying to go through the code to find exactly how that temperature was set and failed to find it. I would be looking there first. If that temperature makes no sense for the problem that you are trying to solve that would screw up any numerical solution that you seek. From what you report this could be the difficulty. If you find it and that is the problem then you can modify the C++ code and compile your own amended version of Cantera and proceed.

Hope this helps.

Dave Mikolaitis
________________________________________
From: canter...@googlegroups.com <canter...@googlegroups.com> on behalf of Fabio Di Lenarda <fdl....@gmail.com>
Sent: Monday, December 11, 2017 5:31 PM
To: Cantera Users' Group
Subject: [cantera-users] Re: Laminar Premixed Flame Simulation Problems

Nobody could help me? :( It's a very important point for my thesis.

--
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 post to this group, send email to canter...@googlegroups.com.
Visit this group at https://urldefense.proofpoint.com/v2/url?u=https-3A__groups.google.com_group_cantera-2Dusers&d=DwIBaQ&c=pZJPUDQ3SB9JplYbifm4nt2lEVG5pWx2KikqINpWlZM&r=g60j-qsW1gp9OTzXsodieg&m=Bvppr8i9CFxn2pTx1qw7hl1SydfdKgrKEPFVX0gte2I&s=MQ2BGAPVnfdj5795PaDQsNMkhkoE6NHA-rw99dKAt0M&e= .
For more options, visit https://urldefense.proofpoint.com/v2/url?u=https-3A__groups.google.com_d_optout&d=DwIBaQ&c=pZJPUDQ3SB9JplYbifm4nt2lEVG5pWx2KikqINpWlZM&r=g60j-qsW1gp9OTzXsodieg&m=Bvppr8i9CFxn2pTx1qw7hl1SydfdKgrKEPFVX0gte2I&s=_yyNrT6JYKFo4eFAddHapQ3MiDfiwZvHK80JNVraz-0&e= .

Fabio Di Lenarda

unread,
Dec 11, 2017, 6:29:39 PM12/11/17
to Cantera Users' Group
Thank you, Dave. The code that I have uploaded is written in Python. Anyway I have read somewhere that Cantera fixes automatically the temperature at one point so there is no need to specify one value. Despite that I have tried to specify a value with f.set_fixed_temperature(Tin+7) but with no results. What I would to understand is if the problem is related to autoignition or to cold boundary difficulty or to something else. In any case thanm you again for your reply.
Fabio

Ray Speth

unread,
Dec 11, 2017, 7:41:32 PM12/11/17
to Cantera Users' Group

Fabio,

It appears to me that you have some bad thermo data for the species named “CH2CHCHCHC.H2”. The first clue is the huge discrepancy at T=1000 which you are warned about when importing the mechanism:

**** WARNING ****
For species CH2CHCHCHC.H2, discontinuity in s/R detected at Tmid = 1000
    Value computed using low-temperature polynomial:  18.0695
    Value computed using high-temperature polynomial: 60.9667

While small discrepancies (on the order of a few percent) can be potentially ignored, this is a sign of bigger problems. The second sign is that the heat capacity for this species is actually negative at high temperatures:

>>> S = gas.species('CH2CHCHCHC.H2')
>>> S.thermo.cp(2500)
-111885.1767752868

which is clearly non-physical. The incorrect thermo data ends up giving reverse rate coefficients that are impossibly high, which is what ends up giving the 1D solver trouble:

>>> gas.TPX = 700, None, f.inlet.X
>>> rr = gas.reverse_rate_constants
>>> for i in range(gas.n_reactions):
>>>     if rr[i] > 1e16:
>>>         print gas.reaction_equation(i), rr[i]
CH2CHC.HCHCH2 <=> CH2CHCHCHC.H2 8.58725587371e+27
CH2CHCHCHCH3 + H <=> CH2CHCHCHC.H2 + H2 9.81104809369e+18
CH2CHCHCHCH3 + OH <=> CH2CHCHCHC.H2 + H2O 3.03424875448e+16

If you fix this thermo data, I think you will find that the 1D solutions will converge without any further troubles.

Regards,
Ray

Fabio Di Lenarda

unread,
Dec 12, 2017, 3:56:02 AM12/12/17
to canter...@googlegroups.com
Hi, Ray,
thank you a lot for your answer, even if now I'm very worried because I have already performed almost 4000 simulation (1 month on my computer). The database was attached to the online paper and I have no idea what values to give to that parameters. Have you any suggestion?
Best regards,
Fabio

--
You received this message because you are subscribed to a topic in the Google Groups "Cantera Users' Group" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cantera-users/0SVIMCCphOE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cantera-users+unsubscribe@googlegroups.com.

To post to this group, send email to canter...@googlegroups.com.

Fabio Di Lenarda

unread,
Dec 12, 2017, 4:27:33 AM12/12/17
to canter...@googlegroups.com
Anyway some others species give nevative Cps at 2500 K, C.HCHCHCO for example. In this case I think that it could be due to the fact that for this species the high temperature in the database is 2100 K. I'm not able to decide what I have to do. :( Please, help me.

Fabio Di Lenarda

unread,
Dec 12, 2017, 4:59:16 AM12/12/17
to Cantera Users' Group
Moreover I don't report these high values for the reaction, maybe because the database is an older versione. I attach the latest to this message.
chem.cti

Alex K

unread,
Dec 13, 2017, 2:36:34 PM12/13/17
to Cantera Users' Group
Hi Fabio,

I understand that a discovery such as this can be troubling, but try to keep it in perspective as these things happen. It sounds like there may be some errors in the chemical mechanism that you are using. A few natural follow up questions that may help you get back on track are:

0) Before you do anything else, check if the observed behavior disappears when you use a different chemical mechanism describing the same or similar fuels. This is to isolate the observed problem to the chemical mechanism. To be even more specific, see if you can find alternate thermo and transport data for the problematic species from a highly detailed mechanism (like llnl), and plug those into the same chemical mechanism. If the problem goes away, you have your answer, if only the warnings and the negative cp values go away, but the original problem remains,  then it turns out that you really had two or more problems all along. To reiterate an earlier comment, the issue here is not the 'cold value problem'. You can get eigenvalue solutions for 'premixed flames' even when the reactant temperature is much higher than the autoignition temperature. It is just that this eigenvalue will not be constant with the domain size, i.e. it will not be unique as you would expect for a flame propagating into cold reactants.

1) Do you really need to use this specific chemical mechanism? If there is a good reason for it, then you may need to reach out to the authors. They may have published a version that contained a typo, or they may be able to help with correcting the issue. 

2) If you want to investigate gasoline surrogates, but are not tied to that chemical mechanism, then I would suggest surveying the literature to identify all possible candidates. I would contrive some simple tests to evaluate there behavior, ideally with respect to experimental data, in order to judge their performance. I would also take into account the conditions for which the chemical mechanism was designed, as they are frequently tuned to perform well over a relatively narrow band operating conditions, but may deviate significantly out of the design parameter space.

3) (Of lesser importance) Re: the thermo data for the species that produce negative cp values. What role do these species play in the chemical kinetics. Perhaps some of these species are only activated through low-temperature pathways and so will occur in zero or essentially zero concentrations at such high temperatures. This may possibly be why the high temperature bound for the thermo data was only 2100 K.


I hope that you're able to resolve this issue in a timely manner.

Best of luck,

Alex

Nick Curtis

unread,
Dec 14, 2017, 11:10:21 AM12/14/17
to Cantera Users' Group
Alex,

This is very good advice -- I feel like we should sticky it somewhere under "Problems with Chemical Mechanisms"

Thanks for the contribution,

Nick

Fabio Di Lenarda

unread,
Dec 18, 2017, 5:13:53 AM12/18/17
to Cantera Users' Group
I wish to thank you a lot, guys, for all your tips. In the end, I have been able to solve the problem and I can get solutions at higher temperature.
However I have another question (and I'm sorry for this). If one model the reactions in the kinetic mechanism with the Arrhenius form the mixture will always autognite if the domain choosen is large enough and the solution will be dependent on the domain even for small temperature. I know, it has no physical sense because in the reality the things happen in a differt way. However the solution will be dependent of the domain for each temperature (even if to note this one probably has to choose a domain of some hundreds meters) and it could seem that it is never possible to talk about a laminar flame speed (a property only of the fuel mixture at given thermodynamic properties). In other words, when I can say that the solution is domanain-independent, the laminar flame is an eigenvalue of the problem and it can be called laminar flame speed?
Thank you again, guys.

Fabio

Alex K

unread,
Dec 18, 2017, 1:25:23 PM12/18/17
to Cantera Users' Group
Fabio,

Firstly, can you please document exactly what you did to resolve your problem, in case someone with a similar problem finds this thread? Please be as specific as possible and think about what you would have needed to know ahead of time.

Secondly, to your question. This is exactly the 'cold boundary problem' which was recognized as early as the concept of a 'free flame' was posed (Spaulding, Hirschfelder, et. al early 1950's). The issue is that there is a contradiction between the numerical configuration and the physics. The 'freely propagating flame' models an infinite domain at steady state without loss (adiabatic). The solution that you generate with e.g. Cantera, is a "window of observation", moving with the flame, at a speed corresponding the to inlet (cold boundary) velocity. That inlet velocity is the eigenvalue solution of the problem and is taken to be the "laminar flame speed" for a given thermochemical condition and is generally accepted to be a unique quantity that is intrinsic to the reactant mixture alone. However, as you point out, in truth there is always some finite rate of chemical reaction in the reactant mixture, which implies that the reactant mixture will evolve in time and ultimately autoignite given that the domain is (purportedly) an infinite plane.

In practice, this contradiction can be neglected on arguments of scale separation. When the laminar flame speed is reported, it is almost always when the reactant temperature is much lower than the autoignition temperature. Since the ignition delay time has an exponential dependency on temperature, this means that (usually) the ignition delay time is many orders of magnitude larger than the residence time between the cold boundary and the flame location. Such scale separation justifies the approximation of the cold boundary being fixed in time - it is a very good approximation and, I would hazard, a better approximation in most cases than the chemical kinetic, thermo, and transport models themselves.

Caution is needed when the temperature rises and the ignition delay time becomes small, since it may not be possible to isolate a freely propagating flame from the effects of autoignition. In my opinion, there is no definitive cut-off where the ignition delay time becomes 'too small', instead, reasonable caution must be used when generating and reported results. For example, if you are interested in an engine with a domain size of 10cm, then what you want to ensure is that your free-flame solutions (eigenvalues) are independent of the domain size on the order of 10cm if you want to talk about a "laminar flame speed", i.e., it would not matter if the reactant mixture autoignites in a domain of size 100 metres, since that is not relevant to your problem.

Lastly, just to completely clear on this point: the 'free flame' configuration is an eigenvalue problem. That is, it solves for the eigenvalue which is posed in a way to correspond to the inlet velocity. Therefore, whenever a solution is returned it is by definition an eigenvalue solution, it does not care if autoignition occurs or does not occur. You seem to be using the term "eigenvalue" in a slightly different way that implies that it only exists (or is 'correct') when it corresponds to the "laminar flame speed", this is not true. When the temperature is sufficiently high, it just means that the eigenvalue is domain-size dependent over the length scales typically used in free-flame calculations. Which is why it becomes non-unique and the problem becomes ill-posed. 

Best,

Alex 

Fabio Di Lenarda

unread,
Dec 18, 2017, 2:30:00 PM12/18/17
to canter...@googlegroups.com
Thank you, Alex. Your answers are always clear and make me able to understand a lot of things.

Anyway I fix the problem simply using the thermodynamic files which were given to me by my professor and which I have discarded after having downloaded the original files attached to the paper. A stupid mistake. Probably the problem was due to the lack of some Es before the order of magnitude (for example 2.32-01 instead of 2.32E-01). 

Until now I have done the simulations with a domain size of 12 cm and among the solutions founded I discard the ones for which the delay time (that I cualcuate runtime with a constant pressure reactor) multiplied by the laminar flame speed is greater that the domain size o12 cm) even if I noted that Cantera fixes the reaction region at almost 35 % of the domain size (so in my case at 4.2 cm). I'm using this criterion because I think that, as you said, I should be sure that the solutions are independent of the domain in the order of sizes around 12 cm. In particular that criterion ensures that the laminar flame speed is not affected by the domain if it is smaller than 12/0.35=35 cm. Do you think that it could be reasonable?
I have to justify the choice of the domain in my thesis, this is the problem (so why I didn't choose a smaller domain, which can be able to give flame speed solutions at higher temperatures, or a greater one).

Thank you in advance. And thank you again for all. 

Best regards, Fabio.

--
You received this message because you are subscribed to a topic in the Google Groups "Cantera Users' Group" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/cantera-users/0SVIMCCphOE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to cantera-users+unsubscribe@googlegroups.com.
To post to this group, send email to canter...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages