From c30389cb85be7d6d37d8fce2c938fb9f87c89c1b Mon Sep 17 00:00:00 2001 From: Akshay Sridhar Date: Mon, 3 Jun 2024 10:43:00 -0700 Subject: [PATCH] LES exp ClimaAtmos (updated CC to use cartesian gradient evaluations) modified: src/parameterized_tendencies/les_sgs_models/smagorinsky_lilly.jl modified: config/model_configs/les_rico_box.yml modified: post_processing/ci_plots.jl modified: config/model_configs/les_bomex_box.yml Tested BOMEX (1M) + RICO (1M) modified: src/parameterized_tendencies/les_sgs_models/smagorinsky_lilly.jl Clean up before review --- config/default_configs/default_config.yml | 4 + .../box_density_current_test.yml | 18 +- config/model_configs/les_bomex_box.yml | 36 +++ config/model_configs/les_dycoms_box.yml | 36 +++ config/model_configs/les_gabls_box.yml | 26 +++ config/model_configs/les_rico_box.yml | 37 +++ post_processing/ci_plots.jl | 115 +++++++++- restart/bomex/Micro1M_day0.0_Prod.hdf5 | Bin 0 -> 3309640 bytes src/ClimaAtmos.jl | 1 + src/cache/cache.jl | 4 + src/cache/temporary_quantities.jl | 8 + .../les_sgs_models/smagorinsky_lilly.jl | 216 ++++++++++++++++++ .../remaining_tendency.jl | 4 + src/solver/model_getters.jl | 11 + src/solver/type_getters.jl | 1 + src/solver/types.jl | 7 + .../les_closures/smagorinsky_lilly.jl | 63 +++++ toml/bomex_les.toml | 2 + 18 files changed, 581 insertions(+), 8 deletions(-) create mode 100644 config/model_configs/les_bomex_box.yml create mode 100644 config/model_configs/les_dycoms_box.yml create mode 100644 config/model_configs/les_gabls_box.yml create mode 100644 config/model_configs/les_rico_box.yml create mode 100644 restart/bomex/Micro1M_day0.0_Prod.hdf5 create mode 100644 src/parameterized_tendencies/les_sgs_models/smagorinsky_lilly.jl create mode 100644 test/parameterized_tendencies/les_closures/smagorinsky_lilly.jl create mode 100644 toml/bomex_les.toml diff --git a/config/default_configs/default_config.yml b/config/default_configs/default_config.yml index c73e04b369a..4ec00f13755 100644 --- a/config/default_configs/default_config.yml +++ b/config/default_configs/default_config.yml @@ -142,6 +142,10 @@ vert_diff: hyperdiff: help: "Hyperdiffusion [`ClimaHyperdiffusion` (or `true`; default), `none` (or `false`)]" value: "CAM_SE" +smagorinsky_lilly: + value: false +c_smag: + value: 0.2 bubble: help: "Enable bubble correction for more accurate surface areas" value: true diff --git a/config/model_configs/box_density_current_test.yml b/config/model_configs/box_density_current_test.yml index 0c3e346d21d..8dd1a20bde5 100644 --- a/config/model_configs/box_density_current_test.yml +++ b/config/model_configs/box_density_current_test.yml @@ -1,16 +1,22 @@ +job_id: "box_density_current_test" dt_save_state_to_disk: "10secs" initial_condition: "DryDensityCurrentProfile" x_max: 51200.0 z_elem: 45 -dt: "0.1secs" -t_end: "10.0secs" +dt: "0.3secs" +t_end: "1000secs" discrete_hydrostatic_balance: true -y_max: 6400.0 -y_elem: 15 +hyperdiff: "false" +y_max: 51200.0 +y_elem: 45 z_stretch: false x_elem: 45 config: "box" +hyperdiff: "true" z_max: 6400.0 +smagorinsky_lilly: true +c_smag: 0.25 +netcdf_interpolation_num_points: [40, 40, 80] diagnostics: - - short_name: thetaa - period: 10secs + - short_name: [thetaa, wa, ua, ta, va, hfes, rhoa, rv, ha] + period: 30secs diff --git a/config/model_configs/les_bomex_box.yml b/config/model_configs/les_bomex_box.yml new file mode 100644 index 00000000000..44d9dfd1fbe --- /dev/null +++ b/config/model_configs/les_bomex_box.yml @@ -0,0 +1,36 @@ +initial_condition: "Bomex" +edmf_coriolis: "Bomex" +subsidence: "Bomex" +ls_adv: "Bomex" +surface_setup: "Bomex" +moist: "equil" +config: "box" +hyperdiff: "false" +implicit_diffusion: false +precip_model: "1M" +dt_cloud_fraction: "10mins" +ode_algo: "SSPKnoth" +smagorinsky_lilly: true +call_cloud_diagnostics_per_stage: true +c_smag: 0.17 +x_max: 3.2e3 +y_max: 3.2e3 +z_max: 4.5e3 +x_elem: 8 +y_elem: 8 +z_elem: 100 +z_stretch: false +dt: "0.2secs" +output_default_diagnostics: false +t_end: "21600secs" +dt_save_state_to_disk: "30mins" +rayleigh_sponge: true +toml: [toml/bomex_les.toml] +restart_file: "/home/asridhar/ClimaAtmos.jl/restart/bomex/Micro1M_day0.0_Prod.hdf5" +netcdf_interpolation_num_points: [40, 40, 80] +diagnostics: + - short_name: [ts, ta, thetaa, ha, pfull, rhoa, ua, va, wa, hur, hus, cl, clw, cli, hussfc, evspsbl, hfes] + period: 10mins + - short_name: [ts, ta, thetaa, ha, pfull, rhoa, ua, va, wa, hur, hus, cl, clw, cli, hussfc, evspsbl, hfes] + reduction: average + period: 60mins diff --git a/config/model_configs/les_dycoms_box.yml b/config/model_configs/les_dycoms_box.yml new file mode 100644 index 00000000000..837c8e13fd1 --- /dev/null +++ b/config/model_configs/les_dycoms_box.yml @@ -0,0 +1,36 @@ +job_id: "les_dycoms_box" +initial_condition: DYCOMS_RF01 +edmf_coriolis: DYCOMS_RF01 +subsidence: DYCOMS +rad: DYCOMS +surface_setup: DYCOMS_RF01 +moist: "equil" +config: box +hyperdiff: "false" +ode_algo: "SSPKnoth" +precip_model: "1M" +x_max: 500.0 +y_max: 500.0 +z_max: 1.5e3 +x_elem: 4 +y_elem: 4 +z_elem: 300 +z_stretch: false +smagorinsky_lilly: true +tracer_upwinding: third_order +c_smag: 0.15 +dt: "0.05secs" +t_end: "14400secs" +dt_save_state_to_disk: "30mins" +restart_file: "/home/asridhar/Codes/ClimaAtmos.jl/restart/dycoms/day0_1m.hdf5" +#restart_file: "/home/asridhar/Codes/ClimaAtmos.jl/restart/dycoms/resolution_10m_day0.0.hdf5" +dt_cloud_fraction: "10mins" +rayleigh_sponge: true +toml: [toml/dycoms_box_rhoe.toml] +netcdf_interpolation_num_points: [30,30,75] +diagnostics: + - short_name: [ts, ta, thetaa, ha, pfull, rhoa, ua, va, wa, hur, hus, cl, clw, cli, hussfc, evspsbl, hfes] + period: 10mins + - short_name: [ts, ta, thetaa, ha, pfull, rhoa, ua, va, wa, hur, hus, cl, clw, cli, hussfc, evspsbl, hfes] + reduction_time: average + period: 60mins diff --git a/config/model_configs/les_gabls_box.yml b/config/model_configs/les_gabls_box.yml new file mode 100644 index 00000000000..e10e6e870f0 --- /dev/null +++ b/config/model_configs/les_gabls_box.yml @@ -0,0 +1,26 @@ +job_id: "les_gabls_box" +edmf_coriolis: GABLS +initial_condition: GABLS +surface_setup: GABLS +implicit_diffusion: false +moist: "equil" +precip_model: "1M" +config: "box" +hyperdiff: "false" +x_max: 1e3 +y_max: 1e3 +z_max: 500 +x_elem: 5 +y_elem: 5 +z_elem: 10 +z_stretch: false +dt: "0.10secs" +t_end: "100secs" +dt_save_state_to_disk: "30mins" +perturb_initstate: true +netcdf_output_at_levels: true +netcdf_interpolation_num_points: [20, 20, 20] +#restart_file: "restart/gabls/day0.0.hdf5" +diagnostics: + - short_name: [ts, ta, thetaa, ha, pfull, rhoa, ua, va, wa, hur, hus, cl, clw, cli, hussfc, evspsbl] + period: 10secs diff --git a/config/model_configs/les_rico_box.yml b/config/model_configs/les_rico_box.yml new file mode 100644 index 00000000000..1756f832cd8 --- /dev/null +++ b/config/model_configs/les_rico_box.yml @@ -0,0 +1,37 @@ +job_id: les_rico_box +initial_condition: Rico +subsidence: Rico +edmf_coriolis: Rico +ls_adv: Rico +surface_setup: Rico +implicit_diffusion: false +approximate_linear_solve_iters: 2 +moist: equil +hyperdiff: "false" +apply_limiter: false +precip_model: "1M" +config: box +dt_cloud_fraction: "10mins" +ode_algo: "SSPKnoth" +smagorinsky_lilly: true +c_smag: 0.17 +x_max: 4e3 +y_max: 4e3 +x_elem: 10 +y_elem: 10 +z_elem: 150 +z_max: 6e3 +z_stretch: false +rayleigh_sponge: true +dt: "0.20secs" +t_end: 12hours +restart_file: "/home/asridhar/Codes/ClimaAtmos.jl/restart/rico/day0.0.hdf5" +toml: [toml/rico_les.toml] +dt_save_state_to_disk: 30mins +netcdf_interpolation_num_points: [30, 30, 150] +diagnostics: + - short_name: [ts, ta, thetaa, ha, pfull, rhoa, ua, va, wa, hur, hus, husra, cl, clw, cli, hussfc, evspsbl, hfes, pr] + period: 10mins + - short_name: [ts, ta, thetaa, ha, pfull, rhoa, ua, va, wa, hur, hus, husra, cl, clw, cli, hussfc, evspsbl, hfes, pr] + reduction_time: average + period: 60mins diff --git a/post_processing/ci_plots.jl b/post_processing/ci_plots.jl index df2c26072ea..3c38d19776c 100644 --- a/post_processing/ci_plots.jl +++ b/post_processing/ci_plots.jl @@ -42,7 +42,7 @@ import CairoMakie import CairoMakie.Makie import ClimaAnalysis import ClimaAnalysis: Visualize as viz -import ClimaAnalysis: SimDir, slice, read_var, average_xy +import ClimaAnalysis: SimDir, slice, read_var, average_xy, window, average_time import ClimaAnalysis.Utils: kwargs as ca_kwargs import ClimaCoreSpectra: power_spectrum_2d @@ -577,6 +577,7 @@ end function make_plots( ::Val{:box_density_current_test}, + ::Val{:box_rising_thermal_test}, output_paths::Vector{<:AbstractString}, ) simdirs = SimDir.(output_paths) @@ -1065,6 +1066,117 @@ function make_plots(::Aquaplanet1MPlots, output_paths::Vector{<:AbstractString}) ) end +LESBoxPlots= Union{ + Val{:les_rico_box}, + Val{:les_dycoms_box}, + Val{:les_bomex_box}, + Val{:les_gabls_box}, +} + +""" + plot_les_vert_profile!(grid_loc, var_group) + +Helper function for `make_plots_generic`. Takes a list of variables and plots +them on the same axis. +""" +function plot_les_vert_profile!(grid_loc, var_group) + z = var_group[1].dims["z"] + units = var_group[1].attributes["units"] + ax = CairoMakie.Axis( + grid_loc[1, 1], + ylabel = "z [$(var_group[1].dim_attributes["z"]["units"])]", + xlabel = "$(short_name(var_group[1])) [$units]", + title = parse_var_attributes(var_group[1]), + ) + + for var in var_group + CairoMakie.lines!(ax, var.data, z, label = short_name(var)) + end + length(var_group) > 1 && Makie.axislegend(ax) +end + +function make_plots( + sim_type::Union{LESBoxPlots}, + output_paths::Vector{<:AbstractString}, +) + simdirs = SimDir.(output_paths) + + reduction = "inst" + short_names = [ + "wa", + "ua", + "va", + "ta", + "thetaa", + "ha", + "hus", + "hur", + "cl", + "clw", + "cli", + ] + available_periods = ClimaAnalysis.available_periods( + simdirs[1]; + short_name = short_names[1], + reduction, + ) + if "5m" in available_periods + period = "5m" + elseif "10m" in available_periods + period = "10m" + elseif "30m" in available_periods + period = "30m" + elseif "1h" in available_periods + period = "1h" + end + + # Window average from instantaneous snapshots? + function horizontal_average(var) + return average_xy(var) + end + function windowed_reduction(var) + hours = 3600.0 + window_end = last(var.dims["time"]) + window_start = window_end - 2hours + var_window = ClimaAnalysis.window(var, "time"; left=window_start, right=window_end) + var_reduced = horizontal_average(average_time(var_window)) + return var_reduced + end + + var_groups_xyt_reduced = + map_comparison(simdirs, short_names) do simdir, short_name + return [ + get(simdir; short_name, reduction, period) |> windowed_reduction + ] + end + + var_groups_xy_reduced = + map_comparison(simdirs, short_names) do simdir, short_name + return [ + get(simdir; short_name, reduction, period) |> horizontal_average + ] + end + + tmp_file = make_plots_generic( + output_paths, + var_groups_xyt_reduced, + output_name = "tmp"; + plot_fn = plot_les_vert_profile!, + MAX_NUM_COLS = 2, + MAX_NUM_ROWS = 4, + ) + + make_plots_generic( + output_paths, + vcat(var_groups_xy_reduced...), + plot_fn = plot_parsed_attribute_title!, + summary_files = [tmp_file], + MAX_NUM_COLS = 2, + MAX_NUM_ROWS = 4, + ) +end + + EDMFBoxPlots = Union{ Val{:diagnostic_edmfx_gabls_box}, Val{:diagnostic_edmfx_bomex_box}, @@ -1097,7 +1209,6 @@ EDMFBoxPlotsWithPrecip = Union{ Val{:diagnostic_edmfx_trmm_stretched_box}, } - """ plot_edmf_vert_profile!(grid_loc, var_group) diff --git a/restart/bomex/Micro1M_day0.0_Prod.hdf5 b/restart/bomex/Micro1M_day0.0_Prod.hdf5 new file mode 100644 index 0000000000000000000000000000000000000000..ec03b42021d0f93b3ff28395990581f52b995de5 GIT binary patch literal 3309640 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%0DRopnQ<> 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 literal 0 HcmV?d00001 diff --git a/src/ClimaAtmos.jl b/src/ClimaAtmos.jl index d09a10bddc6..87552e991c1 100644 --- a/src/ClimaAtmos.jl +++ b/src/ClimaAtmos.jl @@ -110,6 +110,7 @@ include( ) include(joinpath("parameterized_tendencies", "sponge", "rayleigh_sponge.jl")) include(joinpath("parameterized_tendencies", "sponge", "viscous_sponge.jl")) +include(joinpath("parameterized_tendencies", "les_sgs_models", "smagorinsky_lilly.jl")) include(joinpath("prognostic_equations", "advection.jl")) include(joinpath("cache", "temporary_quantities.jl")) diff --git a/src/cache/cache.jl b/src/cache/cache.jl index 08a23b67a19..252565016bc 100644 --- a/src/cache/cache.jl +++ b/src/cache/cache.jl @@ -16,6 +16,7 @@ struct AtmosCache{ DSS, RS, VS, + SL, PR, SUB, LSAD, @@ -79,6 +80,7 @@ struct AtmosCache{ """Additional parameters used by the various tendencies""" rayleigh_sponge::RS viscous_sponge::VS + smagorinsky_lilly::SL precipitation::PR subsidence::SUB large_scale_advection::LSAD @@ -187,6 +189,7 @@ function build_cache(Y, atmos, params, surface_setup, sim_info, aerosol_names) hyperdiff = hyperdiffusion_cache(Y, atmos) rayleigh_sponge = rayleigh_sponge_cache(Y, atmos) viscous_sponge = viscous_sponge_cache(Y, atmos) + smagorinsky_lilly = smagorinsky_lilly_cache(Y, atmos) precipitation = precipitation_cache(Y, atmos) subsidence = subsidence_cache(Y, atmos) large_scale_advection = large_scale_advection_cache(Y, atmos) @@ -216,6 +219,7 @@ function build_cache(Y, atmos, params, surface_setup, sim_info, aerosol_names) do_dss, rayleigh_sponge, viscous_sponge, + smagorinsky_lilly, precipitation, subsidence, large_scale_advection, diff --git a/src/cache/temporary_quantities.jl b/src/cache/temporary_quantities.jl index 4482e861475..8e23eea23c3 100644 --- a/src/cache/temporary_quantities.jl +++ b/src/cache/temporary_quantities.jl @@ -53,6 +53,14 @@ function temporary_quantities(Y, atmos) typeof(UVW(FT(0), FT(0), FT(0)) * UVW(FT(0), FT(0), FT(0))'), face_space, ), # ᶠstrain_rate + ᶜtemp_strain = Fields.Field( + typeof(UVW(FT(0), FT(0), FT(0)) * UVW(FT(0), FT(0), FT(0))'), + center_space, + ), # ᶜstrain_rate + ᶠtemp_strain = Fields.Field( + typeof(UVW(FT(0), FT(0), FT(0)) * UVW(FT(0), FT(0), FT(0))'), + face_space, + ), # ᶠstrain_rate # TODO: Remove this hack sfc_temp_C3 = Fields.Field(C3{FT}, Spaces.level(face_space, half)), # ρ_flux_χ # Implicit solver cache: diff --git a/src/parameterized_tendencies/les_sgs_models/smagorinsky_lilly.jl b/src/parameterized_tendencies/les_sgs_models/smagorinsky_lilly.jl new file mode 100644 index 00000000000..806816e2422 --- /dev/null +++ b/src/parameterized_tendencies/les_sgs_models/smagorinsky_lilly.jl @@ -0,0 +1,216 @@ +##### +##### Smagornsky Lilly Diffusion +##### + +import ClimaCore.Fields as Fields +import ClimaCore.Operators as Operators +import ClimaCore: Geometry +import ClimaCore.Utilities: half + +smagorinsky_lilly_cache(Y, atmos::AtmosModel) = + smagorinsky_lilly_cache(Y, atmos.smagorinsky_lilly) + +smagorinsky_lilly_cache(Y, ::Nothing) = (;) + +function smagorinsky_lilly_cache(Y, sl::SmagorinskyLilly) + (; Cs) = sl + FT = eltype(Y) + h_space = Spaces.horizontal_space(axes(Y.c)) + Δₕ_filter = Spaces.node_horizontal_length_scale(h_space) + ᶜtemp_scalar_3 = zero(Fields.Field(Float32, axes(Y.c.ρ))) + v_t = ᶜtemp_scalar_3 + return (; v_t, Δₕ_filter) +end + +horizontal_smagorinsky_lilly_tendency!(Yₜ, Y, p, t, ::Nothing) = nothing +vertical_smagorinsky_lilly_tendency!(Yₜ, Y, p, t, ::Nothing) = nothing + +function horizontal_smagorinsky_lilly_tendency!(Yₜ, Y, p, t, sl::SmagorinskyLilly) + if !(hasproperty(p.precomputed, :ᶜspecific)) + throw(ErrorException("p does not have the property ᶜspecific.")) + end + + (; Cs) = sl + (; params) = p + (; v_t, Δₕ_filter) = p.smagorinsky_lilly + (; ᶜu, ᶠu³, sfc_conditions) = p.precomputed + + Δ_filter = Δₕ_filter + + # Operators + FT = eltype(v_t) + grav = CAP.grav(params) + ᶜJ = Fields.local_geometry_field(Y.c).J + Pr_t_neutral = FT(1/3) + + ᶜS = zero(p.scratch.ᶜtemp_strain) + ᶠS = zero(p.scratch.ᶠtemp_strain) + ᶜϵ = zero(p.scratch.ᶜtemp_UVWxUVW) + ᶠϵ = zero(p.scratch.ᶠtemp_UVWxUVW) + ᶠfb = p.scratch.ᶠtemp_scalar + ᶜfb = p.scratch.ᶜtemp_scalar + + u_phys = @. Geometry.UVWVector(ᶜu) + ᶠu = @. Geometry.UVWVector(ᶠinterp(Y.c.uₕ)) + Geometry.UVWVector(ᶠu³) + @. ᶜS = Geometry.project(Geometry.UVWAxis(), gradₕ(u_phys)) + @. ᶠS = Geometry.project(Geometry.UVWAxis(), gradₕ(ᶠu)) + CA.compute_strain_rate_center!(ᶜϵ, Geometry.Covariant123Vector.(ᶠu)) + CA.compute_strain_rate_face!(ᶠϵ, Geometry.Covariant123Vector.(ᶜu)) + @. ᶜS = (ᶜS + adjoint(ᶜS))/2 + ᶜϵ + @. ᶠS = (ᶠS + adjoint(ᶠS))/2 + ᶠϵ + + (; ᶜts) = p.precomputed + thermo_params = CAP.thermodynamics_params(p.params) + + ᶠts_sfc = sfc_conditions.ts + θ_v = @. TD.virtual_pottemp(thermo_params, ᶜts) + θ_v_sfc = @. TD.virtual_pottemp(thermo_params, ᶠts_sfc) + ᶜ∇ = Operators.GradientF2C(); + θc2f = Operators.InterpolateC2F(;top = Operators.Extrapolate(), + bottom = Operators.SetValue(θ_v_sfc)); + ᶜ∇θ = @. ᶜ∇(ᶠinterp(θ_v)) + + N² = @. grav / θ_v * Geometry.WVector(ᶜ∇θ).components.data.:1 + @. ᶜfb = (max(FT(0), + 1 - N² / Pr_t_neutral / (CA.norm_sqr(ᶜS) + eps(FT))))^(1/2) + ᶜfb .= ifelse.(N² .<= FT(0), zero(ᶜfb) .+ FT(1),ᶜfb) + + ᶠρ = @. ᶠinterp(Y.c.ρ) + ᶜv_t = @. (Cs * Δ_filter)^2 * sqrt(2 * CA.norm_sqr(ᶜS)) * ᶜfb + ᶠv_t = @. ᶠinterp(ᶜv_t) + ᶜD = @. ᶜv_t / Pr_t_neutral + + ᶜτ = @. FT(-2) * ᶜv_t * ᶜS + ᶠτ = @. FT(-2) * ᶠv_t * ᶠS + + @. Yₜ.c.uₕ -= C12(wdivₕ(Y.c.ρ * ᶜτ) / Y.c.ρ) + @. Yₜ.f.u₃ -= C3(wdivₕ(ᶠρ * ᶠτ) / ᶠρ) + + (; ᶜspecific) = p.precomputed + if :ρe_tot in propertynames(Yₜ.c) + (; ᶜh_tot) = p.precomputed + @. Yₜ.c.ρe_tot += wdivₕ(Y.c.ρ * ᶜD * gradₕ(ᶜh_tot)) + end + + # q_tot and other tracer adjustment (moisture affects mass terms + # as well) + for (ᶜρχₜ, ᶜχ, χ_name) in CA.matching_subfields(Yₜ.c, ᶜspecific) + χ_name == :e_tot && continue + @. ᶜρχₜ += wdivₕ(Y.c.ρ * ᶜD * gradₕ(ᶜχ)) + if !(χ_name in (:q_rai, :q_sno)) + @. Yₜ.c.ρ += wdivₕ(Y.c.ρ * ᶜD * gradₕ(ᶜχ)) + end + end + +end + +function vertical_smagorinsky_lilly_tendency!(Yₜ, Y, p, t, sl::SmagorinskyLilly) + if !(hasproperty(p.precomputed, :ᶜspecific)) + throw(ErrorException("p does not have the property ᶜspecific.")) + end + + (; params) = p + (; Cs) = sl + (; v_t, Δₕ_filter) = p.smagorinsky_lilly + (; ᶜu, ᶠu³, sfc_conditions, ᶜspecific, ᶜts) = p.precomputed + ᶠgradᵥ = Operators.GradientC2F() # apply BCs to ᶜdivᵥ, which wraps ᶠgradᵥ + + FT = eltype(v_t) + Δ_filter = Δₕ_filter + Pr_t_neutral = FT(1/3) + + grav = CAP.grav(params) + ᶜJ = Fields.local_geometry_field(Y.c).J + + ᶜS = zero(p.scratch.ᶜtemp_strain) + ᶠS = zero(p.scratch.ᶠtemp_strain) + ᶜϵ = zero(p.scratch.ᶜtemp_UVWxUVW) + ᶠϵ = zero(p.scratch.ᶠtemp_UVWxUVW) + + ᶠfb = p.scratch.ᶠtemp_scalar + ᶜfb = p.scratch.ᶜtemp_scalar + u_phys = @. Geometry.UVWVector(ᶜu) + ᶠu = @. Geometry.UVWVector(ᶠinterp(Y.c.uₕ)) + Geometry.UVWVector(ᶠu³) + @. ᶜS = Geometry.project(Geometry.UVWAxis(), gradₕ(u_phys)) + @. ᶠS = Geometry.project(Geometry.UVWAxis(), gradₕ(ᶠu)) + CA.compute_strain_rate_face!(ᶠϵ, Geometry.Covariant123Vector.(ᶜu)) + CA.compute_strain_rate_center!(ᶜϵ, Geometry.Covariant123Vector.(ᶠu)) + @. ᶜS = (ᶜS + adjoint(ᶜS))/2 + ᶜϵ + @. ᶠS = (ᶠS + adjoint(ᶠS))/2 + ᶠϵ + + thermo_params = CAP.thermodynamics_params(p.params) + θ_v = @. TD.virtual_pottemp(thermo_params, ᶜts) + ᶠts_sfc = sfc_conditions.ts + θ_v_sfc = @. TD.virtual_pottemp(thermo_params, ᶠts_sfc) + ᶜ∇ = Operators.GradientF2C(); + θc2f = Operators.InterpolateC2F(;top = Operators.Extrapolate(), + bottom = Operators.SetValue(θ_v_sfc)); + ᶜ∇θ = @. ᶜ∇(ᶠinterp(θ_v)) + N² = @. grav / θ_v * Geometry.WVector(ᶜ∇θ).components.data.:1 + @. ᶜfb = (max(FT(0), + 1 - N² / Pr_t_neutral / (CA.norm_sqr(ᶜS) + eps(FT))))^(1/2) + ᶜfb .= ifelse.(N² .<= FT(0), zero(ᶜfb) .+ FT(1),ᶜfb) + + ᶜv_t = @. (Cs * Δ_filter)^2 * sqrt(2 * CA.norm_sqr(ᶜS)) * ᶜfb + ᶠv_t = @. ᶠinterp(ᶜv_t) + ᶜD = @. ᶜv_t / Pr_t_neutral + + @. Yₜ.c.uₕ -= C12( + ᶜdivᵥ( + -2 * + ᶠinterp(Y.c.ρ) * + ᶠv_t * + ᶠS, + ) / Y.c.ρ, + ) + # apply boundary condition for momentum flux + ᶜdivᵥ_uₕ = Operators.DivergenceF2C( + top = Operators.SetValue(C3(FT(0)) ⊗ C12(FT(0), FT(0))), + bottom = Operators.SetValue(sfc_conditions.ρ_flux_uₕ), + ) + + @. Yₜ.c.uₕ -= ᶜdivᵥ_uₕ(-(FT(0) * ᶠgradᵥ(Y.c.uₕ))) / Y.c.ρ + + ᶠdivᵥ = Operators.DivergenceC2F( + bottom = Operators.SetDivergence(FT(0)), + top = Operators.SetDivergence(FT(0)) + ) + + @. Yₜ.f.u₃ -= C3( + ᶠdivᵥ( + -2 * + Y.c.ρ * + ᶜv_t * + ᶜS, + ) / ᶠinterp(Y.c.ρ), + ) + + (; ᶜh_tot) = p.precomputed + ᶜdivᵥ_ρe_tot = Operators.DivergenceF2C( + top = Operators.SetValue(C3(FT(0))), + bottom = Operators.SetValue(sfc_conditions.ρ_flux_h_tot), + ) + @. Yₜ.c.ρe_tot -= ᶜdivᵥ_ρe_tot( + -(ᶠinterp(Y.c.ρ) * + ᶠinterp(ᶜD) * + ᶠgradᵥ(ᶜh_tot)) + ) + + ρ_flux_χ = zero(p.scratch.sfc_temp_C3) + for (ᶜρχₜ, ᶜχ, χ_name) in CA.matching_subfields(Yₜ.c, ᶜspecific) + χ_name == :e_tot && continue + if χ_name == :q_tot + @. ρ_flux_χ = sfc_conditions.ρ_flux_q_tot + else + @. ρ_flux_χ = C3(FT(0)) + end + ᶜdivᵥ_ρχ = Operators.DivergenceF2C( + top = Operators.SetValue(C3(FT(0))), + bottom = Operators.SetValue(ρ_flux_χ), + ) + @. ᶜρχₜ -= ᶜdivᵥ_ρχ(-(ᶠinterp(Y.c.ρ) * ᶠinterp(ᶜD) * ᶠgradᵥ(ᶜχ))) + if !(χ_name in (:q_rai, :q_sno)) + @. Yₜ.c.ρ -= ᶜdivᵥ_ρχ(-(ᶠinterp(Y.c.ρ) * ᶠinterp(ᶜD) * ᶠgradᵥ(ᶜχ))) + end + end +end diff --git a/src/prognostic_equations/remaining_tendency.jl b/src/prognostic_equations/remaining_tendency.jl index d56ece72f83..b9e9869fe1a 100644 --- a/src/prognostic_equations/remaining_tendency.jl +++ b/src/prognostic_equations/remaining_tendency.jl @@ -85,9 +85,13 @@ NVTX.@annotate function additional_tendency!(Yₜ, Y, p, t) # NOTE: All ρa tendencies should be applied before calling this function pressure_work_tendency!(Yₜ, Y, p, t, p.atmos.turbconv_model) + + horizontal_smagorinsky_lilly_tendency!(Yₜ, Y, p, t, p.atmos.smagorinsky_lilly) + vertical_smagorinsky_lilly_tendency!(Yₜ, Y, p, t, p.atmos.smagorinsky_lilly) # NOTE: This will zero out all momentum tendencies in the edmfx advection test # please DO NOT add additional velocity tendencies after this function + # Other SGS tendencies zero_velocity_tendency!(Yₜ, Y, p, t) # TODO: make bycolumn-able diff --git a/src/solver/model_getters.jl b/src/solver/model_getters.jl index 47ef506f5a0..5574de960f5 100644 --- a/src/solver/model_getters.jl +++ b/src/solver/model_getters.jl @@ -156,6 +156,17 @@ function get_viscous_sponge_model(parsed_args, params, ::Type{FT}) where {FT} end end +function get_smagorinsky_lilly_model(parsed_args, params, ::Type{FT}) where {FT} + is_model_active = parsed_args["smagorinsky_lilly"] + Cs = parsed_args["c_smag"] + @assert is_model_active in (true, false) + return if is_model_active == true + SmagorinskyLilly{FT}(; Cs) + else + nothing + end +end + function get_rayleigh_sponge_model(parsed_args, params, ::Type{FT}) where {FT} rs_name = parsed_args["rayleigh_sponge"] return if rs_name in ("false", false) diff --git a/src/solver/type_getters.jl b/src/solver/type_getters.jl index 229ebbff4fb..532eae43fe8 100644 --- a/src/solver/type_getters.jl +++ b/src/solver/type_getters.jl @@ -86,6 +86,7 @@ function get_atmos(config::AtmosConfig, params) diff_mode = implicit_diffusion ? Implicit() : Explicit(), sgs_adv_mode = implicit_sgs_advection ? Implicit() : Explicit(), viscous_sponge = get_viscous_sponge_model(parsed_args, params, FT), + smagorinsky_lilly = get_smagorinsky_lilly_model(parsed_args, params, FT), rayleigh_sponge = get_rayleigh_sponge_model(parsed_args, params, FT), sfc_temperature = get_sfc_temperature_form(parsed_args), insolation = get_insolation_form(parsed_args), diff --git a/src/solver/types.jl b/src/solver/types.jl index 15b3a1e60a9..9b1f6ef4ba6 100644 --- a/src/solver/types.jl +++ b/src/solver/types.jl @@ -103,6 +103,11 @@ Base.@kwdef struct ViscousSponge{FT} <: AbstractSponge κ₂::FT end +abstract type AbstractEddyViscosityModel end +Base.@kwdef struct SmagorinskyLilly{FT} <: AbstractEddyViscosityModel + Cs::FT = 0.2 +end + Base.@kwdef struct RayleighSponge{FT} <: AbstractSponge zd::FT α_uₕ::FT @@ -413,6 +418,7 @@ Base.@kwdef struct AtmosModel{ DM, SAM, VS, + SL, RS, ST, IN, @@ -446,6 +452,7 @@ Base.@kwdef struct AtmosModel{ diff_mode::DM = nothing sgs_adv_mode::SAM = nothing viscous_sponge::VS = nothing + smagorinsky_lilly::SL = nothing rayleigh_sponge::RS = nothing sfc_temperature::ST = nothing insolation::IN = nothing diff --git a/test/parameterized_tendencies/les_closures/smagorinsky_lilly.jl b/test/parameterized_tendencies/les_closures/smagorinsky_lilly.jl new file mode 100644 index 00000000000..16bc42a8353 --- /dev/null +++ b/test/parameterized_tendencies/les_closures/smagorinsky_lilly.jl @@ -0,0 +1,63 @@ + +using Test +import ClimaAtmos as CA +import ClimaAtmos.Parameters as CAP +import ClimaCore as CC +import Thermodynamics as TD + +### Common Objects ### +@testset begin + "Smagorinsky Lilly function" + ### Boilerplate default integrator objects + config = CA.AtmosConfig( + Dict( + "initial_condition" => "DryDensityCurrentProfile", + "moist" => "dry", + "precip_model" => "0M", + "config" => "box", + "x_max" => π, + "y_max" => π, + "z_max" => 1.0, + "z_stretch" => false, + "output_default_diagnostics" => false + ), + ); + parsed_args = config.parsed_args; + simulation = CA.get_simulation(config); + (; integrator) = simulation; + Y = integrator.u; + Yₜ = similar(Y); + p = integrator.p; + params = p.params; + cm_params = CAP.microphysics_params(params); + thermo_params = CAP.thermodynamics_params(params); + + FT = eltype(Y) + ᶜYₜ = Y .* FT(0) + c_xyz = CC.Fields.coordinate_field(Y.c) + f_xyz = CC.Fields.coordinate_field(Y.f) + x = c_xyz.x + y = c_xyz.y + z = f_xyz.z + + u = @. sin(x) * cos(y) + v = @. sin(y) * cos(x) + w = @. Geometry.WVector(z ./ maximum(z)) + + u_x = @. cos(x) * cos(y) + v_x = @. -sin(y) * sin(x) + u_y = @. -sin(x) * sin(y) + v_y = @. cos(y) * cos(x) + w_x = zeros(axes(Y.c)) + w_y = zeros(axes(Y.c)) + + vel = @. CC.Geometry.UVVector(u, v) + + Y.c.ρ .= FT(1) + Y.c.uₕ .= Geometry.Covariant12Vector(vel) + Y.f.u₃ .= Geometry.Covariant3Vector(w) + + horizontal_smagorinsky_lilly_tendency(Yₜ, Y, p, t, SmagorinskyLilly(FT(0.2))) + + ### Component test begins here +end diff --git a/toml/bomex_les.toml b/toml/bomex_les.toml new file mode 100644 index 00000000000..a0575831fe9 --- /dev/null +++ b/toml/bomex_les.toml @@ -0,0 +1,2 @@ +[zd_rayleigh] +value = 3250.0