OpenLB 1.7
|
Application of the collision step on a concrete SIMD block. More...
#include <operator.h>
Public Member Functions | |
ConcreteBlockCollisionO () | |
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::CPU_SIMD > &block) override |
void | apply (ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD > &block, ConcreteBlockMask< T, Platform::CPU_SIMD > &subdomain, CollisionDispatchStrategy strategy) override |
Apply collision on entire block. | |
Public Member Functions inherited from olb::BlockCollisionO< T, DESCRIPTOR, Platform::CPU_SIMD > | |
virtual void | setup (ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > &block)=0 |
Setup collision on block. | |
virtual void | apply (ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > &block, ConcreteBlockMask< T, PLATFORM > &subdomain, CollisionDispatchStrategy strategy)=0 |
Apply collision on subdomain of block using strategy. | |
Public Member Functions inherited from olb::AbstractBlockO | |
virtual | ~AbstractBlockO ()=default |
Application of the collision step on a concrete SIMD block.
ConcreteBlockCollisionO::apply allows for applying DYNAMICS on a given cell index or an entire block. The latter option accepts a ConcreteBlockMask instance describing the subset of cells for which DYNAMICS is to be vectorized.
Definition at line 310 of file operator.h.
|
inline |
Definition at line 364 of file operator.h.
|
inlineoverride |
Apply collision on entire block.
Definition at line 412 of file operator.h.
References olb::Dominant, olb::BlockStructureD< D >::getNcells(), olb::BlockLattice< T, DESCRIPTOR >::getStatistics(), olb::LatticeStatistics< T >::Aggregatable::increment(), and olb::Simulation.
|
inlineoverridevirtual |
Implements olb::AbstractCollisionO< T, DESCRIPTOR >.
Definition at line 393 of file operator.h.
|
inlineoverridevirtual |
Implements olb::AbstractBlockO.
Definition at line 370 of file operator.h.
|
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) |
Only unmask cells that actually do something
Implements olb::AbstractCollisionO< T, DESCRIPTOR >.
Definition at line 380 of file operator.h.
|
inlineoverride |
Definition at line 398 of file operator.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 375 of file operator.h.