Skip to content

Ease printing of a ddc::ChunkSpan #1140

@tpadioleau

Description

@tpadioleau

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)]);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions