Skip to content

Commit af19727

Browse files
committed
Fix for #2358
1 parent fa1e426 commit af19727

1 file changed

Lines changed: 11 additions & 7 deletions

File tree

src/Grids/level.jl

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
struct LevelGrid{
22
G <: AbstractExtrudedFiniteDifferenceGrid,
33
L <: Union{Int, PlusHalf{Int}},
4+
Q <: Quadratures.QuadratureStyle,
45
} <: AbstractGrid
56
full_grid::G
67
level::L
8+
quadrature_style::Q
79
end
810

9-
quadrature_style(levelgrid::LevelGrid) =
10-
quadrature_style(levelgrid.full_grid.horizontal_grid)
11+
quadrature_style(levelgrid::LevelGrid) = levelgrid.quadrature_style
1112

1213
level(
1314
grid::AbstractExtrudedFiniteDifferenceGrid,
1415
level::Union{Int, PlusHalf{Int}},
15-
) = LevelGrid(grid, level)
16+
) = LevelGrid(grid, level, quadrature_style(grid))
1617

1718
topology(levelgrid::LevelGrid) = topology(levelgrid.full_grid)
1819

@@ -21,7 +22,7 @@ topology(levelgrid::LevelGrid) = topology(levelgrid.full_grid)
2122
# need to extract the weights at a particular level.
2223
dss_weights(levelgrid::LevelGrid, _) = dss_weights(levelgrid.full_grid, nothing)
2324

24-
local_geometry_type(::Type{LevelGrid{G, L}}) where {G, L} =
25+
local_geometry_type(::Type{LevelGrid{G, L, Q}}) where {G, L, Q} =
2526
local_geometry_type(G)
2627
local_geometry_data(levelgrid::LevelGrid{<:Any, Int}, ::Nothing) = level(
2728
local_geometry_data(levelgrid.full_grid, CellCenter()),
@@ -32,11 +33,14 @@ local_geometry_data(levelgrid::LevelGrid{<:Any, PlusHalf{Int}}, ::Nothing) =
3233
local_geometry_data(levelgrid.full_grid, CellFace()),
3334
levelgrid.level + half,
3435
)
35-
global_geometry(levlgrid::LevelGrid) = global_geometry(levlgrid.full_grid)
36+
global_geometry(levelgrid::LevelGrid) = global_geometry(levelgrid.full_grid)
3637

3738
## GPU compatibility
38-
Adapt.adapt_structure(to, grid::LevelGrid) =
39-
LevelGrid(Adapt.adapt(to, grid.full_grid), grid.level)
39+
Adapt.adapt_structure(to, grid::LevelGrid) = LevelGrid(
40+
Adapt.adapt(to, grid.full_grid),
41+
grid.level,
42+
quadrature_style(grid),
43+
)
4044

4145
## aliases
4246
const LevelCubedSphereSpectralElementGrid2D =

0 commit comments

Comments
 (0)