Use Rosenbrock solver for photoionization#2000
Conversation
|
/azp run rocm-quick |
|
Azure Pipelines successfully started running 1 pipeline(s). |
There was a problem hiding this comment.
Code Review
This pull request updates the configuration files to set the integrator.rosenbrock_tableau parameter to 3 and modifies the CMakeLists.txt files for the DTypeFront and StromgrenSphere problems to include 'Rosenbrock' in the microphysics compilation setup. I have no feedback to provide as there were no review comments.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a668f7d901
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Pull request was converted to draft
|
Rosenbrock needs to be selected in StromgrenSphereRSLA as well. And if we want, we can also do so in OneZonePhotoionization. ROS2S needs to be selected in StromgrenNoRecombination.toml. And potentially, in the two OneZone input files as well. ROS2S is slow for the one zone problems, so we may choose not to do it. |
|
/azp run rocm-quick |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
The question is whether or not to move from VODE to Rosenbrock entirely, or we do want to have some problems testing the VODE solver. @James471 @BenWibking |
Since Rosenbrock is faster for the DTypeFront problem, and we plan to use it in production, I don't think it's necessary to keep any problems that use VODE. I think we only need to test VODE if it were going to be used in a production simulation. Howver, VODE only appears to be the fastest method when the tolerances are extremely small (close to machine precision) and the species are far from chemical equilibrium. I don't think we have any applications that require this. |
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
/azp run rocm-quick |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run rocm-quick |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
@BenWibking @James471 Ready for review again. |
|
/azp run quick |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
@BenWibking @markkrumholz Can you approve? This is ready to merge. |
|
/claude-review |
|
Claude finished @BenWibking's task in 1m 40s —— View job Code Review — Use Rosenbrock solver for photoionizationI reviewed the diff against Tasks
Completeness check ✅I traced each
This resolves the three earlier Codex comments — the no-recombination input now sets the tableau ( Main thing to confirm before merge
|
BenWibking
left a comment
There was a problem hiding this comment.
Everything looks good, except for the submodule URL issue.
|
@BenWibking I've reverted the submodule url. Ready again. |
Description
Switch from VODE to Rosenbrock solver with
rosenbrock_tableau = 3(3-stage ROS2S tableau). Update all photoionization test problem to use this new solver.Performance results from Ben's tests
From @BenWibking 's message on Slack:
Ok, I've re-tested the performance of all the integrators following @chongchong He’s tolerance changes. all of them are now fast, but Rosenbrock with ROS2S is fastest, about 20% faster than VODE:
With ROS2S, the cost of one radiation subcycle is ~0.5 times the cost of one hydro update.
and the ODE solve only takes about 33% of the total walltime for the DTypeFront problem
However, this is on an H200 GPU, so it would be good to also do this comparison for MI250X.
Related issues
Not ready yet.
Need a PR to update Microphysics module to add radiation to Rosenbrock.
Checklist
Before this pull request can be reviewed, all of these tasks should be completed. Denote completed tasks with an
xinside the square brackets[ ]in the Markdown source below:/azp run.