diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 9110de0132..75e50a0624 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -18,14 +18,18 @@ steps: key: "init_cpu_env" command: - "echo $$JULIA_DEPOT_PATH" + + - echo "--- Instantiate integration_tests" - "julia --project=integration_tests -e 'using Pkg; Pkg.instantiate(;verbose=true)'" - "julia --project=integration_tests -e 'using Pkg; Pkg.precompile()'" - "julia --project=integration_tests -e 'using Pkg; Pkg.status()'" + - echo "--- Instantiate perf" - "julia --project=perf -e 'using Pkg; Pkg.instantiate(;verbose=true)'" - "julia --project=perf -e 'using Pkg; Pkg.precompile()'" - "julia --project=perf -e 'using Pkg; Pkg.status()'" + - echo "--- Download artifacts" - "julia --project=integration_tests integration_tests/download_artifacts.jl" - wait diff --git a/Project.toml b/Project.toml index 654810eae6..fb17647f1a 100644 --- a/Project.toml +++ b/Project.toml @@ -4,7 +4,6 @@ authors = ["Climate Modeling Alliance"] version = "0.32.0" [deps] -CLIMAParameters = "6eacf6c3-8458-43b9-ae03-caf5306d3d53" ClimaCore = "d414da3d-4745-48bb-8d80-42e94e092884" CloudMicrophysics = "6a9e3e04-43cd-43ba-94b9-e8782df3c71b" Dierckx = "39dd38d3-220a-591b-8e3c-4c3a8c710a94" @@ -19,13 +18,13 @@ Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" StochasticDiffEq = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0" +SurfaceFluxes = "49b00bb7-8bd4-4f2b-b78c-51cd0450215f" Thermodynamics = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" UnPack = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" [compat] -CLIMAParameters = "0.4, 0.5, 0.6" ClimaCore = "0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.10" -CloudMicrophysics = "0.5" +CloudMicrophysics = "0.6" Dierckx = "0.5" Distributions = "0.25" DocStringExtensions = "0.8, 0.9" @@ -36,7 +35,8 @@ OperatorFlux = "0.1" StaticArrays = "1.2" StatsBase = "0.33" StochasticDiffEq = "6.41" -Thermodynamics = "0.7.1, 0.8" +SurfaceFluxes = "0.4" +Thermodynamics = "0.9" UnPack = "1.0" julia = "1.5" diff --git a/docs/Manifest.toml b/docs/Manifest.toml index afb19be6f8..186e7c49fd 100644 --- a/docs/Manifest.toml +++ b/docs/Manifest.toml @@ -37,15 +37,15 @@ version = "0.2.0" [[deps.ArrayInterface]] deps = ["ArrayInterfaceCore", "Compat", "IfElse", "LinearAlgebra", "Static"] -git-tree-sha1 = "ec8a5e8528995f2cec48c53eb834ab0d58f8bd99" +git-tree-sha1 = "8dade591a24870ab163e2dd13900c2085e0f805c" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "6.0.14" +version = "6.0.16" [[deps.ArrayInterfaceCore]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "d0f59ebfe8d3ea2799fb3fb88742d69978e5843e" +git-tree-sha1 = "d618d3cf75e8ed5064670e939289698ecf426c7f" uuid = "30b0a656-2188-435a-8636-2ec0e6a096e2" -version = "0.1.10" +version = "0.1.12" [[deps.ArrayInterfaceGPUArrays]] deps = ["Adapt", "ArrayInterfaceCore", "GPUArrays", "LinearAlgebra"] @@ -67,9 +67,9 @@ version = "0.1.2" [[deps.ArrayLayouts]] deps = ["FillArrays", "LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "c23473c60476e62579c077534b9643ec400f792b" +git-tree-sha1 = "26c659b14c4dc109b6b9c3398e4455eebc523814" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "0.8.6" +version = "0.8.8" [[deps.ArtifactWrappers]] deps = ["DocStringExtensions", "Downloads", "Pkg"] @@ -114,15 +114,15 @@ version = "0.2.17" [[deps.BitTwiddlingConvenienceFunctions]] deps = ["Static"] -git-tree-sha1 = "28bbdbf0354959db89358d1d79d421ff31ef0b5e" +git-tree-sha1 = "eaee37f76339077f86679787a71990c4e465477f" uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" -version = "0.1.3" +version = "0.1.4" [[deps.BlockArrays]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra"] -git-tree-sha1 = "ef9b5e561eb814962541c0021eef2e30238d65ba" +git-tree-sha1 = "6bf9cdd29d7f0fb7a1a342026d5cefbdb61e25fb" uuid = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" -version = "0.16.17" +version = "0.16.18" [[deps.Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -149,15 +149,15 @@ version = "0.6.0" [[deps.CPUSummary]] deps = ["CpuId", "IfElse", "Static"] -git-tree-sha1 = "0eaf4aedad5ccc3e39481db55d72973f856dc564" +git-tree-sha1 = "b1a532a582dd18b34543366322d390e1560d40a9" uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" -version = "0.1.22" +version = "0.1.23" [[deps.CUDA]] deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CompilerSupportLibraries_jll", "ExprTools", "GPUArrays", "GPUCompiler", "LLVM", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "SpecialFunctions", "TimerOutputs"] -git-tree-sha1 = "925a16b909fdae16920c1319feadecffb6695b9d" +git-tree-sha1 = "e4e5ece72fa2f108fb20c3c5538a5fa9ef3d668a" uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "3.10.1" +version = "3.11.0" [[deps.Cairo_jll]] deps = ["Artifacts", "Bzip2_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] @@ -178,9 +178,9 @@ version = "0.3.10" [[deps.ChainRules]] deps = ["ChainRulesCore", "Compat", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "Statistics"] -git-tree-sha1 = "34e265b1b0049896430625ce1638b2719c783c6b" +git-tree-sha1 = "68938888dad80c4da1db4e7e3c4405c13d0afd13" uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "1.35.2" +version = "1.35.3" [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra", "SparseArrays"] @@ -214,15 +214,15 @@ version = "0.10.5" [[deps.CloseOpenIntervals]] deps = ["ArrayInterface", "Static"] -git-tree-sha1 = "eb61d6b97041496058245821e3bb7eba2b2cf4db" +git-tree-sha1 = "16cfdcff2db5e6e6b365ae3689b8694741f00a43" uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" -version = "0.1.8" +version = "0.1.9" [[deps.CloudMicrophysics]] -deps = ["CLIMAParameters", "DocStringExtensions", "SpecialFunctions", "Thermodynamics"] -git-tree-sha1 = "d021353409b220ee550840572916804a8a0b5b7a" +deps = ["DocStringExtensions", "SpecialFunctions", "Thermodynamics"] +git-tree-sha1 = "c41c1f6802c17db58ab5d0fcf989ea78b30738c3" uuid = "6a9e3e04-43cd-43ba-94b9-e8782df3c71b" -version = "0.5.1" +version = "0.6.0" [[deps.ColorSchemes]] deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "Random"] @@ -232,9 +232,9 @@ version = "3.18.0" [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] -git-tree-sha1 = "0f4e115f6f34bbe43c19751c90a38b2f380637b9" +git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" -version = "0.11.3" +version = "0.11.4" [[deps.ColorVectorSpace]] deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "SpecialFunctions", "Statistics", "TensorCore"] @@ -342,15 +342,15 @@ version = "0.1.0+0" [[deps.DiffEqBase]] deps = ["ArrayInterfaceCore", "ChainRulesCore", "DataStructures", "Distributions", "DocStringExtensions", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "LinearAlgebra", "Logging", "MuladdMacro", "NonlinearSolve", "Parameters", "Printf", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "Setfield", "SparseArrays", "StaticArrays", "Statistics", "ZygoteRules"] -git-tree-sha1 = "1c94897dfd3738ebb625fe582334733097485cbb" +git-tree-sha1 = "528d97ef168b36e1a90d667e6611be24759aa1ba" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.89.2" +version = "6.90.0" [[deps.DiffEqJump]] deps = ["ArrayInterfaceCore", "DataStructures", "DiffEqBase", "DocStringExtensions", "FunctionWrappers", "Graphs", "LinearAlgebra", "Markdown", "PoissonRandom", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "StaticArrays", "TreeViews", "UnPack"] -git-tree-sha1 = "08e1f6a916dafd14e731d40e6c28633a2aaae512" +git-tree-sha1 = "926f5d9345f0ebfcdd88f03beafef9b7c198dd0d" uuid = "c894b116-72e5-5b58-be3c-e6d8d4ac2b12" -version = "8.5.0" +version = "8.6.0" [[deps.DiffEqNoiseProcess]] deps = ["DiffEqBase", "Distributions", "GPUArrays", "LinearAlgebra", "Markdown", "Optim", "PoissonRandom", "QuadGK", "Random", "Random123", "RandomNumbers", "RecipesBase", "RecursiveArrayTools", "ResettableStacks", "SciMLBase", "StaticArrays", "Statistics"] @@ -574,9 +574,9 @@ version = "8.3.2" [[deps.GPUCompiler]] deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "TimerOutputs", "UUIDs"] -git-tree-sha1 = "d8c5999631e1dc18d767883f621639c838f8e632" +git-tree-sha1 = "21b5d9da260afa6a8638ba2aaa0edbbb671c37bd" uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" -version = "0.15.2" +version = "0.16.0" [[deps.GR]] deps = ["Base64", "DelimitedFiles", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Printf", "Random", "RelocatableFolders", "Serialization", "Sockets", "Test", "UUIDs"] @@ -662,9 +662,9 @@ version = "2.8.1+1" [[deps.HostCPUFeatures]] deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] -git-tree-sha1 = "18be5268cf415b5e27f34980ed25a7d34261aa83" +git-tree-sha1 = "b7b88a4716ac33fe31d6556c02fc60017594343c" uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" -version = "0.1.7" +version = "0.1.8" [[deps.HypergeometricFunctions]] deps = ["DualNumbers", "LinearAlgebra", "SpecialFunctions", "Test"] @@ -844,9 +844,9 @@ version = "0.15.15" [[deps.LayoutPointers]] deps = ["ArrayInterface", "ArrayInterfaceOffsetArrays", "ArrayInterfaceStaticArrays", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static"] -git-tree-sha1 = "a575de5a424a395217930fea6d0934ea853d0158" +git-tree-sha1 = "b67e749fb35530979839e7b4b606a97105fe4f1c" uuid = "10f19ff3-798f-405d-979b-55457f8fc047" -version = "0.1.9" +version = "0.1.10" [[deps.LazyArtifacts]] deps = ["Artifacts", "Pkg"] @@ -1034,10 +1034,10 @@ uuid = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" version = "4.5.1" [[deps.NNlib]] -deps = ["Adapt", "ChainRulesCore", "Compat", "LinearAlgebra", "Pkg", "Requires", "Statistics"] -git-tree-sha1 = "f89de462a7bc3243f95834e75751d70b3a33e59d" +deps = ["Adapt", "ChainRulesCore", "LinearAlgebra", "Pkg", "Requires", "Statistics"] +git-tree-sha1 = "a0331452b4cfd5e53ee2325376794aea47364d5a" uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" -version = "0.8.5" +version = "0.8.7" [[deps.NNlibCUDA]] deps = ["CUDA", "LinearAlgebra", "NNlib", "Random", "Statistics"] @@ -1067,9 +1067,9 @@ version = "0.3.20" [[deps.OffsetArrays]] deps = ["Adapt"] -git-tree-sha1 = "b4975062de00106132d0b01b5962c09f7db7d880" +git-tree-sha1 = "ec2e30596282d722f018ae784b7f44f3b88065e4" uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.12.5" +version = "1.12.6" [[deps.Ogg_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1127,10 +1127,10 @@ uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" version = "1.4.1" [[deps.OrdinaryDiffEq]] -deps = ["Adapt", "ArrayInterface", "ArrayInterfaceGPUArrays", "ArrayInterfaceStaticArrays", "DataStructures", "DiffEqBase", "DocStringExtensions", "ExponentialUtilities", "FastClosures", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "Logging", "LoopVectorization", "MacroTools", "MuladdMacro", "NLsolve", "NonlinearSolve", "Polyester", "PreallocationTools", "RecursiveArrayTools", "Reexport", "SciMLBase", "SparseArrays", "SparseDiffTools", "StaticArrays", "UnPack"] -git-tree-sha1 = "bb91a8d749dc48bee6f3b54ca798c9a83c034790" +deps = ["Adapt", "ArrayInterface", "ArrayInterfaceGPUArrays", "ArrayInterfaceStaticArrays", "DataStructures", "DiffEqBase", "DocStringExtensions", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "Logging", "LoopVectorization", "MacroTools", "MuladdMacro", "NLsolve", "NonlinearSolve", "Polyester", "PreallocationTools", "RecursiveArrayTools", "Reexport", "SciMLBase", "SparseArrays", "SparseDiffTools", "StaticArrays", "UnPack"] +git-tree-sha1 = "36c40402ad1d467dd2267fef3ab96f686356626e" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -version = "6.14.2" +version = "6.15.0" [[deps.PCRE_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1152,9 +1152,9 @@ version = "0.12.3" [[deps.Parsers]] deps = ["Dates"] -git-tree-sha1 = "1285416549ccfcdf0c50d4997a94331e88d68413" +git-tree-sha1 = "0044b23da09b5608b4ecacb4e5e6c6332f833a7e" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "2.3.1" +version = "2.3.2" [[deps.Pixman_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1180,9 +1180,9 @@ version = "1.2.0" [[deps.Plots]] deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "GeometryBasics", "JSON", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "Unzip"] -git-tree-sha1 = "9e42de869561d6bdf8602c57ec557d43538a92f0" +git-tree-sha1 = "2402dffcbc5bb1631fb4f10cb5c3698acdce29ea" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.29.1" +version = "1.30.1" [[deps.PoissonRandom]] deps = ["Random"] @@ -1210,9 +1210,9 @@ version = "0.2.4" [[deps.PreallocationTools]] deps = ["Adapt", "ArrayInterfaceCore", "ForwardDiff", "LabelledArrays"] -git-tree-sha1 = "ae8a080dfc68e5615654591d8db5d53ac382353e" +git-tree-sha1 = "77266c25ab9d48e31ef167eae936e8f6fa0e4754" uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" -version = "0.3.1" +version = "0.3.2" [[deps.Preferences]] deps = ["TOML"] @@ -1378,9 +1378,9 @@ version = "0.6.32" [[deps.SciMLBase]] deps = ["ArrayInterfaceCore", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "RecipesBase", "RecursiveArrayTools", "StaticArrays", "Statistics", "Tables", "TreeViews"] -git-tree-sha1 = "b0e2399e5294543a19bf2ad9ea4ba3bed18ad19e" +git-tree-sha1 = "56eea0b53a1bda5fb7747e0a0795b911d724955e" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "1.39.0" +version = "1.41.1" [[deps.Scratch]] deps = ["Dates"] @@ -1433,9 +1433,9 @@ uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" [[deps.SparseDiffTools]] deps = ["Adapt", "ArrayInterfaceCore", "ArrayInterfaceStaticArrays", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "Requires", "SparseArrays", "StaticArrays", "VertexSafeGraphs"] -git-tree-sha1 = "f71f06cce80d21e9b93933bc04b1334bb90259ab" +git-tree-sha1 = "32025c052719c6353f22f7c6de7d7b97b7cd2c88" uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" -version = "1.23.0" +version = "1.24.0" [[deps.SpecialFunctions]] deps = ["ChainRulesCore", "IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] @@ -1451,9 +1451,9 @@ version = "0.6.6" [[deps.StaticArrays]] deps = ["LinearAlgebra", "Random", "Statistics"] -git-tree-sha1 = "383a578bdf6e6721f480e749d503ebc8405a0b22" +git-tree-sha1 = "2bbd9f2e40afd197a1379aef05e0d85dba649951" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.4.6" +version = "1.4.7" [[deps.Statistics]] deps = ["LinearAlgebra", "SparseArrays"] @@ -1485,9 +1485,9 @@ version = "6.49.1" [[deps.StrideArraysCore]] deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "ManualMemory", "SIMDTypes", "Static", "ThreadingUtilities"] -git-tree-sha1 = "710ec0f0e9be327b92975d7480ed6759ade69ec3" +git-tree-sha1 = "ba311ca021c7aeed918481de6f540ae6e09099cf" uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" -version = "0.3.9" +version = "0.3.10" [[deps.StringEncodings]] deps = ["Libiconv_jll"] @@ -1497,9 +1497,9 @@ version = "0.3.5" [[deps.StructArrays]] deps = ["Adapt", "DataAPI", "StaticArrays", "Tables"] -git-tree-sha1 = "9abba8f8fb8458e9adf07c8a2377a070674a24f1" +git-tree-sha1 = "9097e2914e179ab1d45330403fae880630acea0b" uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" -version = "0.6.8" +version = "0.6.9" [[deps.SuiteSparse]] deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] @@ -1509,6 +1509,12 @@ uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +[[deps.SurfaceFluxes]] +deps = ["DocStringExtensions", "KernelAbstractions", "RootSolvers", "StaticArrays", "Thermodynamics"] +git-tree-sha1 = "e688b5ce8576e1ff2d33efde2e5fab05db56aba9" +uuid = "49b00bb7-8bd4-4f2b-b78c-51cd0450215f" +version = "0.4.0" + [[deps.TOML]] deps = ["Dates"] uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" @@ -1551,10 +1557,10 @@ uuid = "b718987f-49a8-5099-9789-dcd902bef87d" version = "1.0.1" [[deps.Thermodynamics]] -deps = ["CLIMAParameters", "DocStringExtensions", "KernelAbstractions", "Random", "RootSolvers"] -git-tree-sha1 = "8053195dcd09d699e38ec45f2fac65993a2371ea" +deps = ["DocStringExtensions", "KernelAbstractions", "Random", "RootSolvers"] +git-tree-sha1 = "64d0bb54626e3b898dc73087e39fd89820b6322f" uuid = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" -version = "0.8.0" +version = "0.9.0" [[deps.ThreadingUtilities]] deps = ["ManualMemory"] @@ -1587,10 +1593,10 @@ uuid = "bc48ee85-29a4-5162-ae0b-a64e1601d4bc" version = "0.3.4" [[deps.TurbulenceConvection]] -deps = ["CLIMAParameters", "ClimaCore", "CloudMicrophysics", "Dierckx", "Distributions", "DocStringExtensions", "FastGaussQuadrature", "Flux", "LambertW", "LinearAlgebra", "OperatorFlux", "Random", "StaticArrays", "StatsBase", "StochasticDiffEq", "Thermodynamics", "UnPack"] +deps = ["ClimaCore", "CloudMicrophysics", "Dierckx", "Distributions", "DocStringExtensions", "FastGaussQuadrature", "Flux", "LambertW", "LinearAlgebra", "OperatorFlux", "Random", "StaticArrays", "StatsBase", "StochasticDiffEq", "SurfaceFluxes", "Thermodynamics", "UnPack"] path = ".." uuid = "8e072fc4-01f8-44fb-b9dc-f9336c367e6b" -version = "0.30.0" +version = "0.32.0" [[deps.URIs]] git-tree-sha1 = "97bbe755a53fe859669cd907f2d96aee8d2c1355" diff --git a/docs/Project.toml b/docs/Project.toml index 0791eaab34..febdc1a2f6 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -4,6 +4,7 @@ ArtifactWrappers = "a14bc488-3040-4b00-9dc1-f6467924858a" AtmosphericProfilesLibrary = "86bc3604-9858-485a-bdbe-831ec50de11d" CLIMAParameters = "6eacf6c3-8458-43b9-ae03-caf5306d3d53" ClimaCore = "d414da3d-4745-48bb-8d80-42e94e092884" +CloudMicrophysics = "6a9e3e04-43cd-43ba-94b9-e8782df3c71b" Dierckx = "39dd38d3-220a-591b-8e3c-4c3a8c710a94" DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" @@ -17,6 +18,7 @@ PrettyTables = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" StatsBase = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +SurfaceFluxes = "49b00bb7-8bd4-4f2b-b78c-51cd0450215f" Thermodynamics = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" TurbulenceConvection = "8e072fc4-01f8-44fb-b9dc-f9336c367e6b" UnPack = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" diff --git a/docs/src/API.md b/docs/src/API.md index 094ce274d7..7c43981cb1 100644 --- a/docs/src/API.md +++ b/docs/src/API.md @@ -5,5 +5,5 @@ CurrentModule = TurbulenceConvection ``` ```@docs -TurbulenceConvection.TurbulenceConvectionParameters +TurbulenceConvection.Parameters ``` diff --git a/docs/src/PlotReferenceStates.jl b/docs/src/PlotReferenceStates.jl index 44e4891983..1c933ffc0e 100644 --- a/docs/src/PlotReferenceStates.jl +++ b/docs/src/PlotReferenceStates.jl @@ -17,7 +17,8 @@ function export_ref_profile(case_name::String) TC = TurbulenceConvection namelist = NameList.default_namelist(case_name) FT = Float64 - param_set = create_parameter_set(FT, namelist) + toml_dict = CP.create_toml_dict(FT; dict_type = "alias") + param_set = create_parameter_set(namelist, toml_dict) namelist["meta"]["uuid"] = "01" grid = TC.Grid(FT(namelist["grid"]["dz"]), namelist["grid"]["nz"]) diff --git a/driver/Cases.jl b/driver/Cases.jl index ca3fa4b2a6..aef45a7963 100644 --- a/driver/Cases.jl +++ b/driver/Cases.jl @@ -1,35 +1,24 @@ module Cases -import NCDatasets -const NC = NCDatasets +import NCDatasets as NC +import OrdinaryDiffEq as ODE +import Thermodynamics as TD -import OrdinaryDiffEq -const ODE = OrdinaryDiffEq - -import ClimaCore +import ClimaCore as CC +import ClimaCore.Operators as CCO +import ClimaCore.Geometry as CCG import DocStringExtensions -const CC = ClimaCore -const CCO = CC.Operators -const CCG = CC.Geometry -import AtmosphericProfilesLibrary -const APL = AtmosphericProfilesLibrary +import AtmosphericProfilesLibrary as APL import Dierckx import Statistics import Random import UnPack -import CLIMAParameters -const CP = CLIMAParameters -const APS = CP.AbstractEarthParameterSet - -import Thermodynamics -const TD = Thermodynamics - -import ..TurbulenceConvection -const TC = TurbulenceConvection -const TCP = TC.TurbulenceConvectionParameters +import ..TurbulenceConvection as TC +import ..TurbulenceConvection.Parameters as TCP +const APS = TCP.AbstractTurbulenceConvectionParameters using ..TurbulenceConvection: pyinterp using ..TurbulenceConvection: Grid @@ -224,7 +213,7 @@ initialize_forcing(::AbstractCaseType, forcing, grid::Grid, state, param_set) = ##### function surface_ref_state(::Soares, param_set::APS, namelist) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) Pg = 1000.0 * 100.0 qtg = 5.0e-3 Tg = 300.0 @@ -252,7 +241,7 @@ function initialize_profiles(::Soares, grid::Grid, param_set, state; kwargs...) end function surface_params(case::Soares, surf_ref_state, param_set; Ri_bulk_crit) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) p_f_surf = TD.air_pressure(thermo_params, surf_ref_state) ρ_f_surf = TD.air_density(thermo_params, surf_ref_state) FT = eltype(p_f_surf) @@ -274,7 +263,7 @@ end ##### function surface_ref_state(::Nieuwstadt, param_set::APS, namelist) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) Pg = 1000.0 * 100.0 Tg = 300.0 qtg = 0.0 @@ -301,7 +290,7 @@ function initialize_profiles(::Nieuwstadt, grid::Grid, param_set, state; kwargs. end function surface_params(case::Nieuwstadt, surf_ref_state, param_set; Ri_bulk_crit) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) p_f_surf = TD.air_pressure(thermo_params, surf_ref_state) ρ_f_surf = TD.air_density(thermo_params, surf_ref_state) FT = eltype(p_f_surf) @@ -323,7 +312,7 @@ end function surface_ref_state(::Bomex, param_set::APS, namelist) FT = eltype(param_set) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) Pg::FT = 1.015e5 #Pressure at ground Tg::FT = 300.4 #Temperature at ground qtg::FT = 0.02245#Total water mixing ratio at surface @@ -352,7 +341,7 @@ function initialize_profiles(::Bomex, grid::Grid, param_set, state; kwargs...) end function surface_params(case::Bomex, surf_ref_state, param_set; Ri_bulk_crit) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) p_f_surf = TD.air_pressure(thermo_params, surf_ref_state) ρ_f_surf = TD.air_density(thermo_params, surf_ref_state) FT = eltype(p_f_surf) @@ -371,7 +360,7 @@ function surface_params(case::Bomex, surf_ref_state, param_set; Ri_bulk_crit) end function initialize_forcing(::Bomex, forcing, grid::Grid, state, param_set) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) initialize(forcing, grid, state) prog_gm = TC.center_prog_grid_mean(state) aux_gm = TC.center_aux_grid_mean(state) @@ -406,7 +395,7 @@ end ##### function surface_ref_state(::life_cycle_Tan2018, param_set::APS, namelist) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) Pg = 1.015e5 #Pressure at ground Tg = 300.4 #Temperature at ground qtg = 0.02245 #Total water mixing ratio at surface @@ -435,7 +424,7 @@ function initialize_profiles(::life_cycle_Tan2018, grid::Grid, param_set, state; end function surface_params(case::life_cycle_Tan2018, surf_ref_state, param_set; Ri_bulk_crit) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) p_f_surf = TD.air_pressure(thermo_params, surf_ref_state) ρ_f_surf = TD.air_density(thermo_params, surf_ref_state) FT = eltype(p_f_surf) @@ -460,7 +449,7 @@ function surface_params(case::life_cycle_Tan2018, surf_ref_state, param_set; Ri_ end function initialize_forcing(::life_cycle_Tan2018, forcing, grid::Grid, state, param_set) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) initialize(forcing, grid, state) prog_gm = TC.center_prog_grid_mean(state) aux_gm = TC.center_aux_grid_mean(state) @@ -495,7 +484,7 @@ end ##### function surface_ref_state(::Rico, param_set::APS, namelist) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) molmass_ratio = TCP.molmass_ratio(param_set) Pg = 1.0154e5 #Pressure at ground Tg = 299.8 #Temperature at ground @@ -504,7 +493,7 @@ function surface_ref_state(::Rico, param_set::APS, namelist) return TD.PhaseEquil_pTq(thermo_params, Pg, Tg, qtg) end function initialize_profiles(::Rico, grid::Grid, param_set, state; kwargs...) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) aux_gm = TC.center_aux_grid_mean(state) prog_gm = TC.center_prog_grid_mean(state) aux_tc = TC.center_aux_turbconv(state) @@ -546,7 +535,7 @@ function initialize_profiles(::Rico, grid::Grid, param_set, state; kwargs...) end function surface_params(case::Rico, surf_ref_state, param_set; kwargs...) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) p_f_surf = TD.air_pressure(thermo_params, surf_ref_state) FT = eltype(p_f_surf) @@ -569,7 +558,7 @@ function surface_params(case::Rico, surf_ref_state, param_set; kwargs...) end function initialize_forcing(::Rico, forcing, grid::Grid, state, param_set) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) initialize(forcing, grid, state) prog_gm = TC.center_prog_grid_mean(state) aux_gm = TC.center_aux_grid_mean(state) @@ -601,7 +590,7 @@ end ##### function surface_ref_state(::TRMM_LBA, param_set::APS, namelist) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) molmass_ratio = TCP.molmass_ratio(param_set) Pg = 991.3 * 100 #Pressure at ground Tg = 296.85 # surface values for reference state (RS) which outputs p, ρ @@ -610,7 +599,7 @@ function surface_ref_state(::TRMM_LBA, param_set::APS, namelist) return TD.PhaseEquil_pTq(thermo_params, Pg, Tg, qtg) end function initialize_profiles(::TRMM_LBA, grid::Grid, param_set, state; kwargs...) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) aux_gm = TC.center_aux_grid_mean(state) prog_gm = TC.center_prog_grid_mean(state) ρ_c = prog_gm.ρ @@ -649,7 +638,7 @@ function initialize_profiles(::TRMM_LBA, grid::Grid, param_set, state; kwargs... end function surface_params(case::TRMM_LBA, surf_ref_state, param_set; Ri_bulk_crit) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) p_f_surf = TD.air_pressure(thermo_params, surf_ref_state) FT = eltype(p_f_surf) # zrough = 1.0e-4 # not actually used, but initialized to reasonable value @@ -673,7 +662,7 @@ initialize_radiation(::TRMM_LBA, radiation, grid::Grid, state, param_set) = init ##### function surface_ref_state(::ARM_SGP, param_set::APS, namelist) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) Pg = 970.0 * 100 #Pressure at ground Tg = 299.0 # surface values for reference state (RS) which outputs p, ρ qtg = 15.2 / 1000 #Total water mixing ratio at surface @@ -681,7 +670,7 @@ function surface_ref_state(::ARM_SGP, param_set::APS, namelist) end function initialize_profiles(::ARM_SGP, grid::Grid, param_set, state; kwargs...) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) # ARM_SGP inputs prog_gm = TC.center_prog_grid_mean(state) aux_gm = TC.center_aux_grid_mean(state) @@ -710,7 +699,7 @@ function initialize_profiles(::ARM_SGP, grid::Grid, param_set, state; kwargs...) end function surface_params(case::ARM_SGP, surf_ref_state, param_set; Ri_bulk_crit) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) p_f_surf = TD.air_pressure(thermo_params, surf_ref_state) FT = eltype(p_f_surf) qsurface::FT = 15.2e-3 # kg/kg @@ -737,7 +726,7 @@ function initialize_forcing(::ARM_SGP, forcing, grid::Grid, state, param_set) end function update_forcing(::ARM_SGP, grid, state, t::Real, param_set) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) aux_gm = TC.center_aux_grid_mean(state) ts_gm = TC.center_aux_grid_mean(state).ts prog_gm = TC.center_prog_grid_mean(state) @@ -757,7 +746,7 @@ end ##### function surface_ref_state(::GATE_III, param_set::APS, namelist) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) Pg = 1013.0 * 100 #Pressure at ground Tg = 299.184 # surface values for reference state (RS) which outputs p, ρ qtg = 16.5 / 1000 #Total water mixing ratio at surface @@ -765,7 +754,7 @@ function surface_ref_state(::GATE_III, param_set::APS, namelist) end function initialize_profiles(::GATE_III, grid::Grid, param_set, state; kwargs...) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) FT = TC.float_type(state) aux_gm = TC.center_aux_grid_mean(state) prog_gm = TC.center_prog_grid_mean(state) @@ -787,7 +776,7 @@ function initialize_profiles(::GATE_III, grid::Grid, param_set, state; kwargs... end function surface_params(case::GATE_III, surf_ref_state, param_set; kwargs...) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) p_f_surf = TD.air_pressure(thermo_params, surf_ref_state) FT = eltype(p_f_surf) @@ -819,7 +808,7 @@ end ##### function surface_ref_state(::DYCOMS_RF01, param_set::APS, namelist) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) Pg = 1017.8 * 100.0 qtg = 9.0 / 1000.0 θ_surf = 289.0 @@ -909,7 +898,7 @@ end ##### function surface_ref_state(::DYCOMS_RF02, param_set::APS, namelist) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) Pg = 1017.8 * 100.0 qtg = 9.0 / 1000.0 θ_surf = 288.3 @@ -1000,7 +989,7 @@ end ##### function surface_ref_state(::GABLS, param_set::APS, namelist) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) Pg = 1.0e5 #Pressure at ground, Tg = 265.0 #Temperature at ground, qtg = 0.0 @@ -1056,7 +1045,7 @@ end ##### function surface_ref_state(::DryBubble, param_set::APS, namelist) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) Pg = 1.0e5 #Pressure at ground Tg = 296.0 qtg = 1.0e-5 @@ -1139,7 +1128,7 @@ function les_data_kwarg(::LES_driven_SCM, namelist) end function surface_ref_state(::LES_driven_SCM, param_set::APS, namelist) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) les_filename = namelist["meta"]["lesfile"] Pg, Tg, qtg = NC.Dataset(les_filename, "r") do data diff --git a/driver/Surface.jl b/driver/Surface.jl index 66879e5015..e12e641840 100644 --- a/driver/Surface.jl +++ b/driver/Surface.jl @@ -1,19 +1,16 @@ -import StaticArrays -const SA = StaticArrays - -import SurfaceFluxes -const SF = SurfaceFluxes -const UF = SF.UniversalFunctions +import StaticArrays as SA +import SurfaceFluxes as SF +import SurfaceFluxes.UniversalFunctions as UF function get_surface( surf_params::TC.FixedSurfaceFlux, grid::TC.Grid, state::TC.State, t::Real, - param_set::CP.AbstractEarthParameterSet, + param_set::TCP.AbstractTurbulenceConvectionParameters, ) FT = TC.float_type(state) - surf_flux_params = TC.surface_fluxes_params(param_set) + surf_flux_params = TCP.surface_fluxes_params(param_set) kc_surf = TC.kc_surface(grid) kf_surf = TC.kf_surface(grid) z_sfc = FT(0) @@ -28,11 +25,10 @@ function get_surface( lhf = TC.latent_heat_flux(surf_params, t) Ri_bulk_crit = surf_params.Ri_bulk_crit zrough = surf_params.zrough - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) ts_sfc = TD.PhaseEquil_pTq(thermo_params, p_f_surf, Tsurface, qsurface) ts_in = aux_gm.ts[kc_surf] - universal_func = UF.Businger() scheme = SF.FVScheme() bflux = SF.compute_buoyancy_flux(surf_flux_params, shf, lhf, ts_in, ts_sfc, scheme) @@ -59,7 +55,7 @@ function get_surface( else SF.Fluxes{FT}(; kwargs...) end - result = SF.surface_conditions(surf_flux_params, sc, universal_func, scheme) + result = SF.surface_conditions(surf_flux_params, sc, scheme) return TC.SurfaceBase{FT}(; shf = shf, lhf = lhf, @@ -83,10 +79,10 @@ function get_surface( grid::TC.Grid, state::TC.State, t::Real, - param_set::CP.AbstractEarthParameterSet, + param_set::TCP.AbstractTurbulenceConvectionParameters, ) FT = TC.float_type(state) - surf_flux_params = TC.surface_fluxes_params(param_set) + surf_flux_params = TCP.surface_fluxes_params(param_set) kc_surf = TC.kc_surface(grid) kf_surf = TC.kf_surface(grid) aux_gm_f = TC.face_aux_grid_mean(state) @@ -100,9 +96,8 @@ function get_surface( cm = surf_params.cm(zc_surf) ch = surf_params.ch(zc_surf) Ri_bulk_crit = surf_params.Ri_bulk_crit - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) - universal_func = UF.Businger() scheme = SF.FVScheme() z_sfc = FT(0) z_in = grid.zc[kc_surf].z @@ -115,7 +110,7 @@ function get_surface( vals_sfc = SF.SurfaceValues(z_sfc, u_sfc, ts_sfc) vals_int = SF.InteriorValues(z_in, u_in, ts_in) sc = SF.Coefficients{FT}(state_in = vals_int, state_sfc = vals_sfc, Cd = cm, Ch = ch, z0m = zrough, z0b = zrough) - result = SF.surface_conditions(surf_flux_params, sc, universal_func, scheme) + result = SF.surface_conditions(surf_flux_params, sc, scheme) lhf = result.lhf shf = result.shf @@ -144,9 +139,9 @@ function get_surface( grid::TC.Grid, state::TC.State, t::Real, - param_set::CP.AbstractEarthParameterSet, + param_set::TCP.AbstractTurbulenceConvectionParameters, ) - surf_flux_params = TC.surface_fluxes_params(param_set) + surf_flux_params = TCP.surface_fluxes_params(param_set) kc_surf = TC.kc_surface(grid) kf_surf = TC.kf_surface(grid) FT = TC.float_type(state) @@ -161,9 +156,8 @@ function get_surface( qsurface = TC.surface_q_tot(surf_params, t) zrough = surf_params.zrough Ri_bulk_crit = surf_params.Ri_bulk_crit - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) - universal_func = UF.Businger() scheme = SF.FVScheme() ts_sfc = TD.PhaseEquil_pTq(thermo_params, p_f_surf, Tsurface, qsurface) ts_in = ts_gm[kc_surf] @@ -175,7 +169,7 @@ function get_surface( vals_sfc = SF.SurfaceValues(z_sfc, u_sfc, ts_sfc) vals_int = SF.InteriorValues(z_in, u_in, ts_in) sc = SF.ValuesOnly{FT}(state_in = vals_int, state_sfc = vals_sfc, z0m = zrough, z0b = zrough) - result = SF.surface_conditions(surf_flux_params, sc, universal_func, scheme) + result = SF.surface_conditions(surf_flux_params, sc, scheme) lhf = result.lhf shf = result.shf zi = TC.get_inversion(grid, state, param_set, Ri_bulk_crit) diff --git a/driver/common_spaces.jl b/driver/common_spaces.jl index 04b110c7e2..6834f4719b 100644 --- a/driver/common_spaces.jl +++ b/driver/common_spaces.jl @@ -82,7 +82,7 @@ function get_spaces(namelist, param_set, FT) center_space, face_space, svpc_space = if namelist["config"] == "sphere" h_elem = 1 quad = CC.Spaces.Quadratures.GLL{2}() - horizontal_mesh = cubed_sphere_mesh(; radius = FT(CP.Planet.planet_radius(param_set)), h_elem) + horizontal_mesh = cubed_sphere_mesh(; radius = FT(TCP.planet_radius(param_set)), h_elem) h_space = make_horizontal_space(horizontal_mesh, quad) (; z_stretch, z_max, z_elem) = construct_mesh(namelist; FT = FT) center_space, face_space, svpc_space = make_hybrid_spaces(h_space, z_max, z_elem, z_stretch) diff --git a/driver/compute_diagnostics.jl b/driver/compute_diagnostics.jl index 8791f132ba..0a9f0de7fe 100644 --- a/driver/compute_diagnostics.jl +++ b/driver/compute_diagnostics.jl @@ -6,9 +6,9 @@ import ClimaCore const CC = ClimaCore const CCO = CC.Operators -import CLIMAParameters -const CP = CLIMAParameters -const APS = CP.AbstractEarthParameterSet +import CLIMAParameters as CP +import TurbulenceConvection.Parameters as TCP +const APS = TCP.AbstractTurbulenceConvectionParameters """ Purely diagnostic fields for the host model """ diagnostics(state, fl) = getproperty(state, TC.field_loc(fl)) @@ -110,7 +110,7 @@ function compute_diagnostics!( t::Real, calibrate_io::Bool, ) where {D <: CC.Fields.FieldVector} - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) FT = TC.float_type(state) N_up = TC.n_updrafts(edmf) aux_gm = TC.center_aux_grid_mean(state) @@ -319,7 +319,7 @@ function compute_diagnostics!( diag_tc_svpc.env_iwp[cent] = sum(ρ_c .* aux_en.q_ice .* aux_en.area) #TODO - change to rain rate that depends on rain model choice - ρ_cloud_liq = CP.Planet.ρ_cloud_liq(param_set) + ρ_cloud_liq = TCP.ρ_cloud_liq(param_set) if (precip_model isa TC.Clima0M) f = (aux_en.qt_tendency_precip_formation .+ aux_bulk.qt_tendency_precip_formation) .* ρ_c ./ ρ_cloud_liq .* diff --git a/driver/dycore.jl b/driver/dycore.jl index 872968ef1d..99594b1022 100644 --- a/driver/dycore.jl +++ b/driver/dycore.jl @@ -1,23 +1,15 @@ import UnPack -import LinearAlgebra +import LinearAlgebra as LA import LinearAlgebra: × -import TurbulenceConvection -const TC = TurbulenceConvection -const TCP = TC.TurbulenceConvectionParameters +import TurbulenceConvection as TC +import TurbulenceConvection.Parameters as TCP +import Thermodynamics as TD +import ClimaCore as CC +import ClimaCore.Geometry as CCG +import OrdinaryDiffEq as ODE -import Thermodynamics -const TD = Thermodynamics - -import ClimaCore -const CC = ClimaCore -const CCG = CC.Geometry - -import OrdinaryDiffEq -const ODE = OrdinaryDiffEq - -import CLIMAParameters -const APS = CLIMAParameters.AbstractEarthParameterSet +import CLIMAParameters as CP include(joinpath(@__DIR__, "dycore_variables.jl")) @@ -64,7 +56,7 @@ function compute_ref_state!( param_set::PS; ts_g, ) where {PS} - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) FT = TC.float_type(p_c) kf_surf = TC.kf_surface(grid) qtg = TD.total_specific_humidity(thermo_params, ts_g) @@ -86,7 +78,7 @@ function compute_ref_state!( ts = TD.PhaseEquil_phq(thermo_params, p_, h, qtg) R_m = TD.gas_constant_air(thermo_params, ts) T = TD.air_temperature(thermo_params, ts) - return -FT(TCP.grav(thermo_params)) / (T * R_m) + return -FT(TCP.grav(param_set)) / (T * R_m) end # Perform the integration @@ -119,7 +111,7 @@ end function set_thermo_state_peq!(state, grid, moisture_model, param_set) Ic = CCO.InterpolateF2C() - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) ts_gm = TC.center_aux_grid_mean(state).ts prog_gm = TC.center_prog_grid_mean(state) prog_gm_f = TC.face_prog_grid_mean(state) @@ -128,7 +120,7 @@ function set_thermo_state_peq!(state, grid, moisture_model, param_set) p_c = aux_gm.p ρ_c = prog_gm.ρ C123 = CCG.Covariant123Vector - @. aux_gm.e_kin = LinearAlgebra.norm_sqr(C123(prog_gm_uₕ) + C123(Ic(prog_gm_f.w))) / 2 + @. aux_gm.e_kin = LA.norm_sqr(C123(prog_gm_uₕ) + C123(Ic(prog_gm_f.w))) / 2 @inbounds for k in TC.real_center_indices(grid) thermo_args = if moisture_model isa TC.EquilibriumMoisture @@ -165,7 +157,7 @@ function set_thermo_state_pθq!(state, grid, moisture_model, param_set) end function set_grid_mean_from_thermo_state!(param_set, state, grid) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) Ic = CCO.InterpolateF2C() ts_gm = TC.center_aux_grid_mean(state).ts prog_gm = TC.center_prog_grid_mean(state) @@ -178,7 +170,7 @@ function set_grid_mean_from_thermo_state!(param_set, state, grid) ρ_c * TD.total_energy( thermo_params, ts_gm, - LinearAlgebra.norm_sqr(C123(prog_gm_uₕ) + C123(Ic(prog_gm_f.w))) / 2, + LA.norm_sqr(C123(prog_gm_uₕ) + C123(Ic(prog_gm_f.w))) / 2, TC.geopotential(param_set, grid.zc.z), ) @. prog_gm.ρq_tot = ρ_c * aux_gm.q_tot @@ -187,7 +179,7 @@ function set_grid_mean_from_thermo_state!(param_set, state, grid) end function assign_thermo_aux!(state, grid, moisture_model, param_set) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) aux_gm = TC.center_aux_grid_mean(state) prog_gm = TC.center_prog_grid_mean(state) ts_gm = TC.center_aux_grid_mean(state).ts @@ -230,7 +222,7 @@ function ∑tendencies!(tendencies::FV, prog::FV, params::NT, t::Real) where {NT UnPack.@unpack edmf, precip_model, param_set, case = params UnPack.@unpack surf_params, radiation, forcing, aux, TS = params - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) tends_face = tendencies.face tends_cent = tendencies.cent parent(tends_face) .= 0 @@ -293,7 +285,7 @@ function compute_gm_tendencies!( force::Cases.ForcingBase, param_set::APS, ) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) Ic = CCO.InterpolateF2C() R_d = TCP.R_d(param_set) T_0 = TCP.T_0(param_set) diff --git a/driver/dycore_variables.jl b/driver/dycore_variables.jl index 8687c95314..300badf5ce 100644 --- a/driver/dycore_variables.jl +++ b/driver/dycore_variables.jl @@ -2,13 +2,10 @@ ##### Fields ##### -import TurbulenceConvection -const TC = TurbulenceConvection - -import ClimaCore +import TurbulenceConvection as TC +import ClimaCore as CC +import ClimaCore.Geometry as CCG import ClimaCore.Geometry: ⊗ -const CC = ClimaCore -const CCG = CC.Geometry ##### Auxiliary fields diff --git a/driver/initial_conditions.jl b/driver/initial_conditions.jl index 061c4e6947..b61892fe8b 100644 --- a/driver/initial_conditions.jl +++ b/driver/initial_conditions.jl @@ -1,14 +1,11 @@ -import TurbulenceConvection -const TC = TurbulenceConvection +import TurbulenceConvection as TC +import TurbulenceConvection.Parameters as TCP +const APS = TCP.AbstractTurbulenceConvectionParameters -import CLIMAParameters -const APS = CLIMAParameters.AbstractEarthParameterSet - -import Thermodynamics -const TD = Thermodynamics +import Thermodynamics as TD function initialize_edmf(edmf::TC.EDMFModel, grid::TC.Grid, state::TC.State, surf_params, param_set::APS, t::Real, case) - thermo_params = TC.thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) initialize_covariance(edmf, grid, state) aux_gm = TC.center_aux_grid_mean(state) ts_gm = aux_gm.ts diff --git a/driver/main.jl b/driver/main.jl index 34fe365dd4..6ffd9dc59b 100644 --- a/driver/main.jl +++ b/driver/main.jl @@ -8,20 +8,16 @@ import JSON import ArgParse import TurbulenceConvection -import CloudMicrophysics -const CM = CloudMicrophysics -const CMNe = CloudMicrophysics.MicrophysicsNonEq -const CM0 = CloudMicrophysics.Microphysics0M -const CM1 = CloudMicrophysics.Microphysics1M - -import ClimaCore -const CC = ClimaCore +import CloudMicrophysics as CM +import CloudMicrophysics.MicrophysicsNonEq as CMNe +import CloudMicrophysics.Microphysics0M as CM0 +import CloudMicrophysics.Microphysics1M as CM1 + +import ClimaCore as CC import SciMLBase -import OrdinaryDiffEq -const ODE = OrdinaryDiffEq -import StochasticDiffEq -const SDE = StochasticDiffEq +import OrdinaryDiffEq as ODE +import StochasticDiffEq as SDE import StaticArrays: SVector const tc_dir = pkgdir(TurbulenceConvection) @@ -89,7 +85,11 @@ function Simulation1d(namelist) # This is used for testing Duals FTD = namelist["test_duals"] ? typeof(ForwardDiff.Dual{Nothing}(1.0, 0.0)) : Float64 - param_set = create_parameter_set(FTD, namelist) + toml_dict = CP.create_toml_dict(FT; dict_type = "alias") + # TODO: the namelist should override whatever + # we need to override for calibration + + param_set = create_parameter_set(namelist, toml_dict, FTD) skip_io = namelist["stats_io"]["skip"] calibrate_io = namelist["stats_io"]["calibrate_io"] diff --git a/driver/parameter_set.jl b/driver/parameter_set.jl index 9c68e19b87..e4475b0802 100644 --- a/driver/parameter_set.jl +++ b/driver/parameter_set.jl @@ -1,79 +1,63 @@ -import TurbulenceConvection -import CLIMAParameters -const CP = CLIMAParameters +import TurbulenceConvection as TC +import CLIMAParameters as CP +import CloudMicrophysics as CM +import SurfaceFluxes as SF +import SurfaceFluxes.UniversalFunctions as UF +import Thermodynamics as TD +import TurbulenceConvection.Parameters as TCP -struct ThermodynamicsParameters{NT} <: CP.AbstractEarthParameterSet - nt::NT -end -struct MicrophysicsParameters{NT} <: CP.AbstractEarthParameterSet - nt::NT -end -CLIMAParameters.Planet.MSLP(ps::ThermodynamicsParameters) = ps.nt.MSLP +#! format: off +function create_parameter_set(namelist, toml_dict_default::CP.AbstractTOMLDict, FTD = CP.float_type(toml_dict_default)) + FT = CP.float_type(toml_dict_default) + override_file = "override_dict.toml" + open(override_file, "w") do io + println(io, "[mean_sea_level_pressure]") + println(io, "alias = \"MSLP\"") + println(io, "value = 100000.0") + println(io, "type = \"float\"") + end + toml_dict = CP.create_toml_dict(FT; override_file, dict_type="alias") + isfile(override_file) && rm(override_file; force=true) -struct SurfaceFluxesParameters{NT} <: CP.AbstractEarthParameterSet - nt::NT -end + aliases = string.(fieldnames(TD.Parameters.ThermodynamicsParameters)) + param_pairs = CP.get_parameter_values!(toml_dict, aliases, "Thermodynamics") + thermo_params = TD.Parameters.ThermodynamicsParameters{FTD}(; param_pairs...) + # logfilepath = joinpath(@__DIR__, "logfilepath_$FT.toml") + # CP.log_parameter_information(toml_dict, logfilepath) + TP = typeof(thermo_params) -struct EarthParameterSet{FT, TP, MP, SFP, NT} <: CP.AbstractEarthParameterSet - thermo_params::TP - microphys_params::MP - surf_flux_params::SFP - nt::NT -end + aliases = string.(fieldnames(CM.Parameters.CloudMicrophysicsParameters)) + aliases = setdiff(aliases, ["thermo_params"]) + pairs = CP.get_parameter_values!(toml_dict, aliases, "CloudMicrophysics") + microphys_params = CM.Parameters.CloudMicrophysicsParameters{FTD, TP}(; + pairs..., + thermo_params, + ) + MP = typeof(microphys_params) -EarthParameterSet{FT}(args...) where {FT} = EarthParameterSet{FT, typeof.(args)...}(args...) + aliases = ["Pr_0_Businger", "a_m_Businger", "a_h_Businger"] + pairs = CP.get_parameter_values!(toml_dict, aliases, "UniversalFunctions") + pairs = (; pairs...) # convert to NamedTuple + pairs = (; Pr_0 = pairs.Pr_0_Businger, a_m = pairs.a_m_Businger, a_h = pairs.a_h_Businger) + ufp = UF.BusingerParams{FTD}(; pairs...) + UFP = typeof(ufp) -Base.eltype(::EarthParameterSet{FT}) where {FT} = FT + pairs = CP.get_parameter_values!(toml_dict, ["von_karman_const"], "SurfaceFluxesParameters") + surf_flux_params = SF.Parameters.SurfaceFluxesParameters{FTD, UFP, TP}(; pairs..., ufp, thermo_params) -CLIMAParameters.Planet.MSLP(ps::EarthParameterSet) = ps.nt.MSLP -# microphysics parameters -CP.Atmos.Microphysics_0M.τ_precip(ps::MicrophysicsParameters) = ps.nt.τ_precip -CP.Atmos.Microphysics.τ_cond_evap(ps::MicrophysicsParameters) = ps.nt.τ_cond_evap -CP.Atmos.Microphysics.τ_sub_dep(ps::MicrophysicsParameters) = ps.nt.τ_sub_dep -CP.Atmos.Microphysics.τ_acnv_rai(ps::MicrophysicsParameters) = ps.nt.τ_acnv_rai -CP.Atmos.Microphysics.τ_acnv_sno(ps::MicrophysicsParameters) = ps.nt.τ_acnv_sno -CP.Atmos.Microphysics.q_liq_threshold(ps::MicrophysicsParameters) = ps.nt.q_liq_threshold -CP.Atmos.Microphysics.q_ice_threshold(ps::MicrophysicsParameters) = ps.nt.q_ice_threshold -CP.Atmos.Microphysics.microph_scaling(ps::MicrophysicsParameters) = ps.nt.microph_scaling -CP.Atmos.Microphysics.microph_scaling_dep_sub(ps::MicrophysicsParameters) = ps.nt.microph_scaling_dep_sub -CP.Atmos.Microphysics.microph_scaling_melt(ps::MicrophysicsParameters) = ps.nt.microph_scaling_melt -CP.Atmos.Microphysics.E_liq_rai(ps::MicrophysicsParameters) = ps.nt.E_liq_rai -CP.Atmos.Microphysics.E_liq_sno(ps::MicrophysicsParameters) = ps.nt.E_liq_sno -CP.Atmos.Microphysics.E_ice_rai(ps::MicrophysicsParameters) = ps.nt.E_ice_rai -CP.Atmos.Microphysics.E_ice_sno(ps::MicrophysicsParameters) = ps.nt.E_ice_sno -CP.Atmos.Microphysics.E_rai_sno(ps::MicrophysicsParameters) = ps.nt.E_rai_sno + aliases = [ + "microph_scaling_dep_sub", + "microph_scaling_melt", + "Omega", + "planet_radius"] + pairs = CP.get_parameter_values!(toml_dict, aliases, "TurbulenceConvection") -#! format: off -function create_parameter_set(::Type{FT}, namelist) where {FT} + # TODO: add microph_scaling to toml_dict + microph_scaling = TC.parse_namelist(namelist, "microphysics", "microph_scaling"; default = 1.0) + push!(pairs, Pair(:microph_scaling, microph_scaling)) - TC = TurbulenceConvection - MSLP_kwarg = (; - MSLP = 100000.0, # or grab from, e.g., namelist[""][...] - ) - nt = (; - MSLP_kwarg..., - τ_precip = TC.parse_namelist(namelist, "microphysics", "τ_precip"; default = 1000.0), - τ_cond_evap = TC.parse_namelist(namelist, "microphysics", "τ_cond_evap"; default = 10.0), - τ_sub_dep = TC.parse_namelist(namelist, "microphysics", "τ_sub_dep"; default = 10.0), - τ_acnv_rai = TC.parse_namelist(namelist, "microphysics", "τ_acnv_rai"; default = 2500.0), - τ_acnv_sno = TC.parse_namelist(namelist, "microphysics", "τ_acnv_sno"; default = 100.0), - q_liq_threshold = TC.parse_namelist(namelist, "microphysics", "q_liq_threshold"; default = 0.5e-3), - q_ice_threshold = TC.parse_namelist(namelist, "microphysics", "q_ice_threshold"; default = 1e-6), - microph_scaling = TC.parse_namelist(namelist, "microphysics", "microph_scaling"; default = 1.0), - microph_scaling_dep_sub = TC.parse_namelist(namelist, "microphysics", "microph_scaling_dep_sub"; default = 1.0), - microph_scaling_melt = TC.parse_namelist(namelist, "microphysics", "microph_scaling_melt"; default = 1.0), - E_liq_rai = TC.parse_namelist(namelist, "microphysics", "E_liq_rai"; default = 0.8), - E_liq_sno = TC.parse_namelist(namelist, "microphysics", "E_liq_sno"; default = 0.1), - E_ice_rai = TC.parse_namelist(namelist, "microphysics", "E_ice_rai"; default = 1.0), - E_ice_sno = TC.parse_namelist(namelist, "microphysics", "E_ice_sno"; default = 0.1), - E_rai_sno = TC.parse_namelist(namelist, "microphysics", "E_rai_sno"; default = 1.0), - ) - param_set = EarthParameterSet{FT}( - ThermodynamicsParameters((;MSLP_kwarg...)), - MicrophysicsParameters((;nt...)), - SurfaceFluxesParameters((;MSLP_kwarg...)), - nt - ) + SFP = typeof(surf_flux_params) + param_set = TCP.TurbulenceConvectionParameters{FTD, MP, SFP}(; pairs..., microphys_params, surf_flux_params) if !isbits(param_set) @warn "The parameter set SHOULD be isbits in order to be stack-allocated." end diff --git a/integration_tests/Manifest.toml b/integration_tests/Manifest.toml index 15ba602b0c..b4bd8835f0 100644 --- a/integration_tests/Manifest.toml +++ b/integration_tests/Manifest.toml @@ -37,15 +37,15 @@ version = "0.2.0" [[deps.ArrayInterface]] deps = ["ArrayInterfaceCore", "Compat", "IfElse", "LinearAlgebra", "Static"] -git-tree-sha1 = "ec8a5e8528995f2cec48c53eb834ab0d58f8bd99" +git-tree-sha1 = "8dade591a24870ab163e2dd13900c2085e0f805c" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "6.0.14" +version = "6.0.16" [[deps.ArrayInterfaceCore]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "d0f59ebfe8d3ea2799fb3fb88742d69978e5843e" +git-tree-sha1 = "d618d3cf75e8ed5064670e939289698ecf426c7f" uuid = "30b0a656-2188-435a-8636-2ec0e6a096e2" -version = "0.1.10" +version = "0.1.12" [[deps.ArrayInterfaceGPUArrays]] deps = ["Adapt", "ArrayInterfaceCore", "GPUArrays", "LinearAlgebra"] @@ -67,9 +67,9 @@ version = "0.1.2" [[deps.ArrayLayouts]] deps = ["FillArrays", "LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "c23473c60476e62579c077534b9643ec400f792b" +git-tree-sha1 = "26c659b14c4dc109b6b9c3398e4455eebc523814" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "0.8.6" +version = "0.8.8" [[deps.ArtifactWrappers]] deps = ["DocStringExtensions", "Downloads", "Pkg"] @@ -97,15 +97,15 @@ uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" [[deps.BitTwiddlingConvenienceFunctions]] deps = ["Static"] -git-tree-sha1 = "28bbdbf0354959db89358d1d79d421ff31ef0b5e" +git-tree-sha1 = "eaee37f76339077f86679787a71990c4e465477f" uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" -version = "0.1.3" +version = "0.1.4" [[deps.BlockArrays]] deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra"] -git-tree-sha1 = "ef9b5e561eb814962541c0021eef2e30238d65ba" +git-tree-sha1 = "6bf9cdd29d7f0fb7a1a342026d5cefbdb61e25fb" uuid = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" -version = "0.16.17" +version = "0.16.18" [[deps.Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -132,15 +132,15 @@ version = "0.6.0" [[deps.CPUSummary]] deps = ["CpuId", "IfElse", "Static"] -git-tree-sha1 = "0eaf4aedad5ccc3e39481db55d72973f856dc564" +git-tree-sha1 = "b1a532a582dd18b34543366322d390e1560d40a9" uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" -version = "0.1.22" +version = "0.1.23" [[deps.CUDA]] deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CompilerSupportLibraries_jll", "ExprTools", "GPUArrays", "GPUCompiler", "LLVM", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "SpecialFunctions", "TimerOutputs"] -git-tree-sha1 = "925a16b909fdae16920c1319feadecffb6695b9d" +git-tree-sha1 = "e4e5ece72fa2f108fb20c3c5538a5fa9ef3d668a" uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "3.10.1" +version = "3.11.0" [[deps.Cairo_jll]] deps = ["Artifacts", "Bzip2_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Pkg", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] @@ -161,9 +161,9 @@ version = "0.3.10" [[deps.ChainRules]] deps = ["ChainRulesCore", "Compat", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "Statistics"] -git-tree-sha1 = "34e265b1b0049896430625ce1638b2719c783c6b" +git-tree-sha1 = "68938888dad80c4da1db4e7e3c4405c13d0afd13" uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "1.35.2" +version = "1.35.3" [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra", "SparseArrays"] @@ -197,15 +197,15 @@ version = "0.10.5" [[deps.CloseOpenIntervals]] deps = ["ArrayInterface", "Static"] -git-tree-sha1 = "eb61d6b97041496058245821e3bb7eba2b2cf4db" +git-tree-sha1 = "16cfdcff2db5e6e6b365ae3689b8694741f00a43" uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" -version = "0.1.8" +version = "0.1.9" [[deps.CloudMicrophysics]] -deps = ["CLIMAParameters", "DocStringExtensions", "SpecialFunctions", "Thermodynamics"] -git-tree-sha1 = "d021353409b220ee550840572916804a8a0b5b7a" +deps = ["DocStringExtensions", "SpecialFunctions", "Thermodynamics"] +git-tree-sha1 = "c41c1f6802c17db58ab5d0fcf989ea78b30738c3" uuid = "6a9e3e04-43cd-43ba-94b9-e8782df3c71b" -version = "0.5.1" +version = "0.6.0" [[deps.CodeTracking]] deps = ["InteractiveUtils", "UUIDs"] @@ -221,9 +221,9 @@ version = "3.18.0" [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] -git-tree-sha1 = "0f4e115f6f34bbe43c19751c90a38b2f380637b9" +git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" -version = "0.11.3" +version = "0.11.4" [[deps.ColorVectorSpace]] deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "SpecialFunctions", "Statistics", "TensorCore"] @@ -294,9 +294,9 @@ version = "4.1.1" [[deps.Cthulhu]] deps = ["CodeTracking", "FoldingTrees", "InteractiveUtils", "Preferences", "REPL", "UUIDs", "Unicode"] -git-tree-sha1 = "25043156fa4357d14e376b3de0daa12fe840e92b" +git-tree-sha1 = "9d624af5302ad6ff97b588dcb7bf93f7830daf7a" uuid = "f68482b8-f384-11e8-15f7-abe071a5a75f" -version = "2.6.1" +version = "2.6.2" [[deps.CubedSphere]] deps = ["Elliptic", "Printf", "Rotations", "TaylorSeries", "Test"] @@ -348,15 +348,15 @@ version = "0.1.0+0" [[deps.DiffEqBase]] deps = ["ArrayInterfaceCore", "ChainRulesCore", "DataStructures", "Distributions", "DocStringExtensions", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "LinearAlgebra", "Logging", "MuladdMacro", "NonlinearSolve", "Parameters", "Printf", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "Setfield", "SparseArrays", "StaticArrays", "Statistics", "ZygoteRules"] -git-tree-sha1 = "1c94897dfd3738ebb625fe582334733097485cbb" +git-tree-sha1 = "528d97ef168b36e1a90d667e6611be24759aa1ba" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.89.2" +version = "6.90.0" [[deps.DiffEqJump]] deps = ["ArrayInterfaceCore", "DataStructures", "DiffEqBase", "DocStringExtensions", "FunctionWrappers", "Graphs", "LinearAlgebra", "Markdown", "PoissonRandom", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "StaticArrays", "TreeViews", "UnPack"] -git-tree-sha1 = "08e1f6a916dafd14e731d40e6c28633a2aaae512" +git-tree-sha1 = "926f5d9345f0ebfcdd88f03beafef9b7c198dd0d" uuid = "c894b116-72e5-5b58-be3c-e6d8d4ac2b12" -version = "8.5.0" +version = "8.6.0" [[deps.DiffEqNoiseProcess]] deps = ["DiffEqBase", "Distributions", "GPUArrays", "LinearAlgebra", "Markdown", "Optim", "PoissonRandom", "QuadGK", "Random", "Random123", "RandomNumbers", "RecipesBase", "RecursiveArrayTools", "ResettableStacks", "SciMLBase", "StaticArrays", "Statistics"] @@ -586,9 +586,9 @@ version = "8.3.2" [[deps.GPUCompiler]] deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "TimerOutputs", "UUIDs"] -git-tree-sha1 = "d8c5999631e1dc18d767883f621639c838f8e632" +git-tree-sha1 = "21b5d9da260afa6a8638ba2aaa0edbbb671c37bd" uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" -version = "0.15.2" +version = "0.16.0" [[deps.GR]] deps = ["Base64", "DelimitedFiles", "GR_jll", "HTTP", "JSON", "Libdl", "LinearAlgebra", "Pkg", "Printf", "Random", "RelocatableFolders", "Serialization", "Sockets", "Test", "UUIDs"] @@ -674,9 +674,9 @@ version = "2.8.1+1" [[deps.HostCPUFeatures]] deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] -git-tree-sha1 = "18be5268cf415b5e27f34980ed25a7d34261aa83" +git-tree-sha1 = "b7b88a4716ac33fe31d6556c02fc60017594343c" uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" -version = "0.1.7" +version = "0.1.8" [[deps.HypergeometricFunctions]] deps = ["DualNumbers", "LinearAlgebra", "SpecialFunctions", "Test"] @@ -861,9 +861,9 @@ version = "0.15.15" [[deps.LayoutPointers]] deps = ["ArrayInterface", "ArrayInterfaceOffsetArrays", "ArrayInterfaceStaticArrays", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static"] -git-tree-sha1 = "a575de5a424a395217930fea6d0934ea853d0158" +git-tree-sha1 = "b67e749fb35530979839e7b4b606a97105fe4f1c" uuid = "10f19ff3-798f-405d-979b-55457f8fc047" -version = "0.1.9" +version = "0.1.10" [[deps.LazyArtifacts]] deps = ["Artifacts", "Pkg"] @@ -1063,10 +1063,10 @@ uuid = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" version = "4.5.1" [[deps.NNlib]] -deps = ["Adapt", "ChainRulesCore", "Compat", "LinearAlgebra", "Pkg", "Requires", "Statistics"] -git-tree-sha1 = "f89de462a7bc3243f95834e75751d70b3a33e59d" +deps = ["Adapt", "ChainRulesCore", "LinearAlgebra", "Pkg", "Requires", "Statistics"] +git-tree-sha1 = "a0331452b4cfd5e53ee2325376794aea47364d5a" uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" -version = "0.8.5" +version = "0.8.7" [[deps.NNlibCUDA]] deps = ["CUDA", "LinearAlgebra", "NNlib", "Random", "Statistics"] @@ -1096,9 +1096,9 @@ version = "0.3.20" [[deps.OffsetArrays]] deps = ["Adapt"] -git-tree-sha1 = "b4975062de00106132d0b01b5962c09f7db7d880" +git-tree-sha1 = "ec2e30596282d722f018ae784b7f44f3b88065e4" uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.12.5" +version = "1.12.6" [[deps.Ogg_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1156,10 +1156,10 @@ uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" version = "1.4.1" [[deps.OrdinaryDiffEq]] -deps = ["Adapt", "ArrayInterface", "ArrayInterfaceGPUArrays", "ArrayInterfaceStaticArrays", "DataStructures", "DiffEqBase", "DocStringExtensions", "ExponentialUtilities", "FastClosures", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "Logging", "LoopVectorization", "MacroTools", "MuladdMacro", "NLsolve", "NonlinearSolve", "Polyester", "PreallocationTools", "RecursiveArrayTools", "Reexport", "SciMLBase", "SparseArrays", "SparseDiffTools", "StaticArrays", "UnPack"] -git-tree-sha1 = "bb91a8d749dc48bee6f3b54ca798c9a83c034790" +deps = ["Adapt", "ArrayInterface", "ArrayInterfaceGPUArrays", "ArrayInterfaceStaticArrays", "DataStructures", "DiffEqBase", "DocStringExtensions", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "Logging", "LoopVectorization", "MacroTools", "MuladdMacro", "NLsolve", "NonlinearSolve", "Polyester", "PreallocationTools", "RecursiveArrayTools", "Reexport", "SciMLBase", "SparseArrays", "SparseDiffTools", "StaticArrays", "UnPack"] +git-tree-sha1 = "36c40402ad1d467dd2267fef3ab96f686356626e" uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -version = "6.14.2" +version = "6.15.0" [[deps.PCRE_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1181,9 +1181,9 @@ version = "0.12.3" [[deps.Parsers]] deps = ["Dates"] -git-tree-sha1 = "1285416549ccfcdf0c50d4997a94331e88d68413" +git-tree-sha1 = "0044b23da09b5608b4ecacb4e5e6c6332f833a7e" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "2.3.1" +version = "2.3.2" [[deps.Pixman_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -1209,9 +1209,9 @@ version = "1.2.0" [[deps.Plots]] deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "GeometryBasics", "JSON", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "Unzip"] -git-tree-sha1 = "9e42de869561d6bdf8602c57ec557d43538a92f0" +git-tree-sha1 = "2402dffcbc5bb1631fb4f10cb5c3698acdce29ea" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.29.1" +version = "1.30.1" [[deps.PoissonRandom]] deps = ["Random"] @@ -1239,9 +1239,9 @@ version = "0.2.4" [[deps.PreallocationTools]] deps = ["Adapt", "ArrayInterfaceCore", "ForwardDiff", "LabelledArrays"] -git-tree-sha1 = "ae8a080dfc68e5615654591d8db5d53ac382353e" +git-tree-sha1 = "77266c25ab9d48e31ef167eae936e8f6fa0e4754" uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" -version = "0.3.1" +version = "0.3.2" [[deps.Preferences]] deps = ["TOML"] @@ -1429,9 +1429,9 @@ version = "0.6.32" [[deps.SciMLBase]] deps = ["ArrayInterfaceCore", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "RecipesBase", "RecursiveArrayTools", "StaticArrays", "Statistics", "Tables", "TreeViews"] -git-tree-sha1 = "b0e2399e5294543a19bf2ad9ea4ba3bed18ad19e" +git-tree-sha1 = "56eea0b53a1bda5fb7747e0a0795b911d724955e" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "1.39.0" +version = "1.41.1" [[deps.Scratch]] deps = ["Dates"] @@ -1496,9 +1496,9 @@ uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" [[deps.SparseDiffTools]] deps = ["Adapt", "ArrayInterfaceCore", "ArrayInterfaceStaticArrays", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "Requires", "SparseArrays", "StaticArrays", "VertexSafeGraphs"] -git-tree-sha1 = "f71f06cce80d21e9b93933bc04b1334bb90259ab" +git-tree-sha1 = "32025c052719c6353f22f7c6de7d7b97b7cd2c88" uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" -version = "1.23.0" +version = "1.24.0" [[deps.SpecialFunctions]] deps = ["ChainRulesCore", "IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] @@ -1514,9 +1514,9 @@ version = "0.6.6" [[deps.StaticArrays]] deps = ["LinearAlgebra", "Random", "Statistics"] -git-tree-sha1 = "383a578bdf6e6721f480e749d503ebc8405a0b22" +git-tree-sha1 = "2bbd9f2e40afd197a1379aef05e0d85dba649951" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.4.6" +version = "1.4.7" [[deps.Statistics]] deps = ["LinearAlgebra", "SparseArrays"] @@ -1548,9 +1548,9 @@ version = "6.49.1" [[deps.StrideArraysCore]] deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "ManualMemory", "SIMDTypes", "Static", "ThreadingUtilities"] -git-tree-sha1 = "710ec0f0e9be327b92975d7480ed6759ade69ec3" +git-tree-sha1 = "ba311ca021c7aeed918481de6f540ae6e09099cf" uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" -version = "0.3.9" +version = "0.3.10" [[deps.StringEncodings]] deps = ["Libiconv_jll"] @@ -1560,9 +1560,9 @@ version = "0.3.5" [[deps.StructArrays]] deps = ["Adapt", "DataAPI", "StaticArrays", "Tables"] -git-tree-sha1 = "9abba8f8fb8458e9adf07c8a2377a070674a24f1" +git-tree-sha1 = "9097e2914e179ab1d45330403fae880630acea0b" uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" -version = "0.6.8" +version = "0.6.9" [[deps.SuiteSparse]] deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] @@ -1573,10 +1573,10 @@ deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" [[deps.SurfaceFluxes]] -deps = ["CLIMAParameters", "DocStringExtensions", "KernelAbstractions", "RootSolvers", "StaticArrays", "Thermodynamics"] -git-tree-sha1 = "94f62d36e6711845297f9dcb04d79e955b747532" +deps = ["DocStringExtensions", "KernelAbstractions", "RootSolvers", "StaticArrays", "Thermodynamics"] +git-tree-sha1 = "e688b5ce8576e1ff2d33efde2e5fab05db56aba9" uuid = "49b00bb7-8bd4-4f2b-b78c-51cd0450215f" -version = "0.3.2" +version = "0.4.0" [[deps.TOML]] deps = ["Dates"] @@ -1626,10 +1626,10 @@ uuid = "b718987f-49a8-5099-9789-dcd902bef87d" version = "1.0.1" [[deps.Thermodynamics]] -deps = ["CLIMAParameters", "DocStringExtensions", "KernelAbstractions", "Random", "RootSolvers"] -git-tree-sha1 = "8053195dcd09d699e38ec45f2fac65993a2371ea" +deps = ["DocStringExtensions", "KernelAbstractions", "Random", "RootSolvers"] +git-tree-sha1 = "64d0bb54626e3b898dc73087e39fd89820b6322f" uuid = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" -version = "0.8.0" +version = "0.9.0" [[deps.ThreadingUtilities]] deps = ["ManualMemory"] @@ -1662,10 +1662,10 @@ uuid = "bc48ee85-29a4-5162-ae0b-a64e1601d4bc" version = "0.3.4" [[deps.TurbulenceConvection]] -deps = ["CLIMAParameters", "ClimaCore", "CloudMicrophysics", "Dierckx", "Distributions", "DocStringExtensions", "FastGaussQuadrature", "Flux", "LambertW", "LinearAlgebra", "OperatorFlux", "Random", "StaticArrays", "StatsBase", "StochasticDiffEq", "Thermodynamics", "UnPack"] +deps = ["ClimaCore", "CloudMicrophysics", "Dierckx", "Distributions", "DocStringExtensions", "FastGaussQuadrature", "Flux", "LambertW", "LinearAlgebra", "OperatorFlux", "Random", "StaticArrays", "StatsBase", "StochasticDiffEq", "SurfaceFluxes", "Thermodynamics", "UnPack"] path = ".." uuid = "8e072fc4-01f8-44fb-b9dc-f9336c367e6b" -version = "0.30.0" +version = "0.32.0" [[deps.URIs]] git-tree-sha1 = "97bbe755a53fe859669cd907f2d96aee8d2c1355" diff --git a/integration_tests/Project.toml b/integration_tests/Project.toml index e5e605e614..5fe4c5b811 100644 --- a/integration_tests/Project.toml +++ b/integration_tests/Project.toml @@ -50,10 +50,10 @@ ArtifactWrappers = "0.1" AtmosphericProfilesLibrary = "0.1" CLIMAParameters = "0.4, 0.5, 0.6" ClimaCore = "0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.10" -CloudMicrophysics = "0.5" +CloudMicrophysics = "0.6" Dierckx = "0.5" Distributions = "0.25" -DocStringExtensions = "0.8" +DocStringExtensions = "0.8, 0.9" FastGaussQuadrature = "0.4" Flux = "0.12, 0.13" Glob = "1.3" @@ -70,9 +70,8 @@ SciMLBase = "1" StaticArrays = "1.2" StatsBase = "0.33" StochasticDiffEq = "6.41" -SurfaceFluxes = "0.3" TerminalLoggers = "0.1" -Thermodynamics = "0.7.1, 0.8" +Thermodynamics = "0.9" UnPack = "1.0" julia = "1.5" diff --git a/perf/Manifest.toml b/perf/Manifest.toml index adeae1211c..5c3e94bce6 100644 --- a/perf/Manifest.toml +++ b/perf/Manifest.toml @@ -43,9 +43,9 @@ version = "6.0.16" [[deps.ArrayInterfaceCore]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "7ec9c9e30db6167ec8a38ca2d1bbd40179a9014f" +git-tree-sha1 = "d618d3cf75e8ed5064670e939289698ecf426c7f" uuid = "30b0a656-2188-435a-8636-2ec0e6a096e2" -version = "0.1.11" +version = "0.1.12" [[deps.ArrayInterfaceGPUArrays]] deps = ["Adapt", "ArrayInterfaceCore", "GPUArrays", "LinearAlgebra"] @@ -67,9 +67,9 @@ version = "0.1.2" [[deps.ArrayLayouts]] deps = ["FillArrays", "LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "ce5666a4081cfb66035a1a46e45a34ce889bac26" +git-tree-sha1 = "26c659b14c4dc109b6b9c3398e4455eebc523814" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "0.8.7" +version = "0.8.8" [[deps.ArtifactWrappers]] deps = ["DocStringExtensions", "Downloads", "Pkg"] @@ -167,9 +167,9 @@ version = "0.3.10" [[deps.ChainRules]] deps = ["ChainRulesCore", "Compat", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "Statistics"] -git-tree-sha1 = "34e265b1b0049896430625ce1638b2719c783c6b" +git-tree-sha1 = "68938888dad80c4da1db4e7e3c4405c13d0afd13" uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "1.35.2" +version = "1.35.3" [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra", "SparseArrays"] @@ -203,15 +203,15 @@ version = "0.10.5" [[deps.CloseOpenIntervals]] deps = ["ArrayInterface", "Static"] -git-tree-sha1 = "eb61d6b97041496058245821e3bb7eba2b2cf4db" +git-tree-sha1 = "16cfdcff2db5e6e6b365ae3689b8694741f00a43" uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" -version = "0.1.8" +version = "0.1.9" [[deps.CloudMicrophysics]] -deps = ["CLIMAParameters", "DocStringExtensions", "SpecialFunctions", "Thermodynamics"] -git-tree-sha1 = "d021353409b220ee550840572916804a8a0b5b7a" +deps = ["DocStringExtensions", "SpecialFunctions", "Thermodynamics"] +git-tree-sha1 = "c41c1f6802c17db58ab5d0fcf989ea78b30738c3" uuid = "6a9e3e04-43cd-43ba-94b9-e8782df3c71b" -version = "0.5.1" +version = "0.6.0" [[deps.CodeTracking]] deps = ["InteractiveUtils", "UUIDs"] @@ -354,9 +354,9 @@ version = "0.1.0+0" [[deps.DiffEqBase]] deps = ["ArrayInterfaceCore", "ChainRulesCore", "DataStructures", "Distributions", "DocStringExtensions", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "LinearAlgebra", "Logging", "MuladdMacro", "NonlinearSolve", "Parameters", "Printf", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "Setfield", "SparseArrays", "StaticArrays", "Statistics", "ZygoteRules"] -git-tree-sha1 = "610fa40ea973af34ddbf3c99f2328980dd2f998a" +git-tree-sha1 = "528d97ef168b36e1a90d667e6611be24759aa1ba" uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.89.6" +version = "6.90.0" [[deps.DiffEqJump]] deps = ["ArrayInterfaceCore", "DataStructures", "DiffEqBase", "DocStringExtensions", "FunctionWrappers", "Graphs", "LinearAlgebra", "Markdown", "PoissonRandom", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "StaticArrays", "TreeViews", "UnPack"] @@ -1216,9 +1216,9 @@ version = "1.2.0" [[deps.Plots]] deps = ["Base64", "Contour", "Dates", "Downloads", "FFMPEG", "FixedPointNumbers", "GR", "GeometryBasics", "JSON", "Latexify", "LinearAlgebra", "Measures", "NaNMath", "Pkg", "PlotThemes", "PlotUtils", "Printf", "REPL", "Random", "RecipesBase", "RecipesPipeline", "Reexport", "Requires", "Scratch", "Showoff", "SparseArrays", "Statistics", "StatsBase", "UUIDs", "UnicodeFun", "Unzip"] -git-tree-sha1 = "0b727ac13565a2b665cc78db579e0093b869034e" +git-tree-sha1 = "2402dffcbc5bb1631fb4f10cb5c3698acdce29ea" uuid = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" -version = "1.30.0" +version = "1.30.1" [[deps.PoissonRandom]] deps = ["Random"] @@ -1246,9 +1246,9 @@ version = "0.2.4" [[deps.PreallocationTools]] deps = ["Adapt", "ArrayInterfaceCore", "ForwardDiff", "LabelledArrays"] -git-tree-sha1 = "ae8a080dfc68e5615654591d8db5d53ac382353e" +git-tree-sha1 = "77266c25ab9d48e31ef167eae936e8f6fa0e4754" uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" -version = "0.3.1" +version = "0.3.2" [[deps.Preferences]] deps = ["TOML"] @@ -1441,9 +1441,9 @@ version = "0.6.32" [[deps.SciMLBase]] deps = ["ArrayInterfaceCore", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "RecipesBase", "RecursiveArrayTools", "StaticArrays", "Statistics", "Tables", "TreeViews"] -git-tree-sha1 = "6d95acba9c9c897f8c06e6d9575ec67c6ce4cb7b" +git-tree-sha1 = "56eea0b53a1bda5fb7747e0a0795b911d724955e" uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "1.40.1" +version = "1.41.1" [[deps.Scratch]] deps = ["Dates"] @@ -1572,9 +1572,9 @@ version = "0.3.5" [[deps.StructArrays]] deps = ["Adapt", "DataAPI", "StaticArrays", "Tables"] -git-tree-sha1 = "9abba8f8fb8458e9adf07c8a2377a070674a24f1" +git-tree-sha1 = "9097e2914e179ab1d45330403fae880630acea0b" uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" -version = "0.6.8" +version = "0.6.9" [[deps.SuiteSparse]] deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] @@ -1585,10 +1585,10 @@ deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" [[deps.SurfaceFluxes]] -deps = ["CLIMAParameters", "DocStringExtensions", "KernelAbstractions", "RootSolvers", "StaticArrays", "Thermodynamics"] -git-tree-sha1 = "94f62d36e6711845297f9dcb04d79e955b747532" +deps = ["DocStringExtensions", "KernelAbstractions", "RootSolvers", "StaticArrays", "Thermodynamics"] +git-tree-sha1 = "e688b5ce8576e1ff2d33efde2e5fab05db56aba9" uuid = "49b00bb7-8bd4-4f2b-b78c-51cd0450215f" -version = "0.3.2" +version = "0.4.0" [[deps.TOML]] deps = ["Dates"] @@ -1638,10 +1638,10 @@ uuid = "b718987f-49a8-5099-9789-dcd902bef87d" version = "1.0.1" [[deps.Thermodynamics]] -deps = ["CLIMAParameters", "DocStringExtensions", "KernelAbstractions", "Random", "RootSolvers"] -git-tree-sha1 = "8053195dcd09d699e38ec45f2fac65993a2371ea" +deps = ["DocStringExtensions", "KernelAbstractions", "Random", "RootSolvers"] +git-tree-sha1 = "64d0bb54626e3b898dc73087e39fd89820b6322f" uuid = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c" -version = "0.8.0" +version = "0.9.0" [[deps.ThreadingUtilities]] deps = ["ManualMemory"] @@ -1674,10 +1674,10 @@ uuid = "bc48ee85-29a4-5162-ae0b-a64e1601d4bc" version = "0.3.4" [[deps.TurbulenceConvection]] -deps = ["CLIMAParameters", "ClimaCore", "CloudMicrophysics", "Dierckx", "Distributions", "DocStringExtensions", "FastGaussQuadrature", "Flux", "LambertW", "LinearAlgebra", "OperatorFlux", "Random", "StaticArrays", "StatsBase", "StochasticDiffEq", "Thermodynamics", "UnPack"] +deps = ["ClimaCore", "CloudMicrophysics", "Dierckx", "Distributions", "DocStringExtensions", "FastGaussQuadrature", "Flux", "LambertW", "LinearAlgebra", "OperatorFlux", "Random", "StaticArrays", "StatsBase", "StochasticDiffEq", "SurfaceFluxes", "Thermodynamics", "UnPack"] path = ".." uuid = "8e072fc4-01f8-44fb-b9dc-f9336c367e6b" -version = "0.31.0" +version = "0.32.0" [[deps.URIs]] git-tree-sha1 = "97bbe755a53fe859669cd907f2d96aee8d2c1355" diff --git a/perf/Project.toml b/perf/Project.toml index 5ed9db9d13..3f4a5d17b9 100644 --- a/perf/Project.toml +++ b/perf/Project.toml @@ -46,7 +46,7 @@ AtmosphericProfilesLibrary = "0.1" BenchmarkTools = "1.3.1" CLIMAParameters = "0.4, 0.5, 0.6" ClimaCore = "0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.10" -CloudMicrophysics = "0.5" +CloudMicrophysics = "0.6" Dierckx = "0.5" DiffEqNoiseProcess = "5.9.0" Distributions = "0.25" @@ -67,9 +67,9 @@ SnoopCompileCore = "2.9.0" StaticArrays = "1.2" StatsBase = "0.33" StochasticDiffEq = "6.41" -SurfaceFluxes = "0.3" +SurfaceFluxes = "0.4" TerminalLoggers = "0.1" -Thermodynamics = "0.7.1, 0.8" +Thermodynamics = "0.9" UnPack = "1.0" [extras] diff --git a/post_processing/mse_tables.jl b/post_processing/mse_tables.jl index 89bc346087..101f69b66b 100644 --- a/post_processing/mse_tables.jl +++ b/post_processing/mse_tables.jl @@ -5,165 +5,165 @@ all_best_mse = OrderedCollections.OrderedDict() # all_best_mse["ARM_SGP"] = OrderedCollections.OrderedDict() -all_best_mse["ARM_SGP"]["qt_mean"] = 0.09756258226297129 -all_best_mse["ARM_SGP"]["updraft_area"] = 318.1996833346926 -all_best_mse["ARM_SGP"]["updraft_w"] = 97.492489977804 -all_best_mse["ARM_SGP"]["updraft_qt"] = 24.36817628450726 -all_best_mse["ARM_SGP"]["updraft_thetal"] = 172.04031799694744 +all_best_mse["ARM_SGP"]["qt_mean"] = 0.09700202341916139 +all_best_mse["ARM_SGP"]["updraft_area"] = 318.1722413519013 +all_best_mse["ARM_SGP"]["updraft_w"] = 97.3854000396675 +all_best_mse["ARM_SGP"]["updraft_qt"] = 24.24937294153343 +all_best_mse["ARM_SGP"]["updraft_thetal"] = 172.04009458966587 all_best_mse["ARM_SGP"]["u_mean"] = 1.3235797273549681e-5 -all_best_mse["ARM_SGP"]["tke_mean"] = 495.5568370854378 -all_best_mse["ARM_SGP"]["temperature_mean"] = 0.00021300806289340093 -all_best_mse["ARM_SGP"]["ql_mean"] = 215.67562145184365 +all_best_mse["ARM_SGP"]["tke_mean"] = 494.7452087871371 +all_best_mse["ARM_SGP"]["temperature_mean"] = 0.0002128033733465866 +all_best_mse["ARM_SGP"]["ql_mean"] = 215.27819684570653 all_best_mse["ARM_SGP"]["qi_mean"] = "NA" -all_best_mse["ARM_SGP"]["thetal_mean"] = 0.00017738093891408202 -all_best_mse["ARM_SGP"]["Hvar_mean"] = 2199.6433816169097 -all_best_mse["ARM_SGP"]["QTvar_mean"] = 1420.1899092992767 +all_best_mse["ARM_SGP"]["thetal_mean"] = 0.00017715037224219036 +all_best_mse["ARM_SGP"]["Hvar_mean"] = 1759.5625204957637 +all_best_mse["ARM_SGP"]["QTvar_mean"] = 1163.4509160275395 # all_best_mse["Bomex"] = OrderedCollections.OrderedDict() -all_best_mse["Bomex"]["qt_mean"] = 0.09946750165302629 -all_best_mse["Bomex"]["updraft_area"] = 133.1152594393245 -all_best_mse["Bomex"]["updraft_w"] = 15.602780042652999 -all_best_mse["Bomex"]["updraft_qt"] = 6.7069383145555985 -all_best_mse["Bomex"]["updraft_thetal"] = 69.76148612098946 -all_best_mse["Bomex"]["v_mean"] = 50.81591136483162 -all_best_mse["Bomex"]["u_mean"] = 0.18221180719794014 -all_best_mse["Bomex"]["tke_mean"] = 123.10283023603976 -all_best_mse["Bomex"]["temperature_mean"] = 4.3816981301050355e-5 -all_best_mse["Bomex"]["ql_mean"] = 10.911188991678907 +all_best_mse["Bomex"]["qt_mean"] = 0.09978083195194133 +all_best_mse["Bomex"]["updraft_area"] = 133.03549132262708 +all_best_mse["Bomex"]["updraft_w"] = 16.415956187909163 +all_best_mse["Bomex"]["updraft_qt"] = 6.9530638755664675 +all_best_mse["Bomex"]["updraft_thetal"] = 69.77274541192054 +all_best_mse["Bomex"]["v_mean"] = 50.739727057411386 +all_best_mse["Bomex"]["u_mean"] = 0.18305808234795046 +all_best_mse["Bomex"]["tke_mean"] = 121.6050390994962 +all_best_mse["Bomex"]["temperature_mean"] = 4.399069485882405e-5 +all_best_mse["Bomex"]["ql_mean"] = 12.209927716579832 all_best_mse["Bomex"]["qi_mean"] = "NA" -all_best_mse["Bomex"]["thetal_mean"] = 4.5254383309356367e-5 -all_best_mse["Bomex"]["Hvar_mean"] = 340.50605946257883 -all_best_mse["Bomex"]["QTvar_mean"] = 128.4921604148588 +all_best_mse["Bomex"]["thetal_mean"] = 4.55954512114629e-5 +all_best_mse["Bomex"]["Hvar_mean"] = 28530.61937205877 +all_best_mse["Bomex"]["QTvar_mean"] = 9197.916223572807 # all_best_mse["DryBubble"] = OrderedCollections.OrderedDict() -all_best_mse["DryBubble"]["updraft_area"] = 4.0165805458365694e-5 -all_best_mse["DryBubble"]["updraft_w"] = 0.00010240109899068736 -all_best_mse["DryBubble"]["updraft_thetal"] = 4.164608942632973e-12 -all_best_mse["DryBubble"]["u_mean"] = 0.00030804995052066057 -all_best_mse["DryBubble"]["tke_mean"] = 0.002546372221619717 -all_best_mse["DryBubble"]["temperature_mean"] = 2.4449452679748183e-11 -all_best_mse["DryBubble"]["thetal_mean"] = 2.1290244867013327e-11 -all_best_mse["DryBubble"]["Hvar_mean"] = 0.011894959440448627 +all_best_mse["DryBubble"]["updraft_area"] = 2.3038074204024133e-5 +all_best_mse["DryBubble"]["updraft_w"] = 0.00015474967380929753 +all_best_mse["DryBubble"]["updraft_thetal"] = 1.2452033158221222e-12 +all_best_mse["DryBubble"]["u_mean"] = 0.00040842574023267135 +all_best_mse["DryBubble"]["tke_mean"] = 0.004573198279298923 +all_best_mse["DryBubble"]["temperature_mean"] = 3.4754223853828376e-11 +all_best_mse["DryBubble"]["thetal_mean"] = 3.0431942633475594e-11 +all_best_mse["DryBubble"]["Hvar_mean"] = 0.016828569882721283 # all_best_mse["DYCOMS_RF01"] = OrderedCollections.OrderedDict() -all_best_mse["DYCOMS_RF01"]["qt_mean"] = 0.035455774402662725 -all_best_mse["DYCOMS_RF01"]["ql_mean"] = 0.48637579177552015 -all_best_mse["DYCOMS_RF01"]["updraft_area"] = 28.975943643228423 -all_best_mse["DYCOMS_RF01"]["updraft_w"] = 4.498217949716326 -all_best_mse["DYCOMS_RF01"]["updraft_qt"] = 2.341799878098273 -all_best_mse["DYCOMS_RF01"]["updraft_thetal"] = 46.21582234355034 -all_best_mse["DYCOMS_RF01"]["v_mean"] = 0.0024323664475808314 -all_best_mse["DYCOMS_RF01"]["u_mean"] = 0.08661211073952227 -all_best_mse["DYCOMS_RF01"]["tke_mean"] = 21.216112733744893 -all_best_mse["DYCOMS_RF01"]["temperature_mean"] = 2.431178118418464e-5 -all_best_mse["DYCOMS_RF01"]["thetal_mean"] = 2.406750509042185e-5 -all_best_mse["DYCOMS_RF01"]["Hvar_mean"] = 1289.250342174179 -all_best_mse["DYCOMS_RF01"]["QTvar_mean"] = 513.5913311384272 +all_best_mse["DYCOMS_RF01"]["qt_mean"] = 0.03553157945860938 +all_best_mse["DYCOMS_RF01"]["ql_mean"] = 0.4929646533747989 +all_best_mse["DYCOMS_RF01"]["updraft_area"] = 28.956234548754427 +all_best_mse["DYCOMS_RF01"]["updraft_w"] = 4.489710782452828 +all_best_mse["DYCOMS_RF01"]["updraft_qt"] = 2.3422845549628426 +all_best_mse["DYCOMS_RF01"]["updraft_thetal"] = 46.21582403014837 +all_best_mse["DYCOMS_RF01"]["v_mean"] = 0.0024471133805655048 +all_best_mse["DYCOMS_RF01"]["u_mean"] = 0.08666398056375693 +all_best_mse["DYCOMS_RF01"]["tke_mean"] = 21.314198913540196 +all_best_mse["DYCOMS_RF01"]["temperature_mean"] = 2.425900786846577e-5 +all_best_mse["DYCOMS_RF01"]["thetal_mean"] = 2.401625381202238e-5 +all_best_mse["DYCOMS_RF01"]["Hvar_mean"] = 1289.269466450278 +all_best_mse["DYCOMS_RF01"]["QTvar_mean"] = 513.5884527184134 # all_best_mse["DYCOMS_RF02"] = OrderedCollections.OrderedDict() -all_best_mse["DYCOMS_RF02"]["qt_mean"] = 0.07555315302751793 -all_best_mse["DYCOMS_RF02"]["ql_mean"] = 11.492845872746283 -all_best_mse["DYCOMS_RF02"]["qr_mean"] = 21.20214391296982 -all_best_mse["DYCOMS_RF02"]["updraft_area"] = 26.35975550341043 -all_best_mse["DYCOMS_RF02"]["updraft_w"] = 3.0505851489832096 -all_best_mse["DYCOMS_RF02"]["updraft_qt"] = 5.1138511496163215 -all_best_mse["DYCOMS_RF02"]["updraft_thetal"] = 40.579720101970274 -all_best_mse["DYCOMS_RF02"]["v_mean"] = 42.83792678001851 -all_best_mse["DYCOMS_RF02"]["u_mean"] = 20.283338498252153 -all_best_mse["DYCOMS_RF02"]["tke_mean"] = 27.260768712159983 -all_best_mse["DYCOMS_RF02"]["temperature_mean"] = 8.203096469739479e-5 -all_best_mse["DYCOMS_RF02"]["thetal_mean"] = 9.179902483606501e-5 -all_best_mse["DYCOMS_RF02"]["Hvar_mean"] = 1464.3533076574151 -all_best_mse["DYCOMS_RF02"]["QTvar_mean"] = 523.1327379258494 +all_best_mse["DYCOMS_RF02"]["qt_mean"] = 0.105765113702009 +all_best_mse["DYCOMS_RF02"]["ql_mean"] = 22.532461145492952 +all_best_mse["DYCOMS_RF02"]["qr_mean"] = 11.167159146965872 +all_best_mse["DYCOMS_RF02"]["updraft_area"] = 25.798120062472993 +all_best_mse["DYCOMS_RF02"]["updraft_w"] = 3.6842598541828857 +all_best_mse["DYCOMS_RF02"]["updraft_qt"] = 5.149795921582713 +all_best_mse["DYCOMS_RF02"]["updraft_thetal"] = 40.581592401409566 +all_best_mse["DYCOMS_RF02"]["v_mean"] = 42.85187618028033 +all_best_mse["DYCOMS_RF02"]["u_mean"] = 20.198597797516793 +all_best_mse["DYCOMS_RF02"]["tke_mean"] = 28.338399326157557 +all_best_mse["DYCOMS_RF02"]["temperature_mean"] = 0.0001232724211010603 +all_best_mse["DYCOMS_RF02"]["thetal_mean"] = 0.00014603261096857937 +all_best_mse["DYCOMS_RF02"]["Hvar_mean"] = 1486.649438262433 +all_best_mse["DYCOMS_RF02"]["QTvar_mean"] = 831.6301358793525 # all_best_mse["GABLS"] = OrderedCollections.OrderedDict() -all_best_mse["GABLS"]["updraft_thetal"] = 0.0 -all_best_mse["GABLS"]["v_mean"] = 0.0 -all_best_mse["GABLS"]["u_mean"] = 0.0 -all_best_mse["GABLS"]["tke_mean"] = 0.0 -all_best_mse["GABLS"]["temperature_mean"] = 0.0 -all_best_mse["GABLS"]["thetal_mean"] = 0.0 -all_best_mse["GABLS"]["Hvar_mean"] = 0.0 +all_best_mse["GABLS"]["updraft_thetal"] = 4.038356841482017e-14 +all_best_mse["GABLS"]["v_mean"] = 1.2844495963869259e-9 +all_best_mse["GABLS"]["u_mean"] = 1.6664002134483201e-10 +all_best_mse["GABLS"]["tke_mean"] = 1.717646195601994e-9 +all_best_mse["GABLS"]["temperature_mean"] = 4.0341410970171364e-14 +all_best_mse["GABLS"]["thetal_mean"] = 4.038356841482017e-14 +all_best_mse["GABLS"]["Hvar_mean"] = 1.2548990043958514e-8 # all_best_mse["life_cycle_Tan2018"] = OrderedCollections.OrderedDict() -all_best_mse["life_cycle_Tan2018"]["qt_mean"] = 7.662900260604214e-6 -all_best_mse["life_cycle_Tan2018"]["ql_mean"] = 0.017621699736385197 -all_best_mse["life_cycle_Tan2018"]["updraft_area"] = 0.007744785712200681 -all_best_mse["life_cycle_Tan2018"]["updraft_w"] = 0.005108510259780207 -all_best_mse["life_cycle_Tan2018"]["updraft_qt"] = 0.00304893635730467 -all_best_mse["life_cycle_Tan2018"]["updraft_thetal"] = 1.9457298087386153e-6 -all_best_mse["life_cycle_Tan2018"]["v_mean"] = 0.02597812525069117 -all_best_mse["life_cycle_Tan2018"]["u_mean"] = 3.31378718454326e-5 -all_best_mse["life_cycle_Tan2018"]["tke_mean"] = 0.01600159088399637 -all_best_mse["life_cycle_Tan2018"]["temperature_mean"] = 3.0275834346397373e-9 -all_best_mse["life_cycle_Tan2018"]["thetal_mean"] = 2.9688154479352433e-9 -all_best_mse["life_cycle_Tan2018"]["Hvar_mean"] = 1671.8934424201846 -all_best_mse["life_cycle_Tan2018"]["QTvar_mean"] = 954.5296102549762 +all_best_mse["life_cycle_Tan2018"]["qt_mean"] = 6.599995433005628e-6 +all_best_mse["life_cycle_Tan2018"]["ql_mean"] = 0.0031304378733960723 +all_best_mse["life_cycle_Tan2018"]["updraft_area"] = 0.003886264699862513 +all_best_mse["life_cycle_Tan2018"]["updraft_w"] = 0.0072969107404414315 +all_best_mse["life_cycle_Tan2018"]["updraft_qt"] = 0.00014256029144228837 +all_best_mse["life_cycle_Tan2018"]["updraft_thetal"] = 8.495202661332182e-8 +all_best_mse["life_cycle_Tan2018"]["v_mean"] = 0.024333587578820218 +all_best_mse["life_cycle_Tan2018"]["u_mean"] = 2.358217343803168e-5 +all_best_mse["life_cycle_Tan2018"]["tke_mean"] = 0.009846740181197302 +all_best_mse["life_cycle_Tan2018"]["temperature_mean"] = 2.70724563246799e-9 +all_best_mse["life_cycle_Tan2018"]["thetal_mean"] = 2.6082767732809014e-9 +all_best_mse["life_cycle_Tan2018"]["Hvar_mean"] = 42.368283274996585 +all_best_mse["life_cycle_Tan2018"]["QTvar_mean"] = 25.520406137062814 # all_best_mse["Nieuwstadt"] = OrderedCollections.OrderedDict() -all_best_mse["Nieuwstadt"]["updraft_area"] = 110.98582987887113 -all_best_mse["Nieuwstadt"]["updraft_w"] = 12.021738035163459 -all_best_mse["Nieuwstadt"]["updraft_thetal"] = 117.61126277691048 -all_best_mse["Nieuwstadt"]["u_mean"] = 13.700819191523147 -all_best_mse["Nieuwstadt"]["tke_mean"] = 108.9928616991994 -all_best_mse["Nieuwstadt"]["temperature_mean"] = 5.773246114398599e-5 -all_best_mse["Nieuwstadt"]["thetal_mean"] = 5.430716326898855e-5 -all_best_mse["Nieuwstadt"]["Hvar_mean"] = 663.4855957430158 +all_best_mse["Nieuwstadt"]["updraft_area"] = 111.0115511709332 +all_best_mse["Nieuwstadt"]["updraft_w"] = 12.02108001495304 +all_best_mse["Nieuwstadt"]["updraft_thetal"] = 117.6112481780205 +all_best_mse["Nieuwstadt"]["u_mean"] = 13.700796002736682 +all_best_mse["Nieuwstadt"]["tke_mean"] = 108.98689584274143 +all_best_mse["Nieuwstadt"]["temperature_mean"] = 5.77324171994201e-5 +all_best_mse["Nieuwstadt"]["thetal_mean"] = 5.4307129370935114e-5 +all_best_mse["Nieuwstadt"]["Hvar_mean"] = 664.9274745155124 # all_best_mse["Rico"] = OrderedCollections.OrderedDict() -all_best_mse["Rico"]["qt_mean"] = 2.5369701764246124 -all_best_mse["Rico"]["updraft_area"] = 490.1293730227752 -all_best_mse["Rico"]["updraft_w"] = 116.92142624716095 -all_best_mse["Rico"]["updraft_qt"] = 10.120069032403316 -all_best_mse["Rico"]["updraft_thetal"] = 133.36997527969896 -all_best_mse["Rico"]["v_mean"] = 0.40918820084745844 -all_best_mse["Rico"]["u_mean"] = 0.30890134625952526 -all_best_mse["Rico"]["tke_mean"] = 406.07314075865054 -all_best_mse["Rico"]["temperature_mean"] = 0.0015473648798384042 -all_best_mse["Rico"]["ql_mean"] = 142.52645455474004 +all_best_mse["Rico"]["qt_mean"] = 2.9491093684452117 +all_best_mse["Rico"]["updraft_area"] = 490.9652691946636 +all_best_mse["Rico"]["updraft_w"] = 118.66056347455975 +all_best_mse["Rico"]["updraft_qt"] = 9.85371857300719 +all_best_mse["Rico"]["updraft_thetal"] = 133.35267957605262 +all_best_mse["Rico"]["v_mean"] = 0.35539216557180114 +all_best_mse["Rico"]["u_mean"] = 0.29766424956519877 +all_best_mse["Rico"]["tke_mean"] = 471.99180423113876 +all_best_mse["Rico"]["temperature_mean"] = 0.0015796577824428607 +all_best_mse["Rico"]["ql_mean"] = 156.0900729556627 all_best_mse["Rico"]["qi_mean"] = "NA" -all_best_mse["Rico"]["qr_mean"] = 762.8720847051947 -all_best_mse["Rico"]["thetal_mean"] = 0.0014980809370363226 -all_best_mse["Rico"]["Hvar_mean"] = 69730.1408023085 -all_best_mse["Rico"]["QTvar_mean"] = 10354.256288251903 +all_best_mse["Rico"]["qr_mean"] = 689.9481077217622 +all_best_mse["Rico"]["thetal_mean"] = 0.0015301175775232828 +all_best_mse["Rico"]["Hvar_mean"] = 70989.6386511542 +all_best_mse["Rico"]["QTvar_mean"] = 12322.210104598864 # all_best_mse["Soares"] = OrderedCollections.OrderedDict() -all_best_mse["Soares"]["qt_mean"] = 0.015481205140179125 -all_best_mse["Soares"]["updraft_area"] = 121.73155912491563 -all_best_mse["Soares"]["updraft_w"] = 9.023044732604466 -all_best_mse["Soares"]["updraft_qt"] = 22.987734816349462 -all_best_mse["Soares"]["updraft_thetal"] = 65.7252610746649 -all_best_mse["Soares"]["u_mean"] = 93.81805847312377 -all_best_mse["Soares"]["tke_mean"] = 75.93375596651714 -all_best_mse["Soares"]["temperature_mean"] = 6.505577938616419e-5 -all_best_mse["Soares"]["thetal_mean"] = 5.650592911977741e-5 -all_best_mse["Soares"]["Hvar_mean"] = 566.4479805292707 +all_best_mse["Soares"]["qt_mean"] = 0.014445788046463072 +all_best_mse["Soares"]["updraft_area"] = 119.05819197780724 +all_best_mse["Soares"]["updraft_w"] = 8.971872983584717 +all_best_mse["Soares"]["updraft_qt"] = 22.96121666410169 +all_best_mse["Soares"]["updraft_thetal"] = 65.72527555729178 +all_best_mse["Soares"]["u_mean"] = 93.81775391917968 +all_best_mse["Soares"]["tke_mean"] = 75.95822804959849 +all_best_mse["Soares"]["temperature_mean"] = 6.50721599700583e-5 +all_best_mse["Soares"]["thetal_mean"] = 5.6522364706009525e-5 +all_best_mse["Soares"]["Hvar_mean"] = 569.7730697991093 # all_best_mse["TRMM_LBA"] = OrderedCollections.OrderedDict() -all_best_mse["TRMM_LBA"]["qt_mean"] = 2.8383006943769544 -all_best_mse["TRMM_LBA"]["updraft_area"] = 1438.208722214641 -all_best_mse["TRMM_LBA"]["updraft_w"] = 10124.1720093062 -all_best_mse["TRMM_LBA"]["updraft_qt"] = 268.9783256453229 -all_best_mse["TRMM_LBA"]["updraft_thetal"] = 542.8842560008882 -all_best_mse["TRMM_LBA"]["v_mean"] = 69.13471582692227 -all_best_mse["TRMM_LBA"]["u_mean"] = 29.719524452506448 -all_best_mse["TRMM_LBA"]["tke_mean"] = 74241.86646556517 -all_best_mse["TRMM_LBA"]["temperature_mean"] = 0.0007293574729481323 -all_best_mse["TRMM_LBA"]["ql_mean"] = 191025.22480918275 +all_best_mse["TRMM_LBA"]["qt_mean"] = 3.166974585284606 +all_best_mse["TRMM_LBA"]["updraft_area"] = 1574.325014650026 +all_best_mse["TRMM_LBA"]["updraft_w"] = 9340.702900962855 +all_best_mse["TRMM_LBA"]["updraft_qt"] = 227.73564590366735 +all_best_mse["TRMM_LBA"]["updraft_thetal"] = 542.7572373486537 +all_best_mse["TRMM_LBA"]["v_mean"] = 68.86062456642445 +all_best_mse["TRMM_LBA"]["u_mean"] = 29.725422763989354 +all_best_mse["TRMM_LBA"]["tke_mean"] = 82106.6324948209 +all_best_mse["TRMM_LBA"]["temperature_mean"] = 0.0006405319344933085 +all_best_mse["TRMM_LBA"]["ql_mean"] = 213793.48732887817 all_best_mse["TRMM_LBA"]["qi_mean"] = "NA" all_best_mse["TRMM_LBA"]["qr_mean"] = "NA" all_best_mse["TRMM_LBA"]["qs_mean"] = "NA" -all_best_mse["TRMM_LBA"]["thetal_mean"] = 0.0005265723603477527 -all_best_mse["TRMM_LBA"]["Hvar_mean"] = 484968.6350786404 -all_best_mse["TRMM_LBA"]["QTvar_mean"] = 6162.964283234996 +all_best_mse["TRMM_LBA"]["thetal_mean"] = 0.0004850987808512669 +all_best_mse["TRMM_LBA"]["Hvar_mean"] = 410744.833047701 +all_best_mse["TRMM_LBA"]["QTvar_mean"] = 6211.718066577802 # all_best_mse["LES_driven_SCM"] = OrderedCollections.OrderedDict() -all_best_mse["LES_driven_SCM"]["qt_mean"] = 3.522055189600226 -all_best_mse["LES_driven_SCM"]["v_mean"] = 1.3614856098438384 -all_best_mse["LES_driven_SCM"]["u_mean"] = 0.47261588491838935 -all_best_mse["LES_driven_SCM"]["temperature_mean"] = 0.0014799928036698152 -all_best_mse["LES_driven_SCM"]["ql_mean"] = 36340.05855440698 -all_best_mse["LES_driven_SCM"]["thetal_mean"] = 0.0017219993903054166 +all_best_mse["LES_driven_SCM"]["qt_mean"] = 3.5235137227317543 +all_best_mse["LES_driven_SCM"]["v_mean"] = 1.3614687508176935 +all_best_mse["LES_driven_SCM"]["u_mean"] = 0.4725831076774281 +all_best_mse["LES_driven_SCM"]["temperature_mean"] = 0.0014801463795397207 +all_best_mse["LES_driven_SCM"]["ql_mean"] = 36619.75261341975 +all_best_mse["LES_driven_SCM"]["thetal_mean"] = 0.001722619597075537 # ################################# ################################# diff --git a/src/EDMF_Environment.jl b/src/EDMF_Environment.jl index 0eb100e463..fb10b1f067 100644 --- a/src/EDMF_Environment.jl +++ b/src/EDMF_Environment.jl @@ -8,7 +8,7 @@ function microphysics( param_set::APS, ) FT = float_type(state) - thermo_params = thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) tendencies_pr = center_tendencies_precipitation(state) aux_en = center_aux_environment(state) prog_pr = center_prog_precipitation(state) @@ -74,7 +74,7 @@ function quad_loop(en_thermo::SGSQuadrature, precip_model, vars, param_set, Δt: i_ql, i_qi, i_T, i_cf, i_qt_sat, i_qt_unsat, i_T_sat, i_T_unsat = 1:env_len i_SH_qt, i_Sqt_H, i_SH_H, i_Sqt_qt, i_Sqt, i_SH, i_Sqr, i_Sqs, i_Se_tot = 1:src_len - thermo_params = thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) quadrature_type = en_thermo.quadrature_type quad_order = quadrature_order(en_thermo) χ = en_thermo.a @@ -243,7 +243,7 @@ function microphysics( param_set::APS, ) FT = float_type(state) - thermo_params = thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) aux_en = center_aux_environment(state) prog_pr = center_prog_precipitation(state) prog_gm = center_prog_grid_mean(state) diff --git a/src/EDMF_Precipitation.jl b/src/EDMF_Precipitation.jl index f96910a96b..81245cdb72 100644 --- a/src/EDMF_Precipitation.jl +++ b/src/EDMF_Precipitation.jl @@ -86,8 +86,8 @@ function compute_precipitation_sink_tendencies( param_set::APS, Δt::Real, ) - thermo_params = thermodynamics_params(param_set) - microphys_params = microphysics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) + microphys_params = TCP.microphysics_params(param_set) aux_gm = center_aux_grid_mean(state) aux_tc = center_aux_turbconv(state) prog_gm = center_prog_grid_mean(state) diff --git a/src/EDMF_Updrafts.jl b/src/EDMF_Updrafts.jl index 35a7577904..1125cd296f 100644 --- a/src/EDMF_Updrafts.jl +++ b/src/EDMF_Updrafts.jl @@ -9,7 +9,7 @@ function compute_nonequilibrium_moisture_tendencies!( Δt::Real, param_set::APS, ) - thermo_params = thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) N_up = n_updrafts(edmf) aux_gm = center_aux_grid_mean(state) aux_up = center_aux_updrafts(state) @@ -52,7 +52,7 @@ function compute_precipitation_formation_tendencies( Δt::Real, param_set::APS, ) - thermo_params = thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) FT = float_type(state) N_up = n_updrafts(edmf) prog_gm = center_prog_grid_mean(state) diff --git a/src/EDMF_functions.jl b/src/EDMF_functions.jl index 9ab5df321f..767e01de9c 100755 --- a/src/EDMF_functions.jl +++ b/src/EDMF_functions.jl @@ -258,7 +258,7 @@ function affect_filter!(edmf::EDMFModel, grid::Grid, state::State, param_set::AP end function set_edmf_surface_bc(edmf::EDMFModel, grid::Grid, state::State, surf::SurfaceBase, param_set::APS) - thermo_params = thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) FT = float_type(state) N_up = n_updrafts(edmf) kc_surf = kc_surface(grid) @@ -356,7 +356,7 @@ function θ_surface_bc( i::Int, param_set::APS, )::FT where {FT} - thermo_params = thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) aux_gm = center_aux_grid_mean(state) prog_gm = center_prog_grid_mean(state) ρ_c = prog_gm.ρ diff --git a/src/Parameters.jl b/src/Parameters.jl new file mode 100644 index 0000000000..46d26644fe --- /dev/null +++ b/src/Parameters.jl @@ -0,0 +1,66 @@ +""" + Parameters + +""" +module Parameters + +import Thermodynamics as TD +import SurfaceFluxes as SF +import CloudMicrophysics as CM + +abstract type AbstractTurbulenceConvectionParameters end +const ATCP = AbstractTurbulenceConvectionParameters + +##### +##### TurbulenceConvection parameters +##### + +Base.@kwdef struct TurbulenceConvectionParameters{FT, MP, SFP} <: ATCP + Omega::FT + planet_radius::FT + microph_scaling::FT # TODO: add to CLIMAParameters toml and move to microphysics parameter set? or Clima1M? + microph_scaling_dep_sub::FT # TODO: move to microphysics parameter set? or Clima1M? + microph_scaling_melt::FT # TODO: move to microphysics parameter set? or Clima1M? + microphys_params::MP + surf_flux_params::SFP +end + +thermodynamics_params(ps::ATCP) = CM.Parameters.thermodynamics_params(ps.microphys_params) +surface_fluxes_params(ps::ATCP) = ps.surf_flux_params +microphysics_params(ps::ATCP) = ps.microphys_params + +Base.eltype(::TurbulenceConvectionParameters{FT}) where {FT} = FT +Omega(ps::ATCP) = ps.Omega +planet_radius(ps::ATCP) = ps.planet_radius +microph_scaling(ps::ATCP) = ps.microph_scaling +microph_scaling_dep_sub(ps::ATCP) = ps.microph_scaling_dep_sub +microph_scaling_melt(ps::ATCP) = ps.microph_scaling_melt + +##### +##### Forwarding parameters +##### + +##### Forwarding Thermodynamics.jl + +const TDPS = TD.Parameters.ThermodynamicsParameters +for var in fieldnames(TDPS) + @eval $var(ps::ATCP) = TD.Parameters.$var(thermodynamics_params(ps)) +end + +# derived parameters +molmass_ratio(ps::ATCP) = TD.Parameters.molmass_ratio(thermodynamics_params(ps)) +R_d(ps::ATCP) = TD.Parameters.R_d(thermodynamics_params(ps)) +R_v(ps::ATCP) = TD.Parameters.R_v(thermodynamics_params(ps)) +cp_d(ps::ATCP) = TD.Parameters.cp_d(thermodynamics_params(ps)) +cv_v(ps::ATCP) = TD.Parameters.cv_v(thermodynamics_params(ps)) +cv_l(ps::ATCP) = TD.Parameters.cv_l(thermodynamics_params(ps)) + +##### Forwarding SurfaceFluxes.jl + +von_karman_const(ps::ATCP) = SF.Parameters.von_karman_const(surface_fluxes_params(ps)) + +##### Forwarding CloudMicrophysics.jl + +ρ_cloud_liq(ps::ATCP) = CM.Parameters.ρ_cloud_liq(microphysics_params(ps)) + +end diff --git a/src/TurbulenceConvection.jl b/src/TurbulenceConvection.jl index 5af9f60ce4..5c8cbc084e 100644 --- a/src/TurbulenceConvection.jl +++ b/src/TurbulenceConvection.jl @@ -1,46 +1,37 @@ module TurbulenceConvection -import ClimaCore -import LinearAlgebra +import ClimaCore as CC +import ClimaCore.Geometry as CCG import ClimaCore.Geometry: ⊗ +import ClimaCore.Operators as CCO +import LinearAlgebra as LA import LinearAlgebra: × import DocStringExtensions -import StaticArrays +import StaticArrays as SA import StatsBase import Dierckx import LambertW -import Thermodynamics +import Thermodynamics as TD import Distributions import FastGaussQuadrature -import CloudMicrophysics +import CloudMicrophysics as CM +import CloudMicrophysics.MicrophysicsNonEq as CMNe +import CloudMicrophysics.Microphysics0M as CM0 +import CloudMicrophysics.Microphysics1M as CM1 import UnPack import Random -import StochasticDiffEq +import StochasticDiffEq as SDE import Flux -import OperatorFlux -const OF = OperatorFlux - -const SDE = StochasticDiffEq -const CC = ClimaCore -const CCG = CC.Geometry -const CCO = CC.Operators -const SA = StaticArrays - -const TD = Thermodynamics -const LA = LinearAlgebra - -const CM = CloudMicrophysics -const CMNe = CloudMicrophysics.MicrophysicsNonEq -const CM0 = CloudMicrophysics.Microphysics0M -const CM1 = CloudMicrophysics.Microphysics1M +import OperatorFlux as OF + const liq_type = CM.CommonTypes.LiquidType() const ice_type = CM.CommonTypes.IceType() const rain_type = CM.CommonTypes.RainType() const snow_type = CM.CommonTypes.SnowType() -import CLIMAParameters -const CP = CLIMAParameters -const APS = CP.AbstractEarthParameterSet +include("Parameters.jl") +import .Parameters as TCP +const APS = TCP.AbstractTurbulenceConvectionParameters up_sum(vals::AbstractArray) = reshape(sum(vals; dims = 1), size(vals, 2)) @@ -64,10 +55,6 @@ function parse_namelist(namelist, keys...; default = nothing, valid_options = no return param end -include("TurbulenceConvectionParameters.jl") -import .TurbulenceConvectionParameters -const TCP = TurbulenceConvectionParameters - Base.broadcastable(param_set::APS) = Ref(param_set) #= @@ -160,8 +147,4 @@ include("closures/nondimensional_exchange_functions.jl") include("closures/mixing_length.jl") include("closures/buoyancy_gradients.jl") -thermodynamics_params(ps::APS) = ps.thermo_params -surface_fluxes_params(ps::APS) = ps.surf_flux_params -microphysics_params(ps::APS) = ps.microphys_params - end diff --git a/src/TurbulenceConvectionParameters.jl b/src/TurbulenceConvectionParameters.jl deleted file mode 100644 index 4a2f341e24..0000000000 --- a/src/TurbulenceConvectionParameters.jl +++ /dev/null @@ -1,40 +0,0 @@ -""" - TurbulenceConvectionParameters - -This is a module is an interface to CLIMAParameters.jl. -""" -module TurbulenceConvectionParameters - -import CLIMAParameters -const CP = CLIMAParameters -const APS = CP.AbstractEarthParameterSet - -##### -##### TurbulenceConvection parameters -##### - -cv_l(ps::APS) = CP.Planet.cv_l(ps) -grav(ps::APS) = CP.Planet.grav(ps) - -LH_v0(ps::APS) = CP.Planet.LH_v0(ps) -LH_s0(ps::APS) = CP.Planet.LH_s0(ps) - -microph_scaling(ps::APS) = CP.Atmos.Microphysics.microph_scaling(ps) -microph_scaling_dep_sub(ps::APS) = CP.Atmos.Microphysics.microph_scaling_dep_sub(ps) -microph_scaling_melt(ps::APS) = CP.Atmos.Microphysics.microph_scaling_melt(ps) -molmass_ratio(ps::APS) = CP.Planet.molmass_ratio(ps) - -R_d(ps::APS) = CP.Planet.R_d(ps) -R_v(ps::APS) = CP.Planet.R_v(ps) - -T_freeze(ps::APS) = CP.Planet.T_freeze(ps) - -von_karman_const(ps::APS) = CP.SubgridScale.von_karman_const(ps) - -Omega(ps::APS) = CP.Planet.Omega(ps) -T_0(ps::APS) = CP.Planet.T_0(ps) -cp_v(ps::APS) = CP.Planet.cp_v(ps) -cv_v(ps::APS) = CP.Planet.cv_v(ps) -cp_d(ps::APS) = CP.Planet.cp_d(ps) - -end diff --git a/src/closures/buoyancy_gradients.jl b/src/closures/buoyancy_gradients.jl index ddcc9b8d12..89ec807560 100644 --- a/src/closures/buoyancy_gradients.jl +++ b/src/closures/buoyancy_gradients.jl @@ -14,7 +14,7 @@ function buoyancy_gradients( bg_model::EnvBuoyGrad{FT, EBG}, ) where {FT <: Real, EBG <: AbstractEnvBuoyGradClosure} - thermo_params = thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) g = TCP.grav(param_set) molmass_ratio = TCP.molmass_ratio(param_set) R_d = TCP.R_d(param_set) diff --git a/src/microphysics_coupling.jl b/src/microphysics_coupling.jl index cfdde89923..425d8424a2 100644 --- a/src/microphysics_coupling.jl +++ b/src/microphysics_coupling.jl @@ -3,8 +3,8 @@ Computes the tendencies to qt and θ_liq_ice due to precipitation formation (autoconversion + accretion) """ function noneq_moisture_sources(param_set::APS, area::FT, ρ::FT, Δt::Real, ts) where {FT} - thermo_params = thermodynamics_params(param_set) - microphys_params = microphysics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) + microphys_params = TCP.microphysics_params(param_set) # TODO - when using adaptive timestepping we are limiting the source terms # with the previous timestep Δt ql_tendency = FT(0) @@ -56,9 +56,9 @@ function precipitation_formation( ts, precip_fraction, ) where {FT} - thermo_params = thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) - microphys_params = microphysics_params(param_set) + microphys_params = TCP.microphysics_params(param_set) # TODO - when using adaptive timestepping we are limiting the source terms # with the previous timestep Δt qt_tendency = FT(0) diff --git a/src/thermodynamics.jl b/src/thermodynamics.jl index a618c2b6ba..074ec5c4a0 100644 --- a/src/thermodynamics.jl +++ b/src/thermodynamics.jl @@ -2,13 +2,13 @@ function thermo_state_pθq(param_set::APS, p::FT, θ_liq_ice::FT, q_tot::FT) whe # config = (50, 1e-3, RootSolvers.RegulaFalsiMethod) # config = (50, 1e-3, RootSolvers.NewtonMethodAD) config = () - thermo_params = thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) return TD.PhaseEquil_pθq(thermo_params, p, θ_liq_ice, q_tot, config...) end function thermo_state_pθq(param_set::APS, p::FT, θ_liq_ice::FT, q_tot::FT, q_liq::FT, q_ice::FT) where {FT} config = () q = TD.PhasePartition(q_tot, q_liq, q_ice) - thermo_params = thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) return TD.PhaseNonEquil_pθq(thermo_params, p, θ_liq_ice, q, config...) end @@ -17,27 +17,27 @@ function thermo_state_peq(param_set::APS, p::FT, e_int::FT, q_tot::FT) where {FT # config = (50, 1e-3, RootSolvers.RegulaFalsiMethod) # config = (50, 1e-3, RootSolvers.NewtonMethodAD) config = () - thermo_params = thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) return TD.PhaseEquil_peq(thermo_params, p, e_int, q_tot, config...) end function thermo_state_peq(param_set::APS, p::FT, e_int::FT, q_tot::FT, q_liq::FT, q_ice::FT) where {FT} config = () q = TD.PhasePartition(q_tot, q_liq, q_ice) - thermo_params = thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) return TD.PhaseNonEquil_peq(thermo_params, p, e_int, q, config...) end function thermo_state_phq(param_set::APS, p::FT, h::FT, q_tot::FT) where {FT} config = () - thermo_params = thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) return TD.PhaseEquil_phq(thermo_params, p, h, q_tot, config...) end function thermo_state_phq(param_set::APS, p::FT, h::FT, q_tot::FT, q_liq::FT, q_ice::FT) where {FT} config = () q = TD.PhasePartition(q_tot, q_liq, q_ice) - thermo_params = thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) return TD.PhaseNonEquil_phq(thermo_params, p, h, q, config...) end @@ -49,7 +49,7 @@ end # TODO: move to Thermodynamics.jl function total_enthalpy(param_set::APS, e_tot::FT, ts) where {FT} - thermo_params = thermodynamics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) Rm = TD.gas_constant_air(thermo_params, ts) T = TD.air_temperature(thermo_params, ts) return e_tot + Rm * T diff --git a/src/update_aux.jl b/src/update_aux.jl index 06512da4db..0ee4c743cc 100644 --- a/src/update_aux.jl +++ b/src/update_aux.jl @@ -2,8 +2,8 @@ function update_aux!(edmf::EDMFModel, grid::Grid, state::State, surf::SurfaceBas ##### ##### Unpack common variables ##### - thermo_params = thermodynamics_params(param_set) - microphys_params = microphysics_params(param_set) + thermo_params = TCP.thermodynamics_params(param_set) + microphys_params = TCP.microphysics_params(param_set) N_up = n_updrafts(edmf) kc_surf = kc_surface(grid) kf_surf = kf_surface(grid) @@ -45,10 +45,10 @@ function update_aux!(edmf::EDMFModel, grid::Grid, state::State, surf::SurfaceBas ##### center variables ##### C123 = CCG.Covariant123Vector - @. aux_en.e_kin = LinearAlgebra.norm_sqr(C123(prog_gm_uₕ) + C123(Ic(wvec(aux_en_f.w)))) / 2 + @. aux_en.e_kin = LA.norm_sqr(C123(prog_gm_uₕ) + C123(Ic(wvec(aux_en_f.w)))) / 2 @inbounds for i in 1:N_up - @. aux_up[i].e_kin = LinearAlgebra.norm_sqr(C123(prog_gm_uₕ) + C123(Ic(wvec(aux_up_f[i].w)))) / 2 + @. aux_up[i].e_kin = LA.norm_sqr(C123(prog_gm_uₕ) + C123(Ic(wvec(aux_up_f[i].w)))) / 2 end @inbounds for k in real_center_indices(grid) @@ -339,7 +339,7 @@ function update_aux!(edmf::EDMFModel, grid::Grid, state::State, surf::SurfaceBas Ifuₕ = uₕ_bcs() ∇uvw = CCO.GradientF2C() uvw = @. C123(Ifuₕ(uₕ_gm)) + C123(wvec(w_en)) - @. Shear² = LinearAlgebra.norm_sqr(adjoint(∇uvw(uvw)) * k̂) + @. Shear² = LA.norm_sqr(adjoint(∇uvw(uvw)) * k̂) q_tot_en = aux_en.q_tot θ_liq_ice_en = aux_en.θ_liq_ice diff --git a/test/Project.toml b/test/Project.toml index 9ac590f563..65606d679d 100644 --- a/test/Project.toml +++ b/test/Project.toml @@ -49,10 +49,10 @@ ArtifactWrappers = "0.1" AtmosphericProfilesLibrary = "0.1" CLIMAParameters = "0.4, 0.5, 0.6" ClimaCore = "0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.10" -CloudMicrophysics = "0.5" +CloudMicrophysics = "0.6" Dierckx = "0.5" Distributions = "0.25" -DocStringExtensions = "0.8" +DocStringExtensions = "0.8, 0.9" FastGaussQuadrature = "0.4" Flux = "0.12, 0.13" Glob = "1.3" @@ -69,9 +69,9 @@ SciMLBase = "1" StaticArrays = "1.2" StatsBase = "0.33" StochasticDiffEq = "6.41" -SurfaceFluxes = "0.3" +SurfaceFluxes = "0.4" TerminalLoggers = "0.1" -Thermodynamics = "0.7.1, 0.8" +Thermodynamics = "0.9" UnPack = "1.0" julia = "1.5"