Flamelet generation using Cantera to make flamelet table

1,614 views
Skip to first unread message

chri...@snumerics.com

unread,
Dec 8, 2016, 12:45:28 PM12/8/16
to Cantera Users' Group

Hello Cantera users,


I've been utilizing Flamemaster to generate a flamelet table that is composed of many flamelets from the laminar opposed diffusion flamelet setup. I would like to be able to use Cantera to generate flamelet tables. Essentially all that is required is a collection of many flamelets for different conditions where the "Scalar Dissipation Rate" is varied, which is defined as:


 Where D_z is diffusion coefficient of the mixture fraction, and z is the mixture fraction defined as z =  


So there is a sweep of the scalar dissipation rate such that a complete curve of the scalar dissipation rate can be made if you plot the scalar dissipation rate versus the maximum flamelet temperature, something like what is shown below.

Completing the "S Curve" as it is called involves repeated computation of a range of flamelets under different scalar dissipation rates. This can be done by hand, but that is quite tedious and time consuming. My question is: Does the Cantera framework have the ability to compute such a series of flamelet solutions? I have noticed that Cantera uses a different definition for its flamelets, mainly the strain rate. Is it shown anywhere how the scalar dissipation rate can be computed from the strain rate?


Thank you,
Chris

Santosh Shanbhogue

unread,
Dec 8, 2016, 5:49:25 PM12/8/16
to Cantera Users' Group
Hi Chris,

The opposed flame code that ships with Cantera uses the velocity as an input, not the strain rate. So if you want to compute flamelet tables, you can do this by running tests at different velocities, computing z and then the scalar dissipation rate for each test case

You can do this for a number of velocities, but once you reach the extinction point, you won't be able to get the curve to bend, as the latter requires an arc length continuation procedure to be implemented

Regards
Santosh

--
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://groups.google.com/group/cantera-users.
For more options, visit https://groups.google.com/d/optout.

chri...@snumerics.com

unread,
Dec 9, 2016, 1:21:41 PM12/9/16
to Cantera Users' Group
Thank you Santosh. It looks like Flamemaster and Cantera use different frameworks for computing a flamelet e.g. different inputs.  Are you familiar with the arclength continuation method? I'm very new to Cantera. Would it be feasible for me to add in an arclength continuation procedure to the existing code?

Also, do you know if there is any documentation on the opposed flame code that is implemented in Cantera?

Thank you,
-Chris

Santosh Shanbhogue

unread,
Dec 9, 2016, 3:37:38 PM12/9/16
to Cantera Users' Group
Chris,

Implementing the arc length continuation is possible, but requires some experience with numerical methods and coding. But you could save yourself the effort by taking a moment to think if you really need it. 

It is not hard to get data up to the turning point, what the arc length does is provide unphysical solutions below it. This is useful only when there is a second turning point. Your graph does not seem to have that. Some fuels exhibit such behavior

The documentation for the Python module of the code can be found here: http://cantera.github.io/dev-docs/sphinx/html/cython/onedim.html#counterflowdiffusionflame

Also, Thomas Fiala has uploaded an interesting way of computing the turning point for non-premixed flames and Cantera. See: http://cantera.github.io/dev-docs/sphinx/html/cython/examples/onedim_diffusion_flame_extinction.html

Let us know if you have more questions

Santosh

Santosh Shanbhogue

unread,
Dec 9, 2016, 3:39:39 PM12/9/16
to Cantera Users' Group
Chris,

Implementing the arc length continuation is possible, but requires some experience with numerical methods and coding. But you could save yourself the effort by taking a moment to think if you really need it. 

It is not hard to get data up to the turning point, what the arc length does is provide unphysical solutions below it. This is useful only when there is a second turning point. Your graph does not seem to have that. Some fuels exhibit such behavior

The documentation for the Python module of the code can be found here: http://cantera.github.io/dev-docs/sphinx/html/cython/onedim.html#counterflowdiffusionflame

Also, Thomas Fiala has uploaded an interesting way of computing the turning point for non-premixed flames and Cantera. See: http://cantera.github.io/dev-docs/sphinx/html/cython/examples/onedim_diffusion_flame_extinction.html

Let us know if you have more questions

Santosh

chri...@snumerics.com

