Currently it is cumbersome to print a slice of a ChunkSpan, it typically looks like:
ddc::ChunkSpan feet_r /*...*/;
auto domain_feet = feet_r.domain();
auto delem_species = ddc::DiscreteDomain<Species>(domain_feet).front();
auto delem_vpar = ddc::DiscreteDomain<GridVpar>(domain_feet).front()+2;
auto delem_mu = ddc::DiscreteDomain<GridMu>(domain_feet).front()+4;
ddc::Chunk feet_r_contiguous("", feet_r[delem_species][delem_vpar][delem_mu].domain(), ddc::DeviceAllocator<double>());
ddc::parallel_deepcopy(feet_r_contiguous, feet_r);
ddc::print(std::cout, feet_r_contiguous);
It hits two limitations:
ddc::print cannot print a Kokkos::layout_stride chunk
- slicing needs to be done from a
DiscreteElement
I suggest we remove these two limitations:
It would allow:
ddc::ChunkSpan feet_r /*...*/;
ddc::print(std::cout, feet_r[ddc::DiscreteVector<Species>(0)][ddc::DiscreteVector<GridVpar>(2)][ddc::DiscreteVector<GridMu>(4)]);
Currently it is cumbersome to print a slice of a
ChunkSpan, it typically looks like:It hits two limitations:
ddc::printcannot print aKokkos::layout_stridechunkDiscreteElementI suggest we remove these two limitations:
ddc::printmust be able to print from aKokkos::layout_stride, see Support printing a layout stride #1134DiscreteVector, see Slice from a DiscreteVector #1139It would allow: