@@ -85,7 +85,7 @@ NVTX.@annotate function prep_hyperdiffusion_tendency!(Yₜ, Y, p, t)
85
85
86
86
n = n_mass_flux_subdomains (turbconv_model)
87
87
diffuse_tke = use_prognostic_tke (turbconv_model)
88
- (; ᶜp, ᶜspecific ) = p. precomputed
88
+ (; ᶜp) = p. precomputed
89
89
(; ᶜ∇²u, ᶜ∇²specific_energy) = p. hyperdiff
90
90
if turbconv_model isa PrognosticEDMFX
91
91
(; ᶜ∇²uₕʲs, ᶜ∇²uᵥʲs, ᶜ∇²uʲs, ᶜ∇²mseʲs) = p. hyperdiff
@@ -137,7 +137,7 @@ NVTX.@annotate function apply_hyperdiffusion_tendency!(Yₜ, Y, p, t)
137
137
diffuse_tke = use_prognostic_tke (turbconv_model)
138
138
ᶜJ = Fields. local_geometry_field (Y. c). J
139
139
point_type = eltype (Fields. coordinate_field (Y. c))
140
- (; ᶜp, ᶜspecific ) = p. precomputed
140
+ (; ᶜp) = p. precomputed
141
141
(; ᶜ∇²u, ᶜ∇²specific_energy) = p. hyperdiff
142
142
if turbconv_model isa PrognosticEDMFX
143
143
(; ᶜρa⁰) = p. precomputed
@@ -240,11 +240,13 @@ NVTX.@annotate function prep_tracer_hyperdiffusion_tendency!(Yₜ, Y, p, t)
240
240
(; hyperdiff, turbconv_model) = p. atmos
241
241
isnothing (hyperdiff) && return nothing
242
242
243
- (; ᶜspecific) = p. precomputed
244
243
(; ᶜ∇²specific_tracers) = p. hyperdiff
245
244
246
- for χ_name in propertynames (ᶜ∇²specific_tracers)
247
- @. ᶜ∇²specific_tracers.:($$ χ_name) = wdivₕ (gradₕ (ᶜspecific.:($$ χ_name)))
245
+ for ρχ_name in filter (is_tracer_var, propertynames (Y. c))
246
+ χ_name = specific_name (ρχ_name)
247
+ ᶜρχ = getproperty (Y. c, ρχ_name)
248
+ ᶜχ = @. lazy (specific (ᶜρχ, Y. c. ρ))
249
+ @. ᶜ∇²specific_tracers.:($$ χ_name) = wdivₕ (gradₕ (ᶜχ))
248
250
end
249
251
250
252
if turbconv_model isa PrognosticEDMFX
0 commit comments