Skip to content

Commit

Permalink
Compact cubed sphere validation scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
siddharthabishnu committed May 2, 2024
1 parent 5e1d5a9 commit 659b1b2
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 36 deletions.
29 changes: 11 additions & 18 deletions validation/multi_region/cubed_sphere_rossby_haurwitz.jl
Original file line number Diff line number Diff line change
Expand Up @@ -114,24 +114,6 @@ end

fill_halo_regions!((u, v))

# Now, compute the vorticity.
using Oceananigans.Utils
using KernelAbstractions: @kernel, @index

ζ = Field{Face, Face, Center}(grid)

@kernel function _compute_vorticity!(ζ, grid, u, v)
i, j, k = @index(Global, NTuple)
@inbounds ζ[i, j, k] = ζ₃ᶠᶠᶜ(i, j, k, grid, u, v)
end

offset = -1 .* halo_size(grid)

@apply_regionally begin
params = KernelParameters(total_size(ζ[1]), offset)
launch!(CPU(), grid, params, _compute_vorticity!, ζ, grid, u, v)
end

for region in 1:number_of_regions(grid)
for j in 1-Hy:Ny+Hy, i in 1-Hx:Nx+Hx, k in 1:Nz
model.velocities.u[region][i,j,k] = u[region][i, j, k]
Expand Down Expand Up @@ -196,8 +178,19 @@ save_u(sim) = push!(u_fields, deepcopy(sim.model.velocities.u))
v_fields = Field[]
save_v(sim) = push!(v_fields, deepcopy(sim.model.velocities.v))

# Now, compute the vorticity.
using Oceananigans.Utils
using KernelAbstractions: @kernel, @index

ζ = Field{Face, Face, Center}(grid)

@kernel function _compute_vorticity!(ζ, grid, u, v)
i, j, k = @index(Global, NTuple)
@inbounds ζ[i, j, k] = ζ₃ᶠᶠᶜ(i, j, k, grid, u, v)
end

offset = -1 .* halo_size(grid)

@apply_regionally begin
params = KernelParameters(total_size(ζ[1]), offset)
launch!(CPU(), grid, params, _compute_vorticity!, ζ, grid, u, v)
Expand Down
29 changes: 11 additions & 18 deletions validation/multi_region/cubed_sphere_solid_body_rotation.jl
Original file line number Diff line number Diff line change
Expand Up @@ -100,24 +100,6 @@ end

fill_halo_regions!((u, v))

# Now, compute the vorticity.
using Oceananigans.Utils
using KernelAbstractions: @kernel, @index

ζ = Field{Face, Face, Center}(grid)

@kernel function _compute_vorticity!(ζ, grid, u, v)
i, j, k = @index(Global, NTuple)
@inbounds ζ[i, j, k] = ζ₃ᶠᶠᶜ(i, j, k, grid, u, v)
end

offset = -1 .* halo_size(grid)

@apply_regionally begin
params = KernelParameters(total_size(ζ[1]), offset)
launch!(CPU(), grid, params, _compute_vorticity!, ζ, grid, u, v)
end

# Set the initial conditions.
fac = -(R^2) * Ω_prime *+ 0.5Ω_prime) / g

Expand Down Expand Up @@ -167,8 +149,19 @@ save_u(sim) = push!(u_fields, deepcopy(sim.model.velocities.u))
v_fields = Field[]
save_v(sim) = push!(v_fields, deepcopy(sim.model.velocities.v))

# Now, compute the vorticity.
using Oceananigans.Utils
using KernelAbstractions: @kernel, @index

ζ = Field{Face, Face, Center}(grid)

@kernel function _compute_vorticity!(ζ, grid, u, v)
i, j, k = @index(Global, NTuple)
@inbounds ζ[i, j, k] = ζ₃ᶠᶠᶜ(i, j, k, grid, u, v)
end

offset = -1 .* halo_size(grid)

@apply_regionally begin
params = KernelParameters(total_size(ζ[1]), offset)
launch!(CPU(), grid, params, _compute_vorticity!, ζ, grid, u, v)
Expand Down

0 comments on commit 659b1b2

Please sign in to comment.