OpenLB 1.7
|
Map of post processors of a single priority and stage. More...
#include <blockPostProcessorMap.h>
Public Member Functions | |
BlockPostProcessorMap (ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > *lattice) | |
void | addLegacy (PostProcessor< T, DESCRIPTOR > *postProcessor) |
void | add (std::size_t iCell, PostProcessorPromise< T, DESCRIPTOR > &&promise) |
Schedule post processor for application at iCell. | |
void | add (PostProcessorPromise< T, DESCRIPTOR > &&promise) |
Add post processor to map, do nothing if it already exists. | |
bool | contains (PostProcessorPromise< T, DESCRIPTOR > &&promise) const |
Returns true if map contains post processor. | |
void | apply () |
Apply all managed post processors to lattice. | |
Map of post processors of a single priority and stage.
Maintained in ConcreteBlockLattice
Definition at line 160 of file blockPostProcessorMap.h.
|
inline |
Definition at line 192 of file blockPostProcessorMap.h.
|
inline |
Add post processor to map, do nothing if it already exists.
Definition at line 208 of file blockPostProcessorMap.h.
|
inline |
Schedule post processor for application at iCell.
Definition at line 202 of file blockPostProcessorMap.h.
|
inline |
Definition at line 196 of file blockPostProcessorMap.h.
References olb::LegacyBlockPostProcessorO< T, DESCRIPTOR, PLATFORM >::add().
|
inline |
Apply all managed post processors to lattice.
All post processors within a single BlockPostProcessorMap should be expected to be executed in parallel as far as feasible. E.g. (non-)legacy post processors on CPU blocks are parallelized using OpenMP if enabled while per-cell operators on GPU blocks are parallelized both on the level of kernels and by running multiple kernels asynchronously in separate streams.
In general, interdependent post processors should be separated into different priorities (not doing so also works in many cases but leads to non-deterministic data relationships).
Definition at line 231 of file blockPostProcessorMap.h.
References olb::LegacyBlockPostProcessorO< T, DESCRIPTOR, PLATFORM >::apply(), and olb::gpu::cuda::device::synchronize().
|
inline |
Returns true if map contains post processor.
Definition at line 214 of file blockPostProcessorMap.h.