unread,
Dec 9, 2016, 5:29:40 PM12/9/16
to Cantera Users' Group
Thanks Santosh. The application that I'm working on requires the entire 'S' curve that is shown in my original plot, so that is why I was curious about getting the whole curve. The arclength continuation method was used to generate that curve in my original post.

From my understanding, the flamelet generation process is essentially independent from the Cantera capabilities i.e. A separate script is written to use the components of Cantera to generate a flamelet. So if I wanted to implement a continuation method it would have to be in the form of a user-created counterflow diffusion flame script like the ones you posted. Or would it be a feature that would have to be added directly to the class for the diffusion flame solver?

Ray Speth

unread,
Dec 9, 2016, 10:09:52 PM12/9/16
to Cantera Users' Group
Chris,

Since the arc-length continuation requires changing the set of equations being solved, it has to be implemented in the underlying C++ classes where the flame governing equations are written (this is principally the class "StFlow").

Regards,
Ray

chri...@snumerics.com

unread,
Dec 14, 2016, 2:23:46 PM12/14/16
to Cantera Users' Group
Thank you for the information Ray. Would there be a clear way to add this capability such that it can be pushed back to the repo for use by others? It would be a shame to just mangle up the StFlow class to add arclength continuation and be the only one who can use the capability.

Ray Speth

unread,
Dec 16, 2016, 12:05:19 AM12/16/16
to Cantera Users' Group
Chris,

I think the two options generally speaking would be either (a) implement it directly into class StFlow, with a flag to toggle between the different equations, or (b) create a derived class from StFlow and do the implementation there. I don't have a very good idea of how extensive the modifications to implement the arc-length continuation would be, so it's hard to guess which would be the better choice.

In terms of making the modifications so that they can be included in Cantera, the Contributing Guidelines should provide some guidance on the preferred process. If you have any questions on this, please let us know. I'm always excited to have new people contributing to Cantera.

Regards,
Ray

Tobi B.

unread,
May 31, 2017, 8:38:34 AM5/31/17
to Cantera Users' Group
Hi Chris,

I'm facing a quite similar problem resulting in the need to compute the entire "S-shaped" curve. Hence, I would like to ask if you made any progress regarding the implementation of the arc length continuation method.

Thanks for your help!

Best Regards
Tobi

chri...@snumerics.com

unread,
Aug 29, 2017, 3:00:29 PM8/29/17
to Cantera Users' Group
Hi Tobi,

Unfortunately I had to fall back to using FlameMaster to generate the flamelet table instead of Cantera due to time constraints.

Mohammed Niyasdeen

unread,
Jul 22, 2021, 2:32:39 AM7/22/21
to Cantera Users' Group
Hello Everyone,

Since most of you here have experience with FlameMaster, I have a question related to real-gas effect...

Can FlameMaster be used to simulate real-gas Flamelet Libraries ? I know it can handle ideal-gas but is it can handle real-gas ? 

Chris N

unread,
Jul 22, 2021, 12:09:54 PM7/22/21
to Cantera Users' Group
I don't believe real-gas equations of state & transport properties are handled in the standard version of FlameMaster. 

Mohammed Niyasdeen

unread,
Aug 31, 2021, 1:14:02 AM8/31/21
to Cantera Users' Group
Hello Everyone,

My goal is to generate a collection of flameLet tables by varying the scalar dissipation rate which is mentioned by the formula as below, 

                                                                                                                                                                                                               Scalar Dissipation Rate.png
But my confusion is that as per the above equation, scalar dissipation rate will be calculated at every mixture fraction space with respect to the grid points. It means I am gonna get a range of scalar dissipation rate in form of an array for a range of mixture fraction space with respect to the grid points. Please see the attached csv file (Column-1, column-2 and column-3) which I generated. 

But how to get a single value for a scalar dissipation rate for each test case ?     
ForumQuestion.csv

Ssue

unread,
Oct 30, 2021, 4:08:38 AM10/30/21
to Cantera Users' Group

Based on my limited knowledge, the scalar dissipation rate at stoichiometry is treated as a characteristic variable like strain rate for one particular flamelet. Scalar dissipation rates defined by your equation are related with strain rate by expression(s) you could consult classical books.

Regards,
Ssue

Reply all
Reply to author
Forward
0 new messages