36{%
for item in NAMESPACE -%}
37 namespace {{ item }} {
42{%
for item in NAMESPACE -%}
51struct {{NAMESPACE | join(
"::")}}::{{CLASSNAME}} {
54 static MPI_Datatype Datatype;
63 typedef {{FLOAT_TYPE}} DoFType;
66 static constexpr int Cardinality = {{CARDINALITY_2D}};
68 static constexpr int Cardinality = {{CARDINALITY_3D}};
83 {{FLOAT_TYPE}}*
value;
85 enum ObjectConstruction {
98 {{CLASSNAME}}(ObjectConstruction flag);
106 {{CLASSNAME}}(
const {{CLASSNAME}}& other);
121 void clone(
const {{CLASSNAME}}& other);
126 {{CLASSNAME}}& operator=(
const {{CLASSNAME}}& other);
130 {%
if DATA_ASSOCIATION == 1 -%}
134 {%
for arg in ADDITIONAL_LOAD_STORE_ARGUMENTS %},
const {{arg[1]}}& {{arg[2]}} {% endfor %}
136 bool receiveAndMerge(
138 {%
for arg in ADDITIONAL_LOAD_STORE_ARGUMENTS %},
const {{arg[1]}}& {{arg[2]}} {% endfor %}
140 static ::peano4::grid::LoadStoreComputeFlag loadStoreComputeFlag(
142 {%
for arg in ADDITIONAL_LOAD_STORE_ARGUMENTS %},
const {{arg[1]}}& {{arg[2]}} {% endfor %}
146 {%
if DATA_ASSOCIATION == 2 -%}
150 {%
for arg in ADDITIONAL_LOAD_STORE_ARGUMENTS %},
const {{arg[1]}}& {{arg[2]}} {% endfor %}
152 bool receiveAndMerge(
154 {%
for arg in ADDITIONAL_LOAD_STORE_ARGUMENTS %},
const {{arg[1]}}& {{arg[2]}} {% endfor %}
156 static ::peano4::grid::LoadStoreComputeFlag loadStoreComputeFlag(
158 {%
for arg in ADDITIONAL_LOAD_STORE_ARGUMENTS %},
const {{arg[1]}}& {{arg[2]}} {% endfor %}
162 {%
if DATA_ASSOCIATION == 3 -%}
166 {%
for arg in ADDITIONAL_LOAD_STORE_ARGUMENTS %},
const {{arg[1]}}& {{arg[2]}} {% endfor %}
168 bool receiveAndMerge(
170 {%
for arg in ADDITIONAL_LOAD_STORE_ARGUMENTS %},
const {{arg[1]}}& {{arg[2]}} {% endfor %}
172 static ::peano4::grid::LoadStoreComputeFlag loadStoreComputeFlag(
174 {%
for arg in ADDITIONAL_LOAD_STORE_ARGUMENTS %},
const {{arg[1]}}& {{arg[2]}} {% endfor %}
185 {{FLOAT_TYPE}} get(
int index)
const;
193 void set(
int index, {{FLOAT_TYPE}}
value);
200 static void initDatatype();
205 static void shutdownDatatype();
211 static MPI_Datatype getForkDatatype();
212 static MPI_Datatype getJoinDatatype();
213 static MPI_Datatype getBoundaryExchangeDatatype();
214 static MPI_Datatype getMultiscaleDataExchangeDatatype();
215 static MPI_Datatype getGlobalCommunciationDatatype();
std::string toString(exahype2::RefinementCommand value)
SendReceiveContext
There are three different scenarios when we merge data:
std::vector< GridControlEvent > merge(std::vector< GridControlEvent > events, const double Tolerance=0.1)
Merge set of refinement/coarsening commands.
Provide information about selected face.
Vertex marker to provide information about selected vertex.