Conversation
routines to compute other types of reactors (only UV was available but this is not going to work with PeleLM)
- Add a compile flag to choose DVODE integration, otherwise CVODE is chosen (USE_DVODE). Modify Makefiles in Reactions folder accordingly. - Add an extra parameter to the reactor_init to choose which type of reactor to use (choose 1 for retro compatibility). Modify Null and Null_air folder for compatibility (but this is a bit unclear in my head) - Put all actual_reactor routines(Fuego, Null, Null_air) in F90 - Add the cpp routines for cvode in Reactions/Fuego folder (not yet tested)
in Reaction folder. in particular, add the now mandatory argument to "actual_reactor_init" routine to choose the type of reactor for the chemistry integration
initialization too
difference between initial and reacted states !! We may go back if for some reason this was a relevant setup, which is why I commit this separately from everything else
CAREFULL: removal of useless rwrk and iwrk everywhere, so it is necessary to remove these arguments in all calls to fuego functions everywhere in dependent codes (like PeleC) !
It is consistent with the DVODE pre existing Tutorial and should be directly used to compare results.
chemistry Fuego routines are called
|
Can you verify that the PeleC tests work with this merge? |
|
I can tell you they are not going to work as is, since I've added an argument to actual_react_init. I'm running regtests on pelephysics to make sure everything is OK there, and then I'll generate a branch in PeleC to be consistent with my changes if that sounds ok ? |
|
Sure! Note that there seems to be a need for cvode to be installed in order for the PeleC regtests to work. That could be a decision we make as a project, or the cvode inclusion could be conditional at compile time, based on a makefile define that defaults to FALSE. Might be good to get project input for that decision. If the conditional compiler stuff would be horrendous, that would be useful to know as well. |
chemistry integrators (fuego, Null, Null_air). For consistency, all react functions in F90 files are now compatible with react functions of CVODE, and can be called from C. Also, update ReactEval Tutorial to call dvode via react() with correct arguments
…pe before Finalize call
always_new_J = true for regtests to pass)
|
The next two things that are missing are:
(sorry...) |
* Move the CoveredMask reset flag out of the if statement. * Add user-defined chemistry tolerances. * Add a Triple flame in Exec/Cases/TripleFlame
** Updated DVODE integration (still in Fortran)
** New CVODE integration (in cpp)
** + new Fuego cPickler to write improved cpp chemistry routines without rwrk/iwrk. Also, write a few new routines needed for cvode wth fancy integration option
NOTE Tests can be done in the Testing folder. ReactEval is with DVODE, and should sum up the two modifs necessary for retro compatibility. ReactEvalCVODE is same test with CVODE and should show how to use the new chemistry integrator. Tutorials and detailed explanations are on the way.
Note that a regtest does should give 0 errors between ReactEval with DVODE before and after this commit ! It is true with a compare on the dumped pltfiles in ReactEval, and an actual RegTest is on the way.