Hello, I wanted to update you on my recent discoveries.
The main issue was that the width which I was using, at high temperatures, was not small enough. Decreasing the value to 0.3 mm made it work.
This is what I think is happening and what I should focus on:
Giving that:
- The flame thickness in general decreases with temperature
- At high temperatures the domain’s width influences the laminar flame speed
It is necessary to keep the initial domain very small otherwise the solver will capture the "bad" influence of the domain's width.
My logic is ... if it is too small the solver fails.
But this means that for low temperatures the solver will not be able to solve the flame.
So, due to the fact that my end goal is the creation of a table with the LFS function of T, P, phi and EGR, it is necessary to implement a logic that increases the width when the simulation fails at low temperatures Error: Time integration failed. Minimum timestep (1e-16) reached.
I will try with 2 approaches:
- Auto option on with callback control on speeds --> if speed is unphysical stops the sim
I don't like the auto option because it will also try switching on the energy equation and all other things that slow down the sim - Width increase
Try: --> While: width < threshold_width: --> flame.solve()
Except: --> width *= 10
Are there any issues with my though process that can make the results unphysical?
My main assumption is that the smallest width at which Cantera is able to find a solution, will give as an output the correct flame speed, because it is the smallest width which is able to capture the flame thickness without influencing the laminar flame speed.
Thank you so much for your help.
BR,
Leonardo