OpenLB 1.7
|
Map between cell indices and concrete dynamics. More...
#include <blockDynamicsMap.h>
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 iCell. | |
void | set (std::size_t iCell, Dynamics< T, DESCRIPTOR > *dynamics) |
Assigns dynamics pointer to cell index iCell. | |
void | collide (CollisionDispatchStrategy strategy) |
Executes local collision step for entire non-overlap area of lattice. | |
std::string | describe () |
Returns a human-readable string listing all managed dynamics and their assigned fraction of cells. | |
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 358 of file blockDynamicsMap.h.
|
inline |
Constructor for a BlockDynamicsMap.
Setup support for legacy dynamics
Definition at line 401 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 480 of file blockDynamicsMap.h.
References olb::BlockCollisionO< T, DESCRIPTOR, PLATFORM >::apply(), olb::Dominant, olb::Individual, and olb::AbstractCollisionO< T, DESCRIPTOR >::weight().
|
inline |
Returns a human-readable string listing all managed dynamics and their assigned fraction of cells.
Definition at line 509 of file blockDynamicsMap.h.
References olb::AbstractCollisionO< T, DESCRIPTOR >::getDynamics(), and olb::AbstractCollisionO< T, DESCRIPTOR >::weight().
|
inline |
Returns a pointer to dynamics matching the promise.
Promise is only realized if dynamics were not previously constructed
Definition at line 425 of file blockDynamicsMap.h.
|
inline |
Definition at line 435 of file blockDynamicsMap.h.
|
inline |
Definition at line 430 of file blockDynamicsMap.h.
|
inline |
Assigns dynamics pointer to cell index iCell.
Dynamics at the pointed address must either be legacy or previously constructed from a promise.
Definition at line 452 of file blockDynamicsMap.h.
References olb::Dynamics< T, DESCRIPTOR >::id().
|
inline |
Assigns promised dynamics to cell index iCell.
Definition at line 441 of file blockDynamicsMap.h.