Skip to content

Commit d3aae91

Browse files
committed
fix vertical_transport with vanleer_limiter on GPU
1 parent b298354 commit d3aae91

File tree

4 files changed

+10
-6
lines changed

4 files changed

+10
-6
lines changed

.buildkite/pipeline.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1281,7 +1281,7 @@ steps:
12811281
CLIMACOMMS_DEVICE: "CUDA"
12821282
CLIMA_NAME_CUDA_KERNELS_FROM_STACK_TRACE: "true"
12831283
agents:
1284-
slurm_mem: 24GB
1284+
slurm_mem: 32GB
12851285
slurm_gpus: 1
12861286

12871287
- group: "Flame graphs"

config/model_configs/diagnostic_edmfx_aquaplanet_gpu.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ edmfx_detr_model: "Generalized"
99
edmfx_nh_pressure: true
1010
edmfx_sgs_mass_flux: true
1111
edmfx_sgs_diffusive_flux: true
12+
edmfx_sgsflux_upwinding: "vanleer_limiter"
13+
edmfx_tracer_upwinding: "vanleer_limiter"
1214
moist: equil
1315
cloud_model: "quadrature_sgs"
1416
precip_model: 0M

src/prognostic_equations/advection.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ NVTX.@annotate function explicit_vertical_advection_tendency!(Yₜ, Y, p, t)
265265
foreach_gs_tracer(Yₜ, Y) do ᶜρχₜ, ᶜρχ, ρχ_name
266266
if !(ρχ_name in (@name(ρe_tot), @name(ρq_tot)))
267267
ᶜχ = @. lazy(specific(ᶜρχ, Y.c.ρ))
268-
vtt = vertical_transport(ᶜρ, ᶠu³, ᶜχ, FT(dt), tracer_upwinding)
268+
vtt = vertical_transport(ᶜρ, ᶠu³, ᶜχ, dt, tracer_upwinding)
269269
@. ᶜρχₜ += vtt
270270
end
271271
end
@@ -280,15 +280,15 @@ NVTX.@annotate function explicit_vertical_advection_tendency!(Yₜ, Y, p, t)
280280
specific(Y.c.ρe_tot, Y.c.ρ),
281281
),
282282
)
283-
vtt = vertical_transport(ᶜρ, ᶠu³, ᶜh_tot, FT(dt), energy_q_tot_upwinding)
284-
vtt_central = vertical_transport(ᶜρ, ᶠu³, ᶜh_tot, FT(dt), Val(:none))
283+
vtt = vertical_transport(ᶜρ, ᶠu³, ᶜh_tot, dt, energy_q_tot_upwinding)
284+
vtt_central = vertical_transport(ᶜρ, ᶠu³, ᶜh_tot, dt, Val(:none))
285285
@. Yₜ.c.ρe_tot += vtt - vtt_central
286286
end
287287

288288
if !(p.atmos.moisture_model isa DryModel) && energy_q_tot_upwinding != Val(:none)
289289
ᶜq_tot = @. lazy(specific(Y.c.ρq_tot, Y.c.ρ))
290-
vtt = vertical_transport(ᶜρ, ᶠu³, ᶜq_tot, FT(dt), energy_q_tot_upwinding)
291-
vtt_central = vertical_transport(ᶜρ, ᶠu³, ᶜq_tot, FT(dt), Val(:none))
290+
vtt = vertical_transport(ᶜρ, ᶠu³, ᶜq_tot, dt, energy_q_tot_upwinding)
291+
vtt_central = vertical_transport(ᶜρ, ᶠu³, ᶜq_tot, dt, Val(:none))
292292
@. Yₜ.c.ρq_tot += vtt - vtt_central
293293
end
294294

src/prognostic_equations/implicit/implicit_tendency.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,8 @@ end
8686
function vertical_transport(ᶜρ, ᶠu³, ᶜχ, dt, ::Val{:vanleer_limiter})
8787
ᶜJ = Fields.local_geometry_field(axes(ᶜρ)).J
8888
ᶠJ = Fields.local_geometry_field(axes(ᶠu³)).J
89+
FT = eltype(ᶠJ)
90+
dt = FT(dt)
8991
return @. lazy(
9092
-(ᶜadvdivᵥ(ᶠinterp(ᶜρ * ᶜJ) / ᶠJ * ᶠlin_vanleer(ᶠu³, ᶜχ, dt))),
9193
)

0 commit comments

Comments
 (0)