From 1066c13d6becb93716b8f57e6f9c0da1c8064243 Mon Sep 17 00:00:00 2001 From: Olivier Cots Date: Sun, 2 Nov 2025 11:40:34 +0100 Subject: [PATCH 01/10] up --- docs/make.jl | 30 +- docs/src/assets/Manifest.toml | 827 ++++++++++++++++++---------------- docs/src/assets/Project.toml | 10 +- docs/src/ho.md | 2 +- docs/src/index.md | 3 +- docs/src/numerical.md | 4 +- docs/src/statement.md | 29 +- 7 files changed, 492 insertions(+), 413 deletions(-) diff --git a/docs/make.jl b/docs/make.jl index 2b003d4..3915f76 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -1,6 +1,8 @@ using Documenter -# For reproducibility +# =============================================== +# --- Copy Project Assets for reproducibility --- +# =============================================== mkpath(joinpath(@__DIR__, "src", "assets")) cp( joinpath(@__DIR__, "Manifest.toml"), @@ -13,9 +15,21 @@ cp( force=true, ) +# Repository URL (used for links in docs) repo_url = "github.com/control-toolbox/LossControl.jl" +# ============================== +# --- Generate Documentation --- +# ============================== +# If draft is true, the Julia code in markdown is not executed. +# To disable draft mode in a specific markdown file, add: +#= +```@meta +Draft = false +``` +=# makedocs(; + draft=true, warnonly=:cross_references, sitename="Loss control", format=Documenter.HTML(; @@ -31,11 +45,15 @@ makedocs(; ), pages=[ "Introduction" => "index.md", - "Statement of the problem" => "statement.md", - "Numerical approach" => "numerical.md", - "Zermelo navigation: Example 1" => "zermelo1.md", - "Zermelo navigation: Example 2" => "zermelo2.md", - "Harmonic oscillator problem" => "ho.md", + "Mathematical background" => [ + "Optimal control and loss control" => "statement.md", + "Numerical approach" => "numerical.md", + ], + "Examples" => [ + "Zermelo navigation: Example 1" => "zermelo1.md", + "Zermelo navigation: Example 2" => "zermelo2.md", + "Harmonic oscillator problem" => "ho.md", + ], ], ) diff --git a/docs/src/assets/Manifest.toml b/docs/src/assets/Manifest.toml index 21bff6a..a145235 100644 --- a/docs/src/assets/Manifest.toml +++ b/docs/src/assets/Manifest.toml @@ -1,8 +1,8 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.11.6" +julia_version = "1.12.1" manifest_format = "2.0" -project_hash = "ec117dd400796a0a616fbdf3370d41fb4626a0bd" +project_hash = "a5ae66948127f5fe5da62f492f853f7880168a4b" [[deps.ADNLPModels]] deps = ["ADTypes", "ForwardDiff", "LinearAlgebra", "NLPModels", "Requires", "ReverseDiff", "SparseArrays", "SparseConnectivityTracer", "SparseMatrixColorings"] @@ -11,9 +11,9 @@ uuid = "54578032-b7ea-4c30-94aa-7cbd1cce6c9a" version = "0.8.13" [[deps.ADTypes]] -git-tree-sha1 = "7927b9af540ee964cc5d1b73293f1eb0b761a3a1" +git-tree-sha1 = "27cecae79e5cc9935255f90c53bb831cc3c870d7" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "1.16.0" +version = "1.18.0" weakdeps = ["ChainRulesCore", "ConstructionBase", "EnzymeCore"] [deps.ADTypes.extensions] @@ -63,9 +63,9 @@ version = "0.1.42" [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "f7817e2e585aa6d924fd714df1e2a84be7896c60" +git-tree-sha1 = "7e35fca2bdfba44d797c53dfe63a51fabf39bfc0" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "4.3.0" +version = "4.4.0" weakdeps = ["SparseArrays", "StaticArrays"] [deps.Adapt.extensions] @@ -90,18 +90,19 @@ version = "1.1.2" [[deps.ArrayInterface]] deps = ["Adapt", "LinearAlgebra"] -git-tree-sha1 = "9606d7832795cbef89e06a550475be300364a8aa" +git-tree-sha1 = "d81ae5489e13bc03567d4fbbb06c546a5e53c857" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.19.0" +version = "7.22.0" [deps.ArrayInterface.extensions] ArrayInterfaceBandedMatricesExt = "BandedMatrices" ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" ArrayInterfaceCUDAExt = "CUDA" - ArrayInterfaceCUDSSExt = "CUDSS" + ArrayInterfaceCUDSSExt = ["CUDSS", "CUDA"] ArrayInterfaceChainRulesCoreExt = "ChainRulesCore" ArrayInterfaceChainRulesExt = "ChainRules" ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" + ArrayInterfaceMetalExt = "Metal" ArrayInterfaceReverseDiffExt = "ReverseDiff" ArrayInterfaceSparseArraysExt = "SparseArrays" ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore" @@ -115,6 +116,7 @@ version = "7.19.0" ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" @@ -122,9 +124,9 @@ version = "7.19.0" [[deps.ArrayLayouts]] deps = ["FillArrays", "LinearAlgebra", "StaticArrays"] -git-tree-sha1 = "120e392af69350960b1d3b89d41dcc1d66543858" +git-tree-sha1 = "355ab2d61069927d4247cd69ad0e1f140b31e30d" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.11.2" +version = "1.12.0" weakdeps = ["SparseArrays"] [deps.ArrayLayouts.extensions] @@ -157,9 +159,9 @@ version = "0.1.6" [[deps.BracketingNonlinearSolve]] deps = ["CommonSolve", "ConcreteStructs", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase"] -git-tree-sha1 = "a9014924595b7a2c1dd14aac516e38fa10ada656" +git-tree-sha1 = "57f9f59bec88ce80cd3e46efc39f126395789bb0" uuid = "70df07ce-3d50-431d-a3e7-ca6ddb60ac1e" -version = "1.3.0" +version = "1.5.0" weakdeps = ["ChainRulesCore", "ForwardDiff"] [deps.BracketingNonlinearSolve.extensions] @@ -180,19 +182,15 @@ version = "0.2.7" [[deps.CTBase]] deps = ["DocStringExtensions"] -git-tree-sha1 = "d9da91e578266593c1125785185a27ec6e3c7d17" +git-tree-sha1 = "ebc7d07d0bf4db7a841c5e7d51b4271bcf1e921c" uuid = "54762871-cc72-4466-b8e8-f6c8b58076cd" -version = "0.16.3" -weakdeps = ["HTTP", "JSON"] - - [deps.CTBase.extensions] - CTBaseDocstrings = ["HTTP", "JSON"] +version = "0.16.2" [[deps.CTDirect]] -deps = ["CTBase", "CTModels", "DocStringExtensions", "HSL", "MKL", "SparseArrays"] -git-tree-sha1 = "a555be516f85b2c45d6348261fa64ee7f743a121" +deps = ["CTBase", "CTModels", "DocStringExtensions", "HSL", "MKL", "NLPModels", "SolverCore", "SparseArrays"] +git-tree-sha1 = "66244d746db32e51fc27229079e355f675e017ea" uuid = "790bbbee-bee9-49ee-8912-a9de031322d5" -version = "0.16.2" +version = "0.17.4" [deps.CTDirect.extensions] CTDirectExtADNLP = ["ADNLPModels"] @@ -210,19 +208,19 @@ version = "0.16.2" [[deps.CTFlows]] deps = ["CTBase", "CTModels", "DocStringExtensions", "ForwardDiff", "LinearAlgebra", "MLStyle", "MacroTools"] -git-tree-sha1 = "4bb18901f7ed3779b010e67c6562239e9f2990e8" +git-tree-sha1 = "fc6d7425e7e54a6cb023b24e05a7c0430c9165bf" uuid = "1c39547c-7794-42f7-af83-d98194f657c2" -version = "0.8.8" +version = "0.8.9" weakdeps = ["OrdinaryDiffEq"] [deps.CTFlows.extensions] CTFlowsODE = "OrdinaryDiffEq" [[deps.CTModels]] -deps = ["CTBase", "DocStringExtensions", "Interpolations", "LinearAlgebra", "MLStyle", "MacroTools", "OrderedCollections", "Parameters", "PrettyTables", "RecipesBase"] -git-tree-sha1 = "3a520aa1f66e7fef22bacc71d68af960580de615" +deps = ["CTBase", "DocStringExtensions", "Interpolations", "LinearAlgebra", "MLStyle", "MacroTools", "OrderedCollections", "Parameters", "RecipesBase"] +git-tree-sha1 = "072e5e867715b060729158d4c5fb3b16ff7e82b0" uuid = "34c4fa32-2049-4079-8329-de33c2a22e2d" -version = "0.6.3" +version = "0.6.9" [deps.CTModels.extensions] CTModelsJLD = "JLD2" @@ -236,12 +234,9 @@ version = "0.6.3" [[deps.CTParser]] deps = ["CTBase", "DocStringExtensions", "MLStyle", "OrderedCollections", "Parameters", "Unicode"] -git-tree-sha1 = "c76927648ca8324b07f48b45c3b313033d280922" +git-tree-sha1 = "48ec8193487a79277ff278752337c4ffb8fff691" uuid = "32681960-a1b1-40db-9bff-a1ca817385d1" -version = "0.6.2" - - [deps.CTParser.weakdeps] - MadNLP = "2621e9c9-9eb4-46b1-8089-e8c72242dfb6" +version = "0.7.1" [[deps.Cairo_jll]] deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] @@ -251,9 +246,9 @@ version = "1.18.5+0" [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra"] -git-tree-sha1 = "06ee8d1aa558d2833aa799f6f0b31b30cada405f" +git-tree-sha1 = "e4c6a16e77171a5f5e25e9646617ab1c276c5607" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.25.2" +version = "1.26.0" weakdeps = ["SparseArrays"] [deps.ChainRulesCore.extensions] @@ -273,9 +268,9 @@ version = "0.7.8" [[deps.ColorSchemes]] deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] -git-tree-sha1 = "a656525c8b46aa6a1c76891552ed5381bb32ae7b" +git-tree-sha1 = "b0fd3f56fa442f81e0a47815c92245acfaaa4e34" uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" -version = "3.30.0" +version = "3.31.0" [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] @@ -321,9 +316,9 @@ version = "1.0.0" [[deps.Compat]] deps = ["TOML", "UUIDs"] -git-tree-sha1 = "0037835448781bb46feb39866934e243886d756a" +git-tree-sha1 = "9d8a54ce4b17aa5bdce0ea5c34bc5e7c340d16ad" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.18.0" +version = "4.18.1" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] @@ -332,7 +327,7 @@ weakdeps = ["Dates", "LinearAlgebra"] [[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "1.1.1+0" +version = "1.3.0+1" [[deps.CompositionsBase]] git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" @@ -380,26 +375,16 @@ git-tree-sha1 = "fcbb72b032692610bfbdb15018ac16a36cf2e406" uuid = "adafc99b-e345-5852-983c-f28acb93d879" version = "0.3.1" -[[deps.Crayons]] -git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" -uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" -version = "4.1.1" - [[deps.DataAPI]] git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" version = "1.16.0" [[deps.DataStructures]] -deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "4e1fe97fdaed23e9dc21d4d664bea76b65fc50a0" +deps = ["OrderedCollections"] +git-tree-sha1 = "6c72198e6a101cccdd4c9731d3985e904ba26037" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.22" - -[[deps.DataValueInterfaces]] -git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" -uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" -version = "1.0.0" +version = "0.19.1" [[deps.Dates]] deps = ["Printf"] @@ -419,15 +404,14 @@ uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" version = "1.9.1" [[deps.DiffEqBase]] -deps = ["ArrayInterface", "ConcreteStructs", "DataStructures", "DocStringExtensions", "EnumX", "EnzymeCore", "FastBroadcast", "FastClosures", "FastPower", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SciMLStructures", "Setfield", "Static", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "TruncatedStacktraces"] -git-tree-sha1 = "c1ae1a949a95ee1895e3b48e11982f102152c3aa" +deps = ["ArrayInterface", "ConcreteStructs", "DocStringExtensions", "EnzymeCore", "FastBroadcast", "FastClosures", "FastPower", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "PrecompileTools", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SciMLStructures", "Setfield", "Static", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "TruncatedStacktraces"] +git-tree-sha1 = "087632db966c90079a5534e4147afea9136ca39a" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.182.0" +version = "6.190.2" [deps.DiffEqBase.extensions] DiffEqBaseCUDAExt = "CUDA" DiffEqBaseChainRulesCoreExt = "ChainRulesCore" - DiffEqBaseDistributionsExt = "Distributions" DiffEqBaseEnzymeExt = ["ChainRulesCore", "Enzyme"] DiffEqBaseForwardDiffExt = ["ForwardDiff"] DiffEqBaseGTPSAExt = "GTPSA" @@ -472,9 +456,9 @@ version = "1.15.1" [[deps.DifferentiationInterface]] deps = ["ADTypes", "LinearAlgebra"] -git-tree-sha1 = "54d7b8c74408048aea9c055ac8573b2b5c5ec11f" +git-tree-sha1 = "961e5d49b64d63b3f2201b0de60065876f4be551" uuid = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" -version = "0.7.4" +version = "0.7.10" [deps.DifferentiationInterface.extensions] DifferentiationInterfaceChainRulesCoreExt = "ChainRulesCore" @@ -532,9 +516,9 @@ version = "0.9.5" [[deps.Documenter]] deps = ["ANSIColoredPrinters", "AbstractTrees", "Base64", "CodecZlib", "Dates", "DocStringExtensions", "Downloads", "Git", "IOCapture", "InteractiveUtils", "JSON", "Logging", "Markdown", "MarkdownAST", "Pkg", "PrecompileTools", "REPL", "RegistryInstances", "SHA", "TOML", "Test", "Unicode"] -git-tree-sha1 = "47ffb8f27ffc01e2e57e7ae5365ae5ceef87b03d" +git-tree-sha1 = "352b9a04e74edd16429aec79f033620cf8e780d4" uuid = "e30172f5-a6a5-5a46-863b-614d45cd2de4" -version = "1.14.1" +version = "1.15.0" [[deps.Downloads]] deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] @@ -547,9 +531,9 @@ uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" version = "1.0.5" [[deps.EnzymeCore]] -git-tree-sha1 = "8272a687bca7b5c601c0c24fc0c71bff10aafdfd" +git-tree-sha1 = "f91e7cb4c17dae77c490b75328f22a226708557c" uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" -version = "0.8.12" +version = "0.8.15" weakdeps = ["Adapt"] [deps.EnzymeCore.extensions] @@ -563,9 +547,9 @@ version = "0.0.20230411+1" [[deps.ExaModels]] deps = ["NLPModels", "Printf", "SolverCore"] -git-tree-sha1 = "d33a033f1623bceaa5a07c8d43aa6fb0696acad5" +git-tree-sha1 = "2a372f5f8049cc429ddd98cd89247bc51ab954d7" uuid = "1037b233-b668-4ce9-9b63-f9f681f55dd2" -version = "0.9.0" +version = "0.9.2" [deps.ExaModels.extensions] ExaModelsAMDGPU = "AMDGPU" @@ -600,9 +584,9 @@ version = "0.1.11" [[deps.Expat_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "d55dffd9ae73ff72f1c0482454dcf2ec6c6c4a63" +git-tree-sha1 = "27af30de8b5445644e8ffe3bcb0d72049c089cf1" uuid = "2e619515-83b5-522b-bb60-26c02a35a201" -version = "2.6.5+0" +version = "2.7.3+0" [[deps.ExponentialUtilities]] deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "PrecompileTools", "Printf", "SparseArrays", "libblastrampoline_jll"] @@ -626,15 +610,15 @@ version = "0.10.14" [[deps.FFMPEG]] deps = ["FFMPEG_jll"] -git-tree-sha1 = "83dc665d0312b41367b7263e8a4d172eac1897f4" +git-tree-sha1 = "95ecf07c2eea562b5adbd0696af6db62c0f52560" uuid = "c87230d0-a227-11e9-1b43-d7ebe4e7570a" -version = "0.4.4" +version = "0.4.5" [[deps.FFMPEG_jll]] deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] -git-tree-sha1 = "3a948313e7a41eb1db7a1e733e6335f17b4ab3c4" +git-tree-sha1 = "ccc81ba5e42497f4e76553a5545665eed577a663" uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" -version = "7.1.1+0" +version = "8.0.0+0" [[deps.FastBroadcast]] deps = ["ArrayInterface", "LinearAlgebra", "Polyester", "Static", "StaticArrayInterface", "StrideArraysCore"] @@ -649,14 +633,14 @@ version = "0.3.2" [[deps.FastGaussQuadrature]] deps = ["LinearAlgebra", "SpecialFunctions", "StaticArrays"] -git-tree-sha1 = "fd923962364b645f3719855c88f7074413a6ad92" +git-tree-sha1 = "0044e9f5e49a57e88205e8f30ab73928b05fe5b6" uuid = "442a2c76-b920-505d-bb47-c5924d526838" -version = "1.0.2" +version = "1.1.0" [[deps.FastPower]] -git-tree-sha1 = "5f7afd4b1a3969dc34d692da2ed856047325b06e" +git-tree-sha1 = "e47c70bf430175e077d1955d7f04923504acc74c" uuid = "a4df4552-cc26-4903-aec0-212e50a0e84b" -version = "1.1.3" +version = "1.2.0" [deps.FastPower.extensions] FastPowerEnzymeExt = "Enzyme" @@ -682,9 +666,9 @@ version = "1.11.0" [[deps.FillArrays]] deps = ["LinearAlgebra"] -git-tree-sha1 = "6a70198746448456524cb442b8af316927ff3e1a" +git-tree-sha1 = "173e4d8f14230a7523ae11b9a3fa9edb3e0efd78" uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "1.13.0" +version = "1.14.0" [deps.FillArrays.extensions] FillArraysPDMatsExt = "PDMats" @@ -698,9 +682,9 @@ version = "1.13.0" [[deps.FiniteDiff]] deps = ["ArrayInterface", "LinearAlgebra", "Setfield"] -git-tree-sha1 = "f089ab1f834470c525562030c8cfde4025d5e915" +git-tree-sha1 = "9340ca07ca27093ff68418b7558ca37b05f8aeb1" uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" -version = "2.27.0" +version = "2.29.0" [deps.FiniteDiff.extensions] FiniteDiffBandedMatricesExt = "BandedMatrices" @@ -722,9 +706,9 @@ version = "0.8.5" [[deps.Fontconfig_jll]] deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Zlib_jll"] -git-tree-sha1 = "301b5d5d731a0654825f1f2e906990f7141a106b" +git-tree-sha1 = "f85dac9a96a01087df6e3a749840015a0ca3817d" uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" -version = "2.16.0+0" +version = "2.17.1+0" [[deps.Format]] git-tree-sha1 = "9c68794ef81b08086aeb32eeaf33531668d5f5fc" @@ -733,9 +717,9 @@ version = "1.3.7" [[deps.ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] -git-tree-sha1 = "910febccb28d493032495b7009dce7d7f7aee554" +git-tree-sha1 = "afb7c51ac63e40708a3071f80f5e84a752299d4f" uuid = "f6369f11-7733-5829-9624-2563aa707210" -version = "1.0.1" +version = "0.10.39" weakdeps = ["StaticArrays"] [deps.ForwardDiff.extensions] @@ -783,21 +767,21 @@ version = "0.2.0" [[deps.GR]] deps = ["Artifacts", "Base64", "DelimitedFiles", "Downloads", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Preferences", "Printf", "Qt6Wayland_jll", "Random", "Serialization", "Sockets", "TOML", "Tar", "Test", "p7zip_jll"] -git-tree-sha1 = "1828eb7275491981fa5f1752a5e126e8f26f8741" +git-tree-sha1 = "f52c27dd921390146624f3aab95f4e8614ad6531" uuid = "28b8d3ca-fb5f-59d9-8090-bfdbd6d07a71" -version = "0.73.17" +version = "0.73.18" [[deps.GR_jll]] deps = ["Artifacts", "Bzip2_jll", "Cairo_jll", "FFMPEG_jll", "Fontconfig_jll", "FreeType2_jll", "GLFW_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libtiff_jll", "Pixman_jll", "Qt6Base_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "27299071cc29e409488ada41ec7643e0ab19091f" +git-tree-sha1 = "4b0406b866ea9fdbaf1148bc9c0b887e59f9af68" uuid = "d2c73de3-f751-5644-a686-071e5b155ba9" -version = "0.73.17+0" +version = "0.73.18+0" [[deps.GenericSchur]] deps = ["LinearAlgebra", "Printf"] -git-tree-sha1 = "f88e0ba1f6b42121a7c1dfe93a9687d8e164c91b" +git-tree-sha1 = "a694e2a57394e409f7a11ee0977362a9fafcb8c7" uuid = "c145ed77-6b09-5dd9-b285-bf645a82121e" -version = "0.5.5" +version = "0.5.6" [[deps.GettextRuntime_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll"] @@ -805,23 +789,35 @@ git-tree-sha1 = "45288942190db7c5f760f59c04495064eedf9340" uuid = "b0724c58-0f36-5564-988d-3bb0596ebc4a" version = "0.22.4+0" +[[deps.Ghostscript_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Zlib_jll"] +git-tree-sha1 = "38044a04637976140074d0b0621c1edf0eb531fd" +uuid = "61579ee1-b43e-5ca0-a5da-69d92c66a64b" +version = "9.55.1+0" + [[deps.Git]] -deps = ["Git_jll", "JLLWrappers", "OpenSSH_jll"] -git-tree-sha1 = "2230a9cc32394b11a3b3aa807a382e3bbab1198c" +deps = ["Git_LFS_jll", "Git_jll", "JLLWrappers", "OpenSSH_jll"] +git-tree-sha1 = "824a1890086880696fc908fe12a17bcf61738bd8" uuid = "d7ba0133-e1db-5d97-8f8c-041e4b3a1eb2" -version = "1.4.0" +version = "1.5.0" + +[[deps.Git_LFS_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "bb8471f313ed941f299aa53d32a94ab3bee08844" +uuid = "020c3dae-16b3-5ae5-87b3-4cb189e250b2" +version = "3.7.0+0" [[deps.Git_jll]] deps = ["Artifacts", "Expat_jll", "JLLWrappers", "LibCURL_jll", "Libdl", "Libiconv_jll", "OpenSSL_jll", "PCRE2_jll", "Zlib_jll"] -git-tree-sha1 = "cb151153e40ad40a6dbf984fcd767e1d266fcc9c" +git-tree-sha1 = "b6a684587ebe896d9f68ae777f648205940f0f70" uuid = "f8c6e375-362e-5223-8a59-34ff63f689eb" -version = "2.50.1+0" +version = "2.51.3+0" [[deps.Glib_jll]] deps = ["Artifacts", "GettextRuntime_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] -git-tree-sha1 = "35fbd0cefb04a516104b8e183ce0df11b70a3f1a" +git-tree-sha1 = "50c11ffab2a3d50192a228c313f05b5b5dc5acb2" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.84.3+0" +version = "2.86.0+0" [[deps.Graphite2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -848,9 +844,9 @@ version = "4.0.4+0" [[deps.HTTP]] deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "PrecompileTools", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] -git-tree-sha1 = "ed5e9c58612c4e081aecdb6e1a479e18462e041e" +git-tree-sha1 = "5e6fe50ae7f23d171f44e311c2960294aaa0beb5" uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "1.10.17" +version = "1.10.19" [[deps.HarfBuzz_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll"] @@ -859,10 +855,10 @@ uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" version = "8.5.1+0" [[deps.Hwloc_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "92f65c4d78ce8cdbb6b68daf88889950b0a99d11" +deps = ["Artifacts", "JLLWrappers", "Libdl", "XML2_jll", "Xorg_libpciaccess_jll"] +git-tree-sha1 = "3d468106a05408f9f7b6f161d9e7715159af247b" uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" -version = "2.12.1+0" +version = "2.12.2+0" [[deps.IOCapture]] deps = ["Logging", "Random"] @@ -887,16 +883,19 @@ uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" version = "1.11.0" [[deps.Interpolations]] -deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] -git-tree-sha1 = "f2905febca224eade352a573e129ef43aa593354" +deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] +git-tree-sha1 = "65d505fa4c0d7072990d659ef3fc086eb6da8208" uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" -version = "0.16.1" -weakdeps = ["ForwardDiff", "Unitful"] +version = "0.16.2" [deps.Interpolations.extensions] InterpolationsForwardDiffExt = "ForwardDiff" InterpolationsUnitfulExt = "Unitful" + [deps.Interpolations.weakdeps] + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + [[deps.InverseFunctions]] git-tree-sha1 = "a779299d77cd080bf77b97535acecd73e1c5e5cb" uuid = "3587e190-3f89-42d0-90ee-14403ec27112" @@ -909,9 +908,9 @@ weakdeps = ["Dates", "Test"] [[deps.Ipopt]] deps = ["Ipopt_jll", "LinearAlgebra", "OpenBLAS32_jll", "PrecompileTools"] -git-tree-sha1 = "4ad0d2dea51e5d49866b40a2d2521da6a1be7097" +git-tree-sha1 = "84be69cbb8229dd4ac8776f37d4cfd0a16a44482" uuid = "b6b21f68-93f8-5de0-b562-5493be1d77c9" -version = "1.10.6" +version = "1.12.1" [deps.Ipopt.extensions] IpoptMathOptInterfaceExt = "MathOptInterface" @@ -921,14 +920,14 @@ version = "1.10.6" [[deps.Ipopt_jll]] deps = ["ASL_jll", "Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "MUMPS_seq_jll", "SPRAL_jll", "libblastrampoline_jll"] -git-tree-sha1 = "1bb978524c2837be596aeb2b69951feb6b9822f8" +git-tree-sha1 = "b33cbc78b8d4de87d18fcd705054a82e2999dbac" uuid = "9cc047cb-c261-5740-88fc-0cf96f7bdcc7" -version = "300.1400.1701+0" +version = "300.1400.1900+0" [[deps.IrrationalConstants]] -git-tree-sha1 = "e2222959fbc6c19554dc15174c81bf7bf3aa691c" +git-tree-sha1 = "b2d91fe939cae05960e760110b328288867b5758" uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" -version = "0.2.4" +version = "0.2.6" [[deps.IteratorInterfaceExtensions]] git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" @@ -948,10 +947,16 @@ uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" version = "1.7.1" [[deps.JSON]] -deps = ["Dates", "Mmap", "Parsers", "Unicode"] -git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +deps = ["Dates", "Logging", "Parsers", "PrecompileTools", "StructUtils", "UUIDs", "Unicode"] +git-tree-sha1 = "06ea418d0c95878c8f3031023951edcf25b9e0ef" uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" -version = "0.21.4" +version = "1.2.0" + + [deps.JSON.extensions] + JSONArrowExt = ["ArrowTypes"] + + [deps.JSON.weakdeps] + ArrowTypes = "31f734f8-188a-4ce0-8406-c8a06bd891cd" [[deps.Jieko]] deps = ["ExproniconLite"] @@ -961,15 +966,20 @@ version = "0.2.1" [[deps.JpegTurbo_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "eac1206917768cb54957c65a615460d87b455fc1" +git-tree-sha1 = "4255f0032eafd6451d707a51d5f0248b8a165e4d" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" -version = "3.1.1+0" +version = "3.1.3+0" + +[[deps.JuliaSyntaxHighlighting]] +deps = ["StyledStrings"] +uuid = "ac6e5ff7-fb65-4e79-a425-ec3bc9c03011" +version = "1.12.0" [[deps.Krylov]] deps = ["LinearAlgebra", "Printf", "SparseArrays"] -git-tree-sha1 = "b94257a1a8737099ca40bc7271a8b374033473ed" +git-tree-sha1 = "d1fc961038207e43982851e57ee257adc37be5e8" uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" -version = "0.10.1" +version = "0.10.2" [[deps.LAME_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1001,10 +1011,10 @@ uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" version = "1.4.0" [[deps.Latexify]] -deps = ["Format", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"] -git-tree-sha1 = "4f34eaabe49ecb3fb0d58d6015e32fd31a733199" +deps = ["Format", "Ghostscript_jll", "InteractiveUtils", "LaTeXStrings", "MacroTools", "Markdown", "OrderedCollections", "Requires"] +git-tree-sha1 = "44f93c47f9cd6c7e431f2f2091fcba8f01cd7e8f" uuid = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" -version = "0.16.8" +version = "0.16.10" [deps.Latexify.extensions] DataFramesExt = "DataFrames" @@ -1031,9 +1041,9 @@ version = "1.3.0" [[deps.LazyArrays]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "MacroTools", "SparseArrays"] -git-tree-sha1 = "76627adb8c542c6b73f68d4bfd0aa71c9893a079" +git-tree-sha1 = "79ee64f6ba0a5a49930f51c86f60d7526b5e12c8" uuid = "5078a376-72f3-5289-bfd5-ec5146d43c02" -version = "2.6.2" +version = "2.8.0" [deps.LazyArrays.extensions] LazyArraysBandedMatricesExt = "BandedMatrices" @@ -1058,24 +1068,24 @@ uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" version = "0.6.4" [[deps.LibCURL_jll]] -deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "OpenSSL_jll", "Zlib_jll", "nghttp2_jll"] uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" -version = "8.6.0+0" +version = "8.11.1+1" [[deps.LibGit2]] -deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] +deps = ["LibGit2_jll", "NetworkOptions", "Printf", "SHA"] uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" version = "1.11.0" [[deps.LibGit2_jll]] -deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "OpenSSL_jll"] uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" -version = "1.7.2+0" +version = "1.9.0+0" [[deps.LibSSH2_jll]] -deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +deps = ["Artifacts", "Libdl", "OpenSSL_jll"] uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" -version = "1.11.0+1" +version = "1.11.3+1" [[deps.Libdl]] uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" @@ -1101,21 +1111,21 @@ version = "1.18.0+0" [[deps.Libmount_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "a31572773ac1b745e0343fe5e2c8ddda7a37e997" +git-tree-sha1 = "3acf07f130a76f87c041cfb2ff7d7284ca67b072" uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" -version = "2.41.0+0" +version = "2.41.2+0" [[deps.Libtiff_jll]] deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] -git-tree-sha1 = "4ab7581296671007fc33f07a721631b8855f4b1d" +git-tree-sha1 = "f04133fe05eff1667d2054c53d59f9122383fe05" uuid = "89763e89-9b03-5906-acba-b20f662cd828" -version = "4.7.1+0" +version = "4.7.2+0" [[deps.Libuuid_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "321ccef73a96ba828cd51f2ab5b9f917fa73945a" +git-tree-sha1 = "2a7a12fc0a4e7fb773450d17975322aa77142106" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" -version = "2.41.0+0" +version = "2.41.2+0" [[deps.LineSearch]] deps = ["ADTypes", "CommonSolve", "ConcreteStructs", "FastClosures", "LinearAlgebra", "MaybeInplace", "SciMLBase", "SciMLJacobianOperators", "StaticArraysCore"] @@ -1136,13 +1146,13 @@ version = "7.4.0" [[deps.LinearAlgebra]] deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" -version = "1.11.0" +version = "1.12.0" [[deps.LinearOperators]] deps = ["FastClosures", "LinearAlgebra", "Printf", "Requires", "SparseArrays", "TimerOutputs"] -git-tree-sha1 = "1894a798ed8887895c5ae70f1fe8331c0c1d8480" +git-tree-sha1 = "db137007d2c4ed948aa5f2518a2b451851ea8bda" uuid = "5c8ed15e-5a4c-59e4-a42b-c7e8811fb125" -version = "2.10.0" +version = "2.11.0" [deps.LinearOperators.extensions] LinearOperatorsAMDGPUExt = "AMDGPU" @@ -1161,18 +1171,20 @@ version = "2.10.0" Metal = "dde4c033-4e86-420c-a63e-0dd931031962" [[deps.LinearSolve]] -deps = ["ArrayInterface", "ChainRulesCore", "ConcreteStructs", "DocStringExtensions", "EnumX", "GPUArraysCore", "InteractiveUtils", "Krylov", "LazyArrays", "Libdl", "LinearAlgebra", "MKL_jll", "Markdown", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "StaticArraysCore", "UnPack"] -git-tree-sha1 = "4a7614717945ce05d1693192f399e3b258c60636" +deps = ["ArrayInterface", "ChainRulesCore", "ConcreteStructs", "DocStringExtensions", "EnumX", "GPUArraysCore", "InteractiveUtils", "Krylov", "LazyArrays", "Libdl", "LinearAlgebra", "MKL_jll", "Markdown", "OpenBLAS_jll", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLLogging", "SciMLOperators", "Setfield", "StaticArraysCore", "UnPack"] +git-tree-sha1 = "b5def83652705bdc00035dff671039e707588a00" uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" -version = "3.25.1" +version = "3.46.1" [deps.LinearSolve.extensions] + LinearSolveAMDGPUExt = "AMDGPU" LinearSolveBLISExt = ["blis_jll", "LAPACK_jll"] LinearSolveBandedMatricesExt = "BandedMatrices" LinearSolveBlockDiagonalsExt = "BlockDiagonals" LinearSolveCUDAExt = "CUDA" LinearSolveCUDSSExt = "CUDSS" LinearSolveCUSOLVERRFExt = ["CUSOLVERRF", "SparseArrays"] + LinearSolveCliqueTreesExt = ["CliqueTrees", "SparseArrays"] LinearSolveEnzymeExt = "EnzymeCore" LinearSolveFastAlmostBandedMatricesExt = "FastAlmostBandedMatrices" LinearSolveFastLapackInterfaceExt = "FastLapackInterface" @@ -1182,17 +1194,20 @@ version = "3.25.1" LinearSolveKernelAbstractionsExt = "KernelAbstractions" LinearSolveKrylovKitExt = "KrylovKit" LinearSolveMetalExt = "Metal" + LinearSolveMooncakeExt = "Mooncake" LinearSolvePardisoExt = ["Pardiso", "SparseArrays"] LinearSolveRecursiveFactorizationExt = "RecursiveFactorization" LinearSolveSparseArraysExt = "SparseArrays" LinearSolveSparspakExt = ["SparseArrays", "Sparspak"] [deps.LinearSolve.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" BandedMatrices = "aae01518-5342-5314-be14-df237901396f" BlockDiagonals = "0a1fb500-61f7-11e9-3c65-f5ef3456f9f0" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" CUDSS = "45b445bb-4962-46a0-9369-b4df9d0f772e" CUSOLVERRF = "a8cc9031-bad2-4722-94f5-40deabb4245c" + CliqueTrees = "60701a23-6482-424a-84db-faee86b9b1f8" EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" FastAlmostBandedMatrices = "9d29842c-ecb8-4973-b1e9-a27b1157504e" FastLapackInterface = "29a986be-02c6-4525-aec4-84b980013641" @@ -1203,6 +1218,7 @@ version = "3.25.1" KrylovKit = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" LAPACK_jll = "51474c39-65e3-53ba-86ba-03b1b862ec14" Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" Pardiso = "46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2" RecursiveFactorization = "f2c3362d-daeb-58d1-803e-2bc74f2840b4" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" @@ -1231,14 +1247,14 @@ version = "1.11.0" [[deps.LoggingExtras]] deps = ["Dates", "Logging"] -git-tree-sha1 = "f02b56007b064fbfddb4c9cd60161b6dd0f40df3" +git-tree-sha1 = "f00544d95982ea270145636c181ceda21c4e2575" uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" -version = "1.1.0" +version = "1.2.0" [[deps.LossControl]] -path = "/Users/ocots/Research/control-loss/simulations/LossControl" +path = "/Users/ocots/Research/logiciels/dev/control-toolbox/LossControl.jl" uuid = "6a3a0e7e-9c90-4c26-bc64-8dd630726a7b" -version = "0.2.1" +version = "0.2.4" [[deps.METIS_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1265,9 +1281,9 @@ version = "0.4.17" [[deps.MUMPS_seq_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "METIS_jll", "libblastrampoline_jll"] -git-tree-sha1 = "196f61d99adc06f32c32bc4afe5298d9b1e862c8" +git-tree-sha1 = "fc0c8442887b48c15aec2b1787a5fc812a99b2fd" uuid = "d7ed1dd3-d0ae-5e8e-bfb4-87a502085b8d" -version = "500.800.0+0" +version = "500.800.100+0" [[deps.MacroTools]] git-tree-sha1 = "1e0228a030642014fe5cfe68c2c0a818f9e3f522" @@ -1280,7 +1296,7 @@ uuid = "d125e4d3-2237-4719-b19c-fa641b8a4667" version = "0.1.8" [[deps.Markdown]] -deps = ["Base64"] +deps = ["Base64", "JuliaSyntaxHighlighting", "StyledStrings"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" version = "1.11.0" @@ -1307,9 +1323,10 @@ uuid = "739be429-bea8-5141-9913-cc70e7f3736d" version = "1.1.9" [[deps.MbedTLS_jll]] -deps = ["Artifacts", "Libdl"] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "3cce3511ca2c6f87b19c34ffc623417ed2798cbd" uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" -version = "2.28.6+0" +version = "2.28.10+0" [[deps.Measures]] git-tree-sha1 = "c13304c81eec1ed3af7fc20e75fb6b26092a1102" @@ -1334,7 +1351,7 @@ version = "0.3.7" [[deps.MozillaCACerts_jll]] uuid = "14a3606d-f60d-562e-9121-12d972cd8159" -version = "2023.12.12" +version = "2025.5.20" [[deps.MuladdMacro]] git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab" @@ -1348,10 +1365,16 @@ uuid = "a4795742-8479-5a88-8948-cc11e1c8c1a6" version = "0.21.5" [[deps.NLPModelsIpopt]] -deps = ["Ipopt", "NLPModels", "SolverCore"] -git-tree-sha1 = "06782efc249b21d7b7c538fec4593d72420a36e3" +deps = ["Ipopt", "NLPModels", "NLPModelsModifiers", "SolverCore"] +git-tree-sha1 = "4bda4cf02a6ff0a9508179503517cb905519bbf9" uuid = "f4238b75-b362-5c4c-b852-0801c9a21d71" -version = "0.10.4" +version = "0.11.0" + +[[deps.NLPModelsModifiers]] +deps = ["FastClosures", "LinearAlgebra", "LinearOperators", "NLPModels", "Printf", "SparseArrays"] +git-tree-sha1 = "a80505adbe42104cbbe9674591a5ccd9e9c2dfda" +uuid = "e01155f1-5c6f-4375-a9d8-616dd036575f" +version = "0.7.2" [[deps.NLSolversBase]] deps = ["ADTypes", "DifferentiationInterface", "Distributed", "FiniteDiff", "ForwardDiff"] @@ -1367,13 +1390,13 @@ version = "1.1.3" [[deps.NetworkOptions]] uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" -version = "1.2.0" +version = "1.3.0" [[deps.NonlinearSolve]] -deps = ["ADTypes", "ArrayInterface", "BracketingNonlinearSolve", "CommonSolve", "ConcreteStructs", "DiffEqBase", "DifferentiationInterface", "FastClosures", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "LinearSolve", "NonlinearSolveBase", "NonlinearSolveFirstOrder", "NonlinearSolveQuasiNewton", "NonlinearSolveSpectralMethods", "PrecompileTools", "Preferences", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SparseArrays", "SparseMatrixColorings", "StaticArraysCore", "SymbolicIndexingInterface"] -git-tree-sha1 = "d2ec18c1e4eccbb70b64be2435fc3b06fbcdc0a1" +deps = ["ADTypes", "ArrayInterface", "BracketingNonlinearSolve", "CommonSolve", "ConcreteStructs", "DifferentiationInterface", "FastClosures", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "LinearSolve", "NonlinearSolveBase", "NonlinearSolveFirstOrder", "NonlinearSolveQuasiNewton", "NonlinearSolveSpectralMethods", "PrecompileTools", "Preferences", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "StaticArraysCore", "SymbolicIndexingInterface"] +git-tree-sha1 = "1d091cfece012662b06d25c792b3a43a0804c47b" uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" -version = "4.10.0" +version = "4.12.0" [deps.NonlinearSolve.extensions] NonlinearSolveFastLevenbergMarquardtExt = "FastLevenbergMarquardt" @@ -1382,7 +1405,7 @@ version = "4.10.0" NonlinearSolveMINPACKExt = "MINPACK" NonlinearSolveNLSolversExt = "NLSolvers" NonlinearSolveNLsolveExt = ["NLsolve", "LineSearches"] - NonlinearSolvePETScExt = ["PETSc", "MPI"] + NonlinearSolvePETScExt = ["PETSc", "MPI", "SparseArrays"] NonlinearSolveSIAMFANLEquationsExt = "SIAMFANLEquations" NonlinearSolveSpeedMappingExt = "SpeedMapping" NonlinearSolveSundialsExt = "Sundials" @@ -1398,54 +1421,63 @@ version = "4.10.0" NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" PETSc = "ace2c81b-2b5f-4b1e-a30d-d662738edfe0" SIAMFANLEquations = "084e46ad-d928-497d-ad5e-07fa361a48c4" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" SpeedMapping = "f1835b91-879b-4a3f-a438-e4baacf14412" Sundials = "c3572dad-4567-51f8-b174-8c6c989267f4" [[deps.NonlinearSolveBase]] -deps = ["ADTypes", "Adapt", "ArrayInterface", "CommonSolve", "Compat", "ConcreteStructs", "DifferentiationInterface", "EnzymeCore", "FastClosures", "LinearAlgebra", "Markdown", "MaybeInplace", "Preferences", "Printf", "RecursiveArrayTools", "SciMLBase", "SciMLJacobianOperators", "SciMLOperators", "StaticArraysCore", "SymbolicIndexingInterface", "TimerOutputs"] -git-tree-sha1 = "1d42a315ba627ca0027d49d0efb44e3d88db24aa" +deps = ["ADTypes", "Adapt", "ArrayInterface", "CommonSolve", "Compat", "ConcreteStructs", "DifferentiationInterface", "EnzymeCore", "FastClosures", "LinearAlgebra", "Markdown", "MaybeInplace", "Preferences", "Printf", "RecursiveArrayTools", "SciMLBase", "SciMLJacobianOperators", "SciMLOperators", "SciMLStructures", "Setfield", "StaticArraysCore", "SymbolicIndexingInterface", "TimerOutputs"] +git-tree-sha1 = "9dba8e7ccfaf4c10b3a3b4cc52abf639f8558efd" uuid = "be0214bd-f91f-a760-ac4e-3421ce2b2da0" -version = "1.14.0" +version = "2.0.0" [deps.NonlinearSolveBase.extensions] NonlinearSolveBaseBandedMatricesExt = "BandedMatrices" - NonlinearSolveBaseDiffEqBaseExt = "DiffEqBase" + NonlinearSolveBaseChainRulesCoreExt = "ChainRulesCore" + NonlinearSolveBaseEnzymeExt = ["ChainRulesCore", "Enzyme"] NonlinearSolveBaseForwardDiffExt = "ForwardDiff" NonlinearSolveBaseLineSearchExt = "LineSearch" NonlinearSolveBaseLinearSolveExt = "LinearSolve" + NonlinearSolveBaseMooncakeExt = "Mooncake" + NonlinearSolveBaseReverseDiffExt = "ReverseDiff" NonlinearSolveBaseSparseArraysExt = "SparseArrays" NonlinearSolveBaseSparseMatrixColoringsExt = "SparseMatrixColorings" + NonlinearSolveBaseTrackerExt = "Tracker" [deps.NonlinearSolveBase.weakdeps] BandedMatrices = "aae01518-5342-5314-be14-df237901396f" - DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" LineSearch = "87fe0de2-c867-4266-b59a-2f0a94fc965b" LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" + Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" SparseMatrixColorings = "0a514795-09f3-496d-8182-132a7b665d35" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" [[deps.NonlinearSolveFirstOrder]] -deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConcreteStructs", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "LinearSolve", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "SciMLJacobianOperators", "Setfield", "StaticArraysCore"] -git-tree-sha1 = "3f1198ae5cbf21e84b8251a9e62fa1f888f3e4cb" +deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConcreteStructs", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "LinearSolve", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "SciMLJacobianOperators", "Setfield", "StaticArraysCore"] +git-tree-sha1 = "01c48c37ba47721ec6489a1668ab3bb1f5b603c0" uuid = "5959db7a-ea39-4486-b5fe-2dd0bf03d60d" -version = "1.7.0" +version = "1.9.0" [[deps.NonlinearSolveQuasiNewton]] -deps = ["ArrayInterface", "CommonSolve", "ConcreteStructs", "DiffEqBase", "LinearAlgebra", "LinearSolve", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "SciMLOperators", "StaticArraysCore"] -git-tree-sha1 = "40dfaf1bf74f1f700f81d0002d4dd90999598eb2" +deps = ["ArrayInterface", "CommonSolve", "ConcreteStructs", "LinearAlgebra", "LinearSolve", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "SciMLOperators", "StaticArraysCore"] +git-tree-sha1 = "a233b7bbb32426170b238e2e2b82b0f9f1c5caba" uuid = "9a2c21bd-3a47-402d-9113-8faf9a0ee114" -version = "1.8.0" +version = "1.10.0" weakdeps = ["ForwardDiff"] [deps.NonlinearSolveQuasiNewton.extensions] NonlinearSolveQuasiNewtonForwardDiffExt = "ForwardDiff" [[deps.NonlinearSolveSpectralMethods]] -deps = ["CommonSolve", "ConcreteStructs", "DiffEqBase", "LineSearch", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase"] -git-tree-sha1 = "84de5a469e119eb2c22ae07c543dc4e7f7001ee7" +deps = ["CommonSolve", "ConcreteStructs", "LineSearch", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase"] +git-tree-sha1 = "139bf9211930a829703481b3ffd86b1ab309cd07" uuid = "26075421-4e9a-44e1-8bd1-420ed7ad02b2" -version = "1.3.0" +version = "1.5.0" weakdeps = ["ForwardDiff"] [deps.NonlinearSolveSpectralMethods.extensions] @@ -1475,30 +1507,29 @@ version = "0.3.29+0" [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" -version = "0.3.27+1" +version = "0.3.29+0" [[deps.OpenLibm_jll]] deps = ["Artifacts", "Libdl"] uuid = "05823500-19ac-5b8b-9628-191a04bc5112" -version = "0.8.5+0" +version = "0.8.7+0" [[deps.OpenSSH_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "OpenSSL_jll", "Zlib_jll"] -git-tree-sha1 = "cb7acd5d10aff809b4d0191dfe1956c2edf35800" +git-tree-sha1 = "301412a644646fdc0ad67d0a87487466b491e53d" uuid = "9bd350c2-7e96-507f-8002-3f2e150b4e1b" -version = "10.0.1+0" +version = "10.2.1+0" [[deps.OpenSSL]] -deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "OpenSSL_jll", "Sockets"] -git-tree-sha1 = "f1a7e086c677df53e064e0fdd2c9d0b0833e3f6e" +deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "NetworkOptions", "OpenSSL_jll", "Sockets"] +git-tree-sha1 = "386b47442468acfb1add94bf2d85365dea10cbab" uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" -version = "1.5.0" +version = "1.6.0" [[deps.OpenSSL_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "2ae7d4ddec2e13ad3bddf5c0796f7547cf682391" +deps = ["Artifacts", "Libdl"] uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "3.5.2+0" +version = "3.5.1+0" [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl"] @@ -1507,10 +1538,10 @@ uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" version = "0.5.6+0" [[deps.OptimalControl]] -deps = ["ADNLPModels", "CTBase", "CTDirect", "CTFlows", "CTModels", "CTParser", "CommonSolve", "DocStringExtensions", "ExaModels"] -git-tree-sha1 = "811aefbb89810f672a92f34a9601d6d7d1a9de38" +deps = ["ADNLPModels", "CTBase", "CTDirect", "CTFlows", "CTModels", "CTParser", "CommonSolve", "DocStringExtensions", "ExaModels", "RecipesBase"] +git-tree-sha1 = "bd4205fab4ea6c5ad5504efcf9e5868ef253227c" uuid = "5f98b655-cc9a-415a-b60e-744165666948" -version = "1.1.1" +version = "1.1.6" [[deps.Opus_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1524,28 +1555,28 @@ uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" version = "1.8.1" [[deps.OrdinaryDiffEq]] -deps = ["ADTypes", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "EnumX", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FillArrays", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "InteractiveUtils", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "MacroTools", "MuladdMacro", "NonlinearSolve", "OrdinaryDiffEqAdamsBashforthMoulton", "OrdinaryDiffEqBDF", "OrdinaryDiffEqCore", "OrdinaryDiffEqDefault", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqExplicitRK", "OrdinaryDiffEqExponentialRK", "OrdinaryDiffEqExtrapolation", "OrdinaryDiffEqFIRK", "OrdinaryDiffEqFeagin", "OrdinaryDiffEqFunctionMap", "OrdinaryDiffEqHighOrderRK", "OrdinaryDiffEqIMEXMultistep", "OrdinaryDiffEqLinear", "OrdinaryDiffEqLowOrderRK", "OrdinaryDiffEqLowStorageRK", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqNordsieck", "OrdinaryDiffEqPDIRK", "OrdinaryDiffEqPRK", "OrdinaryDiffEqQPRK", "OrdinaryDiffEqRKN", "OrdinaryDiffEqRosenbrock", "OrdinaryDiffEqSDIRK", "OrdinaryDiffEqSSPRK", "OrdinaryDiffEqStabilizedIRK", "OrdinaryDiffEqStabilizedRK", "OrdinaryDiffEqSymplecticRK", "OrdinaryDiffEqTsit5", "OrdinaryDiffEqVerner", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SciMLStructures", "SimpleNonlinearSolve", "SimpleUnPack", "SparseArrays", "Static", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] -git-tree-sha1 = "55c21fdb4626037cdbcb04fec3afa192345a24de" +deps = ["ADTypes", "Adapt", "ArrayInterface", "CommonSolve", "DataStructures", "DiffEqBase", "DocStringExtensions", "EnumX", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FillArrays", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "InteractiveUtils", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "MacroTools", "MuladdMacro", "NonlinearSolve", "OrdinaryDiffEqAdamsBashforthMoulton", "OrdinaryDiffEqBDF", "OrdinaryDiffEqCore", "OrdinaryDiffEqDefault", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqExplicitRK", "OrdinaryDiffEqExponentialRK", "OrdinaryDiffEqExtrapolation", "OrdinaryDiffEqFIRK", "OrdinaryDiffEqFeagin", "OrdinaryDiffEqFunctionMap", "OrdinaryDiffEqHighOrderRK", "OrdinaryDiffEqIMEXMultistep", "OrdinaryDiffEqLinear", "OrdinaryDiffEqLowOrderRK", "OrdinaryDiffEqLowStorageRK", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqNordsieck", "OrdinaryDiffEqPDIRK", "OrdinaryDiffEqPRK", "OrdinaryDiffEqQPRK", "OrdinaryDiffEqRKN", "OrdinaryDiffEqRosenbrock", "OrdinaryDiffEqSDIRK", "OrdinaryDiffEqSSPRK", "OrdinaryDiffEqStabilizedIRK", "OrdinaryDiffEqStabilizedRK", "OrdinaryDiffEqSymplecticRK", "OrdinaryDiffEqTsit5", "OrdinaryDiffEqVerner", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SciMLStructures", "SimpleNonlinearSolve", "SimpleUnPack", "SparseArrays", "Static", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] +git-tree-sha1 = "89172157d16139165d470602f1e552484b357771" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -version = "6.101.0" +version = "6.103.0" [[deps.OrdinaryDiffEqAdamsBashforthMoulton]] -deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqLowOrderRK", "Polyester", "RecursiveArrayTools", "Reexport", "Static"] -git-tree-sha1 = "82f78099ecf4e0fa53545811318520d87e7fe0b8" +deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqLowOrderRK", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] +git-tree-sha1 = "09aae1486c767caa6bce9de892455cbdf5a6fbc8" uuid = "89bda076-bce5-4f1c-845f-551c83cdda9a" -version = "1.2.0" +version = "1.5.0" [[deps.OrdinaryDiffEqBDF]] -deps = ["ADTypes", "ArrayInterface", "DiffEqBase", "FastBroadcast", "LinearAlgebra", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqSDIRK", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "StaticArrays", "TruncatedStacktraces"] -git-tree-sha1 = "b0bbc6541ea4a27974bd67e0a10b26211cb95e58" +deps = ["ADTypes", "ArrayInterface", "DiffEqBase", "FastBroadcast", "LinearAlgebra", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqSDIRK", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "StaticArrays", "TruncatedStacktraces"] +git-tree-sha1 = "ce8db53fd1e4e41c020fd53961e7314f75e4c21c" uuid = "6ad6398a-0878-4a85-9266-38940aa047c8" -version = "1.7.0" +version = "1.10.1" [[deps.OrdinaryDiffEqCore]] deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "EnumX", "FastBroadcast", "FastClosures", "FastPower", "FillArrays", "FunctionWrappersWrappers", "InteractiveUtils", "LinearAlgebra", "Logging", "MacroTools", "MuladdMacro", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SciMLStructures", "SimpleUnPack", "Static", "StaticArrayInterface", "StaticArraysCore", "SymbolicIndexingInterface", "TruncatedStacktraces"] -git-tree-sha1 = "1bd20b621e8dee5f2d170ae31631bf573ab77eec" +git-tree-sha1 = "4b68f9ca0cfa68cb9ee544df96391d47ca0e62a9" uuid = "bbf590c4-e513-4bbe-9b18-05decba2e5d8" -version = "1.26.2" +version = "1.36.0" [deps.OrdinaryDiffEqCore.extensions] OrdinaryDiffEqCoreEnzymeCoreExt = "EnzymeCore" @@ -1556,177 +1587,181 @@ version = "1.26.2" Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" [[deps.OrdinaryDiffEqDefault]] -deps = ["ADTypes", "DiffEqBase", "EnumX", "LinearAlgebra", "LinearSolve", "OrdinaryDiffEqBDF", "OrdinaryDiffEqCore", "OrdinaryDiffEqRosenbrock", "OrdinaryDiffEqTsit5", "OrdinaryDiffEqVerner", "PrecompileTools", "Preferences", "Reexport"] -git-tree-sha1 = "7e2f4ec76ebac709401064fd2cf73ad993d1e694" +deps = ["ADTypes", "DiffEqBase", "EnumX", "LinearAlgebra", "LinearSolve", "OrdinaryDiffEqBDF", "OrdinaryDiffEqCore", "OrdinaryDiffEqRosenbrock", "OrdinaryDiffEqTsit5", "OrdinaryDiffEqVerner", "PrecompileTools", "Preferences", "Reexport", "SciMLBase"] +git-tree-sha1 = "7d5ddeee97e1bdcc848f1397cbc3d03bd57f33e7" uuid = "50262376-6c5a-4cf5-baba-aaf4f84d72d7" -version = "1.5.0" +version = "1.8.0" [[deps.OrdinaryDiffEqDifferentiation]] -deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "ConstructionBase", "DiffEqBase", "DifferentiationInterface", "FastBroadcast", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "LinearAlgebra", "LinearSolve", "OrdinaryDiffEqCore", "SciMLBase", "SciMLOperators", "SparseArrays", "SparseMatrixColorings", "StaticArrayInterface", "StaticArrays"] -git-tree-sha1 = "382a4bf7795eee0298221c37099db770be524bab" +deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "ConstructionBase", "DiffEqBase", "DifferentiationInterface", "FastBroadcast", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "LinearAlgebra", "LinearSolve", "OrdinaryDiffEqCore", "SciMLBase", "SciMLOperators", "SparseMatrixColorings", "StaticArrayInterface", "StaticArrays"] +git-tree-sha1 = "320b5f3e4e61ca0ad863c63c803f69973ba6efce" uuid = "4302a76b-040a-498a-8c04-15b101fed76b" -version = "1.10.1" +version = "1.16.1" +weakdeps = ["SparseArrays"] + + [deps.OrdinaryDiffEqDifferentiation.extensions] + OrdinaryDiffEqDifferentiationSparseArraysExt = "SparseArrays" [[deps.OrdinaryDiffEqExplicitRK]] -deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "TruncatedStacktraces"] -git-tree-sha1 = "4dbce3f9e6974567082ce5176e21aab0224a69e9" +deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "TruncatedStacktraces"] +git-tree-sha1 = "4c0633f587395d7aaec0679dc649eb03fcc74e73" uuid = "9286f039-9fbf-40e8-bf65-aa933bdc4db0" -version = "1.1.0" +version = "1.4.0" [[deps.OrdinaryDiffEqExponentialRK]] deps = ["ADTypes", "DiffEqBase", "ExponentialUtilities", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "RecursiveArrayTools", "Reexport", "SciMLBase"] -git-tree-sha1 = "585f73f10a1b444654d739853a9328d1bb7fce6b" +git-tree-sha1 = "3b81416ff11e55ea0ae7b449efc818256d9d450b" uuid = "e0540318-69ee-4070-8777-9e2de6de23de" -version = "1.5.0" +version = "1.8.0" [[deps.OrdinaryDiffEqExtrapolation]] -deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "FastPower", "LinearSolve", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "Polyester", "RecursiveArrayTools", "Reexport"] -git-tree-sha1 = "80a636aac325c546b04e3bf20f0c80eaa0173dd4" +deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "FastPower", "LinearSolve", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase"] +git-tree-sha1 = "9e1b11cf448a2c1bca640103c1c848a20aa2f967" uuid = "becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4" -version = "1.5.0" +version = "1.9.0" [[deps.OrdinaryDiffEqFIRK]] deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "FastGaussQuadrature", "FastPower", "LinearAlgebra", "LinearSolve", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators"] -git-tree-sha1 = "d7cbd84ba96a91e765fc20d2c3b3b1702c15eeed" +git-tree-sha1 = "b968d66de3de5ffcf18544bc202ca792bad20710" uuid = "5960d6e9-dd7a-4743-88e7-cf307b64f125" -version = "1.13.0" +version = "1.16.0" [[deps.OrdinaryDiffEqFeagin]] -deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "RecursiveArrayTools", "Reexport", "Static"] -git-tree-sha1 = "a7cc74d3433db98e59dc3d58bc28174c6c290adf" +deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] +git-tree-sha1 = "815b54211201ec42b8829e0275ab3c9632d16cbe" uuid = "101fe9f7-ebb6-4678-b671-3a81e7194747" -version = "1.1.0" +version = "1.4.0" [[deps.OrdinaryDiffEqFunctionMap]] deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] -git-tree-sha1 = "a4cb67794464352b69331c903cfa91a40e9a79ac" +git-tree-sha1 = "fe750e4b8c1b1b9e1c1319ff2e052e83ad57b3ac" uuid = "d3585ca7-f5d3-4ba6-8057-292ed1abd90f" -version = "1.2.0" +version = "1.5.0" [[deps.OrdinaryDiffEqHighOrderRK]] -deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "Static"] -git-tree-sha1 = "3466ac9ba5121c700a17e1d5ba42757405d636d4" +deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] +git-tree-sha1 = "42096f72136078fa02804515f1748ddeb1f0d47d" uuid = "d28bc4f8-55e1-4f49-af69-84c1a99f0f58" -version = "1.2.0" +version = "1.5.0" [[deps.OrdinaryDiffEqIMEXMultistep]] -deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Reexport"] -git-tree-sha1 = "f2e7decd8b8b92a13e9d48f87780fdfecbc85708" +deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Reexport", "SciMLBase"] +git-tree-sha1 = "a5dcd75959dada0005b1707a5ca9359faa1734ba" uuid = "9f002381-b378-40b7-97a6-27a27c83f129" -version = "1.4.0" +version = "1.7.0" [[deps.OrdinaryDiffEqLinear]] deps = ["DiffEqBase", "ExponentialUtilities", "LinearAlgebra", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators"] -git-tree-sha1 = "940cef72ec8799d869ff1ba3dcf47cf7758e51cf" +git-tree-sha1 = "925fc0136e8128fd19abf126e9358ec1f997390f" uuid = "521117fe-8c41-49f8-b3b6-30780b3f0fb5" -version = "1.3.0" +version = "1.6.0" [[deps.OrdinaryDiffEqLowOrderRK]] deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] -git-tree-sha1 = "2b7a3ef765c5e3e9d8eee6031da143a0b1c0805c" +git-tree-sha1 = "3cc4987c8e4725276b55a52e08b56ded4862917e" uuid = "1344f307-1e59-4825-a18e-ace9aa3fa4c6" -version = "1.3.0" +version = "1.6.0" [[deps.OrdinaryDiffEqLowStorageRK]] -deps = ["Adapt", "DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static", "StaticArrays"] -git-tree-sha1 = "52ec7081e65291fa5c19749312df0818db2fa1bc" +deps = ["Adapt", "DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static", "StaticArrays"] +git-tree-sha1 = "e6bd0a7fb6643a57b06a90415608a81aaf7bd772" uuid = "b0944070-b475-4768-8dec-fb6eb410534d" -version = "1.3.0" +version = "1.7.0" [[deps.OrdinaryDiffEqNonlinearSolve]] deps = ["ADTypes", "ArrayInterface", "DiffEqBase", "FastBroadcast", "FastClosures", "ForwardDiff", "LinearAlgebra", "LinearSolve", "MuladdMacro", "NonlinearSolve", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "PreallocationTools", "RecursiveArrayTools", "SciMLBase", "SciMLOperators", "SciMLStructures", "SimpleNonlinearSolve", "StaticArrays"] -git-tree-sha1 = "e98aa2f8da8386bc26daeb7c9b161bc351ea6a77" +git-tree-sha1 = "f59c1c07cfa674c1d3f5dd386c4274d9bc2be221" uuid = "127b3ac7-2247-4354-8eb6-78cf4e7c58e8" -version = "1.11.0" +version = "1.15.0" [[deps.OrdinaryDiffEqNordsieck]] -deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqTsit5", "Polyester", "RecursiveArrayTools", "Reexport", "Static"] -git-tree-sha1 = "ef44754f10e0dfb9bb55ded382afed44cd94ab57" +deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqTsit5", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] +git-tree-sha1 = "c90aa7fa0d725472c4098096adf6a08266c2f682" uuid = "c9986a66-5c92-4813-8696-a7ec84c806c8" -version = "1.1.0" +version = "1.4.0" [[deps.OrdinaryDiffEqPDIRK]] -deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Polyester", "Reexport", "StaticArrays"] -git-tree-sha1 = "ab9897e4bc8e3cf8e15f1cf61dbdd15d6a2341d7" +deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Polyester", "Reexport", "SciMLBase", "StaticArrays"] +git-tree-sha1 = "9d599d2eafdf74ab26ea6bf3feb28183a2ade143" uuid = "5dd0a6cf-3d4b-4314-aa06-06d4e299bc89" -version = "1.3.1" +version = "1.6.0" [[deps.OrdinaryDiffEqPRK]] -deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "Reexport"] -git-tree-sha1 = "da525d277962a1b76102c79f30cb0c31e13fe5b9" +deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "Reexport", "SciMLBase"] +git-tree-sha1 = "8e35132689133255be6d63df4190b5fc97b6cf2b" uuid = "5b33eab2-c0f1-4480-b2c3-94bc1e80bda1" -version = "1.1.0" +version = "1.4.0" [[deps.OrdinaryDiffEqQPRK]] -deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "Static"] -git-tree-sha1 = "332f9d17d0229218f66a73492162267359ba85e9" +deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] +git-tree-sha1 = "63fb643a956b27cd0e33a3c6d910c3c118082e0f" uuid = "04162be5-8125-4266-98ed-640baecc6514" -version = "1.1.0" +version = "1.4.0" [[deps.OrdinaryDiffEqRKN]] -deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "RecursiveArrayTools", "Reexport"] -git-tree-sha1 = "6548bff67665b13a60abfb33e95fcf7ae08d186d" +deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase"] +git-tree-sha1 = "a31c41f9dbea7c7179c6e544c25c7e144d63868c" uuid = "af6ede74-add8-4cfd-b1df-9a4dbb109d7a" -version = "1.2.0" +version = "1.5.0" [[deps.OrdinaryDiffEqRosenbrock]] -deps = ["ADTypes", "DiffEqBase", "DifferentiationInterface", "FastBroadcast", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static"] -git-tree-sha1 = "a2f83c9b6e977c8dc5f37e0b448ad64f17c3a9c1" +deps = ["ADTypes", "DiffEqBase", "DifferentiationInterface", "FastBroadcast", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] +git-tree-sha1 = "f34bc2f58656843596d09a4c4de8c20724ebc2f1" uuid = "43230ef6-c299-4910-a778-202eb28ce4ce" -version = "1.12.0" +version = "1.18.1" [[deps.OrdinaryDiffEqSDIRK]] deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "LinearAlgebra", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "RecursiveArrayTools", "Reexport", "SciMLBase", "TruncatedStacktraces"] -git-tree-sha1 = "62327171ae40737b7874d4bdf70e0a213d60086a" +git-tree-sha1 = "20caa72c004414435fb5769fadb711e96ed5bcd4" uuid = "2d112036-d095-4a1e-ab9a-08536f3ecdbf" -version = "1.4.0" +version = "1.7.0" [[deps.OrdinaryDiffEqSSPRK]] -deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static", "StaticArrays"] -git-tree-sha1 = "651756c030df7a1d49ad484288937f8c398e8a08" +deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static", "StaticArrays"] +git-tree-sha1 = "3bce87977264916bd92455754ab336faec68bf8a" uuid = "669c94d9-1f4b-4b64-b377-1aa079aa2388" -version = "1.3.0" +version = "1.7.0" [[deps.OrdinaryDiffEqStabilizedIRK]] -deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "RecursiveArrayTools", "Reexport", "StaticArrays"] -git-tree-sha1 = "111c23b68ad644b47e38242af920d5805c7bedb1" +deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqStabilizedRK", "RecursiveArrayTools", "Reexport", "SciMLBase", "StaticArrays"] +git-tree-sha1 = "75abe7462f4b0b2a2463bb512c8a5458bbd39185" uuid = "e3e12d00-db14-5390-b879-ac3dd2ef6296" -version = "1.3.0" +version = "1.6.0" [[deps.OrdinaryDiffEqStabilizedRK]] -deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "StaticArrays"] -git-tree-sha1 = "8b54bcaf8634548bd13c0bd9a0522f15e5438b67" +deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "StaticArrays"] +git-tree-sha1 = "7e94d3d1b3528b4bcf9e0248198ee0a2fd65a697" uuid = "358294b1-0aab-51c3-aafe-ad5ab194a2ad" -version = "1.2.0" +version = "1.4.0" [[deps.OrdinaryDiffEqSymplecticRK]] -deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "RecursiveArrayTools", "Reexport"] -git-tree-sha1 = "0d3e0527149d7ece68850c51de67e99bc4477b1b" +deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase"] +git-tree-sha1 = "e8dd5ab225287947016dc144a5ded1fb83885638" uuid = "fa646aed-7ef9-47eb-84c4-9443fc8cbfa8" -version = "1.4.0" +version = "1.7.0" [[deps.OrdinaryDiffEqTsit5]] -deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static", "TruncatedStacktraces"] -git-tree-sha1 = "d0b069075f4a5e54b29e412419e5a733a83e6240" +deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static", "TruncatedStacktraces"] +git-tree-sha1 = "778c7d379265f17f40dbe9aaa6f6a2a08bc7fa3e" uuid = "b1df2697-797e-41e3-8120-5422d3b24e4a" -version = "1.2.0" +version = "1.5.0" [[deps.OrdinaryDiffEqVerner]] -deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static", "TruncatedStacktraces"] -git-tree-sha1 = "91f0a004785791c8c538d34a67c19cf3f7776e85" +deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static", "TruncatedStacktraces"] +git-tree-sha1 = "185578fa7c38119d4318326f9375f1cba0f0ce53" uuid = "79d7bb75-1356-48c1-b8c0-6832512096c2" -version = "1.3.0" +version = "1.6.0" [[deps.PCRE2_jll]] deps = ["Artifacts", "Libdl"] uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" -version = "10.42.0+1" +version = "10.44.0+1" [[deps.Pango_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl"] -git-tree-sha1 = "275a9a6d85dc86c24d03d1837a0010226a96f540" +git-tree-sha1 = "1f7f9bbd5f7a2e5a9f7d96e51c9754454ea7f60b" uuid = "36c8627f-9965-5494-a995-c6b170f724f3" -version = "1.56.3+0" +version = "1.56.4+0" [[deps.Parameters]] deps = ["OrderedCollections", "UnPack"] @@ -1749,7 +1784,7 @@ version = "0.44.2+0" [[deps.Pkg]] deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "Random", "SHA", "TOML", "Tar", "UUIDs", "p7zip_jll"] uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" -version = "1.11.0" +version = "1.12.0" weakdeps = ["REPL"] [deps.Pkg.extensions] @@ -1768,10 +1803,10 @@ uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" version = "1.4.3" [[deps.Plots]] -deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "TOML", "UUIDs", "UnicodeFun", "UnitfulLatexify", "Unzip"] -git-tree-sha1 = "3db9167c618b290a05d4345ca70de6d95304a32a" +deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "JLFzf", "JSON", "LaTeXStrings", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "PrecompileTools", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "RelocatableFolders", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "TOML", "UUIDs", "UnicodeFun", "Unzip"] +git-tree-sha1 = "12ce661880f8e309569074a61d3767e5756a199f" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.40.17" +version = "1.41.1" [deps.Plots.extensions] FileIOExt = "FileIO" @@ -1800,33 +1835,28 @@ uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" version = "0.2.2" [[deps.PreallocationTools]] -deps = ["Adapt", "ArrayInterface", "ForwardDiff"] -git-tree-sha1 = "2cc315bb7f6e4d59081bad744cdb911d6374fc7f" +deps = ["Adapt", "ArrayInterface", "PrecompileTools"] +git-tree-sha1 = "c05b4c6325262152483a1ecb6c69846d2e01727b" uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" -version = "0.4.29" -weakdeps = ["ReverseDiff", "SparseConnectivityTracer"] +version = "0.4.34" +weakdeps = ["ForwardDiff", "ReverseDiff", "SparseConnectivityTracer"] [deps.PreallocationTools.extensions] + PreallocationToolsForwardDiffExt = "ForwardDiff" PreallocationToolsReverseDiffExt = "ReverseDiff" PreallocationToolsSparseConnectivityTracerExt = "SparseConnectivityTracer" [[deps.PrecompileTools]] deps = ["Preferences"] -git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f" +git-tree-sha1 = "07a921781cab75691315adc645096ed5e370cb77" uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" -version = "1.2.1" +version = "1.3.3" [[deps.Preferences]] deps = ["TOML"] -git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6" +git-tree-sha1 = "0f27480397253da18fe2c12a4ba4eb9eb208bf3d" uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.4.3" - -[[deps.PrettyTables]] -deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] -git-tree-sha1 = "1101cd475833706e4d0e7b122218257178f48f34" -uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" -version = "2.4.0" +version = "1.5.0" [[deps.Printf]] deps = ["Unicode"] @@ -1840,9 +1870,9 @@ version = "1.3.0" [[deps.Qt6Base_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Fontconfig_jll", "Glib_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "OpenSSL_jll", "Vulkan_Loader_jll", "Xorg_libSM_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Xorg_libxcb_jll", "Xorg_xcb_util_cursor_jll", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_keysyms_jll", "Xorg_xcb_util_renderutil_jll", "Xorg_xcb_util_wm_jll", "Zlib_jll", "libinput_jll", "xkbcommon_jll"] -git-tree-sha1 = "eb38d376097f47316fe089fc62cb7c6d85383a52" +git-tree-sha1 = "34f7e5d2861083ec7596af8b8c092531facf2192" uuid = "c0090381-4147-56d7-9ebc-da0b1113ec56" -version = "6.8.2+1" +version = "6.8.2+2" [[deps.Qt6Declarative_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll", "Qt6ShaderTools_jll"] @@ -1858,9 +1888,9 @@ version = "6.8.2+1" [[deps.Qt6Wayland_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Qt6Base_jll", "Qt6Declarative_jll"] -git-tree-sha1 = "e1d5e16d0f65762396f9ca4644a5f4ddab8d452b" +git-tree-sha1 = "8f528b0851b5b7025032818eb5abbeb8a736f853" uuid = "e99dba38-086e-5de3-a5b1-6e4c66e897c3" -version = "6.8.2+1" +version = "6.8.2+2" [[deps.Quadmath]] deps = ["Compat", "Printf", "Random", "Requires"] @@ -1869,7 +1899,7 @@ uuid = "be4d8f0f-7fa4-5f49-b795-2f01399ab2dd" version = "0.5.13" [[deps.REPL]] -deps = ["InteractiveUtils", "Markdown", "Sockets", "StyledStrings", "Unicode"] +deps = ["InteractiveUtils", "JuliaSyntaxHighlighting", "Markdown", "Sockets", "StyledStrings", "Unicode"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" version = "1.11.0" @@ -1901,10 +1931,10 @@ uuid = "01d81517-befc-4cb6-b9ec-a95719d0359c" version = "0.6.12" [[deps.RecursiveArrayTools]] -deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "f8726bd5a8b7f5f5d3f6c0ce4793454a599b5243" +deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "LinearAlgebra", "RecipesBase", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface"] +git-tree-sha1 = "51bdb23afaaa551f923a0e990f7c44a4451a26f1" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "3.36.0" +version = "3.39.0" [deps.RecursiveArrayTools.extensions] RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" @@ -1915,6 +1945,7 @@ version = "3.36.0" RecursiveArrayToolsReverseDiffExt = ["ReverseDiff", "Zygote"] RecursiveArrayToolsSparseArraysExt = ["SparseArrays"] RecursiveArrayToolsStructArraysExt = "StructArrays" + RecursiveArrayToolsTablesExt = ["Tables"] RecursiveArrayToolsTrackerExt = "Tracker" RecursiveArrayToolsZygoteExt = "Zygote" @@ -1927,6 +1958,7 @@ version = "3.36.0" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" @@ -1961,9 +1993,9 @@ version = "1.16.1" [[deps.RuntimeGeneratedFunctions]] deps = ["ExprTools", "SHA", "Serialization"] -git-tree-sha1 = "86a8a8b783481e1ea6b9c91dd949cb32191f8ab4" +git-tree-sha1 = "2f609ec2295c452685d3142bc4df202686e555d2" uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" -version = "0.5.15" +version = "0.5.16" [[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" @@ -1981,49 +2013,78 @@ uuid = "319450e9-13b8-58e8-aa9f-8fd1420848ab" version = "2025.5.20+0" [[deps.SciMLBase]] -deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "Moshi", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "SciMLStructures", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface"] -git-tree-sha1 = "c056c723b68700fec386dfde8c577089df720c8e" +deps = ["ADTypes", "Accessors", "Adapt", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "Moshi", "PreallocationTools", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLLogging", "SciMLOperators", "SciMLPublic", "SciMLStructures", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface"] +git-tree-sha1 = "7614a1b881317b6800a8c66eb1180c6ea5b986f3" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.108.0" +version = "2.124.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" + SciMLBaseDifferentiationInterfaceExt = "DifferentiationInterface" + SciMLBaseDistributionsExt = "Distributions" + SciMLBaseEnzymeExt = "Enzyme" + SciMLBaseForwardDiffExt = "ForwardDiff" SciMLBaseMLStyleExt = "MLStyle" SciMLBaseMakieExt = "Makie" + SciMLBaseMeasurementsExt = "Measurements" + SciMLBaseMonteCarloMeasurementsExt = "MonteCarloMeasurements" + SciMLBaseMooncakeExt = "Mooncake" SciMLBasePartialFunctionsExt = "PartialFunctions" SciMLBasePyCallExt = "PyCall" SciMLBasePythonCallExt = "PythonCall" SciMLBaseRCallExt = "RCall" + SciMLBaseReverseDiffExt = "ReverseDiff" + SciMLBaseTrackerExt = "Tracker" SciMLBaseZygoteExt = ["Zygote", "ChainRulesCore"] [deps.SciMLBase.weakdeps] ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DifferentiationInterface = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" + Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" MLStyle = "d8e11817-5142-5d16-987a-aa16d5891078" Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" + Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" PartialFunctions = "570af359-4316-4cb7-8c74-252c00c2016b" PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" RCall = "6f49c342-dc21-5d91-9882-a32aef131414" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [[deps.SciMLJacobianOperators]] deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "ConstructionBase", "DifferentiationInterface", "FastClosures", "LinearAlgebra", "SciMLBase", "SciMLOperators"] -git-tree-sha1 = "3414071e3458f3065de7fa5aed55283b236b4907" +git-tree-sha1 = "a273b291c90909ba6fe08402dd68e09aae423008" uuid = "19f34311-ddf3-4b8b-af20-060888a46c0e" -version = "0.1.8" +version = "0.1.11" + +[[deps.SciMLLogging]] +deps = ["Logging", "LoggingExtras", "Preferences"] +git-tree-sha1 = "5a026f5549ad167cda34c67b62f8d3dc55754da3" +uuid = "a6db7da4-7206-11f0-1eab-35f2a5dbe1d1" +version = "1.3.1" [[deps.SciMLOperators]] deps = ["Accessors", "ArrayInterface", "DocStringExtensions", "LinearAlgebra", "MacroTools"] -git-tree-sha1 = "7d3a1519dc4d433a6b20035eaff20bde8be77c66" +git-tree-sha1 = "c1053ba68ede9e4005fc925dd4e8723fcd96eef8" uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" -version = "1.4.0" +version = "1.9.0" weakdeps = ["SparseArrays", "StaticArraysCore"] [deps.SciMLOperators.extensions] SciMLOperatorsSparseArraysExt = "SparseArrays" SciMLOperatorsStaticArraysCoreExt = "StaticArraysCore" +[[deps.SciMLPublic]] +git-tree-sha1 = "ed647f161e8b3f2973f24979ec074e8d084f1bee" +uuid = "431bcebd-1456-4ced-9d72-93c2757fff0b" +version = "1.0.0" + [[deps.SciMLStructures]] deps = ["ArrayInterface"] git-tree-sha1 = "566c4ed301ccb2a44cbd5a27da5f885e0ed1d5df" @@ -2064,19 +2125,17 @@ version = "1.2.0" [[deps.SimpleNonlinearSolve]] deps = ["ADTypes", "ArrayInterface", "BracketingNonlinearSolve", "CommonSolve", "ConcreteStructs", "DifferentiationInterface", "FastClosures", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "Setfield", "StaticArraysCore"] -git-tree-sha1 = "09d986e27a606f172c5b6cffbd8b8b2f10bf1c75" +git-tree-sha1 = "8825064775bf4ae0f22d04ea63979d8c868fd510" uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" -version = "2.7.0" +version = "2.9.0" [deps.SimpleNonlinearSolve.extensions] SimpleNonlinearSolveChainRulesCoreExt = "ChainRulesCore" - SimpleNonlinearSolveDiffEqBaseExt = "DiffEqBase" SimpleNonlinearSolveReverseDiffExt = "ReverseDiff" SimpleNonlinearSolveTrackerExt = "Tracker" [deps.SimpleNonlinearSolve.weakdeps] ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" @@ -2104,21 +2163,23 @@ version = "1.2.2" [[deps.SparseArrays]] deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" -version = "1.11.0" +version = "1.12.0" [[deps.SparseConnectivityTracer]] deps = ["ADTypes", "DocStringExtensions", "FillArrays", "LinearAlgebra", "Random", "SparseArrays"] -git-tree-sha1 = "7bd2b8981cc57adcf5cf1add282aba2713a7058f" +git-tree-sha1 = "ba6dc9b87304964647bd1c750b903cb360003a36" uuid = "9f842d2f-2579-4b1d-911e-f412cf18a3f5" -version = "1.0.0" +version = "1.1.2" [deps.SparseConnectivityTracer.extensions] + SparseConnectivityTracerChainRulesCoreExt = "ChainRulesCore" SparseConnectivityTracerLogExpFunctionsExt = "LogExpFunctions" SparseConnectivityTracerNNlibExt = "NNlib" SparseConnectivityTracerNaNMathExt = "NaNMath" SparseConnectivityTracerSpecialFunctionsExt = "SpecialFunctions" [deps.SparseConnectivityTracer.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" LogExpFunctions = "2ab3a3ac-af41-5b50-aa03-7779005ae688" NNlib = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" NaNMath = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" @@ -2126,25 +2187,28 @@ version = "1.0.0" [[deps.SparseMatrixColorings]] deps = ["ADTypes", "DocStringExtensions", "LinearAlgebra", "PrecompileTools", "Random", "SparseArrays"] -git-tree-sha1 = "9de43e0b9b976f1019bf7a879a686c4514520078" +git-tree-sha1 = "6ed48d9a3b22417c765dc273ae3e1e4de035e7c8" uuid = "0a514795-09f3-496d-8182-132a7b665d35" -version = "0.4.21" +version = "0.4.23" [deps.SparseMatrixColorings.extensions] SparseMatrixColoringsCUDAExt = "CUDA" SparseMatrixColoringsCliqueTreesExt = "CliqueTrees" SparseMatrixColoringsColorsExt = "Colors" + SparseMatrixColoringsJuMPExt = ["JuMP", "MathOptInterface"] [deps.SparseMatrixColorings.weakdeps] CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" CliqueTrees = "60701a23-6482-424a-84db-faee86b9b1f8" Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" + JuMP = "4076af6c-e467-56ae-b986-b466b2749572" + MathOptInterface = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" [[deps.SpecialFunctions]] deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] -git-tree-sha1 = "41852b8679f78c8d8961eeadc8f62cef861a52e3" +git-tree-sha1 = "f2685b435df2613e25fc10ad8c26dddb8640f547" uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "2.5.1" +version = "2.6.1" weakdeps = ["ChainRulesCore"] [deps.SpecialFunctions.extensions] @@ -2157,10 +2221,10 @@ uuid = "860ef19b-820b-49d6-a774-d7a799459cd3" version = "1.0.3" [[deps.Static]] -deps = ["CommonWorldInvalidations", "IfElse", "PrecompileTools"] -git-tree-sha1 = "f737d444cb0ad07e61b3c1bef8eb91203c321eff" +deps = ["CommonWorldInvalidations", "IfElse", "PrecompileTools", "SciMLPublic"] +git-tree-sha1 = "49440414711eddc7227724ae6e570c7d5559a086" uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" -version = "1.2.0" +version = "1.3.1" [[deps.StaticArrayInterface]] deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Static"] @@ -2175,9 +2239,9 @@ weakdeps = ["OffsetArrays", "StaticArrays"] [[deps.StaticArrays]] deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] -git-tree-sha1 = "cbea8a6bd7bed51b1619658dec70035e07b8502f" +git-tree-sha1 = "b8693004b385c842357406e3af647701fe783f98" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.9.14" +version = "1.9.15" weakdeps = ["ChainRulesCore", "Statistics"] [deps.StaticArrays.extensions] @@ -2185,9 +2249,9 @@ weakdeps = ["ChainRulesCore", "Statistics"] StaticArraysStatisticsExt = "Statistics" [[deps.StaticArraysCore]] -git-tree-sha1 = "192954ef1208c7019899fbf8049e717f92959682" +git-tree-sha1 = "6ab403037779dae8c514bad259f32a447262455a" uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" -version = "1.4.3" +version = "1.4.4" [[deps.Statistics]] deps = ["LinearAlgebra"] @@ -2207,21 +2271,29 @@ version = "1.7.1" [[deps.StatsBase]] deps = ["AliasTables", "DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] -git-tree-sha1 = "2c962245732371acd51700dbb268af311bddd719" +git-tree-sha1 = "a136f98cefaf3e2924a66bd75173d1c891ab7453" uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" -version = "0.34.6" +version = "0.34.7" [[deps.StrideArraysCore]] deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] -git-tree-sha1 = "f35f6ab602df8413a50c4a25ca14de821e8605fb" +git-tree-sha1 = "83151ba8065a73f53ca2ae98bc7274d817aa30f2" uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" -version = "0.5.7" +version = "0.5.8" -[[deps.StringManipulation]] -deps = ["PrecompileTools"] -git-tree-sha1 = "725421ae8e530ec29bcbdddbe91ff8053421d023" -uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" -version = "0.4.1" +[[deps.StructUtils]] +deps = ["Dates", "UUIDs"] +git-tree-sha1 = "cd47aa083c9c7bdeb7b92de26deb46d6a33163c9" +uuid = "ec057cc2-7a8d-4b58-b3b3-92acb9f63b42" +version = "2.5.1" + + [deps.StructUtils.extensions] + StructUtilsMeasurementsExt = ["Measurements"] + StructUtilsTablesExt = ["Tables"] + + [deps.StructUtils.weakdeps] + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" [[deps.StyledStrings]] uuid = "f489334b-da3d-4c2e-b8f0-e476e12c162b" @@ -2230,31 +2302,25 @@ version = "1.11.0" [[deps.SuiteSparse_jll]] deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" -version = "7.7.0+0" +version = "7.8.3+2" [[deps.SymbolicIndexingInterface]] -deps = ["Accessors", "ArrayInterface", "PrettyTables", "RuntimeGeneratedFunctions", "StaticArraysCore"] -git-tree-sha1 = "59ca6eddaaa9849e7de9fd1153b6faf0b1db7b80" +deps = ["Accessors", "ArrayInterface", "RuntimeGeneratedFunctions", "StaticArraysCore"] +git-tree-sha1 = "94c58884e013efff548002e8dc2fdd1cb74dfce5" uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.3.42" +version = "0.3.46" + + [deps.SymbolicIndexingInterface.extensions] + SymbolicIndexingInterfacePrettyTablesExt = "PrettyTables" + + [deps.SymbolicIndexingInterface.weakdeps] + PrettyTables = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" [[deps.TOML]] deps = ["Dates"] uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" version = "1.0.3" -[[deps.TableTraits]] -deps = ["IteratorInterfaceExtensions"] -git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" -uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" -version = "1.0.1" - -[[deps.Tables]] -deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "OrderedCollections", "TableTraits"] -git-tree-sha1 = "f2c1efbc8f3a609aadf318094f8fc5204bdaf344" -uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" -version = "1.12.1" - [[deps.Tar]] deps = ["ArgTools", "SHA"] uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" @@ -2325,25 +2391,6 @@ git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" version = "0.4.1" -[[deps.Unitful]] -deps = ["Dates", "LinearAlgebra", "Random"] -git-tree-sha1 = "6258d453843c466d84c17a58732dda5deeb8d3af" -uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" -version = "1.24.0" -weakdeps = ["ConstructionBase", "ForwardDiff", "InverseFunctions", "Printf"] - - [deps.Unitful.extensions] - ConstructionBaseUnitfulExt = "ConstructionBase" - ForwardDiffExt = "ForwardDiff" - InverseFunctionsUnitfulExt = "InverseFunctions" - PrintfExt = "Printf" - -[[deps.UnitfulLatexify]] -deps = ["LaTeXStrings", "Latexify", "Unitful"] -git-tree-sha1 = "af305cc62419f9bd61b6644d19170a4d258c7967" -uuid = "45397f5d-5981-4c77-b2b3-fc36d6e9b728" -version = "1.7.0" - [[deps.Unzip]] git-tree-sha1 = "ca0969166a028236229f63514992fc073799bb78" uuid = "41fe7b60-77ed-43a1-b4f0-825fd5a5650d" @@ -2367,6 +2414,12 @@ git-tree-sha1 = "c1a7aa6219628fcd757dede0ca95e245c5cd9511" uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" version = "1.0.0" +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "80d3930c6347cfce7ccf96bd3bafdf079d9c0390" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.13.9+0" + [[deps.XZ_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "fee71455b0aaa3440dfdd54a9a36ccef829be7d4" @@ -2417,9 +2470,9 @@ version = "1.3.7+0" [[deps.Xorg_libXfixes_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] -git-tree-sha1 = "9caba99d38404b285db8801d5c45ef4f4f425a6d" +git-tree-sha1 = "75e00946e43621e09d431d9b95818ee751e6b2ef" uuid = "d091e8ba-531a-589c-9de9-94069b037ed8" -version = "6.0.1+0" +version = "6.0.2+0" [[deps.Xorg_libXi_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libXext_jll", "Xorg_libXfixes_jll"] @@ -2445,6 +2498,12 @@ git-tree-sha1 = "7ed9347888fac59a618302ee38216dd0379c480d" uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" version = "0.9.12+0" +[[deps.Xorg_libpciaccess_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "4909eb8f1cbf6bd4b1c30dd18b2ead9019ef2fad" +uuid = "a65dc6b1-eb27-53a1-bb3e-dea574b5389e" +version = "0.18.1+0" + [[deps.Xorg_libxcb_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libXau_jll", "Xorg_libXdmcp_jll"] git-tree-sha1 = "bfcaf7ec088eaba362093393fe11aa141fa15422" @@ -2459,9 +2518,9 @@ version = "1.1.3+0" [[deps.Xorg_xcb_util_cursor_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_image_jll", "Xorg_xcb_util_jll", "Xorg_xcb_util_renderutil_jll"] -git-tree-sha1 = "c5bf2dad6a03dfef57ea0a170a1fe493601603f2" +git-tree-sha1 = "9750dc53819eba4e9a20be42349a6d3b86c7cdf8" uuid = "e920d4aa-a673-5f3a-b3d7-f755a4d47c43" -version = "0.1.5+0" +version = "0.1.6+0" [[deps.Xorg_xcb_util_image_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_xcb_util_jll"] @@ -2514,7 +2573,7 @@ version = "1.6.0+0" [[deps.Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" -version = "1.2.13+1" +version = "1.3.1+2" [[deps.Zstd_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -2536,9 +2595,9 @@ version = "0.61.1+0" [[deps.libaom_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "4bba74fa59ab0755167ad24f98800fe5d727175b" +git-tree-sha1 = "371cc681c00a3ccc3fbc5c0fb91f58ba9bec1ecf" uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" -version = "3.12.1+0" +version = "3.13.1+0" [[deps.libass_jll]] deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Zlib_jll"] @@ -2549,7 +2608,7 @@ version = "0.17.4+0" [[deps.libblastrampoline_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" -version = "5.11.0+0" +version = "5.15.0+0" [[deps.libdecor_jll]] deps = ["Artifacts", "Dbus_jll", "JLLWrappers", "Libdl", "Libglvnd_jll", "Pango_jll", "Wayland_jll", "xkbcommon_jll"] @@ -2596,18 +2655,18 @@ version = "1.1.7+0" [[deps.nghttp2_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" -version = "1.59.0+0" +version = "1.64.0+1" [[deps.oneTBB_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "d5a767a3bb77135a99e433afe0eb14cd7f6914c3" +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "1350188a69a6e46f799d3945beef36435ed7262f" uuid = "1317d2d5-d96f-522e-a858-c73665f53c3e" -version = "2022.0.0+0" +version = "2022.0.0+1" [[deps.p7zip_jll]] deps = ["Artifacts", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" -version = "17.4.0+2" +version = "17.5.0+2" [[deps.x264_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] diff --git a/docs/src/assets/Project.toml b/docs/src/assets/Project.toml index fb71f09..f755d89 100644 --- a/docs/src/assets/Project.toml +++ b/docs/src/assets/Project.toml @@ -10,10 +10,10 @@ Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" [compat] Animations = "0.4" -Documenter = "1.10" -NLPModelsIpopt = "0.10" -NonlinearSolve = "4.6" -OptimalControl = "1.1" +Documenter = "1" +NLPModelsIpopt = "0.11" +NonlinearSolve = "4" +OptimalControl = "1" OrdinaryDiffEq = "6" -Plots = "1.40" +Plots = "1" julia = "1.10" diff --git a/docs/src/ho.md b/docs/src/ho.md index 822787a..05fd2cc 100644 --- a/docs/src/ho.md +++ b/docs/src/ho.md @@ -1,4 +1,4 @@ -## Harmonic oscillator problem +# Harmonic oscillator problem ```math \left\{ diff --git a/docs/src/index.md b/docs/src/index.md index 1c5dbfd..6eaed51 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -13,7 +13,7 @@ Typically, optimal control involves *permanent control*, allowing modification o **Objective and approach.** Here, we address optimal control problems with *loss control regions* (we refer to [^2] for further details), where the state space is divided into *control regions* and *loss control regions*. In control regions, control can change at any time, while in loss control regions, control must remain constant, though its value is to be optimized and can vary with each visit. -We extend our previous work by using a permanent control for control regions and a *regionally switching parameter* for loss control regions. This leads to a discontinuous dynamics framework, fitting into *optimal control problems involving spatially heterogenous dynamics*[^2],[^5]. The *hybrid maximum principle* (HMP, in short) extends the PMP to hybrid settings[^2],[^5], with a piecewise absolutely continuous adjoint vector. +We extend our previous work by using a permanent control for control regions and a *regionally switching parameter* for loss control regions. This leads to a discontinuous dynamics framework, fitting into *optimal control problems involving spatially heterogeneous dynamics*[^2],[^5]. The *hybrid maximum principle* (HMP, in short) extends the PMP to hybrid settings[^2],[^5], with a piecewise absolutely continuous adjoint vector. **Numerical contribution.** In this note we illustrate a two-step numerical method for optimal control problems with loss control regions. First, a direct numerical approach is applied to a *regularized* problem to manage discontinuities and outline the optimal trajectory's structure. Second, this helps initialize an indirect numerical method for the original problem, using the PMP with loss control regions. The method incorporates the *averaged Hamiltonian gradient condition*[^3],[^4] and adjoint vector discontinuities to define an appropriate shooting function, adding to classical terms for non-hybrid optimal control problems. @@ -22,7 +22,6 @@ We extend our previous work by using a permanent control for control regions and - Provide a **direct method** for solving optimal control problems with loss control regions (based on a **regularization** technique). - Provide an **indirect method** (shooting method) for solving optimal control problems with loss control regions using the PMP with loss control regions. - [^1]: L. S. Pontryagin, V. G. Boltyanskii, R. V. Gamkrelidze, E. F. Mishchenko, *The Mathematical Theory of Optimal Processes*, A Pergamon Press Book. The Macmillan Co., New York, 1964. [^2]: T. Bayen, A. Bouali, L. Bourdin & O. Cots, *Loss control regions in optimal control problems*, Journal of Differential Equations, **405** (2024), 359-397. diff --git a/docs/src/numerical.md b/docs/src/numerical.md index 345cc10..553ca82 100644 --- a/docs/src/numerical.md +++ b/docs/src/numerical.md @@ -8,7 +8,7 @@ It is important to note that neither of these methods is fundamentally better th Often in the literature, one proceeds in two steps. The first step is to implement a direct method to determine the optimal solution's structure and extract the associated adjoint vector. The second step involves constructing an indirect shooting method, where the initial condition is based on the numerical results obtained from the direct method. -## Description of the direct method +## Direct method For some $\omega_0 \in \mathrm{U}$, some $\varepsilon_0>0$ and $\varepsilon>0$ small enough, we introduce the *regularized problem* given by ```math @@ -30,7 +30,7 @@ where $\Psi_{\epsilon} : \R^n \to \R$ is the regularization of the characteristi ``` for all $x\in \R^n$, where $\mathrm{d}_{j}: \R^n \to \R$ stands for the distance function to the set $\overline{X_j}$ defined by $\mathrm{d}_{j}(x) := \inf_{y \in \overline{X_j}} \|x-y\|_{\R^n}$ for all $x\in \R^n$ and every $j \in \mathcal{J}$. -## Description of the indirect method +## Indirect method Recall that the direct method has captured the structure of the optimal pair $(x^*,u^*)$. In the indirect method, we address each arc separately. We begin by defining the **flow** of the Hamiltonian associated with each arc. To accomplish this, we use the function `Flow` that can be found in the [OptimalControl.jl](https://github.com/control-toolbox/OptimalControl.jl) package. This latter allows to solve the Hamiltonian system over a given time interval from given initial values of the state and the adjoint vector. This function requires necessary libraries such as ForwardDiff.jl for calculating gradients and Jacobians and OrdinaryDiffEq.jl for solving ordinary differential equations. diff --git a/docs/src/statement.md b/docs/src/statement.md index cf3867e..80debef 100644 --- a/docs/src/statement.md +++ b/docs/src/statement.md @@ -1,4 +1,6 @@ -# Statement of the problem +# Optimal control problem with loss control regions + +## Statement of the problem Let $n$, $m$, $\ell \in \mathbb{N}^*$ be three positive integers and $T > 0$ be a positive real number. In this section, we consider a partition of the state space given by @@ -32,7 +34,7 @@ Our aim in this section is to derive first-order necessary optimality conditions where the Mayer cost function $\phi: \mathbb{R}^n \times \mathbb{R}^n \to \mathbb{R}$, the dynamics $f: \mathbb{R}^n \times \mathbb{R}^m \to \mathbb{R}^n$, and the constraint function $g: \mathbb{R}^n \times \mathbb{R}^n \to \mathbb{R}^\ell$ are of class $\mathrm{C}^1$, and where both subsets $\mathrm{S} \subset \mathbb{R}^\ell$ and $\mathrm{U} \subset \mathbb{R}^m$ are nonempty closed convex subsets. -## Regular solution to the control system with loss control regions +## Regular solution to the control system First, let us provide the definition of a solution to the following control system @@ -49,28 +51,28 @@ u \text{ is constant when } x \text{ is in a loss control region}. ``` !!! note "Definition (Solution to (CS))" - A pair $(x,u) \in \mathrm{AC}([0,T],\R^n) \times \mathrm{L}^\infty([0,T],\R^m)$ is said to be a solution to (CS) if there exist a finite number $\mathbb{N}^*$ and a partition $\mathbb{T} = \{\tau_k\}_{k=0,\ldots,N}$ of the interval $[0,T]$ such that: + A pair $(x,u) \in \mathrm{AC}([0,T],\R^n) \times \mathrm{L}^\infty([0,T],\R^m)$ is said to be a solution to (CS) if there exist a finite number $\mathbb{N}^*$ and a partition $\mathbb{T} = \{\tau_k\}_{k=0,\ldots,N}$ of the interval $[0,T]$ such that: - It holds that ```math - \forall k \in \{ 1,\ldots,N \}, \quad \exists j(k) \in \mathcal{J}, \quad \forall t \in (\tau_{k-1},\tau_k), \quad x(t) \in X_{j(k)}, + \forall k \in \{ 1,\ldots,N \}, \quad \exists j(k) \in \mathcal{J}, \quad \forall t \in (\tau_{k-1},\tau_k), \quad x(t) \in X_{j(k)}, ``` where $j(k) \neq j(k-1)$ for all $k \in \{ 2,\ldots,N \}$. The sequence $\{j(1),\ldots, j(N)\}$ is called the *switching sequence*. - It holds that $x(0) \in X_{j(1)}$ and $x(T) \in X_{j(N)}$. - For all $k \in \{1, \ldots, N\}$ such that $q_{j(k)}=0$, the control $u$ is constant over $(\tau_{k-1}, \tau_k)$ (the constant value being denoted by $u_k$ in the sequel). - It holds that $\dot x(t)=f(x(t),u(t))$ for almost every $t \in [0,T]$. - The times $\tau_k$ for $k \in \{1,\ldots,N-1\}$, called \textit{crossing times}, correspond to the instants at which the trajectory $x$ goes from the region $X_{j(k)}$ to the region $X_{j(k+1)}$, and thus $x(\tau_k) \in \partial X_{j(k)} \cap \partial X_{j(k+1)}$. + The times $\tau_k$ for $k \in \{1,\ldots,N-1\}$, called \textit{crossing times}, correspond to the instants at which the trajectory $x$ goes from the region $X_{j(k)}$ to the region $X_{j(k+1)}$, and thus $x(\tau_k) \in \partial X_{j(k)} \cap \partial X_{j(k+1)}$. The PMP with loss control regions is based on some regularity assumptions made on the optimal pair of the optimal control problem with loss control regions given above at each of its crossing times. These hypotheses are made more precise in the next definition. !!! note "Definition (Regular solution to (CS))" Following the notations introduced in Definition given above, a solution $(x,u) \in \mathrm{AC}([0,T],\R^n) \times \mathrm{L}^\infty([0,T],\R^m)$ to (CS), associated with a finite number $N \in \mathbb{N}^*$, a partition $\mathbb{T} = \{ \tau_k \}_{k=0,\ldots,N}$ and a switching sequence $\{j(1), \ldots, j(N)\}$, is said to be *regular* if the following conditions are both satisfied: - - At each crossing time $\tau_k$, there exists a $\mathrm{C}^1$ function $F_k : \R^n \to \R$ such that + - At each crossing time $\tau_k$, there exists a $\mathrm{C}^1$ function $F_k : \R^n \to \R$ such that ```math \begin{equation} \exists \nu_k > 0, \quad \forall z \in \overline{\mathrm{B}}_{\R^n}(x(\tau_k),\nu_k), \quad \left\{ - \begin{array}{rcl} + \begin{array}{rcl} z \in X_{j(k)} & \Leftrightarrow & F_k(z)<0, \\[2pt] z \in \partial X_{j(k)}\cap \partial X_{j(k+1)} & \Leftrightarrow & F_k(z)=0, \\[2pt] z \in X_{j(k+1)} & \Leftrightarrow & F_k(z)>0. @@ -87,12 +89,14 @@ The PMP with loss control regions is based on some regularity assumptions made o ``` is satisfied. -## Pontryagin maximum principle with loss control regions +## Pontryagin maximum principle The Hamiltonian $H : \R^n \times \R^m \times \R^n \to \R$ associated with Problem \eqref{P} is defined by + ```math H(x,u,p) := \langle p , f(x,u) \rangle_{\R^n} -``` +``` + for all $(x,u,p) \in \R^n \times \R^m \times \R^n$. We are now in a position to state the main result of this section. !!! tip "Theorem" @@ -110,7 +114,7 @@ for all $(x,u,p) \in \R^n \times \R^m \times \R^n$. We are now in a position to \begin{equation*} \left( \begin{array}{c} p(0) \\[5pt] - -p(T) + -p(T) \end{array} \right) = p^0 \nabla \phi (x^*(0),x^*(T)) + \nabla g (x^*(0),x^*(T)) \xi, \end{equation*} @@ -123,7 +127,7 @@ for all $(x,u,p) \in \R^n \times \R^m \times \R^n$. We are now in a position to \nabla F^*_k(x^*(\tau^*_k)), \end{equation*} ``` - for some $\sigma_k \in \R$ and for all $k \in \{ 1,\ldots , N-1\}$; + for some $\sigma_k \in \R$ and for all $k \in \{ 1,\ldots , N-1\}$; - the *Hamiltonian maximization condition* ```math \begin{equation*} @@ -138,9 +142,8 @@ for all $(x,u,p) \in \R^n \times \R^m \times \R^n$. We are now in a position to \end{equation*} ``` for all $k \in \{1,\ldots,N\}$ such that $q_{j(k)}=0$; - - the *Hamiltonian constancy condition* + - the *Hamiltonian constancy condition* ```math H(x^*(t),u^*(t),p(t)) = c, ``` for almost every $t\in [0,T]$, for some $c \in \R$. - From 477b910c049c6bd8a26ae7d95620fe6b513967a5 Mon Sep 17 00:00:00 2001 From: Olivier Cots Date: Sun, 2 Nov 2025 14:00:32 +0100 Subject: [PATCH 02/10] linting --- docs/src/ho.md | 8 +++---- docs/src/numerical.md | 52 ++++++++++++++++++++++++++----------------- docs/src/zermelo1.md | 9 ++++---- docs/src/zermelo2.md | 18 +++++++-------- 4 files changed, 49 insertions(+), 38 deletions(-) diff --git a/docs/src/ho.md b/docs/src/ho.md index 05fd2cc..c3f1a63 100644 --- a/docs/src/ho.md +++ b/docs/src/ho.md @@ -161,14 +161,14 @@ println("p2(t1+) - p2(t1-) = ", jmp1) println("p2(t2+) - p2(t2-) = ", jmp2) ``` -## Indirect Method +## Indirect Method ```@example main using NonlinearSolve using OrdinaryDiffEq using Animations nothing # hide -``` +``` ```@example main # Dynamics @@ -210,7 +210,7 @@ const x0 = [2.5; 4.0] nothing # hide ``` -```@example main +```@example main # Shooting function function shoot(p0, tt1, tt2, ttstar, tt3, b1, jump1, jump2, TT) @@ -239,7 +239,7 @@ function shoot(p0, tt1, tt2, ttstar, tt3, b1, jump1, jump2, TT) end nothing # hide -``` +``` ```@example main # auxiliary function with aggregated inputs diff --git a/docs/src/numerical.md b/docs/src/numerical.md index 553ca82..aaa59b5 100644 --- a/docs/src/numerical.md +++ b/docs/src/numerical.md @@ -1,8 +1,8 @@ # A numerical approach for optimal control problems with loss control regions -In optimal control theory, there are several ways for solving numerically an optimal control problem. Direct and indirect methods represent an important class of methods that we will use hereafter. +In optimal control theory, there are several ways for solving numerically an optimal control problem. Direct and indirect methods represent an important class of methods that we will use hereafter. -Direct methods involve discretizing the state and control variables, simplifying the problem into a finite-dimensional nonlinear optimization problem. On the other hand, indirect methods tackle the problem by solving a boundary value problem, based on the PMP, through the use of a shooting method (see, e.g.[^1],[^2]). +Direct methods involve discretizing the state and control variables, simplifying the problem into a finite-dimensional nonlinear optimization problem. On the other hand, indirect methods tackle the problem by solving a boundary value problem, based on the PMP, through the use of a shooting method (see, e.g.[^1],[^2]). It is important to note that neither of these methods is fundamentally better than the other. Indeed, each of these methods has its pros and cons. For instance, although the direct method is simple to implement, more robust and less sensitive to the choice of the initial condition, it should be noted that it yields less precise results and can converge to local minima that significantly deviate from the optimal solution. Additionally, this method requires a large amount of memory. On the other hand, the indirect method is known for its extreme precision. However, it is based only on necessary optimality conditions from the PMP and often requires knowledge of the structure of the optimal solution. Moreover, it is quite sensitive to the choice of the initial condition, which must be chosen carefully to ensure convergence. @@ -11,6 +11,7 @@ Often in the literature, one proceeds in two steps. The first step is to impleme ## Direct method For some $\omega_0 \in \mathrm{U}$, some $\varepsilon_0>0$ and $\varepsilon>0$ small enough, we introduce the *regularized problem* given by + ```math \begin{equation*} \begin{array}{lcl} @@ -24,32 +25,38 @@ For some $\omega_0 \in \mathrm{U}$, some $\varepsilon_0>0$ and $\varepsilon>0$ s \end{array} \end{equation*} ``` -where $\Psi_{\epsilon} : \R^n \to \R$ is the regularization of the characteristic function of $\cup_{q_j = 1} \overline{X_j}$ given by + +where $\Psi_{\epsilon} : \R^n \to \R$ is the regularization of the characteristic function of $\cup_{q_j = 1} \overline{X_j}$ given by + ```math \Psi_{\varepsilon}(x) := \sum_{q_j = 1} e^{-\frac{1}{2 \varepsilon} \mathrm{d}^2_{j}(x)}, ``` -for all $x\in \R^n$, where $\mathrm{d}_{j}: \R^n \to \R$ stands for the distance function to the set $\overline{X_j}$ defined by $\mathrm{d}_{j}(x) := \inf_{y \in \overline{X_j}} \|x-y\|_{\R^n}$ for all $x\in \R^n$ and every $j \in \mathcal{J}$. + +for all $x\in \R^n$, where $\mathrm{d}_{j}: \R^n \to \R$ stands for the distance function to the set $\overline{X_j}$ defined by $\mathrm{d}_{j}(x) := \inf_{y \in \overline{X_j}} \|x-y\|_{\R^n}$ for all $x\in \R^n$ and every $j \in \mathcal{J}$. ## Indirect method -Recall that the direct method has captured the structure of the optimal pair $(x^*,u^*)$. In the indirect method, we address each arc separately. -We begin by defining the **flow** of the Hamiltonian associated with each arc. To accomplish this, we use the function `Flow` that can be found in the [OptimalControl.jl](https://github.com/control-toolbox/OptimalControl.jl) package. This latter allows to solve the Hamiltonian system over a given time interval from given initial values of the state and the adjoint vector. This function requires necessary libraries such as ForwardDiff.jl for calculating gradients and Jacobians and OrdinaryDiffEq.jl for solving ordinary differential equations. - +Recall that the direct method has captured the structure of the optimal pair $(x^*,u^*)$. In the indirect method, we address each arc separately. We begin by defining the **flow** of the Hamiltonian associated with each arc. To accomplish this, we use the function `Flow` that can be found in the [OptimalControl.jl](https://github.com/control-toolbox/OptimalControl.jl) package. This latter allows to solve the Hamiltonian system over a given time interval from given initial values of the state and the adjoint vector. This function requires necessary libraries such as ForwardDiff.jl for calculating gradients and Jacobians and OrdinaryDiffEq.jl for solving ordinary differential equations. + In the setting of the present paper (including control regions and loss control regions), we distinguish between two types of Hamiltonian flows: - -- **Hamiltonian flows in control regions** We recall that the Hamiltonian $H$ associated with the optimal control problem given above is defined by + +- **Hamiltonian flows in control regions** We recall that the Hamiltonian $H$ associated with the optimal control problem given above is defined by + ```math H(x,u,p) := \langle p, f(x,u)\rangle_{\R^n}, ``` -for all $(x,u,p)\in \mathbb{R}^n \times \mathbb{R}^m \times \mathbb{R}^n$. Using the theorem given above and more specifically the Hamiltonian maximization condition, we obtain an expression of the control $u^*$ which can generate a sequence of arcs. Then it remains to define a **pseudo-Hamiltonian** (the pseudo-Hamiltonian stands for the Hamiltonian flow associated with each arc). associated with each arc. Finally we define the flow associated with each arc, which allows the resolution of the boundary value problem on a time interval satisfied by the pair $(x^*,p)$ with an initial condition. - -- **Hamiltonian flows in loss control regions** Recall that, in loss control regions, $u^*$ satisfies an averaged Hamiltonian gradient condition (see Theorem above). Here, the difficulty lies in the fact that this condition is given in an integral and implicit form. Therefore, to overcome this difficulty, we first introduce new states $\lambda$ and $y$. First, the state $\lambda$ comes from the augmentation technique (we refer to [^3] for more details) to handle the constant value $u^*_k$, so it satisfies the dynamics $\dot{\lambda}(t)=0$ and the initial condition $\lambda(\tau^*_{k-1}) = u^*_k$. Second, the state $y$ satisfies $\dot{y}(t) = 0$ and $y(\tau^*_{k-1})=0$ (and thus $y=0$). Now we define the new Hamiltonian $\tilde{H}$ as follows: -```math -\tilde{H}(x,u,y,p) - := H(x,u,p) - y \nabla_{u} H(x,u,p) = \langle p, f(x,u)\rangle_{\R^n} - y \nabla_{u} H(x,u,p), + +for all $(x,u,p)\in \mathbb{R}^n \times \mathbb{R}^m \times \mathbb{R}^n$. Using the theorem given above and more specifically the Hamiltonian maximization condition, we obtain an expression of the control $u^*$ which can generate a sequence of arcs. Then it remains to define a **pseudo-Hamiltonian** (the pseudo-Hamiltonian stands for the Hamiltonian flow associated with each arc). Finally we define the flow associated with each arc, which allows the resolution of the boundary value problem on a time interval satisfied by the pair $(x^*,p)$ with an initial condition. + +- **Hamiltonian flows in loss control regions** Recall that, in loss control regions, $u^*$ satisfies an averaged Hamiltonian gradient condition (see Theorem above). Here, the difficulty lies in the fact that this condition is given in an integral and implicit form. Therefore, to overcome this difficulty, we first introduce new states $\lambda$ and $y$. First, the state $\lambda$ comes from the augmentation technique (we refer to [^3] for more details) to handle the constant value $u^*_k$, so it satisfies the dynamics $\dot{\lambda}(t)=0$ and the initial condition $\lambda(\tau^*_{k-1}) = u^*_k$. Second, the state $y$ satisfies $\dot{y}(t) = 0$ and $y(\tau^*_{k-1})=0$ (and thus $y=0$). Now we define the new Hamiltonian $\tilde{H}$ as follows: + +```math +\tilde{H}(x,u,y,p) := H(x,u,p) - y \nabla_{u} H(x,u,p) = \langle p, f(x,u)\rangle_{\R^n} - y \nabla_{u} H(x,u,p), ``` -for all $(x,u,y,p)\in \mathbb{R}^n \times \mathbb{R}^m \times \R \times \mathbb{R}^n $. -It is important to note that, since $y=0$, we recover the same Hamiltonian $H$. But, the actual utility of introducing the state $y$ is that it allows us to rewrite the integral expressed in the averaged Hamiltonian gradient condition as a terminal value of an adjoint vector. This makes it easier to take into account in the shooting function. Here is the justification of this point. First, we define $p_{y}$ as the solution to the system + +for all $(x,u,y,p)\in \mathbb{R}^n \times \mathbb{R}^m \times \R \times \mathbb{R}^n$. +It is important to note that, since $y=0$, we recover the same Hamiltonian $H$. But, the actual utility of introducing the state $y$ is that it allows us to rewrite the integral expressed in the averaged Hamiltonian gradient condition as a terminal value of an adjoint vector. This makes it easier to take into account in the shooting function. Here is the justification of this point. First, we define $p_{y}$ as the solution to the system + ```math \left\{\begin{array}{l} \dot{p}_{y}(t) = - \nabla_y \tilde{H}(x^*(t),u^*_k,y(t),p(t)), \quad @@ -58,14 +65,17 @@ It is important to note that, since $y=0$, we recover the same Hamiltonian $H$. \end{array} \right. ``` -Second, since $u_k^*$ is assumed to be an interior value to $\mathrm{U}$, we get that + +Second, since $u_k^*$ is assumed to be an interior value to $\mathrm{U}$, we get that + ```math \begin{equation*} \int_{\tau^*_{k-1}}^{\tau^*_k} \nabla_{u} H(x^*(t),u^*_k,p(t)) \, \mathrm{d}t = {p}_{y}(\tau^*_k)=0. \end{equation*} -``` -Hence there is no need to compute an integral in order to take into account the averaged Hamiltonian gradient condition. +``` + +Hence there is no need to compute an integral in order to take into account the averaged Hamiltonian gradient condition. [^1]: S. Aronna, F. Bonnans, P. Martinon, *A shooting algorithm for optimal control problems with singular arcs*, Journal of Optimization Theory and Applications, **158**, pp. 419–459, Springer, 2013. [^2]: J.F. Bonnans, *The shooting approach to optimal control problems*, IFAC Proceedings Volumes, **46**, no. 11, pp. 281–292, Elsevier, 2013. -[^3]: T. Bayen, A. Bouali, L. Bourdin & O. Cots, *Loss control regions in optimal control problems*, Journal of Differential Equations, **405** (2024), 359-397. \ No newline at end of file +[^3]: T. Bayen, A. Bouali, L. Bourdin & O. Cots, *Loss control regions in optimal control problems*, Journal of Differential Equations, **405** (2024), 359-397. diff --git a/docs/src/zermelo1.md b/docs/src/zermelo1.md index 6f983f8..f209a40 100644 --- a/docs/src/zermelo1.md +++ b/docs/src/zermelo1.md @@ -108,7 +108,7 @@ plot!(λ, 0, tf, label="state λ", color="green", linewidth=2) ```@example main plot( p1, 0, tf, label="costate p1", color="purple", linewidth=2) plot!(p2, 0, tf, label="costate p2", color="violet", linewidth=2) -``` +``` ```@example main # Find the first crossing time @@ -128,20 +128,20 @@ println("first crossing time: ", t1) println("second crossing time: ", t2) ``` -```@example main +```@example main jmp1 = p2(t1+0.1) - p2(t1-0.1) jmp2 = p2(t2+0.1) - p2(t2-0.1) println("p2(t1+) - p2(t1-) = ", jmp1) println("p2(t2+) - p2(t2-) = ", jmp2) ``` -## Indirect Method +## Indirect Method ```@example main using NonlinearSolve using OrdinaryDiffEq using Animations -``` +``` ```@example main # Dynamics @@ -291,6 +291,7 @@ plot(tsol, usol, label="optimal control" ,linecolor=:red ,linewidth=2) plot(tsol, p11, label="costate p1", linecolor=:purple, linewidth=2) plot!(tsol, p22, label="costate p2", linecolor=:violet, linewidth=2) ``` + ```@example main # create an animation animx = @animate for i = 1:length(tsol) diff --git a/docs/src/zermelo2.md b/docs/src/zermelo2.md index 8a35ce5..93a889b 100644 --- a/docs/src/zermelo2.md +++ b/docs/src/zermelo2.md @@ -13,6 +13,7 @@ \end{array} \right. ``` + ## Reformulation for the direct method ```math @@ -92,7 +93,7 @@ q2(t) = costate(sol)(t)[2] nothing # hide ``` -```@example main +```@example main plot(y1, y2, 0, tf, label="optimal trajectory", color="blue", linewidth=2) plot!([5, 5], [0, 6], color=:black, label = false, linewidth=2) plot!([10, 10], [0,6], color=:black, label = false, linewidth=2) @@ -108,7 +109,7 @@ plot!(tt2, μ, label="state λ", color="green", linewidth=2) ```@example main plot( tt2, q1, label="costate p1", color="purple", linewidth=2) plot!(tt2, q2, label="costate p2", color="violet", linewidth=2) -``` +``` ```@example main # Find the crossing times based on conditions for x1 @@ -165,14 +166,14 @@ println("p1(t3+) - p1(t3-) = ", jmp3) println("p1(t4+) - p1(t4-) = ", jmp4) ``` -## Indirect Method +## Indirect Method ```@example main using NonlinearSolve using OrdinaryDiffEq using Animations nothing # hide -``` +``` ```@example main # Dynamics @@ -210,7 +211,7 @@ x0 = [0, 0] nothing # hide ``` -```@example main +```@example main # Shooting function function shoot2(p0, tt1, tt2, tt3, tt4, λ1, λ3, j1, j2, j3, j4) @@ -253,8 +254,7 @@ function shoot2(p0, tt1, tt2, tt3, tt4, λ1, λ3, j1, j2, j3, j4) end nothing # hide -``` - +``` ```@example main # auxiliary function with aggregated inputs @@ -347,7 +347,7 @@ qq2 = [ qqq[i][2] for i=1:m ] nothing # hide ``` -```@example main +```@example main plot(yy1, yy2, label="optimal trajectory", legend=false, linecolor=:blue, linewidth=2) plot!([5, 5], [0, 6], color=:black, label = false, linewidth=2) plot!([10, 10], [0,6], color=:black, label = false, linewidth=2) @@ -362,7 +362,7 @@ plot(ttt, vvv, label="optimal control" ,linecolor=:red ,linewidth=2) ```@example main plot(ttt, qq1, label="costate p1", linecolor=:purple, linewidth=2) plot!(ttt, qq2, label="costate p2", linecolor=:violet, linewidth=2) -``` +``` ```@example main # create an animation From 61921077fd04b11afa4614fa9fa38ab2aa4c6810 Mon Sep 17 00:00:00 2001 From: Olivier Cots Date: Sun, 2 Nov 2025 14:18:37 +0100 Subject: [PATCH 03/10] push preview doc --- docs/make.jl | 5 +++-- docs/src/ho.md | 29 +++++++++++++++++++++++++++++ docs/src/zermelo1.md | 21 +++++++++++++++++++++ docs/src/zermelo2.md | 23 +++++++++++++++++++++++ 4 files changed, 76 insertions(+), 2 deletions(-) diff --git a/docs/make.jl b/docs/make.jl index 3915f76..4d8755b 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -29,7 +29,7 @@ Draft = false ``` =# makedocs(; - draft=true, + draft=false, warnonly=:cross_references, sitename="Loss control", format=Documenter.HTML(; @@ -57,4 +57,5 @@ makedocs(; ], ) -deploydocs(; repo=repo_url * ".git", devbranch="main") +deploydocs(; repo=repo_url * ".git", devbranch="main", push_preview=true) +# push_preview: use https://control-toolbox.org/LossControl.jl/previews/PRXXX where XXX is the pull request number diff --git a/docs/src/ho.md b/docs/src/ho.md index c3f1a63..3f18c9c 100644 --- a/docs/src/ho.md +++ b/docs/src/ho.md @@ -1,5 +1,11 @@ # Harmonic oscillator problem +This example considers a **minimum time problem** for the harmonic oscillator with a loss control region. Unlike the classical harmonic oscillator problem (without loss control region), optimal trajectories spiral around the origin and are expected to visit the loss control region **multiple times**. At each visit, the constant control value can be modified, which is a key feature of loss control regions. + +The main challenge here is that the trajectory spirals in a finite number of times before reaching the target, requiring careful handling of multiple visits to the loss control region. + +## Problem statement + ```math \left\{ \begin{array}{l} @@ -13,6 +19,13 @@ \right. ``` +The partition of $\mathbb{R}^2$ consists of: + +- **Control region**: $X_1 = \{x \in \mathbb{R}^2 \mid x_2 > 0\}$ (where control can change at any time) +- **Loss control region**: $X_2 = \{x \in \mathbb{R}^2 \mid x_2 < 0\}$ (where control must remain constant) + +Note that the final time $T$ is free in this problem, which can be handled using standard augmentation techniques. + ## Reformulation for the direct method ```math @@ -161,8 +174,24 @@ println("p2(t1+) - p2(t1-) = ", jmp1) println("p2(t2+) - p2(t2-) = ", jmp2) ``` +## Analysis of the direct method results + +The direct method reveals that the optimal trajectory visits the loss control region $X_2$ **twice**: + +- **First visit**: $\lambda = 1$ (an extremal value of the control set $[-1,1]$) +- **Second visit**: $\lambda \in (-1,1)$ (an interior value) + +Additionally, the control exhibits a **bang-bang structure** with a single switching time during the second visit to the control region. This is characteristic of time-optimal control problems. + ## Indirect Method +Based on the direct method results, we deduce that the optimal solution $(x^*, u^*)$ consists of: + +1. **Three consecutive bang arcs**: the control switches from $-1$ to $+1$ at the first crossing time $\tau_1^*$, then from $+1$ to $-1$ at a switching time $\sigma^* \in (\tau_2^*, \tau_3^*)$ +2. **One constant arc**: from $-1$ to a constant value in $(-1,1)$ at the crossing time $\tau_3^*$ + +An important observation is that an **extremal value** ($u_1^* = 1$) is possible when visiting a loss control region, which must satisfy the averaged Hamiltonian gradient condition (as an inequality). However, for the second visit, the interior value $u_2^* \approx 0.89$ requires an additional equation in the shooting function. + ```@example main using NonlinearSolve using OrdinaryDiffEq diff --git a/docs/src/zermelo1.md b/docs/src/zermelo1.md index f209a40..171d73b 100644 --- a/docs/src/zermelo1.md +++ b/docs/src/zermelo1.md @@ -1,5 +1,9 @@ # Zermelo navigation problem, example 1 +This example illustrates a Zermelo-type navigation problem with a single loss control region. The state space is partitioned into one loss control region (where $0.5 < x_2 < 3.5$) and two control regions. When the trajectory enters the loss control region, the control must remain constant, though its value is optimized and can differ at each visit. + +## Problem statement + ```math \left\{ \begin{array}{l} @@ -13,6 +17,11 @@ \right. ``` +The partition of $\mathbb{R}^2$ consists of: + +- **Control regions**: $X_1 = \{x \in \mathbb{R}^2 \mid x_2 < 0.5\}$ and $X_3 = \{x \in \mathbb{R}^2 \mid x_2 > 3.5\}$ (where control can change at any time) +- **Loss control region**: $X_2 = \{x \in \mathbb{R}^2 \mid 0.5 < x_2 < 3.5\}$ (where control must remain constant) + ## Reformulation for the direct method ```math @@ -135,8 +144,20 @@ println("p2(t1+) - p2(t1-) = ", jmp1) println("p2(t2+) - p2(t2-) = ", jmp2) ``` +## Analysis of the direct method results + +The direct method reveals that the optimal trajectory visits the loss control region $X_2$ once with a constant control value $\lambda \in (-\frac{\pi}{2}, \frac{\pi}{2})$. The adjoint vector $p_2$ exhibits discontinuity jumps at each crossing time, which is characteristic of spatially heterogeneous optimal control problems. + ## Indirect Method +Based on the direct method results, we deduce that the optimal solution $(x^*, u^*)$ has **three arcs**: + +1. **Feedback arc** (in $X_1$): the control is expressed as $u^*(t) = \arctan(p_2(t))$ using the Hamiltonian maximization condition +2. **Constant arc** (in $X_2$): the control takes a constant value in $(-\frac{\pi}{2}, \frac{\pi}{2})$ +3. **Feedback arc** (in $X_3$): again $u^*(t) = \arctan(p_2(t))$ + +Note that the adjoint vector $p_1$ is continuous over $[0,8]$ since the interfaces between regions are horizontal lines. Only $p_2$ may have jumps at crossing times. + ```@example main using NonlinearSolve using OrdinaryDiffEq diff --git a/docs/src/zermelo2.md b/docs/src/zermelo2.md index 93a889b..e79bcc0 100644 --- a/docs/src/zermelo2.md +++ b/docs/src/zermelo2.md @@ -1,5 +1,9 @@ # Zermelo problem, example 2 +This example extends the previous Zermelo navigation problem to the case of **multiple loss control regions**. The state space is now partitioned into two loss control regions and three control regions. This illustrates how the trajectory can visit different loss control regions with potentially different constant control values at each visit. + +## Problem statement + ```math \left\{ @@ -14,6 +18,11 @@ \right. ``` +The partition of $\mathbb{R}^2$ consists of: + +- **Control regions**: $X_1 = \{x \in \mathbb{R}^2 \mid x_1 < 5\}$, $X_3 = \{x \in \mathbb{R}^2 \mid 10 < x_1 < 20\}$, and $X_5 = \{x \in \mathbb{R}^2 \mid x_1 > 25\}$ +- **Loss control regions**: $X_2 = \{x \in \mathbb{R}^2 \mid 5 < x_1 < 10\}$ and $X_4 = \{x \in \mathbb{R}^2 \mid 20 < x_1 < 25\}$ + ## Reformulation for the direct method ```math @@ -166,8 +175,22 @@ println("p1(t3+) - p1(t3-) = ", jmp3) println("p1(t4+) - p1(t4-) = ", jmp4) ``` +## Analysis of the direct method results + +The direct method shows that the optimal trajectory visits both loss control regions $X_2$ and $X_4$ with two different constant control values in $(-\frac{\pi}{2}, \frac{\pi}{2})$. The adjoint vector $p_1$ exhibits discontinuity jumps at each of the four crossing times. + ## Indirect Method +Based on the direct method results, we deduce that the optimal solution $(x^*, u^*)$ has **five arcs**: + +1. **Feedback arc** (in $X_1$) +2. **Constant arc** (in $X_2$): first constant value +3. **Feedback arc** (in $X_3$) +4. **Constant arc** (in $X_4$): second constant value (potentially different from the first) +5. **Feedback arc** (in $X_5$) + +Since the regions are vertical, $p_2$ is continuous over $[0,8]$, whereas $p_1$ may have jumps at crossing times. From the Hamiltonian maximization condition in control regions, we have $u^*(t) = \arctan(p_2(t))$. + ```@example main using NonlinearSolve using OrdinaryDiffEq From 21d667777cb3f8904365d6da822f1de0e656c956 Mon Sep 17 00:00:00 2001 From: Olivier Cots Date: Sun, 2 Nov 2025 14:37:50 +0100 Subject: [PATCH 04/10] foo --- docs/make.jl | 2 +- docs/src/ho.md | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/make.jl b/docs/make.jl index 4d8755b..72f667b 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -29,7 +29,7 @@ Draft = false ``` =# makedocs(; - draft=false, + draft=true, warnonly=:cross_references, sitename="Loss control", format=Documenter.HTML(; diff --git a/docs/src/ho.md b/docs/src/ho.md index 3f18c9c..9361603 100644 --- a/docs/src/ho.md +++ b/docs/src/ho.md @@ -1,3 +1,6 @@ +```@meta +Draft = false +``` # Harmonic oscillator problem This example considers a **minimum time problem** for the harmonic oscillator with a loss control region. Unlike the classical harmonic oscillator problem (without loss control region), optimal trajectories spiral around the origin and are expected to visit the loss control region **multiple times**. At each visit, the constant control value can be modified, which is a key feature of loss control regions. From cec8045f3f7a2cc7238f500c7eee04d546269db9 Mon Sep 17 00:00:00 2001 From: Olivier Cots Date: Sun, 2 Nov 2025 14:41:31 +0100 Subject: [PATCH 05/10] add tmp from gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index a107fc8..1ff4b7f 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,4 @@ Manifest.toml # .ipynb_checkpoints +tmp/ \ No newline at end of file From a119606f390205044747d449b8a88bc41cd64d44 Mon Sep 17 00:00:00 2001 From: Anas Bouali Date: Fri, 7 Nov 2025 09:35:13 +0100 Subject: [PATCH 06/10] Improve example code in ho.md Refactor example code for clarity and structure. --- docs/src/ho.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/docs/src/ho.md b/docs/src/ho.md index 9361603..adfcd11 100644 --- a/docs/src/ho.md +++ b/docs/src/ho.md @@ -93,11 +93,19 @@ nothing # hide ``` ```@example main -N = 630 -sol = solve(ocp; init = ( state = t -> [0.1, 0.1, 1], - control =[-1, 0], - variable =15 - ), grid_size=N, print_level=4) +sol = ( state = t -> [0.1, 0.1, 1], + control =[-1, 0], + variable =15) + +for N in [50, 100 ,500, 1000] + sol = solve(ocp, :direct, :adnlp, :ipopt; + disc_method = :gauss_legendre_3, + grid_size=N, + init=sol, + tol=1e-8, + display=true) +end +N = 1000 nothing # hide ``` From 09b369b7d4dd7198b4ef3314860a0e5211dbaf4b Mon Sep 17 00:00:00 2001 From: Olivier Cots Date: Fri, 7 Nov 2025 09:48:15 +0100 Subject: [PATCH 07/10] draft=false --- .github/workflows/CI.yml | 3 +++ docs/make.jl | 2 +- docs/src/ho.md | 3 --- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 90d81ed..fa3cb15 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -10,3 +10,6 @@ on: jobs: call: uses: control-toolbox/CTActions/.github/workflows/ci.yml@main + with: + runners: '["ubuntu-latest"]' + versions: '["1.12"]' diff --git a/docs/make.jl b/docs/make.jl index 72f667b..4d8755b 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -29,7 +29,7 @@ Draft = false ``` =# makedocs(; - draft=true, + draft=false, warnonly=:cross_references, sitename="Loss control", format=Documenter.HTML(; diff --git a/docs/src/ho.md b/docs/src/ho.md index adfcd11..6c32ffa 100644 --- a/docs/src/ho.md +++ b/docs/src/ho.md @@ -1,6 +1,3 @@ -```@meta -Draft = false -``` # Harmonic oscillator problem This example considers a **minimum time problem** for the harmonic oscillator with a loss control region. Unlike the classical harmonic oscillator problem (without loss control region), optimal trajectories spiral around the origin and are expected to visit the loss control region **multiple times**. At each visit, the constant control value can be modified, which is a key feature of loss control regions. From 830536b020fc2f41b0468c05ceddfd94e136cda9 Mon Sep 17 00:00:00 2001 From: Olivier Cots Date: Fri, 7 Nov 2025 09:55:11 +0100 Subject: [PATCH 08/10] global sol --- docs/Project.toml | 1 + docs/make.jl | 2 +- docs/src/ho.md | 32 ++++++++++++++++++++------------ docs/src/zermelo1.md | 8 +++++--- docs/src/zermelo2.md | 8 +++++--- 5 files changed, 32 insertions(+), 19 deletions(-) diff --git a/docs/Project.toml b/docs/Project.toml index 0d1dd98..f755d89 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -1,6 +1,7 @@ [deps] Animations = "27a7e980-b3e6-11e9-2bcd-0b925532e340" Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" +LossControl = "6a3a0e7e-9c90-4c26-bc64-8dd630726a7b" NLPModelsIpopt = "f4238b75-b362-5c4c-b852-0801c9a21d71" NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" OptimalControl = "5f98b655-cc9a-415a-b60e-744165666948" diff --git a/docs/make.jl b/docs/make.jl index 4d8755b..72f667b 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -29,7 +29,7 @@ Draft = false ``` =# makedocs(; - draft=false, + draft=true, warnonly=:cross_references, sitename="Loss control", format=Documenter.HTML(; diff --git a/docs/src/ho.md b/docs/src/ho.md index 6c32ffa..cab5667 100644 --- a/docs/src/ho.md +++ b/docs/src/ho.md @@ -1,3 +1,6 @@ +```@meta +Draft = false +``` # Harmonic oscillator problem This example considers a **minimum time problem** for the harmonic oscillator with a loss control region. Unlike the classical harmonic oscillator problem (without loss control region), optimal trajectories spiral around the origin and are expected to visit the loss control region **multiple times**. At each visit, the constant control value can be modified, which is a key feature of loss control regions. @@ -79,9 +82,11 @@ const ε = 1e-3 -5 ≤ x1(t) ≤ 5, (2) -5 ≤ x2(t) ≤ 5, (3) - q̇(t) == [x2(t), - (1-fNC(x2(t)))*u(t) + fNC(x2(t))*λ(t) - x1(t), - (1-fNC(x2(t)))*v(t)] + q̇(t) == [ + x2(t), + (1-fNC(x2(t)))*u(t) + fNC(x2(t))*λ(t) - x1(t), + (1-fNC(x2(t)))*v(t), + ] tf + ∫(ε*(v(t))^2 +fNC(x2(t))*(u(t))^2) → min @@ -90,17 +95,20 @@ nothing # hide ``` ```@example main -sol = ( state = t -> [0.1, 0.1, 1], - control =[-1, 0], - variable =15) +sol = ( + state = t -> [0.1, 0.1, 1], + control = [-1, 0], + variable = 15, +) for N in [50, 100 ,500, 1000] - sol = solve(ocp, :direct, :adnlp, :ipopt; - disc_method = :gauss_legendre_3, - grid_size=N, - init=sol, - tol=1e-8, - display=true) + global sol = solve(ocp, :direct, :adnlp, :ipopt; + disc_method=:gauss_legendre_3, + grid_size=N, + init=sol, + tol=1e-8, + display=true, + ) end N = 1000 nothing # hide diff --git a/docs/src/zermelo1.md b/docs/src/zermelo1.md index 171d73b..b15961f 100644 --- a/docs/src/zermelo1.md +++ b/docs/src/zermelo1.md @@ -70,9 +70,11 @@ ocp = @def begin -π/2 ≤ u(t) ≤ π/2 -π/2 ≤ λ(t) ≤ π/2 - q̇(t) == [fNC(x2(t))*(x2(t) + cos(λ(t))) + (1-fNC(x2(t)))*(x2(t) + cos(u(t))), - fNC(x2(t))*sin(λ(t)) +(1-fNC(x2(t)))*sin(u(t)), - (1-fNC(x2(t)))*v(t)] + q̇(t) == [ + fNC(x2(t))*(x2(t) + cos(λ(t))) + (1-fNC(x2(t)))*(x2(t) + cos(u(t))), + fNC(x2(t))*sin(λ(t)) +(1-fNC(x2(t)))*sin(u(t)), + (1-fNC(x2(t)))*v(t), + ] -x1(tf) + ∫(ε*(v(t))^2+fNC(x2(t))*(u(t))^2) → min diff --git a/docs/src/zermelo2.md b/docs/src/zermelo2.md index e79bcc0..4cf311e 100644 --- a/docs/src/zermelo2.md +++ b/docs/src/zermelo2.md @@ -71,9 +71,11 @@ tf = 8 -π/2 ≤ u(t) ≤ π/2 -π/2 ≤ λ(t) ≤ π/2 - q̇(t) == [fNC(x1(t))*(x2(t) + cos(λ(t))) + (1-fNC(x1(t)))*(x2(t) + cos(u(t))), - fNC(x1(t))*sin(λ(t)) + (1-fNC(x1(t)))*sin(u(t)), - (1-fNC(x1(t)))*v(t)] + q̇(t) == [ + fNC(x1(t))*(x2(t) + cos(λ(t))) + (1-fNC(x1(t)))*(x2(t) + cos(u(t))), + fNC(x1(t))*sin(λ(t)) + (1-fNC(x1(t)))*sin(u(t)), + (1-fNC(x1(t)))*v(t), + ] -x1(tf) + ∫(ε*(v(t))^2+fNC(x1(t))*(u(t))^2) → min From e81d976f86ee438ec8a49e98a0f11dbb28e210b1 Mon Sep 17 00:00:00 2001 From: Olivier Cots Date: Fri, 7 Nov 2025 10:10:27 +0100 Subject: [PATCH 09/10] draft=false --- docs/make.jl | 2 +- docs/src/ho.md | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/docs/make.jl b/docs/make.jl index 72f667b..4d8755b 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -29,7 +29,7 @@ Draft = false ``` =# makedocs(; - draft=true, + draft=false, warnonly=:cross_references, sitename="Loss control", format=Documenter.HTML(; diff --git a/docs/src/ho.md b/docs/src/ho.md index cab5667..10c0821 100644 --- a/docs/src/ho.md +++ b/docs/src/ho.md @@ -1,6 +1,3 @@ -```@meta -Draft = false -``` # Harmonic oscillator problem This example considers a **minimum time problem** for the harmonic oscillator with a loss control region. Unlike the classical harmonic oscillator problem (without loss control region), optimal trajectories spiral around the origin and are expected to visit the loss control region **multiple times**. At each visit, the constant control value can be modified, which is a key feature of loss control regions. @@ -101,7 +98,7 @@ sol = ( variable = 15, ) -for N in [50, 100 ,500, 1000] +for N in [50, 100, 500, 1000] global sol = solve(ocp, :direct, :adnlp, :ipopt; disc_method=:gauss_legendre_3, grid_size=N, From a76fad63616e7dc134a1aab1a5250cf8d84b8db5 Mon Sep 17 00:00:00 2001 From: Olivier Cots Date: Fri, 7 Nov 2025 10:11:51 +0100 Subject: [PATCH 10/10] display=N==1000 --- docs/src/ho.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/ho.md b/docs/src/ho.md index 10c0821..d2e47a7 100644 --- a/docs/src/ho.md +++ b/docs/src/ho.md @@ -104,7 +104,7 @@ for N in [50, 100, 500, 1000] grid_size=N, init=sol, tol=1e-8, - display=true, + display = N == 1000, ) end N = 1000