diff --git a/Manifest.toml b/Manifest.toml index 0459249..9f733d9 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -1,6 +1,6 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.11.5" +julia_version = "1.11.6" manifest_format = "2.0" project_hash = "65f9f6999611571ccf228f448404abce642254f9" @@ -38,9 +38,9 @@ version = "1.6.0" [[deps.Enzyme]] deps = ["CEnum", "EnzymeCore", "Enzyme_jll", "GPUCompiler", "InteractiveUtils", "LLVM", "Libdl", "LinearAlgebra", "ObjectFile", "PrecompileTools", "Preferences", "Printf", "Random", "SparseArrays"] -git-tree-sha1 = "59b0bc9ffe802326b67d218923ff2f325cfc9cdf" +git-tree-sha1 = "80867f06e51f1a58913bc0c1413d64207f8bf839" uuid = "7da242da-08ed-463a-9acd-ee780be4f1d9" -version = "0.13.57" +version = "0.13.62" [deps.Enzyme.extensions] EnzymeBFloat16sExt = "BFloat16s" @@ -71,9 +71,9 @@ version = "0.8.12" [[deps.Enzyme_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "49dfd66929c794a6ec806bcb48d4d5d4b1280d11" +git-tree-sha1 = "5c024fa2548c53d10c70d151a1e7051fa9483209" uuid = "7cc45869-7501-5eee-bdea-0790c847d4ef" -version = "0.0.184+0" +version = "0.0.186+0" [[deps.ExprTools]] git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" @@ -97,9 +97,9 @@ version = "1.11.0" [[deps.JLLWrappers]] deps = ["Artifacts", "Preferences"] -git-tree-sha1 = "a007feb38b422fbdab534406aeca1b86823cb4d6" +git-tree-sha1 = "0533e564aae234aff59ab625543145446d8b6ec2" uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" -version = "1.7.0" +version = "1.7.1" [[deps.Krylov]] deps = ["LinearAlgebra", "Printf", "SparseArrays"] diff --git a/examples/Manifest.toml b/examples/Manifest.toml index f9db8fc..4086bc4 100644 --- a/examples/Manifest.toml +++ b/examples/Manifest.toml @@ -1,8 +1,8 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.11.5" +julia_version = "1.11.6" manifest_format = "2.0" -project_hash = "bd968805694a58fc0357e8b0ea61144c0696459a" +project_hash = "845ee78cafcaf17b5018b9560884ff01bb23472f" [[deps.ADTypes]] git-tree-sha1 = "be7ae030256b8ef14a441726c4c37766b90b93a3" @@ -94,15 +94,17 @@ version = "1.1.2" [[deps.Ariadne]] deps = ["Enzyme", "Krylov", "LinearAlgebra", "SparseArrays"] -path = ".." +git-tree-sha1 = "28125b8e532f4fdfd211704177f139085df950bc" +repo-rev = "ma/coloring" +repo-url = ".." uuid = "0be81120-40bf-4f8b-adf0-26103efb66f1" version = "0.1.0" [[deps.ArnoldiMethod]] deps = ["LinearAlgebra", "Random", "StaticArrays"] -git-tree-sha1 = "f87e559f87a45bece9c9ed97458d3afe98b1ebb9" +git-tree-sha1 = "d57bd3762d308bded22c3b82d033bff85f6195c6" uuid = "ec485272-7323-5ecc-a04f-4719b315124d" -version = "0.1.0" +version = "0.4.0" [[deps.ArrayInterface]] deps = ["Adapt", "LinearAlgebra"] @@ -136,16 +138,6 @@ version = "7.19.0" StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" -[[deps.ArrayLayouts]] -deps = ["FillArrays", "LinearAlgebra"] -git-tree-sha1 = "4e25216b8fea1908a0ce0f5d87368587899f75be" -uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.11.1" -weakdeps = ["SparseArrays"] - - [deps.ArrayLayouts.extensions] - ArrayLayoutsSparseArraysExt = "SparseArrays" - [[deps.Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" version = "1.11.0" @@ -196,9 +188,15 @@ uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" version = "1.11.0" [[deps.BaseDirs]] -git-tree-sha1 = "0b3c211ec48050496075523ea7ee045db9341a42" +git-tree-sha1 = "bca794632b8a9bbe159d56bf9e31c422671b35e0" uuid = "18cc8868-cbac-4acf-b575-c8ff214dc66f" -version = "1.3.1" +version = "1.3.2" + +[[deps.BenchmarkTools]] +deps = ["Compat", "JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] +git-tree-sha1 = "e38fbc49a620f5d0b660d7f543db1009fe0f8336" +uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" +version = "1.6.0" [[deps.BitTwiddlingConvenienceFunctions]] deps = ["Static"] @@ -206,17 +204,6 @@ git-tree-sha1 = "f21cfd4950cb9f0587d5067e69405ad2acd27b87" uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" version = "0.1.6" -[[deps.BracketingNonlinearSolve]] -deps = ["CommonSolve", "ConcreteStructs", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase"] -git-tree-sha1 = "a9014924595b7a2c1dd14aac516e38fa10ada656" -uuid = "70df07ce-3d50-431d-a3e7-ca6ddb60ac1e" -version = "1.3.0" -weakdeps = ["ChainRulesCore", "ForwardDiff"] - - [deps.BracketingNonlinearSolve.extensions] - BracketingNonlinearSolveChainRulesCoreExt = ["ChainRulesCore", "ForwardDiff"] - BracketingNonlinearSolveForwardDiffExt = "ForwardDiff" - [[deps.Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "1b96ea4a01afe0ea4090c5c8039690672dd13f2e" @@ -258,9 +245,9 @@ version = "1.1.1" [[deps.CairoMakie]] deps = ["CRC32c", "Cairo", "Cairo_jll", "Colors", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "PrecompileTools"] -git-tree-sha1 = "22e8c06a60dd4894a5e74dba616e636cb6ebe13c" +git-tree-sha1 = "9bd45574379e50579a78774334f4a1f1238c0af5" uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" -version = "0.15.3" +version = "0.13.10" [[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"] @@ -391,12 +378,6 @@ weakdeps = ["InverseFunctions"] [deps.CompositionsBase.extensions] CompositionsBaseInverseFunctionsExt = "InverseFunctions" -[[deps.ComputePipeline]] -deps = ["Observables", "Preferences"] -git-tree-sha1 = "e215ba0e9a9e9377f2ed87cf3eb26840c8990585" -uuid = "95dc2771-c249-4cd0-9c9f-1f3b4330693c" -version = "0.1.3" - [[deps.ConcreteStructs]] git-tree-sha1 = "f749037478283d372048690eb3b5f92a79432b34" uuid = "2569d6c7-a4a2-43d3-a901-331e8e4be471" @@ -464,9 +445,9 @@ 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 = "e9b34e0eb3443492f396c97e7fed08630752a4f2" +git-tree-sha1 = "2d87d7bd165c1ca0d11923a9fabe90a9d71e88a6" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.177.2" +version = "6.176.0" [deps.DiffEqBase.extensions] DiffEqBaseCUDAExt = "CUDA" @@ -620,9 +601,9 @@ version = "1.0.5" [[deps.Enzyme]] deps = ["CEnum", "EnzymeCore", "Enzyme_jll", "GPUCompiler", "InteractiveUtils", "LLVM", "Libdl", "LinearAlgebra", "ObjectFile", "PrecompileTools", "Preferences", "Printf", "Random", "SparseArrays"] -git-tree-sha1 = "32a24059c12417620b747fcae9e0864d45ef92b0" +git-tree-sha1 = "80867f06e51f1a58913bc0c1413d64207f8bf839" uuid = "7da242da-08ed-463a-9acd-ee780be4f1d9" -version = "0.13.61" +version = "0.13.62" [deps.Enzyme.extensions] EnzymeBFloat16sExt = "BFloat16s" @@ -667,16 +648,6 @@ git-tree-sha1 = "d55dffd9ae73ff72f1c0482454dcf2ec6c6c4a63" uuid = "2e619515-83b5-522b-bb60-26c02a35a201" version = "2.6.5+0" -[[deps.ExponentialUtilities]] -deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "PrecompileTools", "Printf", "SparseArrays", "libblastrampoline_jll"] -git-tree-sha1 = "cae251c76f353e32d32d76fae2fea655eab652af" -uuid = "d4d017d3-3776-5f7e-afef-a10c40355c18" -version = "1.27.0" -weakdeps = ["StaticArrays"] - - [deps.ExponentialUtilities.extensions] - ExponentialUtilitiesStaticArraysExt = "StaticArrays" - [[deps.ExprTools]] git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" @@ -694,9 +665,9 @@ version = "0.1.6" [[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 = "466d45dc38e15794ec7d5d63ec03d776a9aff36e" +git-tree-sha1 = "eaa040768ea663ca695d442be1bc97edfe6824f2" uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" -version = "4.4.4+1" +version = "6.1.3+0" [[deps.FFTW]] deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] @@ -904,12 +875,6 @@ git-tree-sha1 = "eb6f1f48aa994f3018cbd029a17863c6535a266d" uuid = "d54b0c1a-921d-58e0-8e36-89d8069c0969" version = "0.5.8" -[[deps.GenericSchur]] -deps = ["LinearAlgebra", "Printf"] -git-tree-sha1 = "f88e0ba1f6b42121a7c1dfe93a9687d8e164c91b" -uuid = "c145ed77-6b09-5dd9-b285-bf645a82121e" -version = "0.5.5" - [[deps.GeometryBasics]] deps = ["EarCut_jll", "Extents", "IterTools", "LinearAlgebra", "PrecompileTools", "Random", "StaticArrays"] git-tree-sha1 = "1f5a80f4ed9f5a4aada88fc2db456e637676414b" @@ -952,6 +917,12 @@ git-tree-sha1 = "8a6dbda1fd736d60cc477d99f2e7a042acfa46e8" uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" version = "1.3.15+0" +[[deps.Graphs]] +deps = ["ArnoldiMethod", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"] +git-tree-sha1 = "c5abfa0ae0aaee162a3fbb053c13ecda39be545b" +uuid = "86223c79-3864-5bf0-83f7-82e725a168b6" +version = "1.13.0" + [[deps.GridLayoutBase]] deps = ["GeometryBasics", "InteractiveUtils", "Observables"] git-tree-sha1 = "dc6bed05c15523624909b3953686c5f5ffa10adc" @@ -1045,10 +1016,10 @@ uuid = "905a6f67-0a94-5f89-b386-d35d92009cd1" version = "3.1.11+0" [[deps.Implicit]] -deps = ["Ariadne", "DiffEqBase", "Krylov", "LinearAlgebra", "SciMLBase", "Trixi", "UnPack"] +deps = ["Ariadne", "DiffEqBase", "Krylov", "LinearAlgebra", "SciMLBase", "SparseDiffTools", "Trixi", "UnPack"] path = "../libs/Implicit" uuid = "7f538e44-2768-4ef2-af90-2110c0378286" -version = "0.1.0" +version = "0.0.0" [[deps.IndirectArrays]] git-tree-sha1 = "012e604e1c7458645cb8b436f8fba789a51b257f" @@ -1149,9 +1120,9 @@ version = "1.0.0" [[deps.JLLWrappers]] deps = ["Artifacts", "Preferences"] -git-tree-sha1 = "a007feb38b422fbdab534406aeca1b86823cb4d6" +git-tree-sha1 = "0533e564aae234aff59ab625543145446d8b6ec2" uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" -version = "1.7.0" +version = "1.7.1" [[deps.JSON]] deps = ["Dates", "Mmap", "Parsers", "Unicode"] @@ -1185,9 +1156,9 @@ version = "0.10.3" [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "MacroTools", "PrecompileTools", "Requires", "StaticArrays", "UUIDs"] -git-tree-sha1 = "38a03910123867c11af988e8718d12c98bf6a234" +git-tree-sha1 = "83c617e9e9b02306a7acab79e05ec10253db7c87" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.37" +version = "0.9.38" weakdeps = ["EnzymeCore", "LinearAlgebra", "SparseArrays"] [deps.KernelAbstractions.extensions] @@ -1213,22 +1184,6 @@ git-tree-sha1 = "b94257a1a8737099ca40bc7271a8b374033473ed" uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" version = "0.10.1" -[[deps.KrylovPreconditioners]] -deps = ["Adapt", "KernelAbstractions", "LightGraphs", "LinearAlgebra", "Metis", "SparseArrays"] -git-tree-sha1 = "52d302d5e950e242f037316b6dd6e1e080afea09" -uuid = "45d422c2-293f-44ce-8315-2cb988662dec" -version = "0.3.4" - - [deps.KrylovPreconditioners.extensions] - KrylovPreconditionersAMDGPUExt = "AMDGPU" - KrylovPreconditionersCUDAExt = "CUDA" - KrylovPreconditionersOneAPIExt = "oneAPI" - - [deps.KrylovPreconditioners.weakdeps] - AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" - CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" - oneAPI = "8f75cd03-7ff8-4ecb-9b8f-daf728133b1b" - [[deps.LAME_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "059aabebaa7c82ccb853dd4a0ee9d17796f7e1bc" @@ -1282,24 +1237,6 @@ git-tree-sha1 = "a9eaadb366f5493a5654e843864c13d8b107548c" uuid = "10f19ff3-798f-405d-979b-55457f8fc047" version = "0.1.17" -[[deps.LazyArrays]] -deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "MacroTools", "SparseArrays"] -git-tree-sha1 = "866ce84b15e54d758c11946aacd4e5df0e60b7a3" -uuid = "5078a376-72f3-5289-bfd5-ec5146d43c02" -version = "2.6.1" - - [deps.LazyArrays.extensions] - LazyArraysBandedMatricesExt = "BandedMatrices" - LazyArraysBlockArraysExt = "BlockArrays" - LazyArraysBlockBandedMatricesExt = "BlockBandedMatrices" - LazyArraysStaticArraysExt = "StaticArrays" - - [deps.LazyArrays.weakdeps] - BandedMatrices = "aae01518-5342-5314-be14-df237901396f" - BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" - BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" - StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" - [[deps.LazyArtifacts]] deps = ["Artifacts", "Pkg"] uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" @@ -1381,34 +1318,12 @@ git-tree-sha1 = "321ccef73a96ba828cd51f2ab5b9f917fa73945a" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" version = "2.41.0+0" -[[deps.LightGraphs]] -deps = ["ArnoldiMethod", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"] -git-tree-sha1 = "432428df5f360964040ed60418dd5601ecd240b6" -uuid = "093fc24a-ae57-5d10-9952-331d41423f4d" -version = "1.3.5" - [[deps.LightXML]] deps = ["Libdl", "XML2_jll"] git-tree-sha1 = "d5d2e3abfb30ea9c2cff81d243e7235b51315ec2" uuid = "9c8b4983-aa76-5018-a973-4c85ecc9e179" version = "0.9.2" -[[deps.LineSearch]] -deps = ["ADTypes", "CommonSolve", "ConcreteStructs", "FastClosures", "LinearAlgebra", "MaybeInplace", "SciMLBase", "SciMLJacobianOperators", "StaticArraysCore"] -git-tree-sha1 = "97d502765cc5cf3a722120f50da03c2474efce04" -uuid = "87fe0de2-c867-4266-b59a-2f0a94fc965b" -version = "0.1.4" -weakdeps = ["LineSearches"] - - [deps.LineSearch.extensions] - LineSearchLineSearchesExt = "LineSearches" - -[[deps.LineSearches]] -deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] -git-tree-sha1 = "4adee99b7262ad2a1a4bbbc59d993d24e55ea96f" -uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" -version = "7.4.0" - [[deps.LinearAlgebra]] deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" @@ -1426,50 +1341,6 @@ weakdeps = ["ChainRulesCore", "SparseArrays", "Statistics"] LinearMapsSparseArraysExt = "SparseArrays" LinearMapsStatisticsExt = "Statistics" -[[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 = "989a36162c76f5b4d0c3028333725600bb1481b7" -uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" -version = "3.19.2" - - [deps.LinearSolve.extensions] - LinearSolveBandedMatricesExt = "BandedMatrices" - LinearSolveBlockDiagonalsExt = "BlockDiagonals" - LinearSolveCUDAExt = "CUDA" - LinearSolveCUDSSExt = "CUDSS" - LinearSolveEnzymeExt = "EnzymeCore" - LinearSolveFastAlmostBandedMatricesExt = "FastAlmostBandedMatrices" - LinearSolveFastLapackInterfaceExt = "FastLapackInterface" - LinearSolveForwardDiffExt = "ForwardDiff" - LinearSolveHYPREExt = "HYPRE" - LinearSolveIterativeSolversExt = "IterativeSolvers" - LinearSolveKernelAbstractionsExt = "KernelAbstractions" - LinearSolveKrylovKitExt = "KrylovKit" - LinearSolveMetalExt = "Metal" - LinearSolvePardisoExt = ["Pardiso", "SparseArrays"] - LinearSolveRecursiveFactorizationExt = "RecursiveFactorization" - LinearSolveSparseArraysExt = "SparseArrays" - LinearSolveSparspakExt = ["SparseArrays", "Sparspak"] - - [deps.LinearSolve.weakdeps] - BandedMatrices = "aae01518-5342-5314-be14-df237901396f" - BlockDiagonals = "0a1fb500-61f7-11e9-3c65-f5ef3456f9f0" - CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" - CUDSS = "45b445bb-4962-46a0-9369-b4df9d0f772e" - EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" - FastAlmostBandedMatrices = "9d29842c-ecb8-4973-b1e9-a27b1157504e" - FastLapackInterface = "29a986be-02c6-4525-aec4-84b980013641" - ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771" - IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153" - KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" - KrylovKit = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" - Metal = "dde4c033-4e86-420c-a63e-0dd931031962" - Pardiso = "46dd5b70-b6fb-5a00-ae2d-e8fea33afaf2" - RecursiveFactorization = "f2c3362d-daeb-58d1-803e-2bc74f2840b4" - SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - Sparspak = "e56a9233-b9d6-4f03-8d0f-1825330902ac" - [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] git-tree-sha1 = "13ca9e2586b89836fd20cccf56e57e2b9ae7f38f" @@ -1507,17 +1378,11 @@ git-tree-sha1 = "b882a7dd7ef37643066ae8f9380beea8fdd89cae" uuid = "6f1432cf-f94c-5a45-995e-cdbf5db27b0b" version = "3.4.2" -[[deps.METIS_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "2eefa8baa858871ae7770c98c3c2a7e46daba5b4" -uuid = "d00139f3-1899-568f-a2f0-47f597d42d70" -version = "5.1.3+0" - [[deps.MKL_jll]] deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "oneTBB_jll"] -git-tree-sha1 = "5de60bc6cb3899cd318d80d627560fae2e2d99ae" +git-tree-sha1 = "282cadc186e7b2ae0eeadbd7a4dffed4196ae2aa" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2025.0.1+1" +version = "2025.2.0+0" [[deps.MPI]] deps = ["Distributed", "DocStringExtensions", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "PkgVersion", "PrecompileTools", "Requires", "Serialization", "Sockets"] @@ -1557,10 +1422,16 @@ uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" version = "0.5.16" [[deps.Makie]] -deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "ComputePipeline", "Contour", "Dates", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FilePaths", "FixedPointNumbers", "Format", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageBase", "ImageIO", "InteractiveUtils", "Interpolations", "IntervalSets", "InverseFunctions", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "Markdown", "MathTeXEngine", "Observables", "OffsetArrays", "PNGFiles", "Packing", "Pkg", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Scratch", "ShaderAbstractions", "Showoff", "SignedDistanceFields", "SparseArrays", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun", "Unitful"] -git-tree-sha1 = "8ca3fbbe6685f2fb232526cabe25ef471d520c37" +deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "Dates", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FilePaths", "FixedPointNumbers", "Format", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageBase", "ImageIO", "InteractiveUtils", "Interpolations", "IntervalSets", "InverseFunctions", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "MakieCore", "Markdown", "MathTeXEngine", "Observables", "OffsetArrays", "PNGFiles", "Packing", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Scratch", "ShaderAbstractions", "Showoff", "SignedDistanceFields", "SparseArrays", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun", "Unitful"] +git-tree-sha1 = "1d7d16f0e02ec063becd7a140f619b2ffe5f2b11" uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" -version = "0.24.3" +version = "0.22.10" + +[[deps.MakieCore]] +deps = ["ColorTypes", "GeometryBasics", "IntervalSets", "Observables"] +git-tree-sha1 = "c3159eb1e3aa3e409edbb71f4035ed8b1fc16e23" +uuid = "20f20a25-4f0e-4fdf-b5d1-57303727442b" +version = "0.9.5" [[deps.ManualMemory]] git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd" @@ -1583,37 +1454,11 @@ git-tree-sha1 = "6e64d2321257cc52f47e193407d0659ea1b2b431" uuid = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53" version = "0.6.5" -[[deps.MaybeInplace]] -deps = ["ArrayInterface", "LinearAlgebra", "MacroTools"] -git-tree-sha1 = "54e2fdc38130c05b42be423e90da3bade29b74bd" -uuid = "bb5d69b7-63fc-4a16-80bd-7e42200c7bdb" -version = "0.1.4" -weakdeps = ["SparseArrays"] - - [deps.MaybeInplace.extensions] - MaybeInplaceSparseArraysExt = "SparseArrays" - [[deps.MbedTLS_jll]] deps = ["Artifacts", "Libdl"] uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" version = "2.28.6+0" -[[deps.Metis]] -deps = ["CEnum", "LinearAlgebra", "METIS_jll", "SparseArrays"] -git-tree-sha1 = "54aca4fd53d39dcd2c3f1bef367b6921e8178628" -uuid = "2679e427-3c69-5b7f-982b-ece356f1e94b" -version = "1.5.0" - - [deps.Metis.extensions] - MetisGraphs = "Graphs" - MetisLightGraphs = "LightGraphs" - MetisSimpleWeightedGraphs = ["SimpleWeightedGraphs", "Graphs"] - - [deps.Metis.weakdeps] - Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6" - LightGraphs = "093fc24a-ae57-5d10-9952-331d41423f4d" - SimpleWeightedGraphs = "47aef6b3-ad0c-573a-a1e2-d07658019622" - [[deps.MicrosoftMPI_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] git-tree-sha1 = "bc95bf4149bf535c09602e3acdf950d9b4376227" @@ -1651,12 +1496,6 @@ git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab" uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" version = "0.2.4" -[[deps.NLSolversBase]] -deps = ["ADTypes", "DifferentiationInterface", "Distributed", "FiniteDiff", "ForwardDiff"] -git-tree-sha1 = "25a6638571a902ecfb1ae2a18fc1575f86b1d4df" -uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" -version = "7.10.0" - [[deps.NaNMath]] deps = ["OpenLibm_jll"] git-tree-sha1 = "9b8215b1ee9e78a293f99797cd31375471b2bcae" @@ -1698,88 +1537,6 @@ git-tree-sha1 = "ee6719b4ed5fd08b654017648bf5fa2e2dc8f1ec" uuid = "7aca2e03-f7e2-4192-9ec8-f4ca66d597fb" version = "1.1.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" -uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" -version = "4.10.0" - - [deps.NonlinearSolve.extensions] - NonlinearSolveFastLevenbergMarquardtExt = "FastLevenbergMarquardt" - NonlinearSolveFixedPointAccelerationExt = "FixedPointAcceleration" - NonlinearSolveLeastSquaresOptimExt = "LeastSquaresOptim" - NonlinearSolveMINPACKExt = "MINPACK" - NonlinearSolveNLSolversExt = "NLSolvers" - NonlinearSolveNLsolveExt = ["NLsolve", "LineSearches"] - NonlinearSolvePETScExt = ["PETSc", "MPI"] - NonlinearSolveSIAMFANLEquationsExt = "SIAMFANLEquations" - NonlinearSolveSpeedMappingExt = "SpeedMapping" - NonlinearSolveSundialsExt = "Sundials" - - [deps.NonlinearSolve.weakdeps] - FastLevenbergMarquardt = "7a0df574-e128-4d35-8cbd-3d84502bf7ce" - FixedPointAcceleration = "817d07cb-a79a-5c30-9a31-890123675176" - LeastSquaresOptim = "0fc2ff8b-aaa3-5acd-a817-1944a5e08891" - LineSearches = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" - MINPACK = "4854310b-de5a-5eb6-a2a5-c1dee2bd17f9" - MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" - NLSolvers = "337daf1e-9722-11e9-073e-8b9effe078ba" - NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" - PETSc = "ace2c81b-2b5f-4b1e-a30d-d662738edfe0" - SIAMFANLEquations = "084e46ad-d928-497d-ad5e-07fa361a48c4" - 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 = "404d71dd057759f4d590191a643113485c4a482a" -uuid = "be0214bd-f91f-a760-ac4e-3421ce2b2da0" -version = "1.12.0" - - [deps.NonlinearSolveBase.extensions] - NonlinearSolveBaseBandedMatricesExt = "BandedMatrices" - NonlinearSolveBaseDiffEqBaseExt = "DiffEqBase" - NonlinearSolveBaseForwardDiffExt = "ForwardDiff" - NonlinearSolveBaseLineSearchExt = "LineSearch" - NonlinearSolveBaseLinearSolveExt = "LinearSolve" - NonlinearSolveBaseSparseArraysExt = "SparseArrays" - NonlinearSolveBaseSparseMatrixColoringsExt = "SparseMatrixColorings" - - [deps.NonlinearSolveBase.weakdeps] - BandedMatrices = "aae01518-5342-5314-be14-df237901396f" - DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" - ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - LineSearch = "87fe0de2-c867-4266-b59a-2f0a94fc965b" - LinearSolve = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" - SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - SparseMatrixColorings = "0a514795-09f3-496d-8182-132a7b665d35" - -[[deps.NonlinearSolveFirstOrder]] -deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConcreteStructs", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LineSearch", "LinearAlgebra", "LinearSolve", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "SciMLJacobianOperators", "Setfield", "StaticArraysCore"] -git-tree-sha1 = "9c8cd0a986518ba317af263549b48e34ac8f776d" -uuid = "5959db7a-ea39-4486-b5fe-2dd0bf03d60d" -version = "1.5.0" - -[[deps.NonlinearSolveQuasiNewton]] -deps = ["ArrayInterface", "CommonSolve", "ConcreteStructs", "DiffEqBase", "LinearAlgebra", "LinearSolve", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase", "SciMLOperators", "StaticArraysCore"] -git-tree-sha1 = "e3888bdbab6e0bfadbc3164ef4595e40e7b7e954" -uuid = "9a2c21bd-3a47-402d-9113-8faf9a0ee114" -version = "1.6.0" -weakdeps = ["ForwardDiff"] - - [deps.NonlinearSolveQuasiNewton.extensions] - NonlinearSolveQuasiNewtonForwardDiffExt = "ForwardDiff" - -[[deps.NonlinearSolveSpectralMethods]] -deps = ["CommonSolve", "ConcreteStructs", "DiffEqBase", "LineSearch", "MaybeInplace", "NonlinearSolveBase", "PrecompileTools", "Reexport", "SciMLBase"] -git-tree-sha1 = "3398222199e4b9ca0b5840907fb509f28f1a2fdc" -uuid = "26075421-4e9a-44e1-8bd1-420ed7ad02b2" -version = "1.2.0" -weakdeps = ["ForwardDiff"] - - [deps.NonlinearSolveSpectralMethods.extensions] - NonlinearSolveSpectralMethodsForwardDiffExt = "ForwardDiff" - [[deps.ObjectFile]] deps = ["Reexport", "StructIO"] git-tree-sha1 = "09b1fe6ff16e6587fa240c165347474322e77cf1" @@ -1877,24 +1634,6 @@ git-tree-sha1 = "05868e21324cede2207c6f0f466b4bfef6d5e7ee" 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 = "569b4267680ff8e51359f8d9aca1e97b284b5e58" -uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -version = "6.99.0" - -[[deps.OrdinaryDiffEqAdamsBashforthMoulton]] -deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqLowOrderRK", "Polyester", "RecursiveArrayTools", "Reexport", "Static"] -git-tree-sha1 = "82f78099ecf4e0fa53545811318520d87e7fe0b8" -uuid = "89bda076-bce5-4f1c-845f-551c83cdda9a" -version = "1.2.0" - -[[deps.OrdinaryDiffEqBDF]] -deps = ["ADTypes", "ArrayInterface", "DiffEqBase", "FastBroadcast", "LinearAlgebra", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "OrdinaryDiffEqSDIRK", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "StaticArrays", "TruncatedStacktraces"] -git-tree-sha1 = "9124a686af119063bb4d3a8f87044a8f312fcad9" -uuid = "6ad6398a-0878-4a85-9266-38940aa047c8" -version = "1.6.0" - [[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" @@ -1909,168 +1648,12 @@ version = "1.26.2" EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" 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" -uuid = "50262376-6c5a-4cf5-baba-aaf4f84d72d7" -version = "1.5.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 = "efecf0c4cc44e16251b0e718f08b0876b2a82b80" -uuid = "4302a76b-040a-498a-8c04-15b101fed76b" -version = "1.10.0" - -[[deps.OrdinaryDiffEqExplicitRK]] -deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "TruncatedStacktraces"] -git-tree-sha1 = "4dbce3f9e6974567082ce5176e21aab0224a69e9" -uuid = "9286f039-9fbf-40e8-bf65-aa933bdc4db0" -version = "1.1.0" - -[[deps.OrdinaryDiffEqExponentialRK]] -deps = ["ADTypes", "DiffEqBase", "ExponentialUtilities", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqSDIRK", "OrdinaryDiffEqVerner", "RecursiveArrayTools", "Reexport", "SciMLBase"] -git-tree-sha1 = "8d2ab84d7fabdfde995e5f567361f238069497f5" -uuid = "e0540318-69ee-4070-8777-9e2de6de23de" -version = "1.4.0" - -[[deps.OrdinaryDiffEqExtrapolation]] -deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "FastPower", "LinearSolve", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "Polyester", "RecursiveArrayTools", "Reexport"] -git-tree-sha1 = "80a636aac325c546b04e3bf20f0c80eaa0173dd4" -uuid = "becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4" -version = "1.5.0" - -[[deps.OrdinaryDiffEqFIRK]] -deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "FastGaussQuadrature", "FastPower", "LinearAlgebra", "LinearSolve", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Polyester", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators"] -git-tree-sha1 = "0da8ec3491821262a3d2828e6370e76b51a770a3" -uuid = "5960d6e9-dd7a-4743-88e7-cf307b64f125" -version = "1.12.0" - -[[deps.OrdinaryDiffEqFeagin]] -deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "RecursiveArrayTools", "Reexport", "Static"] -git-tree-sha1 = "a7cc74d3433db98e59dc3d58bc28174c6c290adf" -uuid = "101fe9f7-ebb6-4678-b671-3a81e7194747" -version = "1.1.0" - -[[deps.OrdinaryDiffEqFunctionMap]] -deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] -git-tree-sha1 = "925a91583d1ab84f1f0fea121be1abf1179c5926" -uuid = "d3585ca7-f5d3-4ba6-8057-292ed1abd90f" -version = "1.1.1" - -[[deps.OrdinaryDiffEqHighOrderRK]] -deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "Static"] -git-tree-sha1 = "103e017ff186ac39d731904045781c9bacfca2b0" -uuid = "d28bc4f8-55e1-4f49-af69-84c1a99f0f58" -version = "1.1.0" - -[[deps.OrdinaryDiffEqIMEXMultistep]] -deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Reexport"] -git-tree-sha1 = "095bab73a3ff185e9ef971fc42ecc93c7824e589" -uuid = "9f002381-b378-40b7-97a6-27a27c83f129" -version = "1.3.0" - -[[deps.OrdinaryDiffEqLinear]] -deps = ["DiffEqBase", "ExponentialUtilities", "LinearAlgebra", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators"] -git-tree-sha1 = "940cef72ec8799d869ff1ba3dcf47cf7758e51cf" -uuid = "521117fe-8c41-49f8-b3b6-30780b3f0fb5" -version = "1.3.0" - -[[deps.OrdinaryDiffEqLowOrderRK]] -deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "SciMLBase", "Static"] -git-tree-sha1 = "d4bb32e09d6b68ce2eb45fb81001eab46f60717a" -uuid = "1344f307-1e59-4825-a18e-ace9aa3fa4c6" -version = "1.2.0" - [[deps.OrdinaryDiffEqLowStorageRK]] deps = ["Adapt", "DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static", "StaticArrays"] git-tree-sha1 = "52ec7081e65291fa5c19749312df0818db2fa1bc" uuid = "b0944070-b475-4768-8dec-fb6eb410534d" version = "1.3.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 = "ffdb0f5207b0e30f8b1edf99b3b9546d9c48ccaf" -uuid = "127b3ac7-2247-4354-8eb6-78cf4e7c58e8" -version = "1.10.0" - -[[deps.OrdinaryDiffEqNordsieck]] -deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqTsit5", "Polyester", "RecursiveArrayTools", "Reexport", "Static"] -git-tree-sha1 = "ef44754f10e0dfb9bb55ded382afed44cd94ab57" -uuid = "c9986a66-5c92-4813-8696-a7ec84c806c8" -version = "1.1.0" - -[[deps.OrdinaryDiffEqPDIRK]] -deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "Polyester", "Reexport", "StaticArrays"] -git-tree-sha1 = "ab9897e4bc8e3cf8e15f1cf61dbdd15d6a2341d7" -uuid = "5dd0a6cf-3d4b-4314-aa06-06d4e299bc89" -version = "1.3.1" - -[[deps.OrdinaryDiffEqPRK]] -deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "Reexport"] -git-tree-sha1 = "da525d277962a1b76102c79f30cb0c31e13fe5b9" -uuid = "5b33eab2-c0f1-4480-b2c3-94bc1e80bda1" -version = "1.1.0" - -[[deps.OrdinaryDiffEqQPRK]] -deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "Static"] -git-tree-sha1 = "332f9d17d0229218f66a73492162267359ba85e9" -uuid = "04162be5-8125-4266-98ed-640baecc6514" -version = "1.1.0" - -[[deps.OrdinaryDiffEqRKN]] -deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "RecursiveArrayTools", "Reexport"] -git-tree-sha1 = "41c09d9c20877546490f907d8dffdd52690dd65f" -uuid = "af6ede74-add8-4cfd-b1df-9a4dbb109d7a" -version = "1.1.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 = "1ce0096d920e95773220e818f29bf4b37ea2bb78" -uuid = "43230ef6-c299-4910-a778-202eb28ce4ce" -version = "1.11.0" - -[[deps.OrdinaryDiffEqSDIRK]] -deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "LinearAlgebra", "MacroTools", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "RecursiveArrayTools", "Reexport", "SciMLBase", "TruncatedStacktraces"] -git-tree-sha1 = "b3a7e3a2f355d837c823b435630f035aef446b45" -uuid = "2d112036-d095-4a1e-ab9a-08536f3ecdbf" -version = "1.3.0" - -[[deps.OrdinaryDiffEqSSPRK]] -deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static", "StaticArrays"] -git-tree-sha1 = "651756c030df7a1d49ad484288937f8c398e8a08" -uuid = "669c94d9-1f4b-4b64-b377-1aa079aa2388" -version = "1.3.0" - -[[deps.OrdinaryDiffEqStabilizedIRK]] -deps = ["ADTypes", "DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "OrdinaryDiffEqDifferentiation", "OrdinaryDiffEqNonlinearSolve", "RecursiveArrayTools", "Reexport", "StaticArrays"] -git-tree-sha1 = "111c23b68ad644b47e38242af920d5805c7bedb1" -uuid = "e3e12d00-db14-5390-b879-ac3dd2ef6296" -version = "1.3.0" - -[[deps.OrdinaryDiffEqStabilizedRK]] -deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "RecursiveArrayTools", "Reexport", "StaticArrays"] -git-tree-sha1 = "e08548c18880428f8121d7a5985ad94134bc4c10" -uuid = "358294b1-0aab-51c3-aafe-ad5ab194a2ad" -version = "1.1.2" - -[[deps.OrdinaryDiffEqSymplecticRK]] -deps = ["DiffEqBase", "FastBroadcast", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "RecursiveArrayTools", "Reexport"] -git-tree-sha1 = "a13d59a2d6cfb6a3332a7782638ca6e1cb6ca688" -uuid = "fa646aed-7ef9-47eb-84c4-9443fc8cbfa8" -version = "1.3.0" - -[[deps.OrdinaryDiffEqTsit5]] -deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static", "TruncatedStacktraces"] -git-tree-sha1 = "96552f7d4619fabab4038a29ed37dd55e9eb513a" -uuid = "b1df2697-797e-41e3-8120-5422d3b24e4a" -version = "1.1.0" - -[[deps.OrdinaryDiffEqVerner]] -deps = ["DiffEqBase", "FastBroadcast", "LinearAlgebra", "MuladdMacro", "OrdinaryDiffEqCore", "Polyester", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "Static", "TruncatedStacktraces"] -git-tree-sha1 = "08f2d3be30874b6e2e937a06b501fb9811f7d8bd" -uuid = "79d7bb75-1356-48c1-b8c0-6832512096c2" -version = "1.2.0" - [[deps.P4est]] deps = ["CEnum", "MPI", "MPIPreferences", "P4est_jll", "Preferences", "Reexport", "UUIDs"] git-tree-sha1 = "6a924bc3d05ebb09de7e8294a30c022461a44720" @@ -2100,6 +1683,12 @@ git-tree-sha1 = "cf181f0b1e6a18dfeb0ee8acc4a9d1672499626c" uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883" version = "0.4.4" +[[deps.PackageExtensionCompat]] +git-tree-sha1 = "fb28e33b8a95c4cee25ce296c817d89cc2e53518" +uuid = "65ce6f38-6b18-4e1d-a461-8949797d7930" +version = "1.0.2" +weakdeps = ["Requires", "TOML"] + [[deps.Packing]] deps = ["GeometryBasics"] git-tree-sha1 = "bc5bf2ea3d5351edf285a06b0016788a121ce92c" @@ -2186,20 +1775,6 @@ git-tree-sha1 = "d04bec789dce5ff61e8f128b6aee0eda09a3855f" uuid = "c74db56a-226d-5e98-8bb0-a6049094aeea" version = "0.4.25" -[[deps.PreallocationTools]] -deps = ["Adapt", "ArrayInterface", "ForwardDiff"] -git-tree-sha1 = "2cc315bb7f6e4d59081bad744cdb911d6374fc7f" -uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" -version = "0.4.29" - - [deps.PreallocationTools.extensions] - PreallocationToolsReverseDiffExt = "ReverseDiff" - PreallocationToolsSparseConnectivityTracerExt = "SparseConnectivityTracer" - - [deps.PreallocationTools.weakdeps] - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - SparseConnectivityTracer = "9f842d2f-2579-4b1d-911e-f412cf18a3f5" - [[deps.PrecompileTools]] deps = ["Preferences"] git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f" @@ -2223,6 +1798,10 @@ deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" version = "1.11.0" +[[deps.Profile]] +uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" +version = "1.11.0" + [[deps.ProgressBars]] deps = ["Printf"] git-tree-sha1 = "b437cdb0385ed38312d91d9c00c20f3798b30256" @@ -2289,9 +1868,9 @@ version = "1.3.4" [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "efc718978d97745c58e69c5115a35c51a080e45e" +git-tree-sha1 = "4dd1a95cc16d5abdccc4eac5faf6bc73904be1a2" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "3.34.1" +version = "3.35.0" [deps.RecursiveArrayTools.extensions] RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" @@ -2390,9 +1969,9 @@ version = "0.6.43" [[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 = "50c540cd0569d43d5cec57b9610e7f1361d3532d" +git-tree-sha1 = "d7bef263e23c7f5392071e4538b1949cee7ae458" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.103.1" +version = "2.99.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -2415,17 +1994,11 @@ version = "2.103.1" RCall = "6f49c342-dc21-5d91-9882-a32aef131414" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" -[[deps.SciMLJacobianOperators]] -deps = ["ADTypes", "ArrayInterface", "ConcreteStructs", "ConstructionBase", "DifferentiationInterface", "FastClosures", "LinearAlgebra", "SciMLBase", "SciMLOperators"] -git-tree-sha1 = "7da1216346ad79499d08d7e2a3dbf297dc80c829" -uuid = "19f34311-ddf3-4b8b-af20-060888a46c0e" -version = "0.1.6" - [[deps.SciMLOperators]] deps = ["Accessors", "ArrayInterface", "DocStringExtensions", "LinearAlgebra", "MacroTools"] -git-tree-sha1 = "3249fe77f322fe539e935ecb388c8290cd38a3fc" +git-tree-sha1 = "d82853c515a8d9d42c1ab493a2687a37f1e26c91" uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" -version = "1.3.1" +version = "0.4.0" weakdeps = ["SparseArrays", "StaticArraysCore"] [deps.SciMLOperators.extensions] @@ -2477,24 +2050,6 @@ git-tree-sha1 = "d263a08ec505853a5ff1c1ebde2070419e3f28e9" uuid = "73760f76-fbc4-59ce-8f25-708e95d2df96" version = "0.4.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 = "7aaa5fe4617271b64fce0466d187f2a72edbd81a" -uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" -version = "2.5.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" - [[deps.SimpleTraits]] deps = ["InteractiveUtils", "MacroTools"] git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" @@ -2527,21 +2082,25 @@ deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" version = "1.11.0" -[[deps.SparseMatrixColorings]] -deps = ["ADTypes", "DocStringExtensions", "LinearAlgebra", "PrecompileTools", "Random", "SparseArrays"] -git-tree-sha1 = "9de43e0b9b976f1019bf7a879a686c4514520078" -uuid = "0a514795-09f3-496d-8182-132a7b665d35" -version = "0.4.21" +[[deps.SparseDiffTools]] +deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "PackageExtensionCompat", "Random", "Reexport", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "UnPack", "VertexSafeGraphs"] +git-tree-sha1 = "ccbf06a08573200853b1bd06203d8ccce8449578" +uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" +version = "2.26.0" - [deps.SparseMatrixColorings.extensions] - SparseMatrixColoringsCUDAExt = "CUDA" - SparseMatrixColoringsCliqueTreesExt = "CliqueTrees" - SparseMatrixColoringsColorsExt = "Colors" + [deps.SparseDiffTools.extensions] + SparseDiffToolsEnzymeExt = "Enzyme" + SparseDiffToolsPolyesterExt = "Polyester" + SparseDiffToolsPolyesterForwardDiffExt = "PolyesterForwardDiff" + SparseDiffToolsSymbolicsExt = "Symbolics" + SparseDiffToolsZygoteExt = "Zygote" - [deps.SparseMatrixColorings.weakdeps] - CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" - CliqueTrees = "60701a23-6482-424a-84db-faee86b9b1f8" - Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" + [deps.SparseDiffTools.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" + PolyesterForwardDiff = "98d1487c-24ca-40b6-b7ab-df2af84e126b" + Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [[deps.SpecialFunctions]] deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] @@ -2717,9 +2276,9 @@ version = "0.5.81" [[deps.SymbolicIndexingInterface]] deps = ["Accessors", "ArrayInterface", "PrettyTables", "RuntimeGeneratedFunctions", "StaticArraysCore"] -git-tree-sha1 = "658f6d01bfe68d6bf47915bf5d868228138c7d71" +git-tree-sha1 = "59ca6eddaaa9849e7de9fd1153b6faf0b1db7b80" uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.3.41" +version = "0.3.42" [[deps.T8code]] deps = ["CEnum", "Libdl", "MPI", "MPIPreferences", "Preferences", "Reexport", "UUIDs", "t8code_jll"] @@ -2830,17 +2389,19 @@ uuid = "808ab39a-a642-4abf-81ff-4cb34ebbffa3" version = "0.1.2" [[deps.Trixi]] -deps = ["Accessors", "CodeTracking", "ConstructionBase", "DataStructures", "DelimitedFiles", "DiffEqBase", "DiffEqCallbacks", "Downloads", "EllipsisNotation", "FillArrays", "ForwardDiff", "HDF5", "LinearAlgebra", "LinearMaps", "LoopVectorization", "MPI", "MuladdMacro", "Octavian", "OffsetArrays", "P4est", "Polyester", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "SimpleUnPack", "SparseArrays", "StableRNGs", "StartUpDG", "Static", "StaticArrayInterface", "StaticArrays", "StrideArrays", "StructArrays", "SummationByPartsOperators", "T8code", "TimerOutputs", "Triangulate", "TriplotBase", "TriplotRecipes", "TrixiBase", "UUIDs"] -git-tree-sha1 = "9c925440d5076380c03e8d5f5ce82762d3a98ca4" +deps = ["Accessors", "Adapt", "CodeTracking", "ConstructionBase", "DataStructures", "DelimitedFiles", "DiffEqBase", "DiffEqCallbacks", "Downloads", "EllipsisNotation", "FillArrays", "ForwardDiff", "HDF5", "KernelAbstractions", "LinearAlgebra", "LinearMaps", "LoopVectorization", "MPI", "MuladdMacro", "Octavian", "OffsetArrays", "P4est", "Polyester", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "SimpleUnPack", "SparseArrays", "StableRNGs", "StartUpDG", "Static", "StaticArrayInterface", "StaticArrays", "StrideArrays", "StructArrays", "SummationByPartsOperators", "T8code", "TimerOutputs", "Triangulate", "TriplotBase", "TriplotRecipes", "TrixiBase", "UUIDs"] +git-tree-sha1 = "2808d7f7caf98c9a0fdc507cc0317ba626ea7436" uuid = "a7f1ee26-1774-49b1-8366-f1abc58fbfcb" -version = "0.12.6" +version = "0.13.1" [deps.Trixi.extensions] + TrixiCUDAExt = "CUDA" TrixiConvexECOSExt = ["Convex", "ECOS"] TrixiMakieExt = "Makie" TrixiNLsolveExt = "NLsolve" [deps.Trixi.weakdeps] + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" Convex = "f65535da-76fb-5f13-bab9-19810c17039a" ECOS = "e2685f51-7e38-5353-a97d-a921fd2c8199" Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" @@ -2937,6 +2498,12 @@ git-tree-sha1 = "f59703fbab297efe6ad09ef1dc656f8f0a21ad28" uuid = "3b853605-1c98-4422-8364-4bd93ee0529e" version = "0.5.10" +[[deps.VertexSafeGraphs]] +deps = ["Graphs"] +git-tree-sha1 = "8351f8d73d7e880bfc042a8b6922684ebeafb35c" +uuid = "19fa3120-7c27-5ec5-8db8-b0b0aa330d6f" +version = "0.2.0" + [[deps.WebP]] deps = ["CEnum", "ColorTypes", "FileIO", "FixedPointNumbers", "ImageCore", "libwebp_jll"] git-tree-sha1 = "aa1ca3c47f119fbdae8770c29820e5e6119b83f2" @@ -3034,15 +2601,15 @@ version = "1.1.3+0" [[deps.libaom_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "522c1df09d05a71785765d19c9524661234738e9" +git-tree-sha1 = "4bba74fa59ab0755167ad24f98800fe5d727175b" uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" -version = "3.11.0+0" +version = "3.12.1+0" [[deps.libass_jll]] deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "e17c115d55c5fbb7e52ebedb427a0dca79d4484e" +git-tree-sha1 = "125eedcb0a4a0bba65b657251ce1d27c8714e9d6" uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" -version = "0.15.2+0" +version = "0.17.4+0" [[deps.libblastrampoline_jll]] deps = ["Artifacts", "Libdl"] @@ -3102,13 +2669,13 @@ uuid = "4ee9bed8-4011-53f7-90c2-22363c2f500d" version = "3.0.1+0" [[deps.x264_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "14cc7083fc6dff3cc44f2bc435ee96d06ed79aa7" uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" -version = "2021.5.5+0" +version = "10164.0.1+0" [[deps.x265_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e7b67590c14d487e734dcb925924c5dc43ec85f3" uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" -version = "3.5.0+0" +version = "4.1.0+0" diff --git a/examples/Project.toml b/examples/Project.toml index a010312..fa98094 100644 --- a/examples/Project.toml +++ b/examples/Project.toml @@ -1,27 +1,13 @@ [deps] Ariadne = "0be81120-40bf-4f8b-adf0-26103efb66f1" +BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" -DifferentiationInterface = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" -Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" Implicit = "7f538e44-2768-4ef2-af90-2110c0378286" -KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -Krylov = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" -KrylovPreconditioners = "45d422c2-293f-44ce-8315-2cb988662dec" -LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" -Observables = "510215fc-4207-5dde-b226-833fc4488ee2" -OffsetArrays = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" OrdinaryDiffEqLowStorageRK = "b0944070-b475-4768-8dec-fb6eb410534d" -OrdinaryDiffEqSDIRK = "2d112036-d095-4a1e-ab9a-08536f3ecdbf" -OrdinaryDiffEqSSPRK = "669c94d9-1f4b-4b64-b377-1aa079aa2388" Revise = "295af30f-e4ad-537b-8983-00126c2a3abe" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" -SummationByPartsOperators = "9f78cca6-572e-554e-b819-917d2f1cf240" +SparseDiffTools = "47a9eef4-7e08-11e9-0b38-333d64bd3804" Trixi = "a7f1ee26-1774-49b1-8366-f1abc58fbfcb" [sources] -Ariadne = {path = ".."} Implicit = {path = "../libs/Implicit"} - -[compat] -julia = "1.10" diff --git a/examples/test.jl b/examples/test.jl new file mode 100644 index 0000000..cab4d2f --- /dev/null +++ b/examples/test.jl @@ -0,0 +1,48 @@ +RK = Implicit.RKTableau(Implicit.RKLSSPIMEX332Z()) +Δt = 0.01/8 +u = copy(ode.u0) +du = copy(u) +du_tmp = copy(u) +jstages1 = copy(u) +jstages2 = copy(u) +jstages3 = copy(u) +stages1 = copy(u) +stages2 = copy(u) +stages3 = copy(u) +res = copy(u) +p = semi +t = 0.0 +stage = 1 +F!(du, u, p) = Trixi.rhs_parabolic!(du, u, p, 0.0) ## parabolic +J = Implicit.JacobianOperator(F!, du, u, semi) +invdt = inv(RK.ah[stage,stage] * Δt) +M = Implicit.LMROperator(J, invdt) +@. res = invdt * RK.d[stage] * u +kc = Implicit.KrylovConstructor(res) +workspace = Implicit.krylov_workspace(:gmres, kc) +Implicit.krylov_solve!(workspace, M, res, atol = 1e-6, rtol = 1e-6) + +@. jstages1 = workspace.x +@. res = u+ jstages1/RK.ah[stage,stage] + -1/RK.ah[stage,stage]*RK.d[stage]* u +Trixi.rhs_parabolic!(du, res, semi, t + RK.c[stage] * Δt) +Trixi.rhs!(du_tmp, res, semi, t + RK.c[stage] * Δt) +stages1 = du + du_tmp + +stage = 2 +invdt = inv(RK.ah[stage,stage] * Δt) +M = Implicit.LMROperator(J, invdt) +@. res = invdt * RK.d[stage] * u - invdt*RK.ah[stage,stage] * RK.gamma[stage,1] *( RK.d[1] * u - jstages1) + RK.a[stage,1] * stages1 +Implicit.krylov_solve!(workspace, M, res, atol = 1e-6, rtol = 1e-6) +@. jstages2 = workspace.x +@. res = u + jstages2/RK.ah[stage,stage] + -1/RK.ah[stage,stage]*RK.d[stage]* u + RK.gamma[stage,1] * (RK.d[1] * u - jstages1) +Trixi.rhs_parabolic!(du, res, p, t + RK.c[stage] * Δt) +Trixi.rhs!(du_tmp, res, p, t + RK.c[stage] * Δt) +@. stages2 = du + du_tmp + +stage = 3 +invdt = inv(RK.ah[stage,stage] * Δt) +M = Implicit.LMROperator(J, invdt) +@. res = invdt * RK.d[stage] * u - invdt*RK.ah[stage,stage] * (RK.gamma[stage,1] *( RK.d[1] * u - jstages1) + RK.gamma[stage,2] * (RK.d[2] * u - jstages2)) + RK.a[stage,1] * stages1 + RK.a[stage,2] * stages2 +@show "krylov solve" +@time a = Implicit.krylov_solve!(workspace, M, res, jstages2, atol = 1e-6, rtol = 1e-6) +@show a diff --git a/examples/trixi_lid_driven_linear.jl b/examples/trixi_lid_driven_linear.jl index 5327b5c..b45bf7e 100644 --- a/examples/trixi_lid_driven_linear.jl +++ b/examples/trixi_lid_driven_linear.jl @@ -4,7 +4,6 @@ using Trixi using Implicit using CairoMakie - # Notes: # Must disable both Polyester and LoopVectorization for Enzyme to be able to differentiate Trixi.jl # Using https://github.com/trixi-framework/Trixi.jl/pull/2295 @@ -16,13 +15,13 @@ using CairoMakie # polyester = false # ``` -@assert !Trixi._PREFERENCE_POLYESTER -@assert !Trixi._PREFERENCE_LOOPVECTORIZATION +#@assert !Trixi._PREFERENCE_POLYESTER +#@assert !Trixi._PREFERENCE_LOOPVECTORIZATION trixi_include(joinpath(examples_dir(), "tree_2d_dgsem", "elixir_navierstokes_lid_driven_cavity.jl"), sol = nothing, mu = 0.1); -ode = semidiscretize(semi, (0.0, 10.0)) - + dt = 0.01/8 # solve needs some value here but it will be overwritten by the stepsize_callback +ode = semidiscretize(semi, (0.0, 10.0*dt)) ############################################################################### # run the simulation @@ -30,7 +29,7 @@ sol = solve( ode, Implicit.RKLSSPIMEX332(); #Implicit.KS22(); - dt = 0.001, # solve needs some value here but it will be overwritten by the stepsize_callback + dt = dt, # solve needs some value here but it will be overwritten by the stepsize_callback ode_default_options()..., callback = callbacks, # verbose=1, krylov_algo = :gmres, diff --git a/examples/trixi_lid_test.jl b/examples/trixi_lid_test.jl new file mode 100644 index 0000000..e191a2a --- /dev/null +++ b/examples/trixi_lid_test.jl @@ -0,0 +1,40 @@ +# # Using the an implicit solver based on Ariadne with Trixi.jl + +using Trixi +using Implicit +using CairoMakie + +# Notes: +# Must disable both Polyester and LoopVectorization for Enzyme to be able to differentiate Trixi.jl +# Using https://github.com/trixi-framework/Trixi.jl/pull/2295 +# +# LocalPreferences.jl +# ```toml +# [Trixi] +# loop_vectorization = false +# polyester = false +# ``` + +#@assert !Trixi._PREFERENCE_POLYESTER +#@assert !Trixi._PREFERENCE_LOOPVECTORIZATION + +trixi_include(joinpath(examples_dir(), "tree_2d_dgsem", "elixir_navierstokes_lid_driven_cavity.jl"), sol = nothing, mu = 0.1); +dt = 0.01/16 +ode = semidiscretize(semi, (0.0, 10.0)) +############################################################################### +# run the simulation + + sol = solve( + ode, + Implicit.RKLSSPIMEX332Z(); + #Implicit.KS22(); + dt = dt, # solve needs some value here but it will be overwritten by the stepsize_callback + ode_default_options()..., callback = callbacks, + # verbose=1, + krylov_algo = :gmres, +); + + + +## dt_vec = [0.001, 0.001/2, 0.0001] +## l2_vec = [4.95311953e-04, 2.48996489e-04 ,5.40458032e-05, ] diff --git a/libs/Implicit/Manifest.toml b/libs/Implicit/Manifest.toml index 3130175..c588a2c 100644 --- a/libs/Implicit/Manifest.toml +++ b/libs/Implicit/Manifest.toml @@ -1,8 +1,8 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.11.5" +julia_version = "1.11.6" manifest_format = "2.0" -project_hash = "620c71fb489466ffbb11337c9833c44e98ee2776" +project_hash = "cf356fff9bdb438ed012908c13fcc323942f6871" [[deps.ADTypes]] git-tree-sha1 = "be7ae030256b8ef14a441726c4c37766b90b93a3" @@ -85,10 +85,18 @@ version = "1.1.2" [[deps.Ariadne]] deps = ["Enzyme", "Krylov", "LinearAlgebra", "SparseArrays"] -path = "../.." +git-tree-sha1 = "28125b8e532f4fdfd211704177f139085df950bc" +repo-rev = "ma/coloring" +repo-url = "../.." uuid = "0be81120-40bf-4f8b-adf0-26103efb66f1" version = "0.1.0" +[[deps.ArnoldiMethod]] +deps = ["LinearAlgebra", "Random", "StaticArrays"] +git-tree-sha1 = "d57bd3762d308bded22c3b82d033bff85f6195c6" +uuid = "ec485272-7323-5ecc-a04f-4719b315124d" +version = "0.4.0" + [[deps.ArrayInterface]] deps = ["Adapt", "LinearAlgebra"] git-tree-sha1 = "9606d7832795cbef89e06a550475be300364a8aa" @@ -125,6 +133,24 @@ version = "7.19.0" uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" version = "1.11.0" +[[deps.Atomix]] +deps = ["UnsafeAtomics"] +git-tree-sha1 = "b5bb4dc6248fde467be2a863eb8452993e74d402" +uuid = "a9b6321e-bd34-4604-b9c9-b65b8de01458" +version = "1.1.1" + + [deps.Atomix.extensions] + AtomixCUDAExt = "CUDA" + AtomixMetalExt = "Metal" + AtomixOpenCLExt = "OpenCL" + AtomixoneAPIExt = "oneAPI" + + [deps.Atomix.weakdeps] + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + OpenCL = "08131aa3-fb12-5dee-8b74-c09406e224a2" + oneAPI = "8f75cd03-7ff8-4ecb-9b8f-daf728133b1b" + [[deps.AutoHashEquals]] git-tree-sha1 = "4ec6b48702dacc5994a835c1189831755e4e76ef" uuid = "15f4f7f2-30c1-5605-9d31-71845cf9641f" @@ -281,9 +307,9 @@ 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 = "e9b34e0eb3443492f396c97e7fed08630752a4f2" +git-tree-sha1 = "2d87d7bd165c1ca0d11923a9fabe90a9d71e88a6" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.177.2" +version = "6.176.0" [deps.DiffEqBase.extensions] DiffEqBaseCUDAExt = "CUDA" @@ -415,9 +441,9 @@ version = "1.0.5" [[deps.Enzyme]] deps = ["CEnum", "EnzymeCore", "Enzyme_jll", "GPUCompiler", "InteractiveUtils", "LLVM", "Libdl", "LinearAlgebra", "ObjectFile", "PrecompileTools", "Preferences", "Printf", "Random", "SparseArrays"] -git-tree-sha1 = "32a24059c12417620b747fcae9e0864d45ef92b0" +git-tree-sha1 = "80867f06e51f1a58913bc0c1413d64207f8bf839" uuid = "7da242da-08ed-463a-9acd-ee780be4f1d9" -version = "0.13.61" +version = "0.13.62" [deps.Enzyme.extensions] EnzymeBFloat16sExt = "BFloat16s" @@ -532,6 +558,24 @@ version = "1.13.0" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +[[deps.FiniteDiff]] +deps = ["ArrayInterface", "LinearAlgebra", "Setfield"] +git-tree-sha1 = "f089ab1f834470c525562030c8cfde4025d5e915" +uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" +version = "2.27.0" + + [deps.FiniteDiff.extensions] + FiniteDiffBandedMatricesExt = "BandedMatrices" + FiniteDiffBlockBandedMatricesExt = "BlockBandedMatrices" + FiniteDiffSparseArraysExt = "SparseArrays" + FiniteDiffStaticArraysExt = "StaticArrays" + + [deps.FiniteDiff.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + [[deps.ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] git-tree-sha1 = "910febccb28d493032495b7009dce7d7f7aee554" @@ -582,6 +626,12 @@ git-tree-sha1 = "eb6f1f48aa994f3018cbd029a17863c6535a266d" uuid = "d54b0c1a-921d-58e0-8e36-89d8069c0969" version = "0.5.8" +[[deps.Graphs]] +deps = ["ArnoldiMethod", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"] +git-tree-sha1 = "c5abfa0ae0aaee162a3fbb053c13ecda39be545b" +uuid = "86223c79-3864-5bf0-83f7-82e725a168b6" +version = "1.13.0" + [[deps.HDF5]] deps = ["Compat", "HDF5_jll", "Libdl", "MPIPreferences", "Mmap", "Preferences", "Printf", "Random", "Requires", "UUIDs"] git-tree-sha1 = "e856eef26cf5bf2b0f95f8f4fc37553c72c8641c" @@ -615,11 +665,16 @@ git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" version = "0.1.1" +[[deps.Inflate]] +git-tree-sha1 = "d1b1b796e47d94588b3757fe84fbf65a5ec4a80d" +uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" +version = "0.1.5" + [[deps.IntelOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] -git-tree-sha1 = "0f14a5456bdc6b9731a5682f439a672750a09e48" +git-tree-sha1 = "ec1debd61c300961f98064cfb21287613ad7f303" uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" -version = "2025.0.4+0" +version = "2025.2.0+0" [[deps.InteractiveUtils]] deps = ["Markdown"] @@ -651,9 +706,9 @@ version = "1.0.0" [[deps.JLLWrappers]] deps = ["Artifacts", "Preferences"] -git-tree-sha1 = "a007feb38b422fbdab534406aeca1b86823cb4d6" +git-tree-sha1 = "0533e564aae234aff59ab625543145446d8b6ec2" uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" -version = "1.7.0" +version = "1.7.1" [[deps.Jieko]] deps = ["ExproniconLite"] @@ -661,6 +716,18 @@ git-tree-sha1 = "2f05ed29618da60c06a87e9c033982d4f71d0b6c" uuid = "ae98c720-c025-4a4a-838c-29b094483192" version = "0.2.1" +[[deps.KernelAbstractions]] +deps = ["Adapt", "Atomix", "InteractiveUtils", "MacroTools", "PrecompileTools", "Requires", "StaticArrays", "UUIDs"] +git-tree-sha1 = "83c617e9e9b02306a7acab79e05ec10253db7c87" +uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" +version = "0.9.38" +weakdeps = ["EnzymeCore", "LinearAlgebra", "SparseArrays"] + + [deps.KernelAbstractions.extensions] + EnzymeExt = "EnzymeCore" + LinearAlgebraExt = "LinearAlgebra" + SparseArraysExt = "SparseArrays" + [[deps.Kronecker]] deps = ["LinearAlgebra", "NamedDims", "SparseArrays", "StatsBase"] git-tree-sha1 = "9253429e28cceae6e823bec9ffde12460d79bb38" @@ -812,9 +879,9 @@ version = "0.12.172" [[deps.MKL_jll]] deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "oneTBB_jll"] -git-tree-sha1 = "5de60bc6cb3899cd318d80d627560fae2e2d99ae" +git-tree-sha1 = "282cadc186e7b2ae0eeadbd7a4dffed4196ae2aa" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2025.0.1+1" +version = "2025.2.0+0" [[deps.MPI]] deps = ["Distributed", "DocStringExtensions", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "PkgVersion", "PrecompileTools", "Requires", "Serialization", "Sockets"] @@ -1008,6 +1075,12 @@ git-tree-sha1 = "70c2d9a33b8810198314a5722ee3e9520110b28d" uuid = "6b5a15aa-cf52-5330-8376-5e5d90283449" version = "2.8.1+2" +[[deps.PackageExtensionCompat]] +git-tree-sha1 = "fb28e33b8a95c4cee25ce296c817d89cc2e53518" +uuid = "65ce6f38-6b18-4e1d-a461-8949797d7930" +version = "1.0.2" +weakdeps = ["Requires", "TOML"] + [[deps.Parameters]] deps = ["OrderedCollections", "UnPack"] git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe" @@ -1102,9 +1175,9 @@ version = "1.3.4" [[deps.RecursiveArrayTools]] deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "efc718978d97745c58e69c5115a35c51a080e45e" +git-tree-sha1 = "4dd1a95cc16d5abdccc4eac5faf6bc73904be1a2" uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "3.34.1" +version = "3.35.0" [deps.RecursiveArrayTools.extensions] RecursiveArrayToolsFastBroadcastExt = "FastBroadcast" @@ -1164,9 +1237,9 @@ version = "0.6.43" [[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 = "50c540cd0569d43d5cec57b9610e7f1361d3532d" +git-tree-sha1 = "d7bef263e23c7f5392071e4538b1949cee7ae458" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.103.1" +version = "2.99.0" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -1191,9 +1264,9 @@ version = "2.103.1" [[deps.SciMLOperators]] deps = ["Accessors", "ArrayInterface", "DocStringExtensions", "LinearAlgebra", "MacroTools"] -git-tree-sha1 = "3249fe77f322fe539e935ecb388c8290cd38a3fc" +git-tree-sha1 = "d82853c515a8d9d42c1ab493a2687a37f1e26c91" uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" -version = "1.3.1" +version = "0.4.0" weakdeps = ["SparseArrays", "StaticArraysCore"] [deps.SciMLOperators.extensions] @@ -1222,6 +1295,17 @@ git-tree-sha1 = "c5391c6ace3bc430ca630251d02ea9687169ca68" uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" version = "1.1.2" +[[deps.SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" +version = "1.11.0" + +[[deps.SimpleTraits]] +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" +uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" +version = "0.9.4" + [[deps.SimpleUnPack]] git-tree-sha1 = "58e6353e72cde29b90a69527e56df1b5c3d8c437" uuid = "ce78b400-467f-4804-87d8-8f486da07d0a" @@ -1242,6 +1326,26 @@ deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" version = "1.11.0" +[[deps.SparseDiffTools]] +deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "PackageExtensionCompat", "Random", "Reexport", "SciMLOperators", "Setfield", "SparseArrays", "StaticArrayInterface", "StaticArrays", "UnPack", "VertexSafeGraphs"] +git-tree-sha1 = "ccbf06a08573200853b1bd06203d8ccce8449578" +uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" +version = "2.26.0" + + [deps.SparseDiffTools.extensions] + SparseDiffToolsEnzymeExt = "Enzyme" + SparseDiffToolsPolyesterExt = "Polyester" + SparseDiffToolsPolyesterForwardDiffExt = "PolyesterForwardDiff" + SparseDiffToolsSymbolicsExt = "Symbolics" + SparseDiffToolsZygoteExt = "Zygote" + + [deps.SparseDiffTools.weakdeps] + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" + PolyesterForwardDiff = "98d1487c-24ca-40b6-b7ab-df2af84e126b" + Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + [[deps.SpecialFunctions]] deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] git-tree-sha1 = "41852b8679f78c8d8961eeadc8f62cef861a52e3" @@ -1355,6 +1459,7 @@ deps = ["ConstructionBase", "DataAPI", "Tables"] git-tree-sha1 = "8ad2e38cbb812e29348719cc63580ec1dfeb9de4" uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" version = "0.7.1" +weakdeps = ["Adapt", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "SparseArrays", "StaticArrays"] [deps.StructArrays.extensions] StructArraysAdaptExt = "Adapt" @@ -1363,14 +1468,6 @@ version = "0.7.1" StructArraysSparseArraysExt = "SparseArrays" StructArraysStaticArraysExt = "StaticArrays" - [deps.StructArrays.weakdeps] - Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" - GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" - KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" - LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" - SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" - [[deps.StructIO]] git-tree-sha1 = "c581be48ae1cbf83e899b14c07a807e1787512cc" uuid = "53d494c1-5632-5724-8f4c-31dff12d585f" @@ -1403,9 +1500,9 @@ version = "0.5.81" [[deps.SymbolicIndexingInterface]] deps = ["Accessors", "ArrayInterface", "PrettyTables", "RuntimeGeneratedFunctions", "StaticArraysCore"] -git-tree-sha1 = "658f6d01bfe68d6bf47915bf5d868228138c7d71" +git-tree-sha1 = "59ca6eddaaa9849e7de9fd1153b6faf0b1db7b80" uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.3.41" +version = "0.3.42" [[deps.T8code]] deps = ["CEnum", "Libdl", "MPI", "MPIPreferences", "Preferences", "Reexport", "UUIDs", "t8code_jll"] @@ -1499,17 +1596,19 @@ uuid = "808ab39a-a642-4abf-81ff-4cb34ebbffa3" version = "0.1.2" [[deps.Trixi]] -deps = ["Accessors", "CodeTracking", "ConstructionBase", "DataStructures", "DelimitedFiles", "DiffEqBase", "DiffEqCallbacks", "Downloads", "EllipsisNotation", "FillArrays", "ForwardDiff", "HDF5", "LinearAlgebra", "LinearMaps", "LoopVectorization", "MPI", "MuladdMacro", "Octavian", "OffsetArrays", "P4est", "Polyester", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "SimpleUnPack", "SparseArrays", "StableRNGs", "StartUpDG", "Static", "StaticArrayInterface", "StaticArrays", "StrideArrays", "StructArrays", "SummationByPartsOperators", "T8code", "TimerOutputs", "Triangulate", "TriplotBase", "TriplotRecipes", "TrixiBase", "UUIDs"] -git-tree-sha1 = "9c925440d5076380c03e8d5f5ce82762d3a98ca4" +deps = ["Accessors", "Adapt", "CodeTracking", "ConstructionBase", "DataStructures", "DelimitedFiles", "DiffEqBase", "DiffEqCallbacks", "Downloads", "EllipsisNotation", "FillArrays", "ForwardDiff", "HDF5", "KernelAbstractions", "LinearAlgebra", "LinearMaps", "LoopVectorization", "MPI", "MuladdMacro", "Octavian", "OffsetArrays", "P4est", "Polyester", "PrecompileTools", "Preferences", "Printf", "RecipesBase", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "SimpleUnPack", "SparseArrays", "StableRNGs", "StartUpDG", "Static", "StaticArrayInterface", "StaticArrays", "StrideArrays", "StructArrays", "SummationByPartsOperators", "T8code", "TimerOutputs", "Triangulate", "TriplotBase", "TriplotRecipes", "TrixiBase", "UUIDs"] +git-tree-sha1 = "2808d7f7caf98c9a0fdc507cc0317ba626ea7436" uuid = "a7f1ee26-1774-49b1-8366-f1abc58fbfcb" -version = "0.12.6" +version = "0.13.1" [deps.Trixi.extensions] + TrixiCUDAExt = "CUDA" TrixiConvexECOSExt = ["Convex", "ECOS"] TrixiMakieExt = "Makie" TrixiNLsolveExt = "NLsolve" [deps.Trixi.weakdeps] + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" Convex = "f65535da-76fb-5f13-bab9-19810c17039a" ECOS = "e2685f51-7e38-5353-a97d-a921fd2c8199" Makie = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" @@ -1551,6 +1650,15 @@ git-tree-sha1 = "6cc9d682755680e0f0be87c56392b7651efc2c7b" uuid = "9602ed7d-8fef-5bc8-8597-8f21381861e8" version = "0.1.5" +[[deps.UnsafeAtomics]] +git-tree-sha1 = "b13c4edda90890e5b04ba24e20a310fbe6f249ff" +uuid = "013be700-e6cd-48c3-b4a1-df204f14c38f" +version = "0.3.0" +weakdeps = ["LLVM"] + + [deps.UnsafeAtomics.extensions] + UnsafeAtomicsLLVM = ["LLVM"] + [[deps.VTKBase]] git-tree-sha1 = "c2d0db3ef09f1942d08ea455a9e252594be5f3b6" uuid = "4004b06d-e244-455f-a6ce-a5f9919cc534" @@ -1578,6 +1686,12 @@ git-tree-sha1 = "f59703fbab297efe6ad09ef1dc656f8f0a21ad28" uuid = "3b853605-1c98-4422-8364-4bd93ee0529e" version = "0.5.10" +[[deps.VertexSafeGraphs]] +deps = ["Graphs"] +git-tree-sha1 = "8351f8d73d7e880bfc042a8b6922684ebeafb35c" +uuid = "19fa3120-7c27-5ec5-8db8-b0b0aa330d6f" +version = "0.2.0" + [[deps.WriteVTK]] deps = ["Base64", "CodecZlib", "FillArrays", "LightXML", "TranscodingStreams", "VTKBase"] git-tree-sha1 = "a329e0b6310244173690d6a4dfc6d1141f9b9370" diff --git a/libs/Implicit/Project.toml b/libs/Implicit/Project.toml index 239a4e4..60357d6 100644 --- a/libs/Implicit/Project.toml +++ b/libs/Implicit/Project.toml @@ -1,25 +1,9 @@ -name = "Implicit" -uuid = "7f538e44-2768-4ef2-af90-2110c0378286" -authors = ["Valentin Churavy "] -version = "0.1.0" - [deps] Ariadne = "0be81120-40bf-4f8b-adf0-26103efb66f1" DiffEqBase = "2b5f629d-d688-5b77-993f-72d75c75574e" Krylov = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SparseDiffTools = "47a9eef4-7e08-11e9-0b38-333d64bd3804" Trixi = "a7f1ee26-1774-49b1-8366-f1abc58fbfcb" UnPack = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" - -[sources] -Ariadne = {path = "../.."} - -[compat] -Ariadne = "0.1.0" -DiffEqBase = "6.174.0" -Krylov = "0.10.1" -LinearAlgebra = "1.11.0" -SciMLBase = "2.91.0" -Trixi = "0.12.5" -UnPack = "1.0.2" diff --git a/libs/Implicit/src/Implicit.jl b/libs/Implicit/src/Implicit.jl index d2f000f..cf0c479 100644 --- a/libs/Implicit/src/Implicit.jl +++ b/libs/Implicit/src/Implicit.jl @@ -6,7 +6,7 @@ using LinearAlgebra import Ariadne: JacobianOperator using Krylov -using Trixi: @trixi_timeit +using Trixi: @trixi_timeit, timer struct MOperator{JOp} J::JOp dt::Float64 @@ -14,7 +14,7 @@ end struct LMOperator{JOp} J::JOp -dt::Float64 + dt::Float64 end Base.size(M::LMOperator) = size(M.J) diff --git a/libs/Implicit/src/linear_imex.jl b/libs/Implicit/src/linear_imex.jl index e2aa144..d32f171 100644 --- a/libs/Implicit/src/linear_imex.jl +++ b/libs/Implicit/src/linear_imex.jl @@ -2,6 +2,7 @@ abstract type SimpleLinearImplicitExplicitAlgorithm{N} end abstract type RKLIMEX{N} <: SimpleLinearImplicitExplicitAlgorithm{N} end +abstract type RKLIMEXZ{N} <: SimpleLinearImplicitExplicitAlgorithm{N} end struct IMEXRKButcher{T1<:AbstractArray,T2<:AbstractArray} <: RKTableau a::T1 @@ -11,28 +12,55 @@ struct IMEXRKButcher{T1<:AbstractArray,T2<:AbstractArray} <: RKTableau bh::T2 ch::T2 end +struct IMEXRKZButcher{T1<:AbstractArray,T2<:AbstractArray} <: RKTableau + a::T1 + b::T2 + c::T2 + ah::T1 + bh::T2 + ch::T2 + d::T2 + gamma::T1 +end struct RKLinearImplicitExplicitEuler <: RKLIMEX{1} end struct RKLSSPIMEX332 <: RKLIMEX{3} end +struct RKLSSPIMEX332Z <: RKLIMEXZ{3} end + function mul!(out::AbstractVector, M::LMOperator, v::AbstractVector) # out = (I/dt - J(f,x,p)) * v - mul!(out, M.J, v) - @. out = v - out * M.dt + mul!(out, M.J, v) + @. out = v - out * M.dt return nothing end +struct LMROperator{JOp} + J::JOp +invdt::Float64 +end + +Base.size(M::LMROperator) = size(M.J) +Base.eltype(M::LMROperator) = eltype(M.J) +Base.length(M::LMROperator) = length(M.J) +function mul!(out::AbstractVector, M::LMROperator, v::AbstractVector) + # out = (I/dt - J(f,x,p)) * v + mul!(out, M.J, v) + @. out = v * M.invdt - out + return nothing +end + function (::RKLinearImplicitExplicitEuler)(res, uₙ, Δt, f1!, f2!, du, du_tmp, u, p, t, stages, ustages, jstages, stage, RK, M, lin_du_tmp, lin_du_tmp1, workspace) if stage == 1 # Stage 1: + ## f2 is the conservative part ## f1 is the parabolic part mul!(lin_du_tmp, M.J, uₙ) # mul!(lin_du_tmp1, J, u) f2!(du, uₙ, p, t + RK.c[stage] * Δt) - f1!(du_tmp, uₙ, p, t + RK.c[stage] * Δt) - + f1!(du_tmp, uₙ, p, t + RK.c[stage] * Δt) res .= uₙ .+ RK.a[stage, stage] * Δt .* (du .+ du_tmp .- lin_du_tmp) krylov_solve!(workspace, M, res, atol = 1e-6, rtol = 1e-6) @. u = workspace.x @@ -43,57 +71,87 @@ function (::RKLinearImplicitExplicitEuler)(res, uₙ, Δt, f1!, f2!, du, du_tmp, end end +function (::RKLIMEXZ{3})(res, uₙ, Δt, f1!, f2!, du, du_tmp, u, p, t, stages, ustages, jstages, stage, RK, M, lin_du_tmp, lin_du_tmp1, workspace) + @trixi_timeit timer() "F! function inside" F!(du, u, p) = f1!(du, u, p, t) ## parabolic + invdt = inv(RK.ah[stage,stage] * Δt) + @trixi_timeit timer() "Jacobian inside" J = JacobianOperator(F!, du, uₙ, p, assume_p_const = true) + @trixi_timeit timer() "LM Operator inside" M = LMROperator(J, invdt) + if stage == 1 + @. res = invdt * RK.d[stage] * uₙ + @trixi_timeit timer() "krylov solve stage 1" krylov_solve!(workspace, M, res, atol = 1e-6, rtol = 1e-6) + @. jstages[stage] = workspace.x + @. res = uₙ+ jstages[stage]/RK.ah[stage,stage] + -1/RK.ah[stage,stage]*RK.d[stage]* uₙ + f2!(du, res, p, t + RK.c[stage] * Δt) + f1!(du_tmp, res, p, t + RK.c[stage] * Δt) + @. stages[stage] = du + du_tmp + elseif stage == 2 + @. res = invdt * RK.d[stage] * uₙ - invdt*RK.ah[stage,stage] * RK.gamma[stage,1] *( RK.d[1] * uₙ - jstages[1]) + RK.a[stage,1] * stages[1] + @trixi_timeit timer() "krylov solve stage 2" krylov_solve!(workspace, M, res, jstages[stage-1], atol = 1e-6, rtol = 1e-6) + @. jstages[stage] = workspace.x + @. res = uₙ+ jstages[stage]/RK.ah[stage,stage] + -1/RK.ah[stage,stage]*RK.d[stage]* uₙ + RK.gamma[stage,1] * (RK.d[1] * uₙ - jstages[1]) + f2!(du, res, p, t + RK.c[stage] * Δt) + f1!(du_tmp, res, p, t + RK.c[stage] * Δt) + @. stages[stage] = du + du_tmp + + elseif stage == 3 + @. res = invdt * RK.d[stage] * uₙ - invdt*RK.ah[stage,stage] * (RK.gamma[stage,1] *( RK.d[1] * uₙ - jstages[1]) + RK.gamma[stage,2] * (RK.d[2] * uₙ - jstages[2])) + RK.a[stage,1] * stages[1] + RK.a[stage,2] * stages[2] + @trixi_timeit timer() "krylov solve stage 3" krylov_solve!(workspace, M, res, jstages[stage-1], atol = 1e-6, rtol = 1e-6) + @. jstages[stage] = workspace.x + @. res = uₙ+ jstages[stage]/RK.ah[stage,stage] + -1/RK.ah[stage,stage]*RK.d[stage]* uₙ + RK.gamma[stage,1] *( RK.d[1] * uₙ - jstages[1]) + RK.gamma[stage,2] * (RK.d[2] * uₙ - jstages[2] ) + @. res = -res * Δt + jstages[stage]/RK.ah[stage,stage] + uₙ + f2!(du, res, p, t + RK.c[stage] * Δt) + f1!(du_tmp, res, p, t + RK.c[stage] * Δt) + @. stages[stage] = du + du_tmp + + @. u = uₙ + RK.b[1] * Δt * stages[1] + RK.b[2] * Δt * stages[2] + RK.b[3] * Δt * stages[3] + end +end function (::RKLIMEX{3})(res, uₙ, Δt, f1!, f2!, du, du_tmp, u, p, t, stages, ustages, jstages, stage, RK, M, lin_du_tmp, lin_du_tmp1, workspace) - F!(du, u, p) = f1!(du, u, p, t) ## parabolic + F!(du, u, p) = f1!(du, u, p, t) ## parabolic if stage == 1 # Stage 1: ## f2 is the conservative part ## f1 is the parabolic part J = JacobianOperator(F!, du, uₙ, p) - M = LMOperator(J, RK.ah[stage,stage] * Δt) + M = LMOperator(J, RK.ah[stage,stage] * Δt) krylov_solve!(workspace, M, uₙ, atol = 1e-6, rtol = 1e-6) @. u = workspace.x J = JacobianOperator(F!, du, u, p) - mul!(jstages[stage], J, u) - + mul!(jstages[stage], J, u) f2!(du, workspace.x, p, t + RK.c[stage] * Δt) f1!(du_tmp, workspace.x, p, t + RK.c[stage] * Δt) - stages[stage] .= du .+ du_tmp - jstages[stage] - ustages[stage] .= u + @. stages[stage] = du + du_tmp - jstages[stage] + @. ustages[stage] = u # @. u = uₙ + RK.b[1] * Δt * stages[1] elseif stage == 2 - J = JacobianOperator(F!, du, ustages[1], p) M = LMOperator(J, RK.ah[stage,stage] * Δt) mul!(lin_du_tmp, M.J, uₙ) # mul!(lin_du_tmp1, J, u) - res .= uₙ + RK.a[stage,1] * Δt * stages[1] - Δt * RK.ah[stage,1] * jstages[1] - + @. res = uₙ + RK.a[stage,1] * Δt * stages[1] - Δt * RK.ah[stage,1] * jstages[1] krylov_solve!(workspace, M, res, atol = 1e-6, rtol = 1e-6) @. u = workspace.x J = JacobianOperator(F!, du, u, p) mul!(jstages[stage], J, u) f2!(du, workspace.x, p, t + RK.c[stage] * Δt) - f1!(du_tmp, workspace.x, p, t + RK.c[stage] * Δt) - stages[stage] .= du .+ du_tmp - jstages[stage] - ustages[stage] .= u + f1!(du_tmp, workspace.x, p, t + RK.c[stage] * Δt) + @. stages[stage] = du + du_tmp - jstages[stage] + @. ustages[stage] = u elseif stage == 3 - J = JacobianOperator(F!, du, ustages[2], p) M = LMOperator(J, RK.ah[stage,stage] * Δt) mul!(lin_du_tmp, M.J, uₙ) -# mul!(lin_du_tmp1, J, u) - res .= uₙ + RK.a[stage,1] * Δt * stages[1] + RK.a[stage,2] * Δt * stages[2] - Δt * RK.ah[stage,1] * jstages[1] - Δt * RK.ah[stage,2] * jstages[2] - krylov_solve!(workspace, M, res, atol = 1e-6, rtol = 1e-6) + @. res = uₙ + RK.a[stage,1] * Δt * stages[1] + RK.a[stage,2] * Δt * stages[2] - Δt * RK.ah[stage,1] * jstages[1] - Δt * RK.ah[stage,2] * jstages[2] + a = krylov_solve!(workspace, M, res, atol = 1e-6, rtol = 1e-6) @. u = workspace.x J = JacobianOperator(F!, du, u, p) mul!(jstages[stage], J, u) f2!(du, workspace.x, p, t + RK.c[stage] * Δt) f1!(du_tmp, workspace.x, p, t + RK.c[stage] * Δt) - stages[stage] .= du .+ du_tmp - jstages[stage] - ustages[stage] .= u + @. stages[stage] = du + du_tmp - jstages[stage] + @. ustages[stage] = u @. u = uₙ + RK.b[1] * Δt * stages[1] + RK.b[2] * Δt * stages[2] + RK.b[3] * Δt * stages[3] - RK.bh[1] * Δt * jstages[1] - RK.bh[2] * Δt * jstages[2] - RK.bh[3] * Δt * jstages[3] end @@ -120,6 +178,52 @@ function RKTableau(alg::RKLSSPIMEX332) return RKLSSPIMEX332Tableau() end + +function RKTableau(alg::RKLSSPIMEX332Z) +return RKLSSPIMEX332ZTableau() +end + +function RKLSSPIMEX332ZTableau() + + nstage = 3 + a = zeros(Float64, nstage, nstage) + a[2, 1] = 0.5 + a[3, 1] = 0.5 + a[3, 2] = 0.5 + + b = zeros(Float64, nstage) + b[1] = 1/3 + b[2] = 1/3 + b[3] = 1/3 + + c = zeros(Float64, nstage) + c[2] = 0.5 + c[3] = 1.0 + ah = zeros(Float64, nstage, nstage) + ah[1, 1] = 1/4 + ah[2, 2] = 1/4 + ah[3, 1] = 1/3 + ah[3, 2] = 1/3 + ah[3, 3] = 1/3 + + bh = zeros(Float64, nstage) + bh[1] = 1/3 + bh[2] = 1/3 + bh[3] = 1/3 + + ch = zeros(Float64, nstage) + ch[1] = 1/4 + ch[2] = 1/4 + ch[3] = 1.0 + d = zeros(Float64, nstage) + @. d = ch - c + + gamma = zeros(Float64, nstage, nstage) + + gamma = diagm(diag(ah).^(-1)) - inv(ah - a) + + return IMEXRKZButcher(a, b, c, ah, bh, ch,d, gamma) +end function RKLSSPIMEX332Tableau() nstage = 3 @@ -333,12 +437,25 @@ function step!(integrator::SimpleLinearImplicitExplicit) end end +function stage!(integrator, alg::RKLIMEXZ) + @trixi_timeit timer() "F! function" F!(du, u, p) = integrator.f1(du, u, p, integrator.t) ## parabolic + @trixi_timeit timer() "Jacobian outside" J = JacobianOperator(F!, integrator.du, integrator.u, integrator.p) + @trixi_timeit timer() "LM Operator outside" M = LMOperator(J, integrator.dt) + @trixi_timeit timer() "kc Constructor" kc = KrylovConstructor(integrator.res) + @trixi_timeit timer() "workspace" workspace = krylov_workspace(:gmres, kc) + for stage in 1:stages(alg) + # Store the solution for each stage in stages + ## For a split Problem we need to compute rhs_conservative and rhs_parabolic + @trixi_timeit timer() "alg" alg(integrator.res, integrator.u, integrator.dt, integrator.f1, integrator.f2, integrator.du, integrator.du_tmp, integrator.u_tmp, integrator.p, integrator.t, integrator.stages, integrator.ustages, integrator.jstages, stage, integrator.RK, M, integrator.lin_du_tmp, integrator.lin_du_tmp1, workspace) + + end +end function stage!(integrator, alg::RKLIMEX) F!(du, u, p) = integrator.f1(du, u, p, integrator.t) ## parabolic - J = JacobianOperator(F!, integrator.du, integrator.u, integrator.p) - M = LMOperator(J, integrator.dt) - kc = KrylovConstructor(integrator.res) - workspace = krylov_workspace(:gmres, kc) + J = JacobianOperator(F!, integrator.du, integrator.u, integrator.p) + M = LMOperator(J, integrator.dt) + kc = KrylovConstructor(integrator.res) + workspace = krylov_workspace(:gmres, kc) for stage in 1:stages(alg) # Store the solution for each stage in stages ## For a split Problem we need to compute rhs_conservative and rhs_parabolic diff --git a/src/Ariadne.jl b/src/Ariadne.jl index 39217fe..fa70f4b 100644 --- a/src/Ariadne.jl +++ b/src/Ariadne.jl @@ -30,24 +30,38 @@ end abstract type AbstractJacobianOperator end - """ JacobianOperator Efficient implementation of `J(f,x,p) * v` and `v * J(f, x,p)'` """ -struct JacobianOperator{F, A, P} <: AbstractJacobianOperator +struct JacobianOperator{F, F′, A, P, P′} <: AbstractJacobianOperator f::F # F!(res, u, p) - f′::Union{Nothing, F} # cache + f′::F′ # cache res::A u::A p::P - p′::Union{Nothing, P} # cache - function JacobianOperator(f::F, res, u, p) where {F} - f′ = init_cache(f) + p′::P′ # cache +end + +""" + JacobianOperator(f::F, res, u, p; assume_p_const::Bool = false) + +Creates a Jacobian operator for `f!(res, u, p)` where `res` is the residual, +`u` is the state variable, and `p` are the parameters. + +If `assume_p_const` is `true`, the parameters `p` are assumed to be constant +during the Jacobian computation, which can improve performance by not requiring the +shadow for `p`. +""" +function JacobianOperator(f::F, res, u, p; assume_p_const::Bool = false) where {F} + f′ = init_cache(f) + if assume_p_const + p′ = nothing + else p′ = init_cache(p) - return new{F, typeof(u), typeof(p)}(f, f′, res, u, p, p′) end + return JacobianOperator(f, f′, res, u, p, p′) end batch_size(::JacobianOperator) = 1 @@ -57,7 +71,8 @@ Base.eltype(J::JacobianOperator) = eltype(J.u) Base.length(J::JacobianOperator) = prod(size(J)) function mul!(out, J::JacobianOperator, v) - autodiff( + +autodiff( Forward, maybe_duplicated(J.f, J.f′), Const, Duplicated(J.res, reshape(out, size(J.res))), @@ -118,14 +133,17 @@ struct BatchedJacobianOperator{N, F, A, P} <: AbstractJacobianOperator res::A u::A p::P - p′::Union{Nothing, NTuple{N, P}} # cache - function BatchedJacobianOperator{N}(f::F, res, u, p) where {F, N} + p′::P′# cache +end + + function BatchedJacobianOperator{N}(f::F, res, u, p; assume_p_const) where {F, N} f′ = init_cache(f, Val(N)) + if assume_p_const + p′ = nothing + else p′ = init_cache(p, Val(N)) - return new{N, F, typeof(u), typeof(p)}(f, f′, res, u, p, p′) + return BatchedJacobianOperator{N}(f, f′, res, u, p, p′) end -end - batch_size(::BatchedJacobianOperator{N}) where {N} = N Base.size(J::BatchedJacobianOperator) = (length(J.res), length(J.u))