Classes | |
class | PackInfo |
Data packing/unpacking for ghost layer based communication of a single walberla::field::Field. More... | |
class | ReducePackInfo |
Data packing/unpacking for reduce operations This class can be used, when multiple data sets from different senders should be reduced at the receiver. More... | |
class | StencilRestrictedMPIDatatypeInfo |
class | StencilRestrictedPackInfo |
PackInfo that packs only the components that point to the neighbor. More... | |
class | UniformMPIDatatypeInfo |
class | UniformPullReductionPackInfo |
Data packing/unpacking for ghost layer based communication of a single walberla::field::Field. More... | |
Functions | |
template<typename Field_T > | |
MPI_Datatype | mpiDatatype (const Field_T &field) |
Creates a MPI datatype to communicate the contents of a whole Field. More... | |
template<typename Field_T > | |
MPI_Datatype | mpiDatatypeSlice (const Field_T &field, const cell_idx_t xBeg, const cell_idx_t yBeg, const cell_idx_t zBeg, const cell_idx_t fBeg, const cell_idx_t xEnd, const cell_idx_t yEnd, const cell_idx_t zEnd, const cell_idx_t fEnd) |
Creates a MPI datatype to communicate an interval of cells of a Field. More... | |
template<typename Field_T > | |
MPI_Datatype | mpiDatatypeSliceXYZ (const Field_T &field, const CellInterval &interval, cell_idx_t f=0) |
Creates a MPI datatype to communicate an interval of cells of a Field. More... | |
template<typename Field_T > | |
MPI_Datatype | mpiDatatypeSliceXYZ (const Field_T &field, const CellInterval &interval, const cell_idx_t fBeg, const cell_idx_t fEnd) |
Creates a MPI datatype to communicate an interval of cells of a Field. More... | |
template<typename Field_T > | |
MPI_Datatype | mpiDatatypeSliceXYZ (const Field_T &field, const CellInterval &interval, const std::set< cell_idx_t > &fs) |
Creates a MPI datatype to communicate an interval of cells of a Field. More... | |
template<typename GhostLayerField_T > | |
MPI_Datatype | mpiDatatypeWithGhostLayer (const GhostLayerField_T &field) |
Creates a MPI datatype to communicate the contents of a whole GhostLayerField including its ghost layers. More... | |
template<typename GhostLayerField_T > | |
MPI_Datatype | mpiDatatypeWithGhostLayer (const GhostLayerField_T &field, const uint_t numGhostLayers) |
Creates a MPI datatype to communicate the contents of a whole GhostLayerField including some of its ghost layers. More... | |
template<typename GhostLayerField_T > | |
MPI_Datatype | mpiDatatypeGhostLayerOnly (const GhostLayerField_T &field, const stencil::Direction dir, const bool fullSlice=false) |
Creates a MPI datatype to communicate parts of the ghost layers of a GhostLayerField. More... | |
template<typename GhostLayerField_T > | |
MPI_Datatype | mpiDatatypeGhostLayerOnly (const GhostLayerField_T &field, const uint_t thickness, const stencil::Direction dir, const bool fullSlice=false) |
Creates a MPI datatype to communicate parts of the ghost layers of a GhostLayerField. More... | |
template<typename GhostLayerField_T > | |
MPI_Datatype | mpiDatatypeGhostLayerOnlyXYZ (const GhostLayerField_T &field, const stencil::Direction dir, const bool fullSlice=false, const cell_idx_t f=0) |
Creates a MPI datatype to communicate parts of the ghost layers of a GhostLayerField. More... | |
template<typename GhostLayerField_T > | |
MPI_Datatype | mpiDatatypeGhostLayerOnlyXYZ (const GhostLayerField_T &field, const stencil::Direction dir, const bool fullSlice, const cell_idx_t fBeg, const cell_idx_t fEnd) |
Creates a MPI datatype to communicate parts of the ghost layers of a GhostLayerField. More... | |
template<typename GhostLayerField_T > | |
MPI_Datatype | mpiDatatypeGhostLayerOnlyXYZ (const GhostLayerField_T &field, const stencil::Direction dir, const bool fullSlice, const std::set< cell_idx_t > &fs) |
Creates a MPI datatype to communicate parts of the ghost layers of a GhostLayerField. More... | |
template<typename GhostLayerField_T > | |
MPI_Datatype | mpiDatatypeSliceBeforeGhostlayer (const GhostLayerField_T &field, const stencil::Direction dir, const uint_t thickness=1, const bool fullSlice=false) |
Creates a MPI datatype to communicate inner parts if a GhostLayerField near the ghost layers. More... | |
template<typename GhostLayerField_T > | |
MPI_Datatype | mpiDatatypeSliceBeforeGhostlayerXYZ (const GhostLayerField_T &field, const stencil::Direction dir, const uint_t thickness=1, const cell_idx_t f=0, const bool fullSlice=false) |
Creates a MPI datatype to communicate inner parts if a GhostLayerField near the ghost layers. More... | |
template<typename GhostLayerField_T > | |
MPI_Datatype | mpiDatatypeSliceBeforeGhostlayerXYZ (const GhostLayerField_T &field, const stencil::Direction dir, const uint_t thickness, const cell_idx_t fBeg, const cell_idx_t fEnd, const bool fullSlice) |
Creates a MPI datatype to communicate inner parts if a GhostLayerField near the ghost layers. More... | |
template<typename GhostLayerField_T > | |
MPI_Datatype | mpiDatatypeSliceBeforeGhostlayerXYZ (const GhostLayerField_T &field, const stencil::Direction dir, const uint_t thickness, const std::set< cell_idx_t > &fs, const bool fullSlice) |
Creates a MPI datatype to communicate inner parts if a GhostLayerField near the ghost layers. More... | |
MPI_Datatype walberla::field::communication::mpiDatatype | ( | const Field_T & | field | ) |
Creates a MPI datatype to communicate the contents of a whole Field.
Only the inner cells of a Field are communicated, when the returned datatype is used in MPI communication.
The returned MPI_Datatype still has to be committed before used in communication and should be freed if it is not needed any longer.
field | The Field to be communicated |
MPI_Datatype walberla::field::communication::mpiDatatypeGhostLayerOnly | ( | const GhostLayerField_T & | field, |
const stencil::Direction | dir, | ||
const bool | fullSlice = false |
||
) |
Creates a MPI datatype to communicate parts of the ghost layers of a GhostLayerField.
All ghost layers in the specified direction of a Field are communicated, when the returned datatype is used in MPI communication.
The returned MPI_Datatype still has to be committed before used in communication and should be freed if it is not needed any longer.
field | The GhostLayerField to be communicated |
dir | As described at GhostLayerField::getGhostRegion |
fullSlice | As described at GhostLayerField::getGhostRegion |
MPI_Datatype walberla::field::communication::mpiDatatypeGhostLayerOnly | ( | const GhostLayerField_T & | field, |
const uint_t | thickness, | ||
const stencil::Direction | dir, | ||
const bool | fullSlice = false |
||
) |
Creates a MPI datatype to communicate parts of the ghost layers of a GhostLayerField.
The specified ghost layers of a Field are communicated, when the returned datatype is used in MPI communication.
The returned MPI_Datatype still has to be committed before used in communication and should be freed if it is not needed any longer.
field | The GhostLayerField to be communicated |
thickness | As described at GhostLayerField::getGhostRegion |
dir | As described at GhostLayerField::getGhostRegion |
fullSlice | As described at GhostLayerField::getGhostRegion |
MPI_Datatype walberla::field::communication::mpiDatatypeGhostLayerOnlyXYZ | ( | const GhostLayerField_T & | field, |
const stencil::Direction | dir, | ||
const bool | fullSlice, | ||
const cell_idx_t | fBeg, | ||
const cell_idx_t | fEnd | ||
) |
Creates a MPI datatype to communicate parts of the ghost layers of a GhostLayerField.
The specified ghost layers of a Field are communicated, when the returned datatype is used in MPI communication.
The returned MPI_Datatype still has to be committed before used in communication and should be freed if it is not needed any longer.
field | The GhostLayerField to be communicated |
dir | As described at GhostLayerField::getGhostRegion |
fullSlice | As described at GhostLayerField::getGhostRegion |
fBeg | Beginning of the interval of communicated components |
fEnd | End of the interval of communicated components (included in the interval) |
MPI_Datatype walberla::field::communication::mpiDatatypeGhostLayerOnlyXYZ | ( | const GhostLayerField_T & | field, |
const stencil::Direction | dir, | ||
const bool | fullSlice, | ||
const std::set< cell_idx_t > & | fs | ||
) |
Creates a MPI datatype to communicate parts of the ghost layers of a GhostLayerField.
The specified ghost layers of a Field are communicated, when the returned datatype is used in MPI communication.
The returned MPI_Datatype still has to be committed before used in communication and should be freed if it is not needed any longer.
field | The GhostLayerField to be communicated |
dir | As described at GhostLayerField::getGhostRegion |
fullSlice | As described at GhostLayerField::getGhostRegion |
fs | Communicated components |
MPI_Datatype walberla::field::communication::mpiDatatypeGhostLayerOnlyXYZ | ( | const GhostLayerField_T & | field, |
const stencil::Direction | dir, | ||
const bool | fullSlice = false , |
||
const cell_idx_t | f = 0 |
||
) |
Creates a MPI datatype to communicate parts of the ghost layers of a GhostLayerField.
The specified ghost layers of a Field are communicated, when the returned datatype is used in MPI communication.
The returned MPI_Datatype still has to be committed before used in communication and should be freed if it is not needed any longer.
field | The GhostLayerField to be communicated |
dir | As described at GhostLayerField::getGhostRegion |
fullSlice | As described at GhostLayerField::getGhostRegion |
f | Component which is communicated |
MPI_Datatype walberla::field::communication::mpiDatatypeSlice | ( | const Field_T & | field, |
const cell_idx_t | xBeg, | ||
const cell_idx_t | yBeg, | ||
const cell_idx_t | zBeg, | ||
const cell_idx_t | fBeg, | ||
const cell_idx_t | xEnd, | ||
const cell_idx_t | yEnd, | ||
const cell_idx_t | zEnd, | ||
const cell_idx_t | fEnd | ||
) |
Creates a MPI datatype to communicate an interval of cells of a Field.
Only the cells in the described interval of a Field are communicated, when the returned datatype is used in MPI communication.
The returned MPI_Datatype still has to be committed before used in communication and should be freed if it is not needed any longer.
field | The Field to be communicated |
xBeg | Beginning of the interval in x direction |
yBeg | Beginning of the interval in y direction |
zBeg | Beginning of the interval in z direction |
fBeg | Beginning of the interval in f direction |
xEnd | End of the interval in x direction (included in the interval) |
yEnd | End of the interval in y direction (included in the interval) |
zEnd | End of the interval in z direction (included in the interval) |
fEnd | End of the interval in f direction (included in the interval) |
MPI_Datatype walberla::field::communication::mpiDatatypeSliceBeforeGhostlayer | ( | const GhostLayerField_T & | field, |
const stencil::Direction | dir, | ||
const uint_t | thickness = 1 , |
||
const bool | fullSlice = false |
||
) |
Creates a MPI datatype to communicate inner parts if a GhostLayerField near the ghost layers.
The specified inner layers of a Field are communicated, when the returned datatype is used in MPI communication.
The returned MPI_Datatype still has to be committed before used in communication and should be freed if it is not needed any longer.
field | The GhostLayerField to be communicated |
dir | As described at GhostLayerField::getSliceBeforeGhostLayer |
thickness | As described at GhostLayerField::getSliceBeforeGhostLayer |
fullSlice | As described at GhostLayerField::getSliceBeforeGhostLayer |
MPI_Datatype walberla::field::communication::mpiDatatypeSliceBeforeGhostlayerXYZ | ( | const GhostLayerField_T & | field, |
const stencil::Direction | dir, | ||
const uint_t | thickness, | ||
const cell_idx_t | fBeg, | ||
const cell_idx_t | fEnd, | ||
const bool | fullSlice | ||
) |
Creates a MPI datatype to communicate inner parts if a GhostLayerField near the ghost layers.
The specified inner layers of a Field are communicated, when the returned datatype is used in MPI communication.
The returned MPI_Datatype still has to be committed before used in communication and should be freed if it is not needed any longer.
field | The GhostLayerField to be communicated |
dir | As described at GhostLayerField::getSliceBeforeGhostLayer |
thickness | As described at GhostLayerField::getSliceBeforeGhostLayer |
fullSlice | As described at GhostLayerField::getSliceBeforeGhostLayer |
fBeg | Beginning of the interval of communicated components |
fEnd | End of the interval of communicated components (included in the interval) |
MPI_Datatype walberla::field::communication::mpiDatatypeSliceBeforeGhostlayerXYZ | ( | const GhostLayerField_T & | field, |
const stencil::Direction | dir, | ||
const uint_t | thickness, | ||
const std::set< cell_idx_t > & | fs, | ||
const bool | fullSlice | ||
) |
Creates a MPI datatype to communicate inner parts if a GhostLayerField near the ghost layers.
The specified inner layers of a Field are communicated, when the returned datatype is used in MPI communication.
The returned MPI_Datatype still has to be committed before used in communication and should be freed if it is not needed any longer.
field | The GhostLayerField to be communicated |
dir | As described at GhostLayerField::getSliceBeforeGhostLayer |
thickness | As described at GhostLayerField::getSliceBeforeGhostLayer |
fullSlice | As described at GhostLayerField::getSliceBeforeGhostLayer |
fs | Communicated components |
MPI_Datatype walberla::field::communication::mpiDatatypeSliceBeforeGhostlayerXYZ | ( | const GhostLayerField_T & | field, |
const stencil::Direction | dir, | ||
const uint_t | thickness = 1 , |
||
const cell_idx_t | f = 0 , |
||
const bool | fullSlice = false |
||
) |
Creates a MPI datatype to communicate inner parts if a GhostLayerField near the ghost layers.
The specified inner layers of a Field are communicated, when the returned datatype is used in MPI communication.
The returned MPI_Datatype still has to be committed before used in communication and should be freed if it is not needed any longer.
field | The GhostLayerField to be communicated |
dir | As described at GhostLayerField::getSliceBeforeGhostLayer |
thickness | As described at GhostLayerField::getSliceBeforeGhostLayer |
fullSlice | As described at GhostLayerField::getSliceBeforeGhostLayer |
f | Component which is communicated |
MPI_Datatype walberla::field::communication::mpiDatatypeSliceXYZ | ( | const Field_T & | field, |
const CellInterval & | interval, | ||
cell_idx_t | f = 0 |
||
) |
Creates a MPI datatype to communicate an interval of cells of a Field.
Only the cells in the described interval of a Field are communicated, when the returned datatype is used in MPI communication.
The returned MPI_Datatype still has to be committed before used in communication and should be freed if it is not needed any longer.
field | The Field to be communicated |
interval | Interval of communicated cells |
f | f component that is communicated |
MPI_Datatype walberla::field::communication::mpiDatatypeSliceXYZ | ( | const Field_T & | field, |
const CellInterval & | interval, | ||
const cell_idx_t | fBeg, | ||
const cell_idx_t | fEnd | ||
) |
Creates a MPI datatype to communicate an interval of cells of a Field.
Only the cells in the described interval of a Field are communicated, when the returned datatype is used in MPI communication.
The returned MPI_Datatype still has to be committed before used in communication and should be freed if it is not needed any longer.
field | The Field to be communicated |
interval | Interval of communicated cells |
fBeg | Beginning of the interval in f direction |
fEnd | End of the interval in f direction (included in the interval) |
MPI_Datatype walberla::field::communication::mpiDatatypeSliceXYZ | ( | const Field_T & | field, |
const CellInterval & | interval, | ||
const std::set< cell_idx_t > & | fs | ||
) |
Creates a MPI datatype to communicate an interval of cells of a Field.
Only the cells in the described interval of a Field are communicated, when the returned datatype is used in MPI communication.
The returned MPI_Datatype still has to be committed before used in communication and should be freed if it is not needed any longer.
field | The Field to be communicated |
interval | Interval of communicated cells |
fs | Set of f components to be communicated |
MPI_Datatype walberla::field::communication::mpiDatatypeWithGhostLayer | ( | const GhostLayerField_T & | field | ) |
Creates a MPI datatype to communicate the contents of a whole GhostLayerField including its ghost layers.
All cells of a Field are communicated, when the returned datatype is used in MPI communication.
The returned MPI_Datatype still has to be committed before used in communication and should be freed if it is not needed any longer.
field | The GhostLayerField to be communicated |
MPI_Datatype walberla::field::communication::mpiDatatypeWithGhostLayer | ( | const GhostLayerField_T & | field, |
const uint_t | numGhostLayers | ||
) |
Creates a MPI datatype to communicate the contents of a whole GhostLayerField including some of its ghost layers.
All inner cells and the specified ghost layers of a Field are communicated, when the returned datatype is used in MPI communication.
The returned MPI_Datatype still has to be committed before used in communication and should be freed if it is not needed any longer.
field | The GhostLayerField to be communicated |
numGhostLayers | The number of ghost layers to be communicated (from inner to outer layers) |