![]() |
OpenLB 1.8.1
|
Map between cell indices and concrete dynamics. More...
#include <blockDynamicsMap.h>
Collaboration diagram for olb::BlockDynamicsMap< T, DESCRIPTOR, PLATFORM >:Public Member Functions | |
| BlockDynamicsMap (ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > &lattice) | |
| Constructor for a BlockDynamicsMap. | |
| Dynamics< T, DESCRIPTOR > * | get (DynamicsPromise< T, DESCRIPTOR > &&promise) |
| Returns a pointer to dynamics matching the promise. | |
| const Dynamics< T, DESCRIPTOR > * | get (std::size_t iCell) const |
| Dynamics< T, DESCRIPTOR > * | get (std::size_t iCell) |
| void | set (std::size_t iCell, DynamicsPromise< T, DESCRIPTOR > &&promise) |
| Assigns promised dynamics to cell index and updates block masks. | |
| void | collide (CollisionDispatchStrategy strategy) |
| Executes local collision step for entire non-overlap area of lattice. | |
| std::size_t | getWeight (const DynamicsPromise< T, DESCRIPTOR > &promise) const |
| Returns number of cells assigned to promised dynamics. | |
| std::set< DynamicsPromise< T, DESCRIPTOR > > | getAll () const |
| Returns set of all dynamics maintained this map. | |
Map between cell indices and concrete dynamics.
Central class for managing and applying dynamics of / to a block lattice.
Maintains both a map of cell indices to dynamics and of dynamics to a mask of all assigned cell indices.
Automatically determines the dominant dynamics and applies the collision step to all cells via the dominant dynamics' ConcreteBlockCollisionO.
Definition at line 265 of file blockDynamicsMap.h.
|
inline |
Constructor for a BlockDynamicsMap.
Definition at line 306 of file blockDynamicsMap.h.
|
inline |
Executes local collision step for entire non-overlap area of lattice.
When using the default CollisionDispatchStrategy::Dominant, the most frequently assigned dynamics resp. collision operator is applied and responsible for also colliding cells excluded by its masks using their respective dynamics.
Correspondingly, the alternative CollisionDispatchStrategy::Individual applies all dynamics separately using a list-based approach.
Definition at line 361 of file blockDynamicsMap.h.
References olb::BlockCollisionO< T, DESCRIPTOR, PLATFORM >::apply(), olb::Dominant, and olb::Individual.
Here is the call graph for this function:
|
inline |
Returns a pointer to dynamics matching the promise.
Promise is only realized if dynamics were not previously constructed
Definition at line 322 of file blockDynamicsMap.h.
Here is the caller graph for this function:
|
inline |
Definition at line 332 of file blockDynamicsMap.h.
|
inline |
Definition at line 327 of file blockDynamicsMap.h.
|
inline |
Returns set of all dynamics maintained this map.
Definition at line 407 of file blockDynamicsMap.h.
|
inline |
Returns number of cells assigned to promised dynamics.
Doesn't allocate, intended for introspection
Definition at line 396 of file blockDynamicsMap.h.
References olb::DynamicsPromise< T, DESCRIPTOR >::id().
Here is the call graph for this function:
|
inline |
Assigns promised dynamics to cell index and updates block masks.
Definition at line 338 of file blockDynamicsMap.h.
Here is the caller graph for this function: