Mercurial > repos > public > sbplib_julia
comparison src/Grids/tensor_grid.jl @ 1427:26e168924cf1 feature/grids/curvilinear
Merge default
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Wed, 23 Aug 2023 15:51:32 +0200 |
parents | 4d628c83987e |
children | 60857d8338cb |
comparison
equal
deleted
inserted
replaced
1426:9c689a627244 | 1427:26e168924cf1 |
---|---|
15 return new{T,D,typeof(gs)}(gs) | 15 return new{T,D,typeof(gs)}(gs) |
16 end | 16 end |
17 end | 17 end |
18 | 18 |
19 # Indexing interface | 19 # Indexing interface |
20 function Base.getindex(g::TensorGrid, I...) | 20 function Base.getindex(g::TensorGrid, I::Vararg{Int}) |
21 szs = ndims.(g.grids) | 21 szs = ndims.(g.grids) |
22 | 22 |
23 Is = LazyTensors.split_tuple(I, szs) | 23 Is = LazyTensors.split_tuple(I, szs) |
24 ps = map((g,I)->SVector(g[I...]), g.grids, Is) | 24 ps = map((g,I)->SVector(g[I...]), g.grids, Is) |
25 | 25 |
26 return vcat(ps...) | 26 return vcat(ps...) |
27 end | 27 end |
28 | |
29 Base.getindex(g::TensorGrid, I::CartesianIndex) = g[Tuple(I)...] | |
30 | 28 |
31 function Base.eachindex(g::TensorGrid) | 29 function Base.eachindex(g::TensorGrid) |
32 szs = LazyTensors.concatenate_tuples(size.(g.grids)...) | 30 szs = LazyTensors.concatenate_tuples(size.(g.grids)...) |
33 return CartesianIndices(szs) | 31 return CartesianIndices(szs) |
34 end | 32 end |