Mercurial > repos > public > sbplib_julia
diff src/Grids/tensor_grid.jl @ 1954:b0915f43b122 feature/sbp_operators/laplace_curvilinear
Merge feature/grids/geometry_functions
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Sat, 08 Feb 2025 09:38:58 +0100 |
parents | b1eb33e62d1e |
children |
line wrap: on
line diff
--- a/src/Grids/tensor_grid.jl Sat Feb 08 09:35:13 2025 +0100 +++ b/src/Grids/tensor_grid.jl Sat Feb 08 09:38:58 2025 +0100 @@ -47,6 +47,10 @@ Base.size(g::TensorGrid) = LazyTensors.concatenate_tuples(size.(g.grids)...) Base.size(g::TensorGrid, d) = size(g)[d] +function spacing(g::TensorGrid) + relevant_grids = filter(g->!isa(g,ZeroDimGrid),g.grids) + return spacing.(relevant_grids) +end function min_spacing(g::TensorGrid) relevant_grids = filter(g->!isa(g,ZeroDimGrid),g.grids) @@ -90,15 +94,16 @@ return TensorGrid(new_grids...) end -function boundary_indices(g::TensorGrid, id::TensorGridBoundary) - per_grid_ind = map(g.grids) do g - ntuple(i->:, ndims(g)) - end +function boundary_indices(g::TensorGrid{<:Any, 1}, id::TensorGridBoundary) + return boundary_indices(g.grids[grid_id(id)], boundary_id(id)) +end +function boundary_indices(g::TensorGrid, id::TensorGridBoundary) local_b_ind = boundary_indices(g.grids[grid_id(id)], boundary_id(id)) - b_ind = Base.setindex(per_grid_ind, local_b_ind, grid_id(id)) - return LazyTensors.concatenate_tuples(b_ind...) + b_ind = Base.setindex(map(eachindex, g.grids), local_b_ind, grid_id(id)) + + return view(eachindex(g), b_ind...) end function combined_coordinate_vector_type(coordinate_types...)