![]() |
OpenLB 1.8.1
|
Application of the collision step on a concrete CUDA block. More...
#include <operator.h>
Inheritance diagram for olb::ConcreteBlockCollisionO< T, DESCRIPTOR, Platform::GPU_CUDA, DYNAMICS >:
Collaboration diagram for olb::ConcreteBlockCollisionO< T, DESCRIPTOR, Platform::GPU_CUDA, DYNAMICS >: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::GPU_CUDA > &block) override |
| void | apply (ConcreteBlockLattice< T, DESCRIPTOR, Platform::GPU_CUDA > &block, ConcreteBlockMask< T, Platform::GPU_CUDA > &subdomain, CollisionDispatchStrategy strategy) override |
| Apply collision to subdomain of block using strategy. | |
Public Member Functions inherited from olb::BlockCollisionO< T, DESCRIPTOR, Platform::GPU_CUDA > | |
| 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::AbstractCollisionO< T, DESCRIPTOR > | |
Public Member Functions inherited from olb::AbstractBlockO | |
| virtual | ~AbstractBlockO ()=default |
Application of the collision step on a concrete CUDA block.
Definition at line 48 of file operator.h.
| olb::ConcreteBlockCollisionO< T, DESCRIPTOR, Platform::GPU_CUDA, DYNAMICS >::ConcreteBlockCollisionO | ( | ) |
Definition at line 538 of file operator.hh.
|
inlineoverride |
Apply collision to subdomain of block using strategy.
The subdomain argument is currently assumed to be the core mask of BlockDynamicsMap
Definition at line 110 of file operator.h.
References olb::Dominant, and olb::Individual.
|
inlineoverridevirtual |
Implements olb::AbstractCollisionO< T, DESCRIPTOR >.
Definition at line 99 of file operator.h.
|
inlineoverridevirtual |
Implements olb::AbstractBlockO.
Definition at line 75 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 85 of file operator.h.
References olb::gpu::cuda::device::unique_ptr< T >::get().
Here is the call graph for this function:
|
override |
Definition at line 623 of file operator.hh.
References olb::gpu::cuda::device::check(), olb::gpu::cuda::kernel::construct_dynamics(), and olb::gpu::cuda::device::malloc().
Here is the call graph for this function:
|
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 80 of file operator.h.