From 836dc39c59e2e7e2d0b1fb0144b2cd572af0c9ef Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Mon, 28 Jul 2025 17:57:48 -0400 Subject: [PATCH 1/5] Remove nonlinearsolve as a dep by just using the default nonlinearsolve Should greatly improve load times when it's not needed. --- Project.toml | 5 ++--- src/ModelingToolkit.jl | 2 -- src/linearization.jl | 4 ++-- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/Project.toml b/Project.toml index 79b499748c..2c858d489f 100644 --- a/Project.toml +++ b/Project.toml @@ -41,7 +41,6 @@ LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" MLStyle = "d8e11817-5142-5d16-987a-aa16d5891078" Moshi = "2e0e35c7-a2e4-4343-998d-7ef72827ed2d" NaNMath = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" -NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" OffsetArrays = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" OrderedCollections = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" OrdinaryDiffEqCore = "bbf590c4-e513-4bbe-9b18-05decba2e5d8" @@ -49,7 +48,6 @@ PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" RuntimeGeneratedFunctions = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" -SCCNonlinearSolve = "9dfe8606-65a1-4bb3-9748-cb89d1561431" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" SciMLPublic = "431bcebd-1456-4ced-9d72-93c2757fff0b" SciMLStructures = "53ae85a6-f571-4167-b2af-e1d143709226" @@ -198,6 +196,7 @@ REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" ReferenceTests = "324d217c-45ce-50fc-942e-d289b448e8cf" SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" +SCCNonlinearSolve = "9dfe8606-65a1-4bb3-9748-cb89d1561431" StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" SteadyStateDiffEq = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f" @@ -207,4 +206,4 @@ Sundials = "c3572dad-4567-51f8-b174-8c6c989267f4" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [targets] -test = ["AmplNLWriter", "BenchmarkTools", "BoundaryValueDiffEqMIRK", "BoundaryValueDiffEqAscher", "ControlSystemsBase", "DataInterpolations", "DelayDiffEq", "NonlinearSolve", "ForwardDiff", "Ipopt", "Ipopt_jll", "ModelingToolkitStandardLibrary", "Optimization", "OptimizationOptimJL", "OptimizationMOI", "OrdinaryDiffEq", "OrdinaryDiffEqCore", "OrdinaryDiffEqDefault", "REPL", "Random", "ReferenceTests", "SafeTestsets", "StableRNGs", "Statistics", "SteadyStateDiffEq", "Test", "StochasticDiffEq", "Sundials", "StochasticDelayDiffEq", "Pkg", "JET", "OrdinaryDiffEqNonlinearSolve", "Logging", "OptimizationBase", "LinearSolve"] +test = ["AmplNLWriter", "BenchmarkTools", "BoundaryValueDiffEqMIRK", "BoundaryValueDiffEqAscher", "ControlSystemsBase", "DataInterpolations", "DelayDiffEq", "NonlinearSolve", "ForwardDiff", "Ipopt", "Ipopt_jll", "ModelingToolkitStandardLibrary", "Optimization", "OptimizationOptimJL", "OptimizationMOI", "OrdinaryDiffEq", "OrdinaryDiffEqCore", "OrdinaryDiffEqDefault", "REPL", "Random", "ReferenceTests", "SafeTestsets", "StableRNGs", "Statistics", "SteadyStateDiffEq", "Test", "StochasticDiffEq", "Sundials", "StochasticDelayDiffEq", "Pkg", "JET", "OrdinaryDiffEqNonlinearSolve", "Logging", "OptimizationBase", "LinearSolve", "SCCNonlinearSolve"] diff --git a/src/ModelingToolkit.jl b/src/ModelingToolkit.jl index 2c259058b0..5839a97a9d 100644 --- a/src/ModelingToolkit.jl +++ b/src/ModelingToolkit.jl @@ -52,8 +52,6 @@ import JuliaFormatter using MLStyle import Moshi using Moshi.Data: @data -using NonlinearSolve -import SCCNonlinearSolve using ImplicitDiscreteSolve using Reexport using RecursiveArrayTools diff --git a/src/linearization.jl b/src/linearization.jl index f2d73f6bee..5c0c174cdc 100644 --- a/src/linearization.jl +++ b/src/linearization.jl @@ -1,5 +1,5 @@ """ - lin_fun, simplified_sys = linearization_function(sys::AbstractSystem, inputs, outputs; simplify = false, initialize = true, initialization_solver_alg = TrustRegion(), kwargs...) + lin_fun, simplified_sys = linearization_function(sys::AbstractSystem, inputs, outputs; simplify = false, initialize = true, initialization_solver_alg = nothing, kwargs...) Return a function that linearizes the system `sys`. The function [`linearize`](@ref) provides a higher-level and easier to use interface. @@ -39,7 +39,7 @@ function linearization_function(sys::AbstractSystem, inputs, op = Dict(), p = DiffEqBase.NullParameters(), zero_dummy_der = false, - initialization_solver_alg = TrustRegion(), + initialization_solver_alg = nothing, autodiff = AutoForwardDiff(), eval_expression = false, eval_module = @__MODULE__, warn_initialize_determined = true, From 347e0adcec4b0784df4245930ea7c651362d2590 Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Tue, 29 Jul 2025 12:53:24 -0400 Subject: [PATCH 2/5] Update Project.toml --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 2c858d489f..6943d2131e 100644 --- a/Project.toml +++ b/Project.toml @@ -147,7 +147,7 @@ RecursiveArrayTools = "3.26" Reexport = "0.2, 1" RuntimeGeneratedFunctions = "0.5.9" SCCNonlinearSolve = "1.0.0" -SciMLBase = "2.104.0" +SciMLBase = "2.106.0" SciMLPublic = "1.0.0" SciMLStructures = "1.7" Serialization = "1" From cafe85ccf81b63d23b7bd101acedb72f5766dddb Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Wed, 30 Jul 2025 05:17:46 -0400 Subject: [PATCH 3/5] Update Project.toml --- test/downstream/Project.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/test/downstream/Project.toml b/test/downstream/Project.toml index f64ed17de6..735dc7424f 100644 --- a/test/downstream/Project.toml +++ b/test/downstream/Project.toml @@ -4,6 +4,7 @@ DataInterpolations = "82cc6244-b520-54b8-b5a6-8a565e85f1d0" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" ModelingToolkitStandardLibrary = "16a59e39-deab-5bd0-87e4-056b12336739" +NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" OrdinaryDiffEqFIRK = "5960d6e9-dd7a-4743-88e7-cf307b64f125" OrdinaryDiffEqNonlinearSolve = "127b3ac7-2247-4354-8eb6-78cf4e7c58e8" OrdinaryDiffEqRosenbrock = "43230ef6-c299-4910-a778-202eb28ce4ce" From 182bb37cc2b72c74bed014a8879cb4cba2cea993 Mon Sep 17 00:00:00 2001 From: Aayush Sabharwal Date: Mon, 4 Aug 2025 12:26:01 -0400 Subject: [PATCH 4/5] fix: keep SCCNonlinearSolve.jl as a dependency --- Project.toml | 4 ++-- src/ModelingToolkit.jl | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Project.toml b/Project.toml index 6943d2131e..cec19daa22 100644 --- a/Project.toml +++ b/Project.toml @@ -48,6 +48,7 @@ PrecompileTools = "aea7be01-6a6a-4083-8856-8a6e6704d82a" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" RuntimeGeneratedFunctions = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" +SCCNonlinearSolve = "9dfe8606-65a1-4bb3-9748-cb89d1561431" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" SciMLPublic = "431bcebd-1456-4ced-9d72-93c2757fff0b" SciMLStructures = "53ae85a6-f571-4167-b2af-e1d143709226" @@ -196,7 +197,6 @@ REPL = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" ReferenceTests = "324d217c-45ce-50fc-942e-d289b448e8cf" SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" -SCCNonlinearSolve = "9dfe8606-65a1-4bb3-9748-cb89d1561431" StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" SteadyStateDiffEq = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f" @@ -206,4 +206,4 @@ Sundials = "c3572dad-4567-51f8-b174-8c6c989267f4" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [targets] -test = ["AmplNLWriter", "BenchmarkTools", "BoundaryValueDiffEqMIRK", "BoundaryValueDiffEqAscher", "ControlSystemsBase", "DataInterpolations", "DelayDiffEq", "NonlinearSolve", "ForwardDiff", "Ipopt", "Ipopt_jll", "ModelingToolkitStandardLibrary", "Optimization", "OptimizationOptimJL", "OptimizationMOI", "OrdinaryDiffEq", "OrdinaryDiffEqCore", "OrdinaryDiffEqDefault", "REPL", "Random", "ReferenceTests", "SafeTestsets", "StableRNGs", "Statistics", "SteadyStateDiffEq", "Test", "StochasticDiffEq", "Sundials", "StochasticDelayDiffEq", "Pkg", "JET", "OrdinaryDiffEqNonlinearSolve", "Logging", "OptimizationBase", "LinearSolve", "SCCNonlinearSolve"] +test = ["AmplNLWriter", "BenchmarkTools", "BoundaryValueDiffEqMIRK", "BoundaryValueDiffEqAscher", "ControlSystemsBase", "DataInterpolations", "DelayDiffEq", "NonlinearSolve", "ForwardDiff", "Ipopt", "Ipopt_jll", "ModelingToolkitStandardLibrary", "Optimization", "OptimizationOptimJL", "OptimizationMOI", "OrdinaryDiffEq", "OrdinaryDiffEqCore", "OrdinaryDiffEqDefault", "REPL", "Random", "ReferenceTests", "SafeTestsets", "StableRNGs", "Statistics", "SteadyStateDiffEq", "Test", "StochasticDiffEq", "Sundials", "StochasticDelayDiffEq", "Pkg", "JET", "OrdinaryDiffEqNonlinearSolve", "Logging", "OptimizationBase", "LinearSolve"] diff --git a/src/ModelingToolkit.jl b/src/ModelingToolkit.jl index 5839a97a9d..1dbf9d37dd 100644 --- a/src/ModelingToolkit.jl +++ b/src/ModelingToolkit.jl @@ -52,6 +52,7 @@ import JuliaFormatter using MLStyle import Moshi using Moshi.Data: @data +import SCCNonlinearSolve using ImplicitDiscreteSolve using Reexport using RecursiveArrayTools From 048f024702ea1db5388027b45b8849702bed6731 Mon Sep 17 00:00:00 2001 From: Aayush Sabharwal Date: Mon, 4 Aug 2025 16:41:04 -0400 Subject: [PATCH 5/5] test: import NonlinearSolve.jl in downstream tests --- test/downstream/linearization_dd.jl | 1 + test/downstream/test_disturbance_model.jl | 1 + 2 files changed, 2 insertions(+) diff --git a/test/downstream/linearization_dd.jl b/test/downstream/linearization_dd.jl index d42e642915..3c757a53dc 100644 --- a/test/downstream/linearization_dd.jl +++ b/test/downstream/linearization_dd.jl @@ -7,6 +7,7 @@ using ModelingToolkitStandardLibrary.Blocks using ModelingToolkitStandardLibrary.Mechanical.MultiBody2D using ModelingToolkitStandardLibrary.Mechanical.TranslationalPosition using Test +import NonlinearSolve using ControlSystemsMTK using ControlSystemsMTK.ControlSystemsBase: sminreal, minreal, poles diff --git a/test/downstream/test_disturbance_model.jl b/test/downstream/test_disturbance_model.jl index 642ff85f99..1eb4025dd6 100644 --- a/test/downstream/test_disturbance_model.jl +++ b/test/downstream/test_disturbance_model.jl @@ -6,6 +6,7 @@ analysis-point specific method for `generate_control_function`. using ModelingToolkit, OrdinaryDiffEqTsit5, LinearAlgebra, Test using ModelingToolkitStandardLibrary.Mechanical.Rotational using ModelingToolkitStandardLibrary.Blocks +import NonlinearSolve using ModelingToolkit: connect # using Plots