-
-
Notifications
You must be signed in to change notification settings - Fork 235
Add FW15Stage10 explicit 15-stage Runge-Kutta method of order 10 #2768
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This commit implements the new explicit 15-stage Runge-Kutta method of order 10 from the paper by F. White et al. (2025, arXiv:2504.17329). Changes: - Add FW15Stage10 algorithm struct with documentation - Implement constant and mutable cache structures - Add Butcher tableau coefficients extracted from provided data - Implement perform_step\! methods for both cache types - Add initialize\! functions for proper integrator setup - Register algorithm order (10) in alg_utils - Export the new method from OrdinaryDiffEqHighOrderRK - Add basic convergence test to verify 10th order accuracy The method provides a high-order explicit solver option for problems requiring very high accuracy. Fixes #2694 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
Contributor
Benchmark Results (Julia v1)Time benchmarks
Memory benchmarks
|
The FW15Stage10 method does not have embedded error estimation coefficients (btilde) implemented, so it cannot run in adaptive mode. By explicitly setting adaptive=false in the convergence test, we ensure the test runs in fixed timestep mode where error estimation is not required. This resolves the CI failure with "KeyError: key :l∞ not found" that was occurring because the convergence test was trying to access error estimates that weren't being calculated. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements the new explicit 15-stage Runge-Kutta method of order 10 from the paper by F. White et al. (2025, arXiv:2504.17329), addressing issue #2694.
Changes
FW15Stage10algorithm struct with appropriate documentationperform_step\!methods for both cache typesinitialize\!functions for proper integrator setupalg_utils.jlOrdinaryDiffEqHighOrderRKTechnical Details
The method uses 15 stages to achieve 10th order accuracy. The coefficients were extracted from the NUM file provided in the issue, which contains the method's c (nodes), A (Runge-Kutta matrix), and b (weights) coefficients in 90-digit precision format.
Testing
high_order_erk_convergence_tests.jlNotes
This is a fixed-step explicit method without embedded error estimation. Future work could include adding an embedded lower-order method for adaptive timestepping.
Fixes #2694
🤖 Generated with Claude Code