7#ifndef IPPL_SUB_FIELD_LAYOUT_H
8#define IPPL_SUB_FIELD_LAYOUT_H
17#include "Communicate/Communicator.h"
18#include "FieldLayout/FieldLayout.h"
38 template <
unsigned Dim>
42 using view_type =
typename detail::ViewType<NDIndex_t, 1>::view_type;
43 using host_mirror_type =
typename view_type::host_mirror_type;
63 bool isAllPeriodic =
false);
74 bool isAllPeriodic =
false);
91 bool isAllPeriodic =
false);
101 bool isAllPeriodic =
false);
117 template <
unsigned Dim2>
125 if (originDomain_m != x.
getOriginDomain() || this->gDomain_m != x.getDomain()) {
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) {
177 NDIndex_t originDomain_m;
181#include "FieldLayout/SubFieldLayout.hpp"
Definition FieldLayout.h:166
host_mirror_type hLocalDomains_m
Local domains (host mirror view)
Definition FieldLayout.h:385
NDIndex_t gDomain_m
Global domain.
Definition FieldLayout.h:379
SubFieldLayout provides a layout for a sub-region of a larger field.
Definition SubFieldLayout.h:39
bool operator==(const FieldLayout< Dim2 > &x) const
Compare SubFieldLayout to a FieldLayout to see if they represent the same domain.
Definition SubFieldLayout.h:148
const NDIndex< Dim > & getOriginDomain() const
Return the original domain before sub-region extraction.
Definition SubFieldLayout.h:108
bool operator==(const SubFieldLayout< Dim2 > &x) const
Compare SubFieldLayouts to see if they represent the same domain.
Definition SubFieldLayout.h:118
virtual ~SubFieldLayout()=default
Destructor: Everything deletes itself automatically.
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...
Definition SubFieldLayout.hpp:76
Definition Communicator.h:31