Add Ralston4 explicit Runge–Kutta method to OrdinaryDiffEqLowOrderRK#3138
Add Ralston4 explicit Runge–Kutta method to OrdinaryDiffEqLowOrderRK#3138singhharsh1708 wants to merge 10 commits intoSciML:masterfrom
Conversation
|
The PR looks fine but the Project.toml changes need to be reverted. |
1714ee7 to
7821590
Compare
|
i have reviewed and changed it so now its fine |
| k3 = f(uprev + dt * (a31 * k1 + a32 * k2), p, t + c3 * dt) | ||
| k4 = f(uprev + dt * (a41 * k1 + a42 * k2 + a43 * k3), p, t + dt) | ||
| u = uprev + dt * (b1 * k1 + b2 * k2 + b3 * k3 + b4 * k4) |
There was a problem hiding this comment.
the limiters are missing from this one?
There was a problem hiding this comment.
the limiters are included in the in-place Ralston4Cache implementation (with stage_limiter! applied after each stage and step_limiter! after the final update) for the out-of-place ConstantCache version, I followed the existing pattern used by other methods like RK4ConstantCache and BS3ConstantCache, which do not include limiter calls.
|
rebase |
0dc609a to
8dfd8ba
Compare
|
rebased onto latest upstream/master , |
|
Rebase onto the new testing infrastructure. |
8dfd8ba to
53a30bf
Compare
|
Fixed test failures caused by removal of Ralston4 from umbrella exports (per LTS constraints).
|
73b985f to
51c50c3
Compare
|
@ChrisRackauckas 3 prs are now fully fixed run tests and i will do final checks for them. |
|
All Ralston4 usages are now guarded using isdefined(...) since the method is not available in the registered OrdinaryDiffEqLowOrderRK version on Julia 1.10 (LTS). |
|
@ChrisRackauckas can you run test on this ? |
|
Still some test failures. Handle the test failures and rebase again to simplify the testing infrastructure |
- Replace isdefined guards with direct imports of Ralston4 - Replace conditional splat with plain Ralston4() calls - step_limiter_test.jl: remove redundant explicit import - Fix inferrable -> inferable typo in inference.jl - Runic formatted inference.jl
16eb70d to
bca06cd
Compare
|
@ChrisRackauckas run tests on this. |
Implemented Ralston4 in OrdinaryDiffEqLowOrderRK — 4-stage explicit RK following Ralston (1962). Main thing worth flagging before PR: the a-coefficients can't be rational literals since they involve √5, so I derived them algebraically from the exact b-values via the order conditions (B3b + B4b − c₃·B3b pins down a32/a31, B4d gives a43, B3b then gives a42/a41). All 8 Butcher conditions hold to FP precision, convergence confirmed at order 4 with clean 2⁴ ratios across all step sizes.
Tests added: dense regression, step limiter sweep (130/130), IIP vs OOP, Float32, units. Runic passes on all modified files.