You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add arc-length continuation to support S-curve calculations and progress variable tabulation for flamelets
Add automatic estimation (to chosen precision) of adiabatic flamelet extinction limits. This will likely be a bisection approach and/or a PI controller approach.
Implement automatic continuation with various homotopy maps, considering both global and local variants. These should support a tabulation API where only points of interest are provided by the user and spitfire automatically does continuation optimally behind the scenes, followed by interpolation onto points of interest and refinement
Improve calculation of the SLFM flamelet solution for the first nonzero dissipation rate. We currently use the equilibrium or Burke-Schumann solution as the initial guess, which leads to slow convergence and needs the GESAT pseudo-transient continuation method that doesn't scale particularly well for mechanisms with more than 150-200 species. This ultimately means that we spend 25-50% of the time building an adiabatic SLFM library in the first solve. It's possible that convex homotopies could improve performance or at least provide another alternative to GESAT that may outperform it on extremely large mechanisms.
The text was updated successfully, but these errors were encountered:
@gpavanb1 that's great, thank you for showing me. I'm always happy to see somebody new using Spitfire, please don't hesitate to let me know if you would like to see any changes or have any ideas.
Something you could look into for your code is using Spitfire's BTDDOD ("Block TriDiagonal with Diagonal Off-Diagonal blocks") linear solver. It is hand-coded in C++ with LAPACK for block factorizations and is significantly faster than SuperLU or any other sparse solvers in SciPy and you shouldn't have to do any work to get the Jacobian in the right form. It is the default linear solver and provides factorization and back-solve steps (which Spitfire splits as much as possible but with pacopy's interface you probably just have to always do both at once).
I'll definitely look into using pacopy with Spitfire. I've delved into continuation methods enough to make progress but just haven't had time to add all the methods I'm curious about. In case you're curious here's a SIAM article on the GESAT method in Spitfire (minus a correction for flamelets) which has mostly found use here for initializing a flamelet series. It is exceptionally robust but scales poorly for very large mechanisms (you can really feel it being slow with the full Cal Tech mech, about 200 species). My first hope for pacopy would be that it would provide something that can initialize the low-dissipation point on the extinction branch.
Add arc-length continuation to support S-curve calculations and progress variable tabulation for flamelets
Add automatic estimation (to chosen precision) of adiabatic flamelet extinction limits. This will likely be a bisection approach and/or a PI controller approach.
Implement automatic continuation with various homotopy maps, considering both global and local variants. These should support a tabulation API where only points of interest are provided by the user and spitfire automatically does continuation optimally behind the scenes, followed by interpolation onto points of interest and refinement
Improve calculation of the SLFM flamelet solution for the first nonzero dissipation rate. We currently use the equilibrium or Burke-Schumann solution as the initial guess, which leads to slow convergence and needs the GESAT pseudo-transient continuation method that doesn't scale particularly well for mechanisms with more than 150-200 species. This ultimately means that we spend 25-50% of the time building an adiabatic SLFM library in the first solve. It's possible that convex homotopies could improve performance or at least provide another alternative to GESAT that may outperform it on extremely large mechanisms.
The text was updated successfully, but these errors were encountered: