@@ -87,11 +87,11 @@ KineticEnergy(model; kwargs...) = KineticEnergy(model, model.velocities...; kwar
8787 velocities,
8888 tracers,
8989 auxiliary_fields,
90- diffusivity_fields ,
90+ closure_fields ,
9191 pHY′,
9292 clock,
9393 forcings)
94- common_args = (buoyancy, background_fields, velocities, tracers, auxiliary_fields, diffusivity_fields , pHY′, clock)
94+ common_args = (buoyancy, background_fields, velocities, tracers, auxiliary_fields, closure_fields , pHY′, clock)
9595 u∂ₜu = ℑxᶜᵃᵃ (i, j, k, grid, ψf, velocities. u, u_velocity_tendency, advection, coriolis, stokes_drift, closure, u_immersed_bc, common_args... , forcings. u)
9696 v∂ₜv = ℑyᵃᶜᵃ (i, j, k, grid, ψf, velocities. v, v_velocity_tendency, advection, coriolis, stokes_drift, closure, v_immersed_bc, common_args... , forcings. v)
9797 w∂ₜw = ℑzᵃᵃᶜ (i, j, k, grid, ψf, velocities. w, w_velocity_tendency, advection, coriolis, stokes_drift, closure, w_immersed_bc, common_args... , forcings. w)
@@ -138,7 +138,7 @@ function KineticEnergyTendency(model::NonhydrostaticModel; location = (Center, C
138138 model. velocities,
139139 model. tracers,
140140 model. auxiliary_fields,
141- model. diffusivity_fields ,
141+ model. closure_fields ,
142142 model. pressures. pHY′,
143143 model. clock,
144144 model. forcing,)
@@ -191,14 +191,14 @@ end
191191
192192# +++ KineticEnergyStress
193193@inline function uᵢ∂ⱼ_τᵢⱼᶜᶜᶜ (i, j, k, grid, closure,
194- diffusivity_fields ,
194+ closure_fields ,
195195 clock,
196196 model_fields,
197197 buoyancy)
198198
199- u∂ⱼ_τ₁ⱼ = ℑxᶜᵃᵃ (i, j, k, grid, ψf, model_fields. u, ∂ⱼ_τ₁ⱼ, closure, diffusivity_fields , clock, model_fields, buoyancy)
200- v∂ⱼ_τ₂ⱼ = ℑyᵃᶜᵃ (i, j, k, grid, ψf, model_fields. v, ∂ⱼ_τ₂ⱼ, closure, diffusivity_fields , clock, model_fields, buoyancy)
201- w∂ⱼ_τ₃ⱼ = ℑzᵃᵃᶜ (i, j, k, grid, ψf, model_fields. w, ∂ⱼ_τ₃ⱼ, closure, diffusivity_fields , clock, model_fields, buoyancy)
199+ u∂ⱼ_τ₁ⱼ = ℑxᶜᵃᵃ (i, j, k, grid, ψf, model_fields. u, ∂ⱼ_τ₁ⱼ, closure, closure_fields , clock, model_fields, buoyancy)
200+ v∂ⱼ_τ₂ⱼ = ℑyᵃᶜᵃ (i, j, k, grid, ψf, model_fields. v, ∂ⱼ_τ₂ⱼ, closure, closure_fields , clock, model_fields, buoyancy)
201+ w∂ⱼ_τ₃ⱼ = ℑzᵃᵃᶜ (i, j, k, grid, ψf, model_fields. w, ∂ⱼ_τ₃ⱼ, closure, closure_fields , clock, model_fields, buoyancy)
202202
203203 return u∂ⱼ_τ₁ⱼ+ v∂ⱼ_τ₂ⱼ + w∂ⱼ_τ₃ⱼ
204204end
@@ -240,7 +240,7 @@ function KineticEnergyStress(model; location = (Center, Center, Center))
240240 model_fields = (; model_fields... , w= ZeroField ())
241241 end
242242 dependencies = (model. closure,
243- model. diffusivity_fields ,
243+ model. closure_fields ,
244244 model. clock,
245245 fields (model),
246246 model. buoyancy)
@@ -434,18 +434,18 @@ Axᶠᶜᶠ_δwᶠᶜᶠ_F₃₁ᶠᶜᶠ(i, j, k, grid, closure, K_fields, clo,
434434Ayᶜᶠᶠ_δwᶜᶠᶠ_F₃₂ᶜᶠᶠ (i, j, k, grid, closure, K_fields, clo, fields, b) = - Ayᶜᶠᶠ (i, j, k, grid) * δyᵃᶠᵃ (i, j, k, grid, fields. w) * viscous_flux_wy (i, j, k, grid, closure, K_fields, clo, fields, b)
435435Azᶜᶜᶜ_δwᶜᶜᶜ_F₃₃ᶜᶜᶜ (i, j, k, grid, closure, K_fields, clo, fields, b) = - Azᶜᶜᶜ (i, j, k, grid) * δzᵃᵃᶜ (i, j, k, grid, fields. w) * viscous_flux_wz (i, j, k, grid, closure, K_fields, clo, fields, b)
436436
437- @inline viscous_dissipation_rate_ccc (i, j, k, grid, diffusivity_fields , fields, p) =
438- (Axᶜᶜᶜ_δuᶜᶜᶜ_F₁₁ᶜᶜᶜ (i, j, k, grid, p. closure, diffusivity_fields , p. clock, fields, p. buoyancy) + # C, C, C
439- ℑxyᶜᶜᵃ (i, j, k, grid, Ayᶠᶠᶜ_δuᶠᶠᶜ_F₁₂ᶠᶠᶜ, p. closure, diffusivity_fields , p. clock, fields, p. buoyancy) + # F, F, C → C, C, C
440- ℑxzᶜᵃᶜ (i, j, k, grid, Azᶠᶜᶠ_δuᶠᶜᶠ_F₁₃ᶠᶜᶠ, p. closure, diffusivity_fields , p. clock, fields, p. buoyancy) + # F, C, F → C, C, C
437+ @inline viscous_dissipation_rate_ccc (i, j, k, grid, closure_fields , fields, p) =
438+ (Axᶜᶜᶜ_δuᶜᶜᶜ_F₁₁ᶜᶜᶜ (i, j, k, grid, p. closure, closure_fields , p. clock, fields, p. buoyancy) + # C, C, C
439+ ℑxyᶜᶜᵃ (i, j, k, grid, Ayᶠᶠᶜ_δuᶠᶠᶜ_F₁₂ᶠᶠᶜ, p. closure, closure_fields , p. clock, fields, p. buoyancy) + # F, F, C → C, C, C
440+ ℑxzᶜᵃᶜ (i, j, k, grid, Azᶠᶜᶠ_δuᶠᶜᶠ_F₁₃ᶠᶜᶠ, p. closure, closure_fields , p. clock, fields, p. buoyancy) + # F, C, F → C, C, C
441441
442- ℑxyᶜᶜᵃ (i, j, k, grid, Axᶠᶠᶜ_δvᶠᶠᶜ_F₂₁ᶠᶠᶜ, p. closure, diffusivity_fields , p. clock, fields, p. buoyancy) + # F, F, C → C, C, C
443- Ayᶜᶜᶜ_δvᶜᶜᶜ_F₂₂ᶜᶜᶜ (i, j, k, grid, p. closure, diffusivity_fields , p. clock, fields, p. buoyancy) + # C, C, C
444- ℑyzᵃᶜᶜ (i, j, k, grid, Azᶜᶠᶠ_δvᶜᶠᶠ_F₂₃ᶜᶠᶠ, p. closure, diffusivity_fields , p. clock, fields, p. buoyancy) + # C, F, F → C, C, C
442+ ℑxyᶜᶜᵃ (i, j, k, grid, Axᶠᶠᶜ_δvᶠᶠᶜ_F₂₁ᶠᶠᶜ, p. closure, closure_fields , p. clock, fields, p. buoyancy) + # F, F, C → C, C, C
443+ Ayᶜᶜᶜ_δvᶜᶜᶜ_F₂₂ᶜᶜᶜ (i, j, k, grid, p. closure, closure_fields , p. clock, fields, p. buoyancy) + # C, C, C
444+ ℑyzᵃᶜᶜ (i, j, k, grid, Azᶜᶠᶠ_δvᶜᶠᶠ_F₂₃ᶜᶠᶠ, p. closure, closure_fields , p. clock, fields, p. buoyancy) + # C, F, F → C, C, C
445445
446- ℑxzᶜᵃᶜ (i, j, k, grid, Axᶠᶜᶠ_δwᶠᶜᶠ_F₃₁ᶠᶜᶠ, p. closure, diffusivity_fields , p. clock, fields, p. buoyancy) + # F, C, F → C, C, C
447- ℑyzᵃᶜᶜ (i, j, k, grid, Ayᶜᶠᶠ_δwᶜᶠᶠ_F₃₂ᶜᶠᶠ, p. closure, diffusivity_fields , p. clock, fields, p. buoyancy) + # C, F, F → C, C, C
448- Azᶜᶜᶜ_δwᶜᶜᶜ_F₃₃ᶜᶜᶜ (i, j, k, grid, p. closure, diffusivity_fields , p. clock, fields, p. buoyancy) # C, C, C
446+ ℑxzᶜᵃᶜ (i, j, k, grid, Axᶠᶜᶠ_δwᶠᶜᶠ_F₃₁ᶠᶜᶠ, p. closure, closure_fields , p. clock, fields, p. buoyancy) + # F, C, F → C, C, C
447+ ℑyzᵃᶜᶜ (i, j, k, grid, Ayᶜᶠᶠ_δwᶜᶠᶠ_F₃₂ᶜᶠᶠ, p. closure, closure_fields , p. clock, fields, p. buoyancy) + # C, F, F → C, C, C
448+ Azᶜᶜᶜ_δwᶜᶜᶜ_F₃₃ᶜᶜᶜ (i, j, k, grid, p. closure, closure_fields , p. clock, fields, p. buoyancy) # C, C, C
449449 ) / Vᶜᶜᶜ (i, j, k, grid) # This division by volume, coupled with the call to A*δuᵢ above, ensures a derivative operation
450450
451451const KineticEnergyDissipationRate = CustomKFO{<: typeof (viscous_dissipation_rate_ccc)}
@@ -484,7 +484,7 @@ function DissipationRate(model; U=ZeroField(), V=ZeroField(), W=ZeroField(),
484484 model. buoyancy)
485485
486486 return KernelFunctionOperation {Center, Center, Center} (viscous_dissipation_rate_ccc, model. grid,
487- model. diffusivity_fields , model_fields, parameters)
487+ model. closure_fields , model_fields, parameters)
488488end
489489# ---
490490
499499 Σˣᶻ² = ℑxzᶜᵃᶜ (i, j, k, grid, fψ_plus_gφ², ∂zᶠᶜᶠ, u, ∂xᶠᶜᶠ, w) / 4
500500 Σʸᶻ² = ℑyzᵃᶜᶜ (i, j, k, grid, fψ_plus_gφ², ∂zᶜᶠᶠ, v, ∂yᶜᶠᶠ, w) / 4
501501
502- ν = _νᶜᶜᶜ (i, j, k, grid, p. closure, p. diffusivity_fields , p. clock)
502+ ν = _νᶜᶜᶜ (i, j, k, grid, p. closure, p. closure_fields , p. clock, p . model_fields )
503503
504504 return 2 ν * (Σˣˣ² + Σʸʸ² + Σᶻᶻ² + 2 * (Σˣʸ² + Σˣᶻ² + Σʸᶻ²))
505505end
@@ -531,17 +531,17 @@ KernelFunctionOperation at (Center, Center, Center)
531531└── arguments: ("Field", "Field", "Field", "NamedTuple")
532532```
533533"""
534- function KineticEnergyIsotropicDissipationRate (u, v, w, closure, diffusivity_fields , clock; location = (Center, Center, Center))
534+ function KineticEnergyIsotropicDissipationRate (u, v, w, closure, closure_fields, model_fields , clock; location = (Center, Center, Center))
535535 validate_location (location, " KineticEnergyIsotropicDissipationRate" )
536536 validate_dissipative_closure (closure)
537537
538- parameters = (; closure, diffusivity_fields , clock)
538+ parameters = (; closure, closure_fields , clock, model_fields )
539539 return KernelFunctionOperation {Center, Center, Center} (isotropic_viscous_dissipation_rate_ccc, u. grid,
540540 u, v, w, parameters)
541541end
542542
543543@inline KineticEnergyIsotropicDissipationRate (model; location = (Center, Center, Center)) =
544- KineticEnergyIsotropicDissipationRate (model. velocities... , model. closure, model. diffusivity_fields , model. clock; location = location)
544+ KineticEnergyIsotropicDissipationRate (model. velocities... , model. closure, model. closure_fields, fields (model) , model. clock; location = location)
545545# ---
546546
547547end # module
0 commit comments