OpenLB 1.8.1
Loading...
Searching...
No Matches
olb::ConcreteBlockO< T, DESCRIPTOR, Platform::CPU_SIMD, OPERATOR, OperatorScope::PerBlock > Class Template Referencefinal

Application of a block-wise OPERATOR on a concrete vector CPU block. More...

#include <operator.h>

+ Inheritance diagram for olb::ConcreteBlockO< T, DESCRIPTOR, Platform::CPU_SIMD, OPERATOR, OperatorScope::PerBlock >:
+ Collaboration diagram for olb::ConcreteBlockO< T, DESCRIPTOR, Platform::CPU_SIMD, OPERATOR, OperatorScope::PerBlock >:

Public Member Functions

std::type_index id () const override
 
std::size_t weight () const override
 Get number of cells covered by operator (optional)
 
void set (CellID iCell, bool state) override
 Set whether iCell is covered by the operator (optional)
 
void setup (ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD > &block) override
 
void apply (ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD > &block) override
 
- Public Member Functions inherited from olb::BlockO< T, DESCRIPTOR, Platform::CPU_SIMD >
virtual void setup (ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > &block)=0
 Setup operator context.
 
virtual void apply (ConcreteBlockLattice< T, DESCRIPTOR, PLATFORM > &block)=0
 Apply operator on block.
 
- Public Member Functions inherited from olb::AbstractBlockO
virtual ~AbstractBlockO ()=default
 

Detailed Description

template<typename T, typename DESCRIPTOR, concepts::BlockOperator OPERATOR>
class olb::ConcreteBlockO< T, DESCRIPTOR, Platform::CPU_SIMD, OPERATOR, OperatorScope::PerBlock >

Application of a block-wise OPERATOR on a concrete vector CPU block.

e.g. StatisticsPostProcessor

Definition at line 590 of file operator.h.

Member Function Documentation

◆ apply()

template<typename T , typename DESCRIPTOR , concepts::BlockOperator OPERATOR>
void olb::ConcreteBlockO< T, DESCRIPTOR, Platform::CPU_SIMD, OPERATOR, OperatorScope::PerBlock >::apply ( ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD > & block)
inlineoverride

Definition at line 613 of file operator.h.

614 {
615 OPERATOR().apply(block);
616 }
#define OPERATOR(OP, rhs)
Definition aDiffTape.h:64

References OPERATOR.

◆ id()

template<typename T , typename DESCRIPTOR , concepts::BlockOperator OPERATOR>
std::type_index olb::ConcreteBlockO< T, DESCRIPTOR, Platform::CPU_SIMD, OPERATOR, OperatorScope::PerBlock >::id ( ) const
inlineoverridevirtual

Implements olb::AbstractBlockO.

Definition at line 593 of file operator.h.

594 {
595 return typeid(OPERATOR);
596 }

References OPERATOR.

◆ set()

template<typename T , typename DESCRIPTOR , concepts::BlockOperator OPERATOR>
void olb::ConcreteBlockO< T, DESCRIPTOR, Platform::CPU_SIMD, OPERATOR, OperatorScope::PerBlock >::set ( CellID iCell,
bool state )
inlineoverridevirtual

Set whether iCell is covered by the operator (optional)

Implements olb::BlockO< T, DESCRIPTOR, Platform::CPU_SIMD >.

Definition at line 603 of file operator.h.

604 {
605 throw std::logic_error("BlockO::set not supported for OperatorScope::PerBlock");
606 }

◆ setup()

template<typename T , typename DESCRIPTOR , concepts::BlockOperator OPERATOR>
void olb::ConcreteBlockO< T, DESCRIPTOR, Platform::CPU_SIMD, OPERATOR, OperatorScope::PerBlock >::setup ( ConcreteBlockLattice< T, DESCRIPTOR, Platform::CPU_SIMD > & block)
inlineoverride

Definition at line 608 of file operator.h.

609 {
610 OPERATOR().setup(block);
611 }

References OPERATOR.

◆ weight()

template<typename T , typename DESCRIPTOR , concepts::BlockOperator OPERATOR>
std::size_t olb::ConcreteBlockO< T, DESCRIPTOR, Platform::CPU_SIMD, OPERATOR, OperatorScope::PerBlock >::weight ( ) const
inlineoverridevirtual

Get number of cells covered by operator (optional)

Implements olb::BlockO< T, DESCRIPTOR, Platform::CPU_SIMD >.

Definition at line 598 of file operator.h.

599 {
600 return 0;
601 }

The documentation for this class was generated from the following file: