From 063d785f7c468460b62dcd00a0c8d1eec0d0d57f Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Mon, 20 Jul 2026 18:12:39 -0400 Subject: [PATCH 1/2] Preserve nonlinear verbosity when resizing caches Co-Authored-By: Chris Rackauckas --- lib/OrdinaryDiffEqNonlinearSolve/Project.toml | 2 +- lib/OrdinaryDiffEqNonlinearSolve/src/newton.jl | 5 ++++- test/InterfaceIII/verbosity.jl | 16 ++++++++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/lib/OrdinaryDiffEqNonlinearSolve/Project.toml b/lib/OrdinaryDiffEqNonlinearSolve/Project.toml index 831f037b379..18f50e271dc 100644 --- a/lib/OrdinaryDiffEqNonlinearSolve/Project.toml +++ b/lib/OrdinaryDiffEqNonlinearSolve/Project.toml @@ -1,7 +1,7 @@ name = "OrdinaryDiffEqNonlinearSolve" uuid = "127b3ac7-2247-4354-8eb6-78cf4e7c58e8" authors = ["Chris Rackauckas ", "Yingbo Ma "] -version = "2.3.0" +version = "2.3.1" [deps] NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" diff --git a/lib/OrdinaryDiffEqNonlinearSolve/src/newton.jl b/lib/OrdinaryDiffEqNonlinearSolve/src/newton.jl index fd1f5d69f65..d9a153f97f0 100644 --- a/lib/OrdinaryDiffEqNonlinearSolve/src/newton.jl +++ b/lib/OrdinaryDiffEqNonlinearSolve/src/newton.jl @@ -132,7 +132,10 @@ function initialize!( SciMLBase.remake(cache.prob; u0 = copy(z), p = nlp_params) end cache.prob = new_prob - cache.cache = init(new_prob, cache.cache.alg) + cache.cache = init( + new_prob, cache.cache.alg; + verbose = integrator.opts.verbose.nonlinear_verbosity + ) else SciMLBase.reinit!(cache.cache, z, p = nlp_params) end diff --git a/test/InterfaceIII/verbosity.jl b/test/InterfaceIII/verbosity.jl index 15a288a2870..575de0ea1a6 100644 --- a/test/InterfaceIII/verbosity.jl +++ b/test/InterfaceIII/verbosity.jl @@ -428,5 +428,21 @@ using NonlinearSolve: NonlinearVerbosity @test integrator.cache.nlsolver.cache.cache.verbose == NonlinearVerbosity(SciMLLogging.Detailed()) end + @testset "Resize preserves Detailed NonlinearVerbosity" begin + resize_prob = ODEProblem((du, u, p, t) -> du .= u, [1.0], (0.0, 1.0)) + verbose = DEVerbosity(nonlinear_verbosity = SciMLLogging.Detailed()) + integrator = init( + resize_prob, ImplicitEuler(nlsolve = NonlinearSolveAlg()); + verbose, dt = 0.1 + ) + expected = NonlinearVerbosity(SciMLLogging.Detailed()) + @test integrator.cache.nlsolver.cache.cache.verbose == expected + + resize!(integrator, 2) + step!(integrator) + + @test integrator.cache.nlsolver.cache.cache.verbose == expected + end + end end From 3bf63c966d2274ffdad918755f6eb305bb9b1a3a Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Wed, 15 Jul 2026 08:47:52 -0400 Subject: [PATCH 2/2] Raise NonlinearSolveBase floor for operator Jacobians Declare the first NonlinearSolveBase release that supports SciMLOperator Jacobian prototypes so downgrade resolution cannot select the incompatible 2.33 series. Co-Authored-By: Chris Rackauckas --- lib/OrdinaryDiffEqNonlinearSolve/Project.toml | 4 +++- .../src/OrdinaryDiffEqNonlinearSolve.jl | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/OrdinaryDiffEqNonlinearSolve/Project.toml b/lib/OrdinaryDiffEqNonlinearSolve/Project.toml index 18f50e271dc..2cfdb8b106e 100644 --- a/lib/OrdinaryDiffEqNonlinearSolve/Project.toml +++ b/lib/OrdinaryDiffEqNonlinearSolve/Project.toml @@ -1,10 +1,11 @@ name = "OrdinaryDiffEqNonlinearSolve" uuid = "127b3ac7-2247-4354-8eb6-78cf4e7c58e8" authors = ["Chris Rackauckas ", "Yingbo Ma "] -version = "2.3.1" +version = "2.3.2" [deps] NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" +NonlinearSolveBase = "be0214bd-f91f-a760-ac4e-3421ce2b2da0" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" FastBroadcast = "7034ab61-46d4-4ed7-9d0f-46aef9175898" MuladdMacro = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" @@ -50,6 +51,7 @@ DiffEqDevTools = {path = "../DiffEqDevTools"} SciMLTesting = "2.1" Pkg = "1" NonlinearSolve = "4.20.3" +NonlinearSolveBase = "2.34.1" ForwardDiff = "1.3.3" Test = "<0.0.1, 1" FastBroadcast = "1.3" diff --git a/lib/OrdinaryDiffEqNonlinearSolve/src/OrdinaryDiffEqNonlinearSolve.jl b/lib/OrdinaryDiffEqNonlinearSolve/src/OrdinaryDiffEqNonlinearSolve.jl index 9a7d42257ae..c93547fc25a 100644 --- a/lib/OrdinaryDiffEqNonlinearSolve/src/OrdinaryDiffEqNonlinearSolve.jl +++ b/lib/OrdinaryDiffEqNonlinearSolve/src/OrdinaryDiffEqNonlinearSolve.jl @@ -17,6 +17,8 @@ import PreallocationTools: DiffCache, get_tmp using SimpleNonlinearSolve: SimpleTrustRegion, SimpleGaussNewton using NonlinearSolve: FastShortcutNonlinearPolyalg, FastShortcutNLLSPolyalg, NewtonRaphson, HomotopySweep, step! +# The operator Jacobian path is implemented in NonlinearSolveBase and needs its own floor. +import NonlinearSolveBase using MuladdMacro: @muladd using FastBroadcast: @.. import FastClosures: @closure