diff --git a/.buildkite/Manifest-v1.11.toml b/.buildkite/Manifest-v1.11.toml index 025384639b..4c0c634a15 100644 --- a/.buildkite/Manifest-v1.11.toml +++ b/.buildkite/Manifest-v1.11.toml @@ -341,21 +341,27 @@ version = "0.10.15" [[deps.CUDA]] deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CUDA_Driver_jll", "CUDA_Runtime_Discovery", "CUDA_Runtime_jll", "Crayons", "DataFrames", "ExprTools", "GPUArrays", "GPUCompiler", "GPUToolbox", "KernelAbstractions", "LLVM", "LLVMLoopInfo", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "NVTX", "Preferences", "PrettyTables", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "StaticArrays", "Statistics", "demumble_jll"] -git-tree-sha1 = "ee44b6eaaf518e8001ed6ed1d08a04662d63a242" +git-tree-sha1 = "bb1878ad25badd8e36e0f491ddf3fa5e3c7c34a5" uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "5.7.3" -weakdeps = ["ChainRulesCore", "EnzymeCore", "SpecialFunctions"] +version = "5.8.1" [deps.CUDA.extensions] ChainRulesCoreExt = "ChainRulesCore" EnzymeCoreExt = "EnzymeCore" + SparseMatricesCSRExt = "SparseMatricesCSR" SpecialFunctionsExt = "SpecialFunctions" + [deps.CUDA.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + SparseMatricesCSR = "a0a7dd2c-ebf4-11e9-1f05-cf50bc540ca1" + SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" + [[deps.CUDA_Driver_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "f69205592dbd3721a156245b6dd837206786a848" +git-tree-sha1 = "5129b555ff876c47ad9e53bcd86e9a94bcc12ea4" uuid = "4ee394cb-3365-5eb0-8335-949819d2adfc" -version = "0.12.1+1" +version = "0.13.0+0" [[deps.CUDA_Runtime_Discovery]] deps = ["Libdl"] @@ -365,9 +371,9 @@ version = "0.3.5" [[deps.CUDA_Runtime_jll]] deps = ["Artifacts", "CUDA_Driver_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "99f1c6b659c14bbb3492246791bb4928a40ceb84" +git-tree-sha1 = "28126781294b2f31bc815f96922d680426e3a0bc" uuid = "76a88914-d11a-5bdc-97e0-2f5a05c973a2" -version = "0.16.1+0" +version = "0.17.0+0" [[deps.Cairo]] deps = ["Cairo_jll", "Colors", "Glib_jll", "Graphics", "Libdl", "Pango_jll"] @@ -428,9 +434,9 @@ version = "0.0.16" [[deps.ClimaComms]] deps = ["Adapt", "Logging", "LoggingExtras"] -git-tree-sha1 = "40ad44466dfe0092e18c04bc02c849fe8e095d30" +git-tree-sha1 = "2a96bdd5339bdcd903867a46d1f00110f7b890cc" uuid = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" -version = "0.6.6" +version = "0.6.7" weakdeps = ["CUDA", "MPI"] [deps.ClimaComms.extensions] @@ -473,15 +479,15 @@ weakdeps = ["BSON", "CSV", "ClimaParams", "DataFrames", "Flux", "HTTP", "StatsBa [[deps.ClimaParams]] deps = ["TOML"] -git-tree-sha1 = "7613d47b4f96307845cbe377dede19efa3256cfb" +git-tree-sha1 = "acf6c80c7ad59fe9dac9cc49625d52f4b8e1f4b7" uuid = "5c42b081-d73a-476f-9059-fd94b934656c" -version = "0.10.29" +version = "0.10.30" [[deps.ClimaTimeSteppers]] deps = ["ClimaComms", "DataStructures", "DiffEqBase", "KernelAbstractions", "Krylov", "LinearAlgebra", "LinearOperators", "NVTX", "SciMLBase", "StaticArrays"] -git-tree-sha1 = "f71d6c31fdfeaa66516ccf904a916e99904e5078" +git-tree-sha1 = "23c8346606e165aa8805f25063f24e39bd8e148d" uuid = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" -version = "0.8.4" +version = "0.8.5" weakdeps = ["BenchmarkTools", "CUDA", "OrderedCollections", "PrettyTables", "StatsBase"] [deps.ClimaTimeSteppers.extensions] @@ -714,9 +720,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 = "575a4b945c26f654625c9bc58a1ed10a4eddd267" +git-tree-sha1 = "1bcd3a5c585c477e5d0595937ea7b5adcda6c621" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.173.0" +version = "6.174.0" [deps.DiffEqBase.extensions] DiffEqBaseCUDAExt = "CUDA" @@ -919,9 +925,9 @@ uuid = "55351af7-c7e9-48d6-89ff-24e801d99491" version = "0.10.14" [[deps.Extents]] -git-tree-sha1 = "063512a13dbe9c40d999c439268539aa552d1ae6" +git-tree-sha1 = "b309b36a9e02fe7be71270dd8c0fd873625332b4" uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910" -version = "0.1.5" +version = "0.1.6" [[deps.FFMPEG]] deps = ["FFMPEG_jll"] @@ -1167,9 +1173,9 @@ version = "0.2.0" [[deps.GPUCompiler]] deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "PrecompileTools", "Preferences", "Scratch", "Serialization", "TOML", "Tracy", "UUIDs"] -git-tree-sha1 = "43c2e60efa2badefe7a32a50b586b4ac1b8b8249" +git-tree-sha1 = "3651909714fc4d5a005294d4781b2313ffc2913b" uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" -version = "1.4.0" +version = "1.5.0" [[deps.GPUToolbox]] git-tree-sha1 = "15d8b0f5a6dca9bf8c02eeaf6687660dafa638d0" @@ -1213,9 +1219,9 @@ version = "1.0.2" [[deps.GeoJSON]] deps = ["Extents", "GeoFormatTypes", "GeoInterface", "GeoInterfaceMakie", "GeoInterfaceRecipes", "JSON3", "StructTypes", "Tables"] -git-tree-sha1 = "e17756f8cb7f2356adfe940a6cf82f4c33c88c4c" +git-tree-sha1 = "c803640368acf4ae02bb5a69a986cecc4a5cb984" uuid = "61d90e0f-e114-555e-ac52-39dfb47a3ef9" -version = "0.8.2" +version = "0.8.3" weakdeps = ["Makie"] [deps.GeoJSON.extensions] @@ -1240,10 +1246,10 @@ uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" version = "0.4.11" [[deps.GeometryOps]] -deps = ["AbstractTrees", "AdaptivePredicates", "CoordinateTransformations", "DataAPI", "DelaunayTriangulation", "ExactPredicates", "Extents", "GeoFormatTypes", "GeoInterface", "GeometryBasics", "GeometryOpsCore", "LinearAlgebra", "SortTileRecursiveTree", "Statistics", "Tables"] -git-tree-sha1 = "14469166fe57ca6f4aeb976bb1f4dc4d3afa3ee3" +deps = ["AbstractTrees", "AdaptivePredicates", "CoordinateTransformations", "DataAPI", "DelaunayTriangulation", "ExactPredicates", "Extents", "GeoFormatTypes", "GeoInterface", "GeometryOpsCore", "LinearAlgebra", "SortTileRecursiveTree", "StaticArrays", "Statistics", "Tables"] +git-tree-sha1 = "bd182936ad204652a5318d360c7cfc7772b17e7a" uuid = "3251bfac-6a57-4b6d-aa61-ac1fef2975ab" -version = "0.1.24" +version = "0.1.25" [deps.GeometryOps.extensions] GeometryOpsDataFramesExt = "DataFrames" @@ -1261,9 +1267,9 @@ version = "0.1.24" [[deps.GeometryOpsCore]] deps = ["DataAPI", "GeoInterface", "StableTasks", "Tables"] -git-tree-sha1 = "5af490a896f5d9d37b47b252a803117089dfbaf3" +git-tree-sha1 = "69fc98947b06f8ac4279cf5bf8810373fe042be4" uuid = "05efe853-fabf-41c8-927e-7063c8b9f013" -version = "0.1.6" +version = "0.1.7" [[deps.Gettext_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] @@ -1346,9 +1352,9 @@ version = "0.2.0" [[deps.Hwloc_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "f93a9ce66cd89c9ba7a4695a47fd93b4c6bc59fa" +git-tree-sha1 = "92f65c4d78ce8cdbb6b68daf88889950b0a99d11" uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" -version = "2.12.0+0" +version = "2.12.1+0" [[deps.HypergeometricFunctions]] deps = ["LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] @@ -1464,9 +1470,9 @@ weakdeps = ["Unitful"] [[deps.IntervalArithmetic]] deps = ["CRlibm", "MacroTools", "OpenBLASConsistentFPCSR_jll", "Random", "RoundingEmulator"] -git-tree-sha1 = "4e1b4155f04ffa0acf3a0d6e3d651892604666f5" +git-tree-sha1 = "694c52705f8b23dc5b39eeac629dc3059a168a40" uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" -version = "0.22.34" +version = "0.22.35" weakdeps = ["DiffRules", "ForwardDiff", "IntervalSets", "LinearAlgebra", "RecipesBase", "SparseArrays"] [deps.IntervalArithmetic.extensions] @@ -1642,9 +1648,9 @@ version = "4.0.1+0" [[deps.LLVM]] deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Unicode"] -git-tree-sha1 = "f0e861832695dbb70e710606a7d18b7f81acec92" +git-tree-sha1 = "5e8b243b2e4c86648dac82cf767ae1456000b92d" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "9.3.1" +version = "9.4.0" weakdeps = ["BFloat16s"] [deps.LLVM.extensions] @@ -1652,9 +1658,9 @@ weakdeps = ["BFloat16s"] [[deps.LLVMExtra_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "4b5ad6a4ffa91a00050a964492bc4f86bb48cea0" +git-tree-sha1 = "f8022e2c8b5eef5f30e7fb2fe52c97cc5674db23" uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" -version = "0.0.35+0" +version = "0.0.36+0" [[deps.LLVMLoopInfo]] git-tree-sha1 = "2e5c102cfc41f48ae4740c7eca7743cc7e7b75ea" @@ -1985,9 +1991,9 @@ version = "1.11.0" [[deps.MathOptInterface]] deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "DataStructures", "ForwardDiff", "JSON3", "LinearAlgebra", "MutableArithmetics", "NaNMath", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays", "SpecialFunctions", "Test"] -git-tree-sha1 = "22b3e0bd1442bf9f5d3cb76e7d34ca87b88d0f36" +git-tree-sha1 = "d4eb6037ce33f974a58a2ea9ccba28beab2a93c1" uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" -version = "1.40.0" +version = "1.40.1" [[deps.MathTeXEngine]] deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "UnicodeFun"] @@ -2066,9 +2072,9 @@ version = "1.6.4" [[deps.NCDatasets]] deps = ["CFTime", "CommonDataModel", "DataStructures", "Dates", "DiskArrays", "NetCDF_jll", "NetworkOptions", "Printf"] -git-tree-sha1 = "777b93739ca8804011ee1decad7b070f0e201bbc" +git-tree-sha1 = "be1095e2b767c19529409ec670bcfb01b825d717" uuid = "85f8d34a-cbdd-5861-8df4-14fed0d494ab" -version = "0.14.7" +version = "0.14.8" [[deps.NLSolversBase]] deps = ["ADTypes", "DifferentiationInterface", "Distributed", "FiniteDiff", "ForwardDiff"] @@ -2381,9 +2387,9 @@ version = "1.4.3" [[deps.Polyester]] deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] -git-tree-sha1 = "6d38fea02d983051776a856b7df75b30cf9a3c1f" +git-tree-sha1 = "2082cc4be5e765bd982ed04ea06c068f4f702410" uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" -version = "0.7.16" +version = "0.7.17" [[deps.PolyesterWeave]] deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] @@ -2505,9 +2511,9 @@ version = "1.11.0" [[deps.Random123]] deps = ["Random", "RandomNumbers"] -git-tree-sha1 = "4743b43e5a9c4a2ede372de7061eed81795b12e7" +git-tree-sha1 = "dbe5fd0b334694e905cb9fda73cd8554333c46e2" uuid = "74087812-796a-5b5d-8853-05524746bad3" -version = "1.7.0" +version = "1.7.1" [[deps.RandomNumbers]] deps = ["Random"] @@ -2664,9 +2670,9 @@ version = "0.1.0" [[deps.SciMLBase]] deps = ["ADTypes", "Accessors", "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 = "bf77959adea9efa8929a7846e695d3da8842940e" +git-tree-sha1 = "846e89af4ec4ba471d3050a70405978cbdf70681" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.89.1" +version = "2.91.1" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -2691,9 +2697,9 @@ version = "2.89.1" [[deps.SciMLOperators]] deps = ["Accessors", "ArrayInterface", "DocStringExtensions", "LinearAlgebra", "MacroTools"] -git-tree-sha1 = "d82853c515a8d9d42c1ab493a2687a37f1e26c91" +git-tree-sha1 = "6467d4e3eb86d9d7e31f43d01f9184409c0ea2be" uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" -version = "0.4.0" +version = "1.2.1" weakdeps = ["SparseArrays", "StaticArraysCore"] [deps.SciMLOperators.extensions] @@ -3031,9 +3037,9 @@ version = "1.0.2" [[deps.Thermodynamics]] deps = ["DocStringExtensions", "KernelAbstractions", "Random", "RootSolvers"] -git-tree-sha1 = "efe74e0344fd7fb68b831316055290d80a62d9c1" +git-tree-sha1 = "f708faaf347760e9dcd82beb1a9455c86bdf9911" uuid = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" -version = "0.12.11" +version = "0.12.12" weakdeps = ["ClimaParams"] [deps.Thermodynamics.extensions] diff --git a/Project.toml b/Project.toml index bc92b6f414..86be9e0af5 100644 --- a/Project.toml +++ b/Project.toml @@ -41,7 +41,7 @@ ClimaComms = "0.6.2" ClimaCore = "0.14.23" ClimaDiagnostics = "0.2.10" ClimaParams = "0.10.2" -ClimaTimeSteppers = "0.8" +ClimaTimeSteppers = "0.8.5" ClimaUtilities = "0.1.24" DataFrames = "1.4" Dates = "1" diff --git a/docs/Manifest-v1.11.toml b/docs/Manifest-v1.11.toml index ee9ac40bcd..56b723cf72 100644 --- a/docs/Manifest-v1.11.toml +++ b/docs/Manifest-v1.11.toml @@ -362,9 +362,9 @@ weakdeps = ["SparseArrays"] [[deps.ClimaComms]] deps = ["Adapt", "Logging", "LoggingExtras"] -git-tree-sha1 = "40ad44466dfe0092e18c04bc02c849fe8e095d30" +git-tree-sha1 = "2a96bdd5339bdcd903867a46d1f00110f7b890cc" uuid = "3a4d1b5c-c61d-41fd-a00a-5873ba7a1b0d" -version = "0.6.6" +version = "0.6.7" [deps.ClimaComms.extensions] ClimaCommsCUDAExt = "CUDA" @@ -395,7 +395,7 @@ uuid = "1ecacbb8-0713-4841-9a07-eb5aa8a2d53f" version = "0.2.13" [[deps.ClimaLand]] -deps = ["ClimaComms", "ClimaCore", "ClimaDiagnostics", "ClimaUtilities", "Dates", "DocStringExtensions", "Insolation", "Interpolations", "LazyArtifacts", "LinearAlgebra", "NCDatasets", "SciMLBase", "StaticArrays", "SurfaceFluxes", "Thermodynamics"] +deps = ["ClimaComms", "ClimaCore", "ClimaDiagnostics", "ClimaTimeSteppers", "ClimaUtilities", "Dates", "DocStringExtensions", "Insolation", "Interpolations", "LazyArtifacts", "LinearAlgebra", "NCDatasets", "SciMLBase", "StaticArrays", "SurfaceFluxes", "Thermodynamics"] path = ".." uuid = "08f4d4ce-cf43-44bb-ad95-9d2d5f413532" version = "0.16.1" @@ -413,15 +413,15 @@ version = "0.1.0" [[deps.ClimaParams]] deps = ["TOML"] -git-tree-sha1 = "7613d47b4f96307845cbe377dede19efa3256cfb" +git-tree-sha1 = "acf6c80c7ad59fe9dac9cc49625d52f4b8e1f4b7" uuid = "5c42b081-d73a-476f-9059-fd94b934656c" -version = "0.10.29" +version = "0.10.30" [[deps.ClimaTimeSteppers]] deps = ["ClimaComms", "DataStructures", "DiffEqBase", "KernelAbstractions", "Krylov", "LinearAlgebra", "LinearOperators", "NVTX", "SciMLBase", "StaticArrays"] -git-tree-sha1 = "f71d6c31fdfeaa66516ccf904a916e99904e5078" +git-tree-sha1 = "23c8346606e165aa8805f25063f24e39bd8e148d" uuid = "595c0a79-7f3d-439a-bc5a-b232dc3bde79" -version = "0.8.4" +version = "0.8.5" [deps.ClimaTimeSteppers.extensions] ClimaTimeSteppersBenchmarkToolsExt = ["CUDA", "BenchmarkTools", "OrderedCollections", "StatsBase", "PrettyTables"] @@ -666,9 +666,9 @@ version = "1.33.4+0" [[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 = "575a4b945c26f654625c9bc58a1ed10a4eddd267" +git-tree-sha1 = "1bcd3a5c585c477e5d0595937ea7b5adcda6c621" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.173.0" +version = "6.174.0" [deps.DiffEqBase.extensions] DiffEqBaseCUDAExt = "CUDA" @@ -809,9 +809,9 @@ version = "0.9.4" [[deps.Documenter]] deps = ["ANSIColoredPrinters", "AbstractTrees", "Base64", "CodecZlib", "Dates", "DocStringExtensions", "Downloads", "Git", "IOCapture", "InteractiveUtils", "JSON", "Logging", "Markdown", "MarkdownAST", "Pkg", "PrecompileTools", "REPL", "RegistryInstances", "SHA", "TOML", "Test", "Unicode"] -git-tree-sha1 = "7745f07eaf6454c15caa21c5ecaebef3afad32eb" +git-tree-sha1 = "6c182d0bd94142d7cbc3ae8a1e74668f15d0dd65" uuid = "e30172f5-a6a5-5a46-863b-614d45cd2de4" -version = "1.11.1" +version = "1.11.4" [[deps.Downloads]] deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] @@ -883,9 +883,9 @@ uuid = "55351af7-c7e9-48d6-89ff-24e801d99491" version = "0.10.14" [[deps.Extents]] -git-tree-sha1 = "063512a13dbe9c40d999c439268539aa552d1ae6" +git-tree-sha1 = "b309b36a9e02fe7be71270dd8c0fd873625332b4" uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910" -version = "0.1.5" +version = "0.1.6" [[deps.FFMPEG]] deps = ["FFMPEG_jll"] @@ -1395,9 +1395,9 @@ weakdeps = ["Unitful"] [[deps.IntervalArithmetic]] deps = ["CRlibm", "MacroTools", "OpenBLASConsistentFPCSR_jll", "Random", "RoundingEmulator"] -git-tree-sha1 = "4e1b4155f04ffa0acf3a0d6e3d651892604666f5" +git-tree-sha1 = "694c52705f8b23dc5b39eeac629dc3059a168a40" uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" -version = "0.22.34" +version = "0.22.35" weakdeps = ["DiffRules", "ForwardDiff", "IntervalSets", "LinearAlgebra", "RecipesBase", "SparseArrays"] [deps.IntervalArithmetic.extensions] @@ -1569,9 +1569,9 @@ version = "3.0.0+1" [[deps.LLVM]] deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Unicode"] -git-tree-sha1 = "f0e861832695dbb70e710606a7d18b7f81acec92" +git-tree-sha1 = "5e8b243b2e4c86648dac82cf767ae1456000b92d" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "9.3.1" +version = "9.4.0" [deps.LLVM.extensions] BFloat16sExt = "BFloat16s" @@ -1581,9 +1581,9 @@ version = "9.3.1" [[deps.LLVMExtra_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "4b5ad6a4ffa91a00050a964492bc4f86bb48cea0" +git-tree-sha1 = "f8022e2c8b5eef5f30e7fb2fe52c97cc5674db23" uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" -version = "0.0.35+0" +version = "0.0.36+0" [[deps.LLVMOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1898,9 +1898,9 @@ version = "0.1.2" [[deps.MathOptInterface]] deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "DataStructures", "ForwardDiff", "JSON3", "LinearAlgebra", "MutableArithmetics", "NaNMath", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays", "SpecialFunctions", "Test"] -git-tree-sha1 = "22b3e0bd1442bf9f5d3cb76e7d34ca87b88d0f36" +git-tree-sha1 = "d4eb6037ce33f974a58a2ea9ccba28beab2a93c1" uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee" -version = "1.40.0" +version = "1.40.1" [[deps.MathTeXEngine]] deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "UnicodeFun"] @@ -1993,9 +1993,9 @@ version = "1.6.4" [[deps.NCDatasets]] deps = ["CFTime", "CommonDataModel", "DataStructures", "Dates", "DiskArrays", "NetCDF_jll", "NetworkOptions", "Printf"] -git-tree-sha1 = "777b93739ca8804011ee1decad7b070f0e201bbc" +git-tree-sha1 = "be1095e2b767c19529409ec670bcfb01b825d717" uuid = "85f8d34a-cbdd-5861-8df4-14fed0d494ab" -version = "0.14.7" +version = "0.14.8" [[deps.NLSolversBase]] deps = ["ADTypes", "DifferentiationInterface", "Distributed", "FiniteDiff", "ForwardDiff"] @@ -2296,9 +2296,9 @@ version = "1.40.13" [[deps.Polyester]] deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] -git-tree-sha1 = "6d38fea02d983051776a856b7df75b30cf9a3c1f" +git-tree-sha1 = "2082cc4be5e765bd982ed04ea06c068f4f702410" uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" -version = "0.7.16" +version = "0.7.17" [[deps.PolyesterWeave]] deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] @@ -2576,9 +2576,9 @@ version = "0.1.0" [[deps.SciMLBase]] deps = ["ADTypes", "Accessors", "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 = "bf77959adea9efa8929a7846e695d3da8842940e" +git-tree-sha1 = "846e89af4ec4ba471d3050a70405978cbdf70681" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "2.89.1" +version = "2.91.1" [deps.SciMLBase.extensions] SciMLBaseChainRulesCoreExt = "ChainRulesCore" @@ -2603,9 +2603,9 @@ version = "2.89.1" [[deps.SciMLOperators]] deps = ["Accessors", "ArrayInterface", "DocStringExtensions", "LinearAlgebra", "MacroTools"] -git-tree-sha1 = "d82853c515a8d9d42c1ab493a2687a37f1e26c91" +git-tree-sha1 = "6467d4e3eb86d9d7e31f43d01f9184409c0ea2be" uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" -version = "0.4.0" +version = "1.2.1" weakdeps = ["SparseArrays", "StaticArraysCore"] [deps.SciMLOperators.extensions] @@ -2926,9 +2926,9 @@ version = "1.11.0" [[deps.Thermodynamics]] deps = ["DocStringExtensions", "KernelAbstractions", "Random", "RootSolvers"] -git-tree-sha1 = "efe74e0344fd7fb68b831316055290d80a62d9c1" +git-tree-sha1 = "f708faaf347760e9dcd82beb1a9455c86bdf9911" uuid = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" -version = "0.12.11" +version = "0.12.12" weakdeps = ["ClimaParams"] [deps.Thermodynamics.extensions] @@ -3328,10 +3328,10 @@ uuid = "214eeab7-80f7-51ab-84ad-2988db7cef09" version = "0.61.1+0" [[deps.gperf_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "0ba42241cb6809f1a278d0bcb976e0483c3f1f2d" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "3cad2cf2c8d80f1d17320652b3ea7778b30f473f" uuid = "1a1c6b14-54f6-533d-8383-74cd7377aa70" -version = "3.1.1+1" +version = "3.3.0+0" [[deps.isoband_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] diff --git a/src/simulations/Simulations.jl b/src/simulations/Simulations.jl index f1ae92bc0b..7fc99d1e62 100644 --- a/src/simulations/Simulations.jl +++ b/src/simulations/Simulations.jl @@ -2,7 +2,6 @@ module Simulations using ClimaTimeSteppers using ClimaComms import ClimaComms: context, device -using SciMLBase using Dates import ClimaUtilities.TimeManager: ITime, date import ClimaDiagnostics @@ -12,19 +11,11 @@ using ClimaLand.ModelSetup include("initial_conditions.jl") """ - LandSimulation{ - M <: ClimaLand.AbstractModel, - T <: ClimaTimeSteppers.DistributedODEAlgorithm, - UC, - DI, - RC, - CA <: SciMLBase.CallbackSet, - I <: SciMLBase.DEIntegrator, - } - -the ClimaLand LandSimulation struct, which specifies + LandSimulation + +The ClimaLand LandSimulation struct, which specifies - the discrete set of equations to solve (defined by the `model`); -- the timestepping algorithm; +- the timestepping algorithm (in `timestepper.algo`); - user callbacks (passed as a tuple) to be executed at specific times in the simulations; - the diagnostics to output (optional). @@ -32,30 +23,55 @@ User callbacks are optional: examples currently include callbacks that estimate to solution and SYPD of the simulation as it runs, checkpoint the state, or check the solution for NaNs. Others can be added here. -Diagnostics are implemented as callbacks, and are also optional. -However, a default is provided. `diagnostics` is expected to be a -list of `ClimaDiagnostics.ScheduledDiagnostics`. +`diagnostics` are provided as a list of `ClimaDiagnostics.ScheduledDiagnostics`, +with default specified by `default_diagnostics`. + +The private field `_required_callbacks` consists of callbacks that are required +for the simulation to run correctly. Currently, this includes the callbacks +which update the atmospheric forcing and update the LAI using prescribed data. -Finally, the private field _required_callbacks consists of callbacks that are required for the -simulation to run correctly. Currently, this includes the callbacks which update the atmospheric -forcing and update the LAI using prescribed data. +Quick tips +========== + +1. Accessing the state +```julia +sim.u +``` +2. Accessing the current time +```julia +sim.t +``` +3. Accessing the current date +```julia +import ClimaUtilities.TimeManager: date +date(sim.t) +``` +4. Providing a specific new monthly diagnostics +```julia +diagnostic = ClimaLand.Diagnostics.monthly_average.(["lhf", "shf"]) +``` """ -struct LandSimulation{ +mutable struct LandSimulation{ + STATE, + CACHE, + TIME, + TUP_TIME, M <: ClimaLand.AbstractModel, - T <: ClimaTimeSteppers.DistributedODEAlgorithm, - UC, + T, DI, RC, - CA <: SciMLBase.CallbackSet, - I <: SciMLBase.DEIntegrator, + UC, } + u::STATE + p::CACHE + t::TIME + dt::TIME + tspan::TUP_TIME model::M timestepper::T - user_callbacks::UC - diagnostics::DI + diagnostic_handler::DI required_callbacks::RC - callbacks::CA - _integrator::I + user_callbacks::UC end function LandSimulation( @@ -128,19 +144,14 @@ function LandSimulation( jac_prototype = ClimaLand.FieldMatrixWithSolver(Y), Wfact = jacobian!, ) - T_imp! = SciMLBase.ODEFunction(imp_tendency!; jac_kwargs...) + T_imp! = (; f = imp_tendency!, jac_kwargs...) end # Create SciML ODE Problem - problem = SciMLBase.ODEProblem( - ClimaTimeSteppers.ClimaODEFunction( - T_exp! = exp_tendency!, - T_imp! = T_imp!, - dss! = ClimaLand.dss!, - ), - Y, - (t0, tf), - p, + func = ClimaTimeSteppers.ClimaODEFunction( + T_exp! = exp_tendency!, + T_imp! = T_imp!, + dss! = ClimaLand.dss!, ) # Required callbacks @@ -148,33 +159,28 @@ function LandSimulation( drivers = ClimaLand.get_drivers(model) updatefunc = ClimaLand.make_update_drivers(drivers) driver_cb = ClimaLand.DriverUpdateCallback(updateat, updatefunc) - required_callbacks = (driver_cb,) # TBD: can we update each step? + _required_callbacks = (driver_cb,) # TBD: can we update each step? diagnostics = isnothing(diagnostics) ? () : diagnostics diagnostic_handler = ClimaDiagnostics.DiagnosticsHandler(diagnostics, Y, p, t0; dt = Δt) - diag_cb = ClimaDiagnostics.DiagnosticsCallback(diagnostic_handler) - - # Collect all callbacks - callbacks = - SciMLBase.CallbackSet(user_callbacks..., required_callbacks..., diag_cb) - - _integrator = SciMLBase.init( - problem, - timestepper; - dt = Δt, - callback = callbacks, - adaptive = false, - ) + algo = timestepper + # u0 is used as prototype + prob = (; u0 = Y, f = func) + timestepper_cache = ClimaTimeSteppers.init_cache(prob, algo) + isnothing(func.cache!) || func.cache!(Y, p, t0) return LandSimulation( + Y, + p, + t0, + Δt, + (t0, tf), model, - timestepper, + (; algo, func, cache = timestepper_cache), + diagnostic_handler, + _required_callbacks, user_callbacks, - diagnostics, - required_callbacks, - callbacks, - _integrator, ) end @@ -185,7 +191,36 @@ Advances the land simulation `landsim` forward in time by one step, updating `landsim` in place. """ function step!(landsim::LandSimulation) - SciMLBase.step!(landsim._integrator) + landsim.t += landsim.dt + + ClimaTimeSteppers.step_u!(landsim, landsim.timestepper.cache) + for callback in landsim._required_callbacks + callback.condition(landsim.u, landsim.t, landsim) && + callback.affect!(landsim) + end + for callback in landsim.user_callbacks + callback.condition(landsim.u, landsim.t, landsim) && + callback.affect!(landsim) + end + ClimaDiagnostics.orchestrate_diagnostics( + landsim, + landsim.diagnostic_handler, + ) +end + +# Compatibility with SciML +function Base.getproperty(landsim::LandSimulation, symbol::Symbol) + if symbol === :alg + return landsim.timestepper.algo + elseif symbol === :step + return landsim.t / landsim.dt + elseif symbol === :sol + return (; + prob = (; f = landsim.timestepper.func, tspan = landsim.tspan) + ) + else + return Base.getfield(landsim, symbol) + end end """ @@ -195,7 +230,9 @@ Advances the land simulation `landsim` forward from the initial to final time, updating `landsim` in place. """ function solve!(landsim::LandSimulation) - SciMLBase.solve!(landsim._integrator) + while landsim.t < last(landsim.tspan) + step!(landsim) + end end @@ -232,7 +269,7 @@ function Base.show(io::IO, landsim::LandSimulation) io, "$(model_type) Simulation\n", "├── Running on: $(device_type)\n", - "└── Current date: $(date(landsim._integrator.t))\n", + "└── Current date: $(date(landsim.t))\n", ) end end#module