Skip to content

Commit ac86c3a

Browse files
(0.95.5) Bugfix in immersed phi-node (#4010)
* correct immersed nodes * added a test
1 parent ee03410 commit ac86c3a

File tree

3 files changed

+11
-6
lines changed

3 files changed

+11
-6
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "Oceananigans"
22
uuid = "9e8cae18-63c1-5223-a75c-80ca9d6e9a09"
33
authors = ["Climate Modeling Alliance and contributors"]
4-
version = "0.95.4"
4+
version = "0.95.5"
55

66
[deps]
77
Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"

src/ImmersedBoundaries/immersed_boundary_nodes.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const f = Face()
99
@inline znode(k, ibg::IBG, ℓz) = znode(k, ibg.underlying_grid, ℓz)
1010

1111
@inline λnode(i, ibg::IBG, ℓx) = λnode(i, ibg.underlying_grid, ℓx)
12-
@inline φnode(j, ibg::IBG, ℓy) = φnode(i, ibg.underlying_grid, ℓy)
12+
@inline φnode(j, ibg::IBG, ℓy) = φnode(j, ibg.underlying_grid, ℓy)
1313

1414
@inline xnode(i, j, ibg::IBG, ℓx, ℓy) = xnode(i, j, ibg.underlying_grid, ℓx, ℓy)
1515

test/test_grids.jl

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -649,6 +649,7 @@ function test_lat_lon_xyzλφ_node_nodes(FT, arch)
649649
zᵣ = (-10, 0)
650650

651651
grid = LatitudeLongitudeGrid(CPU(), FT, size=grid_size, halo=halo, latitude=lat, longitude=lon, z=zᵣ)
652+
ibg = ImmersedBoundaryGrid(grid, GridFittedBottom((x, y) -> y < 20 && y > -20 ? -50 : -0))
652653

653654
@info " Testing grid utils on LatitudeLongitude grid...."
654655

@@ -658,15 +659,19 @@ function test_lat_lon_xyzλφ_node_nodes(FT, arch)
658659
@test ynode(2, 1, 2, grid, Face(), Face(), Face()) / grid.radius -FT/3)
659660
@test znode(2, 1, 2, grid, Face(), Face(), Face()) -5
660661

662+
@test λnode(3, 1, 2, ibg, Face(), Face(), Face()) -120
663+
@test φnode(3, 2, 2, ibg, Face(), Face(), Face()) -30
664+
@test xnode(5, 1, 2, ibg, Face(), Face(), Face()) / ibg.radius -FT/6)
665+
@test ynode(2, 1, 2, ibg, Face(), Face(), Face()) / ibg.radius -FT/3)
666+
@test znode(2, 1, 2, ibg, Face(), Face(), Face()) -5
667+
661668
@test minimum_xspacing(grid, Face(), Face(), Face()) / grid.radius FT/6) * cosd(60)
662669
@test minimum_xspacing(grid) / grid.radius FT/6) * cosd(45)
663670
@test minimum_yspacing(grid) / grid.radius FT/6)
664671
@test minimum_zspacing(grid) 5
665672

666-
grid = ImmersedBoundaryGrid(grid, GridFittedBottom((x, y) -> y < 20 && y > -20 ? -50 : -0))
667-
668-
@test minimum_xspacing(grid, Face(), Face(), Face()) / grid.radius FT/6) * cosd(30)
669-
@test minimum_xspacing(grid) / grid.radius FT/6) * cosd(15)
673+
@test minimum_xspacing(ibg, Face(), Face(), Face()) / ibg.radius FT/6) * cosd(30)
674+
@test minimum_xspacing(ibg) / ibg.radius FT/6) * cosd(15)
670675

671676
return nothing
672677
end

0 commit comments

Comments
 (0)