refactor(RKN): unify DPRKN/ERKN velocity-independent methods via Nyst…#3376
Open
singhharsh1708 wants to merge 4 commits intoSciML:masterfrom
Open
refactor(RKN): unify DPRKN/ERKN velocity-independent methods via Nyst…#3376singhharsh1708 wants to merge 4 commits intoSciML:masterfrom
singhharsh1708 wants to merge 4 commits intoSciML:masterfrom
Conversation
43f4e87 to
38e4b81
Compare
…romVITableau
Introduces NystromVITableau{T,T2} struct and generic NystromVICache /
NystromVIConstantCache, eliminating 9 separate per-method cache structs
and their per-method perform_step! implementations.
Methods unified: DPRKN4, DPRKN5, DPRKN6FM, DPRKN8, DPRKN12, ERKN4,
ERKN5, ERKN7, Nystrom5VelocityIndependent.
Net: -1623 lines. All nystrom_convergence_tests pass.
…Tableau (Phase 2)
Adds NystromVDTableau{T,T2} struct and generic NystromVDCache/NystromVDConstantCache,
eliminating per-method caches and perform_step! for FineRKN4, FineRKN5, RKN4,
Nystrom4, and Nystrom4VelocityIndependent.
Unchanged: DPRKN6 (kshortsize=3 dense output), IRKN3, IRKN4 (implicit).
All nystrom_convergence_tests pass (70 pass, 16 pre-existing broken).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
38e4b81 to
6f6c092
Compare
Contributor
Author
Member
|
convergence tests failing |
Contributor
Author
|
@ChrisRackauckas checked locally now passing? |
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
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
Introduces
NystromVITableau{T,T2}struct and genericNystromVICache/NystromVIConstantCache, eliminating 9 separate per-method cache structs and their per-methodperform_step!implementations.Moves velocity-independent Nyström (RKN) methods to a single tableau-driven implementation.
Methods Unified
All of the above methods share the same Nyström structure:
Previously, each method defined:
perform_step!This resulted in significant duplication across implementations.
This PR unifies them under a single tableau-driven approach using shared coefficients:
a,b,bp,btilde,bptilde,cResults
nystrom_convergence_testspassNotes
NystromConstantCacheand prior initialization unificationChecklist
contributor guidelines, in particular the SciML Style Guide and
COLPRAC.
Additional context
This PR continues the existing direction of unifying Nyström method infrastructure (e.g.,
NystromConstantCacheand grouped initialization) by extending the same idea to stepping logic.The implementation reduces duplication while keeping behavior unchanged and aligns the codebase more closely with the underlying Butcher–Nyström formulation.