OpenLB 1.7
|
Concrete collision operator for legacy dynamics. More...
#include <blockDynamicsMap.h>
Public Member Functions | |
LegacyBlockCollisionO (std::size_t count, Dynamics< T, DESCRIPTOR > **dynamics) | |
std::type_index | id () const override |
std::size_t | weight () const override |
Returns number of assigned cells. | |
void | set (CellID iCell, bool state, bool overlap) override |
Set whether iCell is covered by the present collision step. | |
Dynamics< T, DESCRIPTOR > * | getDynamics () override |
void | setup (ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > &block) override |
Setup collision on block. | |
void | apply (ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > &block, ConcreteBlockMask< T, PLATFORM > &subdomain, CollisionDispatchStrategy strategy) override |
Apply collision on subdomain of block. | |
Public Member Functions inherited from olb::AbstractBlockO | |
virtual | ~AbstractBlockO ()=default |
Concrete collision operator for legacy dynamics.
To be removed once both all OpenLB-included dynamics are adapted and legacy support was included in at least one release.
Legacy dynamics are only supported on CPU targets.
Definition at line 133 of file blockDynamicsMap.h.
|
inline |
Definition at line 159 of file blockDynamicsMap.h.
|
inlineoverridevirtual |
Apply collision on subdomain of block.
Loop excludes overlap areas of block as collisions are never applied there. This assumes that subdomain
is the core mask of BlockDynamicsMap.
Implements olb::BlockCollisionO< T, DESCRIPTOR, PLATFORM >.
Definition at line 202 of file blockDynamicsMap.h.
References olb::Dominant, olb::BlockLattice< T, DESCRIPTOR >::get(), olb::BlockStructureD< D >::getCellId(), olb::BlockStructureD< D >::getNx(), olb::BlockStructureD< D >::getNy(), olb::BlockStructureD< D >::getNz(), and olb::BlockLattice< T, DESCRIPTOR >::getStatistics().
|
inlineoverridevirtual |
Implements olb::AbstractCollisionO< T, DESCRIPTOR >.
Definition at line 184 of file blockDynamicsMap.h.
|
inlineoverridevirtual |
Implements olb::AbstractBlockO.
Definition at line 164 of file blockDynamicsMap.h.
References olb::LegacyBlockCollisionO< T, DESCRIPTOR, PLATFORM >::LegacyBlockCollisionO().
|
inlineoverridevirtual |
Set whether iCell is covered by the present collision step.
iCell | Cell index |
state | (De)activate for this dynamics / collision |
overlap | Cell index in overlap (set dynamics but do not collide) |
Implements olb::AbstractCollisionO< T, DESCRIPTOR >.
Definition at line 174 of file blockDynamicsMap.h.
|
inlineoverridevirtual |
Setup collision on block.
Implements olb::BlockCollisionO< T, DESCRIPTOR, PLATFORM >.
Definition at line 189 of file blockDynamicsMap.h.
|
inlineoverridevirtual |
Returns number of assigned cells.
Used to determine the dominant dynamics to choose e.g. which collision operator to vectorize or to prefer in GPU kernels.
Implements olb::AbstractCollisionO< T, DESCRIPTOR >.
Definition at line 169 of file blockDynamicsMap.h.