MAIA bb96820c
Multiphysics at AIA
|
Functions | |
template<class T > | |
void | rowMajor1D (T *&p, void *&base, const MInt Nrows) |
Store 1D variables in row-majow order relative to the start of each cell's memory solver. More... | |
template<class T > | |
ATTRIBUTES1 (ATTRIBUTE_NO_AUTOVEC) inline void rowMajor2D(T **&p | |
for (MInt i=0;i< Nrows;++i) | |
Variables | |
void *& | base = reinterpret_cast<T*>(base) + static_cast<MLong>(1) * Nrows * Ncols |
void const MInt | Nrows |
void const MInt const MInt | Ncols |
This namespaces includes helpers for managing collector memory "cell-wise" This is VERY wrong and should not be done. The memory is NOT aligned!
maia::collector_memory::unaligned_cell_wise::ATTRIBUTES1 | ( | ATTRIBUTE_NO_AUTOVEC | ) | & |
maia::collector_memory::unaligned_cell_wise::for | ( | ) |
Definition at line 320 of file collector.h.
|
inline |
NOTE: DO NOT USE THIS, IS VERY BAD FOR PERFORMANCE, ALIGNMENT, REQUIRED MEMORY....
Some cells use the collector as follows:
| ....... collector memory ......... |
|.....| stuff of the cell i | ..... | ^^^^^^^^^^^^^^^^^^^^^ (expanded below) |.....| array_of_floats, array_of_ints, array_of_floats,... of the cell i | ..... |
This means that when you loop over some cell pointer, you don't go linearly through memory but you have random access (bad for performance)
Furthermore: each of the arrays inside each cell needs to be aligned, so the padding you need is not a function of the #of_member_variables but a function of both the #of_cells AND the #of_member_variables -> If a single array is not aligned you need maxNoCells*padding ! (bad for memory)
Definition at line 307 of file collector.h.
maia::collector_memory::unaligned_cell_wise::base = reinterpret_cast<T*>(base) + static_cast<MLong>(1) * Nrows * Ncols |
Definition at line 315 of file collector.h.
Definition at line 315 of file collector.h.
void const MInt maia::collector_memory::unaligned_cell_wise::Nrows |
Definition at line 315 of file collector.h.