Tpetra BCRS: Detach public interface from layout of little blocks
Created by: mhoemmen
@trilinos/tpetra @trilinos/ifpack2 @crtrott @kyungjoo-kim @amklinv
The public interface of Tpetra::Experimental::BlockCrsMatrix currently assumes that little blocks are row major (LayoutRight, in Kokkos terms), regardless of the execution space. It would make sense to relax this restriction. This would have the following advantages:
- It would let the layout be a function of the execution space, hopefully for best performance
- It would allow strided layouts, so that the (i,j) entries of consecutive blocks could be stored contiguously, thus making outer loop vectorization (for Intel Xeon Phi) easier