27{%
if FLOAT_TYPE==
"std::float16_t" or FLOAT_TYPE==
"std::bfloat16_t" %}
31{%
for item in NAMESPACE -%}
32 namespace {{ item }} {
37{%
for item in NAMESPACE -%}
46struct {{NAMESPACE | join(
"::")}}::{{CLASSNAME}} {
49 static MPI_Datatype Datatype;
72 static constexpr int Cardinality = {{CARDINALITY_2D}};
74 static constexpr int Cardinality = {{CARDINALITY_3D}};
78 enum ObjectConstruction {
83 {{CLASSNAME}}( ObjectConstruction ):
85 {{CLASSNAME}}(
const {{CLASSNAME}}& other);
86 {{CLASSNAME}}& operator=(
const {{CLASSNAME}}& other);
90 {%
if DATA_ASSOCIATION == 1 -%}
94 {%
for arg in ADDITIONAL_LOAD_STORE_ARGUMENTS %},
const {{arg[1]}}& {{arg[2]}} {% endfor %}
98 {%
for arg in ADDITIONAL_LOAD_STORE_ARGUMENTS %},
const {{arg[1]}}& {{arg[2]}} {% endfor %}
100 static ::peano4::grid::LoadStoreComputeFlag loadStoreComputeFlag(
102 {%
for arg in ADDITIONAL_LOAD_STORE_ARGUMENTS %},
const {{arg[1]}}& {{arg[2]}} {% endfor %}
106 {%
if DATA_ASSOCIATION == 2 -%}
110 {%
for arg in ADDITIONAL_LOAD_STORE_ARGUMENTS %},
const {{arg[1]}}& {{arg[2]}} {% endfor %}
112 bool receiveAndMerge(
114 {%
for arg in ADDITIONAL_LOAD_STORE_ARGUMENTS %},
const {{arg[1]}}& {{arg[2]}} {% endfor %}
116 static ::peano4::grid::LoadStoreComputeFlag loadStoreComputeFlag(
118 {%
for arg in ADDITIONAL_LOAD_STORE_ARGUMENTS %},
const {{arg[1]}}& {{arg[2]}} {% endfor %}
122 {%
if DATA_ASSOCIATION == 3 -%}
126 {%
for arg in ADDITIONAL_LOAD_STORE_ARGUMENTS %},
const {{arg[1]}}& {{arg[2]}} {% endfor %}
128 bool receiveAndMerge(
130 {%
for arg in ADDITIONAL_LOAD_STORE_ARGUMENTS %},
const {{arg[1]}}& {{arg[2]}} {% endfor %}
132 static ::peano4::grid::LoadStoreComputeFlag loadStoreComputeFlag(
134 {%
for arg in ADDITIONAL_LOAD_STORE_ARGUMENTS %},
const {{arg[1]}}& {{arg[2]}} {% endfor %}
145 {{FLOAT_TYPE}} get(
int index)
const;
153 void set(
int index, {{FLOAT_TYPE}}
value);
159 static void initDatatype();
164 static void shutdownDatatype();
173 static MPI_Datatype getForkDatatype();
174 static MPI_Datatype getJoinDatatype();
175 static MPI_Datatype getBoundaryExchangeDatatype();
176 static MPI_Datatype getMultiscaleDataExchangeDatatype();
177 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.