7#ifndef IPPL_SUB_FIELD_LAYOUT_H
8#define IPPL_SUB_FIELD_LAYOUT_H
38 template <
unsigned Dim>
63 bool isAllPeriodic =
false);
74 bool isAllPeriodic =
false);
91 bool isAllPeriodic =
false);
101 bool isAllPeriodic =
false);
117 template <
unsigned Dim2>
130 for (
unsigned int rank = 0; rank < this->
comm.size(); ++rank) {
147 template <
unsigned Dim2>
160 for (
unsigned int rank = 0; rank < this->
comm.size(); ++rank) {
const NDIndex< Dim > & getDomain() const
const NDIndex_t & getLocalNDIndex() const
FieldLayout(const mpi::Communicator &=MPI_COMM_WORLD)
host_mirror_type hLocalDomains_m
Local domains (host mirror view).
NDIndex_t gDomain_m
Global domain.
bool operator==(const FieldLayout< Dim2 > &x) const
Compare SubFieldLayout to a FieldLayout to see if they represent the same domain.
const NDIndex< Dim > & getOriginDomain() const
Return the original domain before sub-region extraction.
typename view_type::host_mirror_type host_mirror_type
bool operator==(const SubFieldLayout< Dim2 > &x) const
Compare SubFieldLayouts to see if they represent the same domain.
typename detail::ViewType< NDIndex_t, 1 >::view_type view_type
SubFieldLayout(const mpi::Communicator &=MPI_COMM_WORLD)
Default constructor, which should only be used if you are going to call 'initialize' soon after (befo...
virtual ~SubFieldLayout()=default
Destructor: Everything deletes itself automatically.
NDIndex_t originDomain_m
Original global domain in which the sub-field is defined.
void initialize(const NDIndex< Dim > &domain, const NDIndex< Dim > &subDomain, std::array< bool, Dim > decomp, bool isAllPeriodic=false)
Initializes a SubFieldLayout with the sub-domain partitioned in the same way as the original FieldLay...
Kokkos::View< typename NPtr< T, Dim >::type, Properties... > view_type