Skip to content

Align NLStep TRBDF2 parity test estimator - #4077

Draft
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/align-nlstep-parity-estimator
Draft

Align NLStep TRBDF2 parity test estimator#4077
ChrisRackauckas-Claude wants to merge 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:agent/align-nlstep-parity-estimator

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Member

Ignore this PR until it has been reviewed by @ChrisRackauckas.

Summary

  • compare the standard and nlstep = true TRBDF2 paths with smooth_est = false
  • keep the existing 2e-4 saved-trajectory threshold unchanged
  • leave solver behavior unchanged; this only restores the intended parity-test semantics

Cause

The smoothed-estimator change in #3823 lets the full-state NonlinearSolveAlg path reuse its W solve, but the reduced MTK NLStep problem intentionally cannot provide that full-state solve and falls back to the raw estimator. The parity test therefore started comparing two different error-estimation strategies rather than only the two nonlinear-solve paths.

An exact local diagnostic gave a maximum saved-trajectory delta of 3.052191084731426e-4 with the default mixed estimators and 1.2863503533355747e-4 when both paths used the raw estimator. The latter satisfies the existing threshold without weakening it.

Smoothed-error behavior remains covered separately by nsa_smooth_est_tests.jl.

Local verification

  • GROUP=ModelingToolkit julia +1.12 --project=lib/OrdinaryDiffEqNonlinearSolve -e 'using Pkg; Pkg.test()' on the exact failing parent: NLStep 23 pass / 2 pre-existing broken; preconditioners 18/18; DAE initialization 21/21
  • the same official group after rebasing onto current master (b22e2e58b2), with clean local SciMLBase 3.40.1 required by current compat: the same fully passing results
  • Runic 1.7.0 passes on the changed file; git diff --check passes

Whole-repository Runic on clean current master has three unrelated pre-existing formatting failures. They are reproduced independently and already fixed by draft PR #4064.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>

Copy link
Copy Markdown
Member Author

Hosted CI classification after the first run:

  • The relevant OrdinaryDiffEqNonlinearSolve [ModelingToolkit] job never reaches the test command. julia-buildpkg fails because OrdinaryDiffEqCore requires SciMLBase 3.40, while General currently provides versions only through 3.39.1.
  • The root ModelingToolkit test fails during resolution for the same reason: OrdinaryDiffEqNonlinearSolve requires SciMLBase 3.40, while OrdinaryDiffEq resolves through 3.39.1.
  • The downstream ModelingToolkit Initialization job also fails during resolution because the developed DiffEqBase requires SciMLBase 3.40 and the registry stops at 3.39.1.
  • Runic explicitly passes the changed lib/OrdinaryDiffEqNonlinearSolve/test/modelingtoolkit/nlstep_tests.jl. It fails only on the three pre-existing DISCO formatting files already handled by Run Runic on the disco-optimizations files #4064.

These are clean-base/external-registration blockers, not failures introduced by this test-only commit, so I have not changed the branch in response. The exact relevant group passes locally on current master when developed against clean local SciMLBase 3.40.1, as recorded in the PR body.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants