From 38406dc860614bb4581313ba6eb3c51ec2cddc81 Mon Sep 17 00:00:00 2001 From: Charles Kawczynski Date: Wed, 27 Sep 2023 11:09:34 -0700 Subject: [PATCH 1/2] Update manifest files --- docs/Manifest.toml | 72 ++++++++++++++++++--------------- examples/Manifest.toml | 88 ++++++++++++++++++++-------------------- perf/Manifest.toml | 92 +++++++++++++++++++++--------------------- 3 files changed, 131 insertions(+), 121 deletions(-) diff --git a/docs/Manifest.toml b/docs/Manifest.toml index 3012f5954e1..4b2a933356b 100644 --- a/docs/Manifest.toml +++ b/docs/Manifest.toml @@ -250,7 +250,7 @@ version = "1.16.0" deps = ["ArgParse", "ArtifactWrappers", "Artifacts", "AtmosphericProfilesLibrary", "CLIMAParameters", "CUDA", "ClimaComms", "ClimaCore", "ClimaTimeSteppers", "CloudMicrophysics", "Colors", "Dates", "Dierckx", "DiffEqCallbacks", "Distributions", "DocStringExtensions", "FastGaussQuadrature", "ImageFiltering", "Insolation", "Interpolations", "IntervalSets", "JLD2", "LambertW", "LinearAlgebra", "Logging", "NCDatasets", "NVTX", "OrdinaryDiffEq", "Pkg", "Printf", "RRTMGP", "Random", "RootSolvers", "SciMLBase", "StaticArrays", "Statistics", "StatsBase", "SurfaceFluxes", "TerminalLoggers", "Test", "Thermodynamics", "YAML"] path = ".." uuid = "b2c96348-7fb7-4fe0-8da9-78d88439e717" -version = "0.16.0" +version = "0.16.1" [[deps.ClimaComms]] deps = ["CUDA", "MPI"] @@ -266,9 +266,9 @@ version = "0.10.51" [[deps.ClimaTimeSteppers]] deps = ["CUDA", "ClimaComms", "Colors", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "KernelAbstractions", "Krylov", "LinearAlgebra", "LinearOperators", "NVTX", "SciMLBase", "StaticArrays"] -git-tree-sha1 = "70b0118d12a137550f1626bf4c20ebb66a45f2e0" +git-tree-sha1 = "203e4f8208bcd1584dcdd9e2210dd1a33b8f96ab" uuid = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" -version = "0.7.8" +version = "0.7.9" [[deps.CloseOpenIntervals]] deps = ["Static", "StaticArrayInterface"] @@ -323,9 +323,9 @@ version = "0.3.0" [[deps.Compat]] deps = ["UUIDs"] -git-tree-sha1 = "e460f044ca8b99be31d35fe54fc33a5c33dd8ed7" +git-tree-sha1 = "8a62af3e248a8c4bad6b32cbbe663ae02275e32c" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.9.0" +version = "4.10.0" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] @@ -447,9 +447,9 @@ version = "6.130.0" [[deps.DiffEqCallbacks]] deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "Functors", "LinearAlgebra", "Markdown", "NLsolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "42424e81924d4f463c6f8db8ce2978d51ba0aeaf" +git-tree-sha1 = "acc53f895588767cbb296d3d8581ebd203524a2e" uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" -version = "2.30.0" +version = "2.33.0" [deps.DiffEqCallbacks.weakdeps] OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" @@ -483,9 +483,9 @@ uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" [[deps.Distributions]] deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns", "Test"] -git-tree-sha1 = "938fe2981db009f531b6332e31c58e9584a2f9bd" +git-tree-sha1 = "9e11104e7b41a8a5f04e8694467fc1f94a135bd7" uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" -version = "0.25.100" +version = "0.25.101" [deps.Distributions.extensions] DistributionsChainRulesCoreExt = "ChainRulesCore" @@ -534,6 +534,12 @@ git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" version = "1.0.4" +[[deps.EnzymeCore]] +deps = ["Adapt"] +git-tree-sha1 = "3250001c57b9a3e18e1e5a257fb9ec2c012286c6" +uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" +version = "0.5.3" + [[deps.ExponentialUtilities]] deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "PrecompileTools", "Printf", "SparseArrays", "libblastrampoline_jll"] git-tree-sha1 = "602e4585bcbd5a25bc06f514724593d13ff9e862" @@ -806,9 +812,9 @@ version = "1.0.0" [[deps.JLD2]] deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"] -git-tree-sha1 = "773125c999b4ebfe31e679593c8af7f43f401f1c" +git-tree-sha1 = "c11d691a0dc8e90acfa4740d293ade57f68bfdbb" uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -version = "0.4.34" +version = "0.4.35" [[deps.JLLWrappers]] deps = ["Artifacts", "Preferences"] @@ -851,13 +857,11 @@ deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "P git-tree-sha1 = "4c5875e4c228247e1c2b087669846941fb6e0118" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" version = "0.9.8" +weakdeps = ["EnzymeCore"] [deps.KernelAbstractions.extensions] EnzymeExt = "EnzymeCore" - [deps.KernelAbstractions.weakdeps] - EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" - [[deps.Krylov]] deps = ["LinearAlgebra", "Printf", "SparseArrays"] git-tree-sha1 = "17e462054b42dcdda73e9a9ba0c67754170c88ae" @@ -965,14 +969,15 @@ uuid = "5c8ed15e-5a4c-59e4-a42b-c7e8811fb125" version = "2.5.2" [[deps.LinearSolve]] -deps = ["ArrayInterface", "ConcreteStructs", "DocStringExtensions", "EnumX", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "Libdl", "LinearAlgebra", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "SuiteSparse", "UnPack"] -git-tree-sha1 = "dd70543d3c4fc712c14d67e2d35b90817e8bc37d" +deps = ["ArrayInterface", "ConcreteStructs", "DocStringExtensions", "EnumX", "EnzymeCore", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "Libdl", "LinearAlgebra", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "SuiteSparse", "UnPack"] +git-tree-sha1 = "ba01f7a97d3d8bd711b2c00a8a68c887d8a85c9d" uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" -version = "2.6.0" +version = "2.8.1" [deps.LinearSolve.extensions] LinearSolveBlockDiagonalsExt = "BlockDiagonals" LinearSolveCUDAExt = "CUDA" + LinearSolveEnzymeExt = "Enzyme" LinearSolveHYPREExt = "HYPRE" LinearSolveIterativeSolversExt = "IterativeSolvers" LinearSolveKernelAbstractionsExt = "KernelAbstractions" @@ -984,6 +989,7 @@ version = "2.6.0" [deps.LinearSolve.weakdeps] BlockDiagonals = "0a1fb500-61f7-11e9-3c65-f5ef3456f9f0" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771" IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153" KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" @@ -1163,9 +1169,9 @@ version = "1.2.0" [[deps.NonlinearSolve]] deps = ["ArrayInterface", "DiffEqBase", "EnumX", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "PrecompileTools", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SparseArrays", "SparseDiffTools", "StaticArraysCore", "UnPack"] -git-tree-sha1 = "ee53089df81a6bdf3c06c17cf674e90931b10a73" +git-tree-sha1 = "e10debcea868cd6e51249e8eeaf191c25f68a640" uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" -version = "1.10.0" +version = "1.10.1" [[deps.OffsetArrays]] deps = ["Adapt"] @@ -1208,20 +1214,20 @@ version = "1.6.2" [[deps.OrdinaryDiffEq]] deps = ["ADTypes", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "IfElse", "InteractiveUtils", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "LoopVectorization", "MacroTools", "MuladdMacro", "NLsolve", "NonlinearSolve", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLNLSolve", "SciMLOperators", "SimpleNonlinearSolve", "SimpleUnPack", "SparseArrays", "SparseDiffTools", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] -git-tree-sha1 = "ba3ed480f991b846cf9a8118d3370d9752e7166d" +git-tree-sha1 = "ede6c2334cb30bc83a450b282c10d0ae82fc122e" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -version = "6.55.0" +version = "6.56.0" [[deps.PDMats]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "3129380a93388e5062e946974246fe3f2e7c73e2" +git-tree-sha1 = "bf6085e8bd7735e68c210c6e5d81f9a6fe192060" uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" -version = "0.11.18" +version = "0.11.19" [[deps.PackageExtensionCompat]] -git-tree-sha1 = "f9b1e033c2b1205cf30fd119f4e50881316c1923" +git-tree-sha1 = "fb28e33b8a95c4cee25ce296c817d89cc2e53518" uuid = "65ce6f38-6b18-4e1d-a461-8949797d7930" -version = "1.0.1" +version = "1.0.2" weakdeps = ["Requires", "TOML"] [[deps.PaddedViews]] @@ -1313,9 +1319,9 @@ version = "0.1.4" [[deps.QuadGK]] deps = ["DataStructures", "LinearAlgebra"] -git-tree-sha1 = "eeab25344bf9901146c0200a7ca64ea479f8bf5c" +git-tree-sha1 = "9ebcd48c498668c7fa0e97a9cae873fbee7bfee1" uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" -version = "2.9.0" +version = "2.9.1" [[deps.REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] @@ -1447,9 +1453,9 @@ version = "1.98.1" [[deps.SciMLNLSolve]] deps = ["DiffEqBase", "LineSearches", "NLsolve", "Reexport", "SciMLBase"] -git-tree-sha1 = "9dfc8e9e3d58c0c74f1a821c762b5349da13eccf" +git-tree-sha1 = "765b788339abd7d983618c09cfc0192e2b6b15fd" uuid = "e9a6253c-8580-4d32-9898-8661bb511710" -version = "0.1.8" +version = "0.1.9" [[deps.SciMLOperators]] deps = ["ArrayInterface", "DocStringExtensions", "Lazy", "LinearAlgebra", "Setfield", "SparseArrays", "StaticArraysCore", "Tricks"] @@ -1478,9 +1484,9 @@ uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" [[deps.SimpleNonlinearSolve]] deps = ["ArrayInterface", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "PackageExtensionCompat", "PrecompileTools", "Reexport", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "20aa9831d654bab67ed561e78917047143ecb9bf" +git-tree-sha1 = "4d53b83af904049c493daaf2a225bcae994a3c59" uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" -version = "0.1.19" +version = "0.1.20" [deps.SimpleNonlinearSolve.extensions] SimpleNonlinearSolveNNlibExt = "NNlib" @@ -1575,9 +1581,9 @@ weakdeps = ["OffsetArrays", "StaticArrays"] [[deps.StaticArrays]] deps = ["LinearAlgebra", "Random", "StaticArraysCore"] -git-tree-sha1 = "51621cca8651d9e334a659443a74ce50a3b6dfab" +git-tree-sha1 = "d5fb407ec3179063214bc6277712928ba78459e2" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.6.3" +version = "1.6.4" weakdeps = ["Statistics"] [deps.StaticArrays.extensions] diff --git a/examples/Manifest.toml b/examples/Manifest.toml index 88b22ae3851..01a61cfbc03 100644 --- a/examples/Manifest.toml +++ b/examples/Manifest.toml @@ -289,7 +289,7 @@ version = "1.16.0" deps = ["ArgParse", "ArtifactWrappers", "Artifacts", "AtmosphericProfilesLibrary", "CLIMAParameters", "CUDA", "ClimaComms", "ClimaCore", "ClimaTimeSteppers", "CloudMicrophysics", "Colors", "Dates", "Dierckx", "DiffEqCallbacks", "Distributions", "DocStringExtensions", "FastGaussQuadrature", "ImageFiltering", "Insolation", "Interpolations", "IntervalSets", "JLD2", "LambertW", "LinearAlgebra", "Logging", "NCDatasets", "NVTX", "OrdinaryDiffEq", "Pkg", "Printf", "RRTMGP", "Random", "RootSolvers", "SciMLBase", "StaticArrays", "Statistics", "StatsBase", "SurfaceFluxes", "TerminalLoggers", "Test", "Thermodynamics", "YAML"] path = ".." uuid = "b2c96348-7fb7-4fe0-8da9-78d88439e717" -version = "0.16.0" +version = "0.16.1" [[deps.ClimaComms]] deps = ["CUDA", "MPI"] @@ -335,9 +335,9 @@ version = "0.7.1" [[deps.ClimaTimeSteppers]] deps = ["CUDA", "ClimaComms", "Colors", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "KernelAbstractions", "Krylov", "LinearAlgebra", "LinearOperators", "NVTX", "SciMLBase", "StaticArrays"] -git-tree-sha1 = "70b0118d12a137550f1626bf4c20ebb66a45f2e0" +git-tree-sha1 = "203e4f8208bcd1584dcdd9e2210dd1a33b8f96ab" uuid = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" -version = "0.7.8" +version = "0.7.9" [[deps.CloseOpenIntervals]] deps = ["Static", "StaticArrayInterface"] @@ -411,9 +411,9 @@ version = "0.3.0" [[deps.Compat]] deps = ["UUIDs"] -git-tree-sha1 = "e460f044ca8b99be31d35fe54fc33a5c33dd8ed7" +git-tree-sha1 = "8a62af3e248a8c4bad6b32cbbe663ae02275e32c" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.9.0" +version = "4.10.0" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] @@ -552,9 +552,9 @@ version = "6.130.0" [[deps.DiffEqCallbacks]] deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "Functors", "LinearAlgebra", "Markdown", "NLsolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "42424e81924d4f463c6f8db8ce2978d51ba0aeaf" +git-tree-sha1 = "acc53f895588767cbb296d3d8581ebd203524a2e" uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" -version = "2.30.0" +version = "2.33.0" [deps.DiffEqCallbacks.weakdeps] OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" @@ -588,9 +588,9 @@ uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" [[deps.Distributions]] deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns", "Test"] -git-tree-sha1 = "938fe2981db009f531b6332e31c58e9584a2f9bd" +git-tree-sha1 = "9e11104e7b41a8a5f04e8694467fc1f94a135bd7" uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" -version = "0.25.100" +version = "0.25.101" [deps.Distributions.extensions] DistributionsChainRulesCoreExt = "ChainRulesCore" @@ -633,6 +633,12 @@ git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" version = "1.0.4" +[[deps.EnzymeCore]] +deps = ["Adapt"] +git-tree-sha1 = "1091d4bbc2f2f7840a65fc0496c782b955dd82fb" +uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" +version = "0.6.0" + [[deps.EpollShim_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "8e9441ee83492030ace98f9789a654a6d0b1f643" @@ -1126,9 +1132,9 @@ version = "0.7.15" [[deps.JLD2]] deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"] -git-tree-sha1 = "773125c999b4ebfe31e679593c8af7f43f401f1c" +git-tree-sha1 = "c11d691a0dc8e90acfa4740d293ade57f68bfdbb" uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -version = "0.4.34" +version = "0.4.35" [[deps.JLFzf]] deps = ["Pipe", "REPL", "Random", "fzf_jll"] @@ -1150,9 +1156,9 @@ version = "0.21.4" [[deps.JpegTurbo]] deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"] -git-tree-sha1 = "327713faef2a3e5c80f96bf38d1fa26f7a6ae29e" +git-tree-sha1 = "d65930fa2bc96b07d7691c652d701dcbe7d9cf0b" uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0" -version = "0.1.3" +version = "0.1.4" [[deps.JpegTurbo_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1179,16 +1185,10 @@ uuid = "ef3ab10e-7fda-4108-b977-705223b18434" version = "0.4.1" [[deps.KernelAbstractions]] -deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "4c5875e4c228247e1c2b087669846941fb6e0118" +deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] +git-tree-sha1 = "b48617c5d764908b5fac493cd907cf33cc11eec1" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.8" - - [deps.KernelAbstractions.extensions] - EnzymeExt = "EnzymeCore" - - [deps.KernelAbstractions.weakdeps] - EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" +version = "0.9.6" [[deps.KernelDensity]] deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] @@ -1394,14 +1394,15 @@ uuid = "5c8ed15e-5a4c-59e4-a42b-c7e8811fb125" version = "2.5.2" [[deps.LinearSolve]] -deps = ["ArrayInterface", "ConcreteStructs", "DocStringExtensions", "EnumX", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "Libdl", "LinearAlgebra", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "SuiteSparse", "UnPack"] -git-tree-sha1 = "dd70543d3c4fc712c14d67e2d35b90817e8bc37d" +deps = ["ArrayInterface", "ConcreteStructs", "DocStringExtensions", "EnumX", "EnzymeCore", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "Libdl", "LinearAlgebra", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "SuiteSparse", "UnPack"] +git-tree-sha1 = "ba01f7a97d3d8bd711b2c00a8a68c887d8a85c9d" uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" -version = "2.6.0" +version = "2.8.1" [deps.LinearSolve.extensions] LinearSolveBlockDiagonalsExt = "BlockDiagonals" LinearSolveCUDAExt = "CUDA" + LinearSolveEnzymeExt = "Enzyme" LinearSolveHYPREExt = "HYPRE" LinearSolveIterativeSolversExt = "IterativeSolvers" LinearSolveKernelAbstractionsExt = "KernelAbstractions" @@ -1413,6 +1414,7 @@ version = "2.6.0" [deps.LinearSolve.weakdeps] BlockDiagonals = "0a1fb500-61f7-11e9-3c65-f5ef3456f9f0" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771" IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153" KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" @@ -1660,9 +1662,9 @@ version = "1.2.0" [[deps.NonlinearSolve]] deps = ["ArrayInterface", "DiffEqBase", "EnumX", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "PrecompileTools", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SparseArrays", "SparseDiffTools", "StaticArraysCore", "UnPack"] -git-tree-sha1 = "ee53089df81a6bdf3c06c17cf674e90931b10a73" +git-tree-sha1 = "e10debcea868cd6e51249e8eeaf191c25f68a640" uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" -version = "1.10.0" +version = "1.10.1" [[deps.Observables]] git-tree-sha1 = "6862738f9796b3edc1c09d0890afce4eca9e7e93" @@ -1752,9 +1754,9 @@ version = "1.6.2" [[deps.OrdinaryDiffEq]] deps = ["ADTypes", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "IfElse", "InteractiveUtils", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "LoopVectorization", "MacroTools", "MuladdMacro", "NLsolve", "NonlinearSolve", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLNLSolve", "SciMLOperators", "SimpleNonlinearSolve", "SimpleUnPack", "SparseArrays", "SparseDiffTools", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] -git-tree-sha1 = "ba3ed480f991b846cf9a8118d3370d9752e7166d" +git-tree-sha1 = "ede6c2334cb30bc83a450b282c10d0ae82fc122e" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -version = "6.55.0" +version = "6.56.0" [[deps.PCRE2_jll]] deps = ["Artifacts", "Libdl"] @@ -1763,9 +1765,9 @@ version = "10.42.0+0" [[deps.PDMats]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "3129380a93388e5062e946974246fe3f2e7c73e2" +git-tree-sha1 = "bf6085e8bd7735e68c210c6e5d81f9a6fe192060" uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" -version = "0.11.18" +version = "0.11.19" [[deps.PNGFiles]] deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] @@ -1774,9 +1776,9 @@ uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883" version = "0.4.0" [[deps.PackageExtensionCompat]] -git-tree-sha1 = "f9b1e033c2b1205cf30fd119f4e50881316c1923" +git-tree-sha1 = "fb28e33b8a95c4cee25ce296c817d89cc2e53518" uuid = "65ce6f38-6b18-4e1d-a461-8949797d7930" -version = "1.0.1" +version = "1.0.2" weakdeps = ["Requires", "TOML"] [[deps.Packing]] @@ -1992,9 +1994,9 @@ version = "6.5.2+2" [[deps.QuadGK]] deps = ["DataStructures", "LinearAlgebra"] -git-tree-sha1 = "eeab25344bf9901146c0200a7ca64ea479f8bf5c" +git-tree-sha1 = "9ebcd48c498668c7fa0e97a9cae873fbee7bfee1" uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" -version = "2.9.0" +version = "2.9.1" [[deps.REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] @@ -2160,9 +2162,9 @@ version = "1.98.1" [[deps.SciMLNLSolve]] deps = ["DiffEqBase", "LineSearches", "NLsolve", "Reexport", "SciMLBase"] -git-tree-sha1 = "9dfc8e9e3d58c0c74f1a821c762b5349da13eccf" +git-tree-sha1 = "765b788339abd7d983618c09cfc0192e2b6b15fd" uuid = "e9a6253c-8580-4d32-9898-8661bb511710" -version = "0.1.8" +version = "0.1.9" [[deps.SciMLOperators]] deps = ["ArrayInterface", "DocStringExtensions", "Lazy", "LinearAlgebra", "Setfield", "SparseArrays", "StaticArraysCore", "Tricks"] @@ -2225,9 +2227,9 @@ version = "0.8.4" [[deps.SimpleNonlinearSolve]] deps = ["ArrayInterface", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "PackageExtensionCompat", "PrecompileTools", "Reexport", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "20aa9831d654bab67ed561e78917047143ecb9bf" +git-tree-sha1 = "4d53b83af904049c493daaf2a225bcae994a3c59" uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" -version = "0.1.19" +version = "0.1.20" [deps.SimpleNonlinearSolve.extensions] SimpleNonlinearSolveNNlibExt = "NNlib" @@ -2352,9 +2354,9 @@ weakdeps = ["OffsetArrays", "StaticArrays"] [[deps.StaticArrays]] deps = ["LinearAlgebra", "Random", "StaticArraysCore"] -git-tree-sha1 = "51621cca8651d9e334a659443a74ce50a3b6dfab" +git-tree-sha1 = "d5fb407ec3179063214bc6277712928ba78459e2" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.6.3" +version = "1.6.4" weakdeps = ["Statistics"] [deps.StaticArrays.extensions] @@ -2514,9 +2516,9 @@ version = "0.5.2" [[deps.TiffImages]] deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "UUIDs"] -git-tree-sha1 = "3c4535892eff963d14acee719df445287c2d8f98" +git-tree-sha1 = "b7dc44cb005a7ef743b8fe98970afef003efdce7" uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" -version = "0.6.5" +version = "0.6.6" [[deps.TiledIteration]] deps = ["OffsetArrays", "StaticArrayInterface"] diff --git a/perf/Manifest.toml b/perf/Manifest.toml index 755e7f46257..e5ba5a2716c 100644 --- a/perf/Manifest.toml +++ b/perf/Manifest.toml @@ -300,7 +300,7 @@ version = "1.16.0" deps = ["ArgParse", "ArtifactWrappers", "Artifacts", "AtmosphericProfilesLibrary", "CLIMAParameters", "CUDA", "ClimaComms", "ClimaCore", "ClimaTimeSteppers", "CloudMicrophysics", "Colors", "Dates", "Dierckx", "DiffEqCallbacks", "Distributions", "DocStringExtensions", "FastGaussQuadrature", "ImageFiltering", "Insolation", "Interpolations", "IntervalSets", "JLD2", "LambertW", "LinearAlgebra", "Logging", "NCDatasets", "NVTX", "OrdinaryDiffEq", "Pkg", "Printf", "RRTMGP", "Random", "RootSolvers", "SciMLBase", "StaticArrays", "Statistics", "StatsBase", "SurfaceFluxes", "TerminalLoggers", "Test", "Thermodynamics", "YAML"] path = ".." uuid = "b2c96348-7fb7-4fe0-8da9-78d88439e717" -version = "0.16.0" +version = "0.16.1" [[deps.ClimaComms]] deps = ["CUDA", "MPI"] @@ -346,9 +346,9 @@ version = "0.7.1" [[deps.ClimaTimeSteppers]] deps = ["CUDA", "ClimaComms", "Colors", "DataStructures", "DiffEqBase", "DiffEqCallbacks", "KernelAbstractions", "Krylov", "LinearAlgebra", "LinearOperators", "NVTX", "SciMLBase", "StaticArrays"] -git-tree-sha1 = "70b0118d12a137550f1626bf4c20ebb66a45f2e0" +git-tree-sha1 = "203e4f8208bcd1584dcdd9e2210dd1a33b8f96ab" uuid = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" -version = "0.7.8" +version = "0.7.9" [[deps.CloseOpenIntervals]] deps = ["Static", "StaticArrayInterface"] @@ -422,9 +422,9 @@ version = "0.3.0" [[deps.Compat]] deps = ["UUIDs"] -git-tree-sha1 = "e460f044ca8b99be31d35fe54fc33a5c33dd8ed7" +git-tree-sha1 = "8a62af3e248a8c4bad6b32cbbe663ae02275e32c" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.9.0" +version = "4.10.0" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] @@ -569,9 +569,9 @@ version = "6.130.0" [[deps.DiffEqCallbacks]] deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "Functors", "LinearAlgebra", "Markdown", "NLsolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "42424e81924d4f463c6f8db8ce2978d51ba0aeaf" +git-tree-sha1 = "acc53f895588767cbb296d3d8581ebd203524a2e" uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" -version = "2.30.0" +version = "2.33.0" [deps.DiffEqCallbacks.weakdeps] OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" @@ -579,9 +579,9 @@ version = "2.30.0" [[deps.DiffEqNoiseProcess]] deps = ["DiffEqBase", "Distributions", "GPUArraysCore", "LinearAlgebra", "Markdown", "Optim", "PoissonRandom", "QuadGK", "Random", "Random123", "RandomNumbers", "RecipesBase", "RecursiveArrayTools", "Requires", "ResettableStacks", "SciMLBase", "StaticArraysCore", "Statistics"] -git-tree-sha1 = "6b02e9c9d0d4cacf2b20f36c33710b8b415c5194" +git-tree-sha1 = "57ed4597a309c5b2a10cab5f9813adcb78f92117" uuid = "77a26b50-5914-5dd7-bc55-306e6241c503" -version = "5.18.0" +version = "5.19.0" [deps.DiffEqNoiseProcess.extensions] DiffEqNoiseProcessReverseDiffExt = "ReverseDiff" @@ -617,9 +617,9 @@ uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" [[deps.Distributions]] deps = ["FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns", "Test"] -git-tree-sha1 = "938fe2981db009f531b6332e31c58e9584a2f9bd" +git-tree-sha1 = "9e11104e7b41a8a5f04e8694467fc1f94a135bd7" uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" -version = "0.25.100" +version = "0.25.101" [deps.Distributions.extensions] DistributionsChainRulesCoreExt = "ChainRulesCore" @@ -662,6 +662,12 @@ git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" version = "1.0.4" +[[deps.EnzymeCore]] +deps = ["Adapt"] +git-tree-sha1 = "1091d4bbc2f2f7840a65fc0496c782b955dd82fb" +uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" +version = "0.6.0" + [[deps.EpollShim_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] git-tree-sha1 = "8e9441ee83492030ace98f9789a654a6d0b1f643" @@ -1173,9 +1179,9 @@ version = "0.7.15" [[deps.JLD2]] deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"] -git-tree-sha1 = "773125c999b4ebfe31e679593c8af7f43f401f1c" +git-tree-sha1 = "c11d691a0dc8e90acfa4740d293ade57f68bfdbb" uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -version = "0.4.34" +version = "0.4.35" [[deps.JLFzf]] deps = ["Pipe", "REPL", "Random", "fzf_jll"] @@ -1197,9 +1203,9 @@ version = "0.21.4" [[deps.JpegTurbo]] deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"] -git-tree-sha1 = "327713faef2a3e5c80f96bf38d1fa26f7a6ae29e" +git-tree-sha1 = "d65930fa2bc96b07d7691c652d701dcbe7d9cf0b" uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0" -version = "0.1.3" +version = "0.1.4" [[deps.JpegTurbo_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1231,16 +1237,10 @@ uuid = "ef3ab10e-7fda-4108-b977-705223b18434" version = "0.4.1" [[deps.KernelAbstractions]] -deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "4c5875e4c228247e1c2b087669846941fb6e0118" +deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] +git-tree-sha1 = "b48617c5d764908b5fac493cd907cf33cc11eec1" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.8" - - [deps.KernelAbstractions.extensions] - EnzymeExt = "EnzymeCore" - - [deps.KernelAbstractions.weakdeps] - EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" +version = "0.9.6" [[deps.KernelDensity]] deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] @@ -1446,14 +1446,15 @@ uuid = "5c8ed15e-5a4c-59e4-a42b-c7e8811fb125" version = "2.5.2" [[deps.LinearSolve]] -deps = ["ArrayInterface", "ConcreteStructs", "DocStringExtensions", "EnumX", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "Libdl", "LinearAlgebra", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "SuiteSparse", "UnPack"] -git-tree-sha1 = "dd70543d3c4fc712c14d67e2d35b90817e8bc37d" +deps = ["ArrayInterface", "ConcreteStructs", "DocStringExtensions", "EnumX", "EnzymeCore", "FastLapackInterface", "GPUArraysCore", "InteractiveUtils", "KLU", "Krylov", "Libdl", "LinearAlgebra", "PrecompileTools", "Preferences", "RecursiveFactorization", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Sparspak", "SuiteSparse", "UnPack"] +git-tree-sha1 = "ba01f7a97d3d8bd711b2c00a8a68c887d8a85c9d" uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" -version = "2.6.0" +version = "2.8.1" [deps.LinearSolve.extensions] LinearSolveBlockDiagonalsExt = "BlockDiagonals" LinearSolveCUDAExt = "CUDA" + LinearSolveEnzymeExt = "Enzyme" LinearSolveHYPREExt = "HYPRE" LinearSolveIterativeSolversExt = "IterativeSolvers" LinearSolveKernelAbstractionsExt = "KernelAbstractions" @@ -1465,6 +1466,7 @@ version = "2.6.0" [deps.LinearSolve.weakdeps] BlockDiagonals = "0a1fb500-61f7-11e9-3c65-f5ef3456f9f0" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" HYPRE = "b5ffcf37-a2bd-41ab-a3da-4bd9bc8ad771" IterativeSolvers = "42fd0dbc-a981-5370-80f2-aaf504508153" KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" @@ -1706,9 +1708,9 @@ version = "1.2.0" [[deps.NonlinearSolve]] deps = ["ArrayInterface", "DiffEqBase", "EnumX", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "PrecompileTools", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SparseArrays", "SparseDiffTools", "StaticArraysCore", "UnPack"] -git-tree-sha1 = "ee53089df81a6bdf3c06c17cf674e90931b10a73" +git-tree-sha1 = "e10debcea868cd6e51249e8eeaf191c25f68a640" uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" -version = "1.10.0" +version = "1.10.1" [[deps.Observables]] git-tree-sha1 = "6862738f9796b3edc1c09d0890afce4eca9e7e93" @@ -1798,9 +1800,9 @@ version = "1.6.2" [[deps.OrdinaryDiffEq]] deps = ["ADTypes", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "IfElse", "InteractiveUtils", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "LoopVectorization", "MacroTools", "MuladdMacro", "NLsolve", "NonlinearSolve", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLNLSolve", "SciMLOperators", "SimpleNonlinearSolve", "SimpleUnPack", "SparseArrays", "SparseDiffTools", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] -git-tree-sha1 = "ba3ed480f991b846cf9a8118d3370d9752e7166d" +git-tree-sha1 = "ede6c2334cb30bc83a450b282c10d0ae82fc122e" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -version = "6.55.0" +version = "6.56.0" [[deps.PCRE2_jll]] deps = ["Artifacts", "Libdl"] @@ -1809,9 +1811,9 @@ version = "10.42.0+0" [[deps.PDMats]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "3129380a93388e5062e946974246fe3f2e7c73e2" +git-tree-sha1 = "bf6085e8bd7735e68c210c6e5d81f9a6fe192060" uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" -version = "0.11.18" +version = "0.11.19" [[deps.PNGFiles]] deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] @@ -1826,9 +1828,9 @@ uuid = "e4faabce-9ead-11e9-39d9-4379958e3056" version = "2.3.0" [[deps.PackageExtensionCompat]] -git-tree-sha1 = "f9b1e033c2b1205cf30fd119f4e50881316c1923" +git-tree-sha1 = "fb28e33b8a95c4cee25ce296c817d89cc2e53518" uuid = "65ce6f38-6b18-4e1d-a461-8949797d7930" -version = "1.0.1" +version = "1.0.2" weakdeps = ["Requires", "TOML"] [[deps.Packing]] @@ -2056,9 +2058,9 @@ version = "6.5.2+2" [[deps.QuadGK]] deps = ["DataStructures", "LinearAlgebra"] -git-tree-sha1 = "eeab25344bf9901146c0200a7ca64ea479f8bf5c" +git-tree-sha1 = "9ebcd48c498668c7fa0e97a9cae873fbee7bfee1" uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" -version = "2.9.0" +version = "2.9.1" [[deps.REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] @@ -2230,9 +2232,9 @@ version = "1.98.1" [[deps.SciMLNLSolve]] deps = ["DiffEqBase", "LineSearches", "NLsolve", "Reexport", "SciMLBase"] -git-tree-sha1 = "9dfc8e9e3d58c0c74f1a821c762b5349da13eccf" +git-tree-sha1 = "765b788339abd7d983618c09cfc0192e2b6b15fd" uuid = "e9a6253c-8580-4d32-9898-8661bb511710" -version = "0.1.8" +version = "0.1.9" [[deps.SciMLOperators]] deps = ["ArrayInterface", "DocStringExtensions", "Lazy", "LinearAlgebra", "Setfield", "SparseArrays", "StaticArraysCore", "Tricks"] @@ -2295,9 +2297,9 @@ version = "0.8.4" [[deps.SimpleNonlinearSolve]] deps = ["ArrayInterface", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "PackageExtensionCompat", "PrecompileTools", "Reexport", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "20aa9831d654bab67ed561e78917047143ecb9bf" +git-tree-sha1 = "4d53b83af904049c493daaf2a225bcae994a3c59" uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" -version = "0.1.19" +version = "0.1.20" [deps.SimpleNonlinearSolve.extensions] SimpleNonlinearSolveNNlibExt = "NNlib" @@ -2434,9 +2436,9 @@ weakdeps = ["OffsetArrays", "StaticArrays"] [[deps.StaticArrays]] deps = ["LinearAlgebra", "Random", "StaticArraysCore"] -git-tree-sha1 = "51621cca8651d9e334a659443a74ce50a3b6dfab" +git-tree-sha1 = "d5fb407ec3179063214bc6277712928ba78459e2" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.6.3" +version = "1.6.4" weakdeps = ["Statistics"] [deps.StaticArrays.extensions] @@ -2596,9 +2598,9 @@ version = "0.5.2" [[deps.TiffImages]] deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "UUIDs"] -git-tree-sha1 = "3c4535892eff963d14acee719df445287c2d8f98" +git-tree-sha1 = "b7dc44cb005a7ef743b8fe98970afef003efdce7" uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" -version = "0.6.5" +version = "0.6.6" [[deps.TiledIteration]] deps = ["OffsetArrays", "StaticArrayInterface"] From abbc8c151381213b3b04380b623666138a44d047 Mon Sep 17 00:00:00 2001 From: Charles Kawczynski Date: Wed, 27 Sep 2023 11:32:22 -0700 Subject: [PATCH 2/2] Overload ClimaTimeSteppers --- src/ClimaAtmos.jl | 1 + src/solver/type_getters.jl | 2 +- src/time_stepper/hc_ars343.jl | 179 +++++++++++++++++++++++++++++++ src/time_stepper/imex_ark.jl | 121 +++++++++++++++++++++ src/time_stepper/imex_ssprk.jl | 113 +++++++++++++++++++ src/time_stepper/time_stepper.jl | 17 +++ 6 files changed, 432 insertions(+), 1 deletion(-) create mode 100644 src/time_stepper/hc_ars343.jl create mode 100644 src/time_stepper/imex_ark.jl create mode 100644 src/time_stepper/imex_ssprk.jl create mode 100644 src/time_stepper/time_stepper.jl diff --git a/src/ClimaAtmos.jl b/src/ClimaAtmos.jl index 1f0c7fcac38..752198d1b24 100644 --- a/src/ClimaAtmos.jl +++ b/src/ClimaAtmos.jl @@ -114,6 +114,7 @@ include(joinpath("diagnostics", "Diagnostics.jl")) import .Diagnostics as CAD include(joinpath("solver", "model_getters.jl")) # high-level (using parsed_args) model getters +include(joinpath("time_stepper", "time_stepper.jl")) include(joinpath("solver", "type_getters.jl")) include(joinpath("solver", "yaml_helper.jl")) include(joinpath("solver", "solve.jl")) diff --git a/src/solver/type_getters.jl b/src/solver/type_getters.jl index befa7660e6a..4218ec5f6b6 100644 --- a/src/solver/type_getters.jl +++ b/src/solver/type_getters.jl @@ -714,7 +714,7 @@ function args_integrator(parsed_args, Y, p, tspan, ode_algo, callback) tgrad = (∂Y∂t, Y, p, t) -> (∂Y∂t .= 0), ) if is_cts_algo(ode_algo) - CTS.ClimaODEFunction(; + CA.AtmosODEFunction(; T_lim! = limited_tendency!, T_exp! = remaining_tendency!, T_imp! = implicit_func, diff --git a/src/time_stepper/hc_ars343.jl b/src/time_stepper/hc_ars343.jl new file mode 100644 index 00000000000..56b52808ace --- /dev/null +++ b/src/time_stepper/hc_ars343.jl @@ -0,0 +1,179 @@ +function step_u!( + integrator, + cache::CTS.IMEXARKCache, + f::AtmosODEFunction, + ::CTS.ARS343, +) + (; u, p, t, dt, sol, alg) = integrator + (; f) = sol.prob + (; T_imp!, T_lim!, T_exp!, lim!, dss!) = f + (; post_explicit!, post_implicit!) = f + (; tableau, newtons_method) = alg + (; a_exp, b_exp, a_imp, b_imp, c_exp, c_imp) = tableau + (; U, T_lim, T_exp, T_imp, temp, γ, newtons_method_cache) = cache + + if !isnothing(newtons_method_cache) + jacobian = newtons_method_cache.j + if (!isnothing(jacobian)) && + CTS.needs_update!(newtons_method.update_j, CTS.NewTimeStep(t)) + T_imp!.Wfact(jacobian, u, p, dt * γ, t) + end + end + + s = 4 + + i::Int = 1 + t_exp = t + @. U = u + lim!(U, p, t_exp, u) + dss!(U, p, t_exp) + T_lim!(T_lim[i], U, p, t_exp) + T_exp!(T_exp[i], U, p, t_exp) + + i = 2 + t_exp = t + dt * c_exp[i] + @. U = u + dt * a_exp[i, 1] * T_lim[1] + lim!(U, p, t_exp, u) + @. U += dt * a_exp[i, 1] * T_exp[1] + dss!(U, p, t_exp) + post_explicit!(U, p, t_exp) + + @. temp = U # used in closures + let i = i + t_imp = t + dt * c_imp[i] + implicit_equation_residual! = + (residual, Ui) -> begin + T_imp!(residual, Ui, p, t_imp) + @. residual = temp + dt * a_imp[i, i] * residual - Ui + end + implicit_equation_jacobian! = + (jacobian, Ui) -> begin + T_imp!.Wfact(jacobian, Ui, p, dt * a_imp[i, i], t_imp) + end + call_post_implicit! = Ui -> begin + post_implicit!(Ui, p, t_imp) + end + CTS.solve_newton!( + newtons_method, + newtons_method_cache, + U, + implicit_equation_residual!, + implicit_equation_jacobian!, + call_post_implicit!, + ) + end + + @. T_imp[i] = (U - temp) / (dt * a_imp[i, i]) + + T_lim!(T_lim[i], U, p, t_exp) + T_exp!(T_exp[i], U, p, t_exp) + + i = 3 + t_exp = t + dt * c_exp[i] + @. U = u + dt * a_exp[i, 1] * T_lim[1] + dt * a_exp[i, 2] * T_lim[2] + lim!(U, p, t_exp, u) + @. U += + dt * a_exp[i, 1] * T_exp[1] + + dt * a_exp[i, 2] * T_exp[2] + + dt * a_imp[i, 2] * T_imp[2] + dss!(U, p, t_exp) + post_explicit!(U, p, t_exp) + + @. temp = U # used in closures + let i = i + t_imp = t + dt * c_imp[i] + implicit_equation_residual! = + (residual, Ui) -> begin + T_imp!(residual, Ui, p, t_imp) + @. residual = temp + dt * a_imp[i, i] * residual - Ui + end + implicit_equation_jacobian! = + (jacobian, Ui) -> begin + T_imp!.Wfact(jacobian, Ui, p, dt * a_imp[i, i], t_imp) + end + call_post_implicit! = Ui -> begin + post_implicit!(Ui, p, t_imp) + end + CTS.solve_newton!( + newtons_method, + newtons_method_cache, + U, + implicit_equation_residual!, + implicit_equation_jacobian!, + call_post_implicit!, + ) + end + + @. T_imp[i] = (U - temp) / (dt * a_imp[i, i]) + + T_lim!(T_lim[i], U, p, t_exp) + T_exp!(T_exp[i], U, p, t_exp) + i = 4 + t_exp = t + dt + @. U = + u + + dt * a_exp[i, 1] * T_lim[1] + + dt * a_exp[i, 2] * T_lim[2] + + dt * a_exp[i, 3] * T_lim[3] + lim!(U, p, t_exp, u) + @. U += + dt * a_exp[i, 1] * T_exp[1] + + dt * a_exp[i, 2] * T_exp[2] + + dt * a_exp[i, 3] * T_exp[3] + + dt * a_imp[i, 2] * T_imp[2] + + dt * a_imp[i, 3] * T_imp[3] + dss!(U, p, t_exp) + post_explicit!(U, p, t_exp) + + @. temp = U # used in closures + let i = i + t_imp = t + dt * c_imp[i] + implicit_equation_residual! = + (residual, Ui) -> begin + T_imp!(residual, Ui, p, t_imp) + @. residual = temp + dt * a_imp[i, i] * residual - Ui + end + implicit_equation_jacobian! = + (jacobian, Ui) -> begin + T_imp!.Wfact(jacobian, Ui, p, dt * a_imp[i, i], t_imp) + end + call_post_implicit! = Ui -> begin + post_implicit!(Ui, p, t_imp) + end + CTS.solve_newton!( + newtons_method, + newtons_method_cache, + U, + implicit_equation_residual!, + implicit_equation_jacobian!, + call_post_implicit!, + ) + end + + @. T_imp[i] = (U - temp) / (dt * a_imp[i, i]) + + T_lim!(T_lim[i], U, p, t_exp) + T_exp!(T_exp[i], U, p, t_exp) + + # final + i = -1 + + t_final = t + dt + @. temp = + u + + dt * b_exp[2] * T_lim[2] + + dt * b_exp[3] * T_lim[3] + + dt * b_exp[4] * T_lim[4] + lim!(temp, p, t_final, u) + @. u = + temp + + dt * b_exp[2] * T_exp[2] + + dt * b_exp[3] * T_exp[3] + + dt * b_exp[4] * T_exp[4] + + dt * b_imp[2] * T_imp[2] + + dt * b_imp[3] * T_imp[3] + + dt * b_imp[4] * T_imp[4] + dss!(u, p, t_final) + post_explicit!(u, p, t_final) + return u +end diff --git a/src/time_stepper/imex_ark.jl b/src/time_stepper/imex_ark.jl new file mode 100644 index 00000000000..f9ad5cb6be6 --- /dev/null +++ b/src/time_stepper/imex_ark.jl @@ -0,0 +1,121 @@ +function CTS.step_u!( + integrator, + cache::CTS.IMEXARKCache, + f::AtmosODEFunction, + name, +) + (; u, p, t, dt, alg) = integrator + (; T_lim!, T_exp!, T_imp!, lim!, dss!) = f + (; tableau, newtons_method) = alg + (; a_exp, b_exp, a_imp, b_imp, c_exp, c_imp) = tableau + (; U, T_lim, T_exp, T_imp, temp, γ, newtons_method_cache) = cache + s = length(b_exp) + + if !isnothing(newtons_method) + (; update_j) = newtons_method + jacobian = newtons_method_cache.j + if (!isnothing(jacobian)) && + CTS.needs_update!(update_j, CTS.NewTimeStep(t)) + if γ isa Nothing + sdirk_error(name) + else + T_imp!.Wfact(jacobian, u, p, dt * γ, t) + end + end + end + + for i in 1:s + NVTX.@range "stage" payload = i begin + t_exp = t + dt * c_exp[i] + t_imp = t + dt * c_imp[i] + + @. U = u + + for j in 1:(i - 1) + iszero(a_exp[i, j]) && continue + @. U += dt * a_exp[i, j] * T_lim[j] + end + lim!(U, p, t_exp, u) + + for j in 1:(i - 1) + iszero(a_exp[i, j]) && continue + @. U += dt * a_exp[i, j] * T_exp[j] + end + + for j in 1:(i - 1) + iszero(a_imp[i, j]) && continue + @. U += dt * a_imp[i, j] * T_imp[j] + end + + dss!(U, p, t_exp) + + if !iszero(a_imp[i, i]) # Implicit solve + @assert !isnothing(newtons_method) + @. temp = U + # TODO: can/should we remove these closures? + implicit_equation_residual! = + (residual, Ui) -> begin + T_imp!(residual, Ui, p, t_imp) + @. residual = + temp + dt * a_imp[i, i] * residual - Ui + end + implicit_equation_jacobian! = + (jacobian, Ui) -> + T_imp!.Wfact(jacobian, Ui, p, dt * a_imp[i, i], t_imp) + + CTS.solve_newton!( + newtons_method, + newtons_method_cache, + U, + implicit_equation_residual!, + implicit_equation_jacobian!, + ) + end + + # We do not need to DSS U again because the implicit solve should + # give the same results for redundant columns (as long as the implicit + # tendency only acts in the vertical direction). + + if !all(iszero, a_imp[:, i]) || !iszero(b_imp[i]) + if iszero(a_imp[i, i]) + # If its coefficient is 0, T_imp[i] is effectively being + # treated explicitly. + T_imp!(T_imp[i], U, p, t_imp) + else + # If T_imp[i] is being treated implicitly, ensure that it + # exactly satisfies the implicit equation. + @. T_imp[i] = (U - temp) / (dt * a_imp[i, i]) + end + end + + if !all(iszero, a_exp[:, i]) || !iszero(b_exp[i]) + T_lim!(T_lim[i], U, p, t_exp) + T_exp!(T_exp[i], U, p, t_exp) + end + end + end + + t_final = t + dt + + @. temp = u + for j in 1:s + iszero(b_exp[j]) && continue + @. temp += dt * b_exp[j] * T_lim[j] + end + lim!(temp, p, t_final, u) + @. u = temp + + for j in 1:s + iszero(b_exp[j]) && continue + @. u += dt * b_exp[j] * T_exp[j] + end + + for j in 1:s + iszero(b_imp[j]) && continue + @. u += dt * b_imp[j] * T_imp[j] + end + + dss!(u, p, t_final) + + return u +end diff --git a/src/time_stepper/imex_ssprk.jl b/src/time_stepper/imex_ssprk.jl new file mode 100644 index 00000000000..57d8f00363a --- /dev/null +++ b/src/time_stepper/imex_ssprk.jl @@ -0,0 +1,113 @@ +function CTS.step_u!( + integrator, + cache::CTS.IMEXSSPRKCache, + f::AtmosODEFunction, + name, +) + (; u, p, t, dt, alg) = integrator + (; T_lim!, T_exp!, T_imp!, lim!, dss!) = f + (; tableau, newtons_method) = alg + (; a_imp, b_imp, c_exp, c_imp) = tableau + (; U, U_lim, U_exp, T_lim, T_exp, T_imp, temp, β, γ, newtons_method_cache) = + cache + s = length(b_imp) + + if !isnothing(newtons_method) + (; update_j) = newtons_method + jacobian = newtons_method_cache.j + if (!isnothing(jacobian)) && + CTS.needs_update!(update_j, CTS.NewTimeStep(t)) + if γ isa Nothing + sdirk_error(name) + else + T_imp!.Wfact(jacobian, u, p, dt * γ, t) + end + end + end + + @. U = u + + for i in 1:s + t_exp = t + dt * c_exp[i] + t_imp = t + dt * c_imp[i] + + if i == 1 + @. U_exp = u + elseif !iszero(β[i - 1]) + @. U_lim = U_exp + dt * T_lim + lim!(U_lim, p, t_exp, U_exp) + @. U_exp = U_lim + @. U_exp += dt * T_exp + @. U_exp = (1 - β[i - 1]) * u + β[i - 1] * U_exp + end + + dss!(U_exp, p, t_exp) + + @. U = U_exp + for j in 1:(i - 1) + iszero(a_imp[i, j]) && continue + @. U += dt * a_imp[i, j] * T_imp[j] + end + + if !iszero(a_imp[i, i]) # Implicit solve + @assert !isnothing(newtons_method) + @. temp = U + # TODO: can/should we remove these closures? + implicit_equation_residual! = + (residual, Ui) -> begin + T_imp!(residual, Ui, p, t_imp) + @. residual = temp + dt * a_imp[i, i] * residual - Ui + end + implicit_equation_jacobian! = + (jacobian, Ui) -> + T_imp!.Wfact(jacobian, Ui, p, dt * a_imp[i, i], t_imp) + solve_newton!( + newtons_method, + newtons_method_cache, + U, + implicit_equation_residual!, + implicit_equation_jacobian!, + ) + end + + # We do not need to DSS U again because the implicit solve should + # give the same results for redundant columns (as long as the implicit + # tendency only acts in the vertical direction). + + if !all(iszero, a_imp[:, i]) || !iszero(b_imp[i]) + if iszero(a_imp[i, i]) + # If its coefficient is 0, T_imp[i] is effectively being + # treated explicitly. + T_imp!(T_imp[i], U, p, t_imp) + else + # If T_imp[i] is being treated implicitly, ensure that it + # exactly satisfies the implicit equation. + @. T_imp[i] = (U - temp) / (dt * a_imp[i, i]) + end + end + + if !iszero(β[i]) + T_lim!(T_lim, U, p, t_exp) + T_exp!(T_exp, U, p, t_exp) + end + end + + t_final = t + dt + + if !iszero(β[s]) + @. U_lim = U_exp + dt * T_lim + lim!(U_lim, p, t_final, U_exp) + @. U_exp = U_lim + @. U_exp += dt * T_exp + @. u = (1 - β[s]) * u + β[s] * U_exp + end + + for j in 1:s + iszero(b_imp[j]) && continue + @. u += dt * b_imp[j] * T_imp[j] + end + + dss!(u, p, t_final) + + return u +end diff --git a/src/time_stepper/time_stepper.jl b/src/time_stepper/time_stepper.jl new file mode 100644 index 00000000000..0de57923146 --- /dev/null +++ b/src/time_stepper/time_stepper.jl @@ -0,0 +1,17 @@ +import NVTX +import ClimaTimeSteppers as CTS + +Base.@kwdef struct AtmosODEFunction{TL, TE, TI, L, D, PE, PI} <: + CTS.AbstractClimaODEFunction + T_lim!::TL = (uₜ, u, p, t) -> nothing + T_exp!::TE = (uₜ, u, p, t) -> nothing + T_imp!::TI = (uₜ, u, p, t) -> nothing + lim!::L = (u, p, t, u_ref) -> nothing + dss!::D = (u, p, t) -> nothing + post_explicit!::PE = (u, p, t) -> nothing + post_implicit!::PI = (u, p, t) -> nothing +end + +include("imex_ark.jl") +include("imex_ssprk.jl") +include("hc_ars434.jl")