Skip to content

Use SOLVAX Newton-Krylov for midpoint solves - #27

Closed
rogeriojorge wants to merge 1 commit into
agent/correct-midpoint-timefrom
agent/solvax-newton-midpoint
Closed

rogeriojorge wants to merge 1 commit into
agent/correct-midpoint-timefrom
agent/solvax-newton-midpoint

Conversation

@rogeriojorge

@rogeriojorge rogeriojorge commented Jul 13, 2026 •

Copy link
Copy Markdown
Member

Summary

This retains the midpoint rule, step limits, Krylov restart controls, and Diffrax failure result. The simplified PR now changes only midpoint_solver.py.

Why

SOLVAX owns the generic PyTree Newton–Krylov implementation, including true final residual checks and linear-solve diagnostics. Keeping a second nonlinear solver in SPECTRAX duplicates logic and makes preconditioning and distributed inner products harder to maintain.

The nonlinear stopping criterion is:

||F|| <= max(atol, rtol * ||F_initial||)

linear_rtol and linear_atol independently control each GMRES solve. The former SOLVAX #14 prerequisite is included in released SOLVAX 0.8.x.

Validation

The additional cost is the initial reference and true final residual evaluation. The collision/diffusion preconditioner remains a separate follow-up rather than weakening convergence reporting here.

@rogeriojorge
rogeriojorge marked this pull request as ready for review July 13, 2026 14:57
@rogeriojorge
rogeriojorge force-pushed the agent/correct-midpoint-time branch from f17c2f0 to ab30ce3 Compare July 16, 2026 14:13
@rogeriojorge
rogeriojorge force-pushed the agent/solvax-newton-midpoint branch from 5c23eb9 to db8a2fe Compare July 16, 2026 14:13
@rogeriojorge

Copy link
Copy Markdown
Member Author

Squashed into #21.

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.

1 participant