11struct 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
79end
810
9- quadrature_style (levelgrid:: LevelGrid ) =
10- quadrature_style (levelgrid. full_grid. horizontal_grid)
11+ quadrature_style (levelgrid:: LevelGrid ) = levelgrid. quadrature_style
1112
1213level (
1314 grid:: AbstractExtrudedFiniteDifferenceGrid ,
1415 level:: Union{Int, PlusHalf{Int}} ,
15- ) = LevelGrid (grid, level)
16+ ) = LevelGrid (grid, level, quadrature_style (grid) )
1617
1718topology (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.
2223dss_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)
2627local_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
4246const LevelCubedSphereSpectralElementGrid2D =
0 commit comments