[x] Have NDVecArray<T, dims, vec_len> as a dims-dimensional array of fixed-length vectors (of size vec_len). Keeps all field components memory-local.
[x] Memory "views" of rectangular regions extracted from a NDArray?
[ ] ~Also have NDVecArray of static size, useful when interpolating with kernels with known support.~
[x] Have template for fixed-length vectors that are used everywhere (as index vectors, coordinate vectors) ... allows for (auto-?)vectorization of math ops.
[x] constexpr iterator across NDArray of constexpr size
Green's function calculation:
[x] Concatenation of NDArrays along one of the outermost dimensions is trivial: just memcpy and concatenate the memory contents. Use this when combining time slices from meep. Also means that only one time slice needs to be kept in working memory.
[x] Rechecking can be parallelized (read access can be concurrent).
Integration:
[ ] Chunk lookup in DistributedNDArray currently uses linear search to find the chunk that contains a given index. Should use an R-tree instead. Can even build the most efficient tree since all chunks are known when the Green's function is opened for read access.
[x] Given vector of signal times and trajectory segments, group neighboring Green's function evaluations
General:
NDVecArray<T, dims, vec_len>
as adims
-dimensional array of fixed-length vectors (of sizevec_len
). Keeps all field components memory-local.NDArray
?NDVecArray
of static size, useful when interpolating with kernels with known support.~constexpr
iterator acrossNDArray
ofconstexpr
sizeGreen's function calculation:
NDArrays
along one of the outermost dimensions is trivial: justmemcpy
and concatenate the memory contents. Use this when combining time slices from meep. Also means that only one time slice needs to be kept in working memory.Integration:
DistributedNDArray
currently uses linear search to find the chunk that contains a given index. Should use an R-tree instead. Can even build the most efficient tree since all chunks are known when the Green's function is opened for read access.