@@ -347,29 +347,31 @@ function test_mqg_energies(dev::Device=CPU();
347
347
348
348
x, y = gridpoints (gr)
349
349
k₀, l₀ = 2 π/ gr. Lx, 2 π/ gr. Ly # fundamental wavenumbers
350
-
351
- nlayers = 2 # these choice of parameters give the
352
- f₀, g = 1 , 1 # desired PV-streamfunction relations
353
- H = [0.2 , 0.8 ] # q1 = Δψ1 + 25*(ψ2-ψ1), and
354
- ρ = [4.0 , 5.0 ] # q2 = Δψ2 + 25/4*(ψ1-ψ2).
355
-
356
- prob = MultiLayerQG. Problem (nlayers, dev; nx, ny, Lx, Ly, f₀, g, H, ρ)
350
+ nlayers = 2
357
351
352
+ f₀, g = 1 , 1
353
+ H = [2.5 , 7.5 ] # sum(params.H) = 10
354
+ ρ = [1.0 , 2.0 ] # Make g′ = 1/2
355
+
356
+ prob = MultiLayerQG. Problem (nlayers, dev; nx, ny, Lx, Ly, f₀, g, H, ρ)
358
357
sol, cl, pr, vs, gr = prob. sol, prob. clock, prob. params, prob. vars, prob. grid
359
358
360
- ψ1, ψ2, q1, q2, ψ1x, ψ2x, q1x, q2x, Δψ2, Δq1, Δq2 = constructtestfields_2layer (gr)
359
+ ψ = zeros (dev, eltype (gr), (gr. nx, gr. ny, nlayers))
360
+
361
+ CUDA. @allowscalar @views @. ψ[:, :, 1 ] = cos (2 k₀ * x) * cos (2 l₀ * y)
362
+ CUDA. @allowscalar @views @. ψ[:, :, 2 ] = 1 / 2 * cos (2 k₀ * x) * cos (2 l₀ * y)
361
363
362
- qf = zeros (dev, eltype (gr), (gr. nx, gr. ny, nlayers))
363
- CUDA. @allowscalar @views qf[:, :, 1 ] .= q1
364
- CUDA. @allowscalar @views qf[:, :, 2 ] .= q2
364
+ MultiLayerQG. set_ψ! (prob, ψ)
365
365
366
- MultiLayerQG. set_q! (prob, qf)
366
+ KE1_calc = 1 / 4 # = H1/H
367
+ KE2_calc = 3 / 4 / 4 # = H2/H/4
368
+ PE_calc = 1 / 16 / 10 # = 1/16/H
367
369
368
370
KE, PE = MultiLayerQG. energies (prob)
369
371
370
- return isapprox (KE[1 ], 61 / 640 * 1e-6 , rtol= rtol_multilayerqg) &&
371
- isapprox (KE[2 ], 3 * 1e-6 , rtol= rtol_multilayerqg) &&
372
- isapprox (PE[1 ], 1025 / 1152 * 1e-6 , rtol= rtol_multilayerqg) &&
372
+ return isapprox (KE[1 ], KE1_calc , rtol= rtol_multilayerqg) &&
373
+ isapprox (KE[2 ], KE2_calc , rtol= rtol_multilayerqg) &&
374
+ isapprox (PE[1 ], PE_calc , rtol= rtol_multilayerqg) &&
373
375
MultiLayerQG. addforcing! (prob. timestepper. RHS₁, sol, cl. t, cl, vs, pr, gr)== nothing
374
376
end
375
377
0 commit comments