Simulating the flame above a propellant

198 views
Skip to first unread message

gtg...@mail.gatech.edu

unread,
Mar 26, 2015, 10:02:19 AM3/26/15
to canter...@googlegroups.com
Hi,

I've used Cantera for years for burner stabilized and freely propagating flames. But now I'm trying to set up a case where I have a solid phase, which melts to create a liquid layer, which in turn generates a gas phase. This gas phase then burns. I've got my CTI file down and I am trying to set up a Sim1D problem (using python) but I'm pretty much totally stuck. The way I envisioned this working is:

solid phase -> ideal_interface (solid -> liquid) -> liquid phase -> ideal_interface (liquid -> gas) -> gas phase

The solid and liquid phases don't react with in them, but the heat transfer through them is important and the liquid layer will change in size with pressure (and the thickness is something I would like to have as a result, not as an input). After trying for a few days to figure out how to tackle this, I tried to set up a simpler problem and can't even get that to work. What I am trying now is:

# Build the domain. We will have a solid, the solid->liquid interface, the liquid, the liquid->gas
# interface, then a freeflow gas flow                                                                                                                                                                                                      
liquid_surface
= ct.ReactingSurface1D(phase=gas)
liquid_surface
.set_kinetics(liquid_gas)
liquid_surface
.T = surf_temp

gas_domain
= ct.FreeFlow(gas, grid=initial_grid)
gas_domain
.set_steady_tolerances(default=tol_ss)
gas_domain
.set_transient_tolerances(default=tol_ts)

sim
= ct.Sim1D((liquid_surface, gas_domain))

# See what happens now?                                                                                                                                                                                                                      
sim
.set_initial_guess()
sim
.show_solution()

gas_domain
.energy_enabled = False
sim
.solve(loglevel, refine_grid=False)
sim
.show_solution()

and then bad things happen. It throws an error about a singular matrix and when I look in the bandmatrix.csv file, almost everything is nan.

I'm pretty much at a loss on how to actually use anything other than the gas phase. So I have a few questions:

1. Is what I am trying to do (with the solid->liquid->gas flame) even possible?
2. Are there any good examples somewhere of using ideal_interfaces or setting up a simulation domain other than the pre-existing ones?
3. Is there anything obviously wrong in the very simple setup I showed here?

Thanks,

Tim

Ray Speth

unread,
Mar 27, 2015, 3:54:06 PM3/27/15
to canter...@googlegroups.com
Hi Tim,

In principle, I think what you've described should be possible, at least in part. However, it will require additions on the C++ side to represent the solid and liquid domains and their interfaces. Cantera's model of a "stack" of 1D domains joined together with interfaces should allow what you want, with the caveat that almost all of the attention that it's seen has been for the case of a single gas-phase domain, so there are sure some issues with the implementation. I don't think I've ever seen an example with more than one domain.

The bigger conceptual issue is handling the idea that the relative positions of the boundaries is part of the solution. I think handling that in a steady-state solver could be very difficult, compared to the options available for handling that in a time-dependent solver.

For your simplified case, the one problem I see immediately is that you don't have a right-hand boundary domain. I think an instance of Outlet1D would work, but I'm not sure that it will tell you much without something in the system to induce a flow.

Regards,
Ray

Benjamin Richman

unread,
Jul 7, 2015, 4:39:57 PM7/7/15
to canter...@googlegroups.com
Hello Tim,

I was interested in seeing what became of this topic. I'm currently working on simulating cryogenic liquid phase evaporation to an ambient gas phase, tracking the extent of the vaporized gas cloud. Similar to the problem you described, this problem has moving boundaries. In the case described though, heat transfer from the "container" solid surface to the liquid is a secondary concern. The left boundary condition could be assumed to be adiabatic in a first approximation. Heat transfer from the ambient gas causing cryogenic vaporization is the main issue here.

The CTI file is in the process of being created. 

Regards,

Ben    

ajp

unread,
Jul 25, 2018, 9:46:29 AM7/25/18
to Cantera Users' Group
Hi Ray/Tim,

Sorry to post to an old thread. If this question was asked today would you give a different answer? As in, has any of the complexities that were required at the time and were missing been addressed? Do you have a simplified example that relates to Tim's question that now works?

Thanks,
Andy

Ray Speth

unread,
Aug 6, 2018, 2:52:51 PM8/6/18
to Cantera Users' Group
Andy,

No, nothing has changed in Cantera that would make this any easier. Sorry to be reporting bad news.

Regards,
Ray
Reply all
Reply to author
Forward
0 new messages