walberla::field::KernelDistributor< Field_T, FlagField_T > Class Template Reference

Detailed Description

template<typename Field_T, typename FlagField_T>
class walberla::field::KernelDistributor< Field_T, FlagField_T >

Distributor for walberla::field::GhostLayerField with kernel strategy.

This distributor uses a smoothed dirac kernel function to distribute values to the field at the given position. The applied weights are given in the namespace field::kernelweights. Needs the full neighborhood of the containing cell, i.e. 27 cells. Never construct this distributor directly, but use the functionality from DistributorCreators.h instead.

#include <KernelDistributor.h>

Public Types

using BaseField_T = Field_T
 
using flag_t = typename FlagField_T::flag_t
 
using OwnType = KernelDistributor< Field_T, FlagField_T >
 

Public Member Functions

 KernelDistributor (const weak_ptr< StructuredBlockStorage > &blockStorage, const IBlock &block, BaseField_T &baseField, const FlagField_T &flagField, const flag_t &evaluationMask)
 
bool operator== (const OwnType &other)
 
template<typename ForwardIterator_T >
void distribute (const Vector3< real_t > &position, ForwardIterator_T distributeValueBegin)
 
template<typename ForwardIterator_T >
void distribute (const real_t &x, const real_t &y, const real_t &z, ForwardIterator_T distributeValueBegin)
 

Static Public Attributes

static const uint_t F_SIZE = Field_T::F_SIZE
 

Private Member Functions

template<typename ForwardIterator_T >
void addWeightedCellValue (ForwardIterator_T distributeValueBegin, const Cell &curCell, const real_t &weighting)
 

Private Attributes

weak_ptr< StructuredBlockStorageblockStorage_
 
const IBlockblock_
 
BaseField_TbaseField_
 
const FlagField_TflagField_
 
flag_t evaluationMask_
 

Member Typedef Documentation

◆ BaseField_T

template<typename Field_T , typename FlagField_T >
using walberla::field::KernelDistributor< Field_T, FlagField_T >::BaseField_T = Field_T

◆ flag_t

template<typename Field_T , typename FlagField_T >
using walberla::field::KernelDistributor< Field_T, FlagField_T >::flag_t = typename FlagField_T::flag_t

◆ OwnType

template<typename Field_T , typename FlagField_T >
using walberla::field::KernelDistributor< Field_T, FlagField_T >::OwnType = KernelDistributor<Field_T, FlagField_T>

Constructor & Destructor Documentation

◆ KernelDistributor()

template<typename Field_T , typename FlagField_T >
walberla::field::KernelDistributor< Field_T, FlagField_T >::KernelDistributor ( const weak_ptr< StructuredBlockStorage > &  blockStorage,
const IBlock block,
BaseField_T baseField,
const FlagField_T flagField,
const flag_t evaluationMask 
)
inline

Member Function Documentation

◆ addWeightedCellValue()

template<typename Field_T , typename FlagField_T >
template<typename ForwardIterator_T >
void walberla::field::KernelDistributor< Field_T, FlagField_T >::addWeightedCellValue ( ForwardIterator_T  distributeValueBegin,
const Cell curCell,
const real_t weighting 
)
inlineprivate

◆ distribute() [1/2]

template<typename Field_T , typename FlagField_T >
template<typename ForwardIterator_T >
void walberla::field::KernelDistributor< Field_T, FlagField_T >::distribute ( const real_t x,
const real_t y,
const real_t z,
ForwardIterator_T  distributeValueBegin 
)
inline

◆ distribute() [2/2]

template<typename Field_T , typename FlagField_T >
template<typename ForwardIterator_T >
void walberla::field::KernelDistributor< Field_T, FlagField_T >::distribute ( const Vector3< real_t > &  position,
ForwardIterator_T  distributeValueBegin 
)
inline

◆ operator==()

template<typename Field_T , typename FlagField_T >
bool walberla::field::KernelDistributor< Field_T, FlagField_T >::operator== ( const OwnType other)
inline

Member Data Documentation

◆ baseField_

template<typename Field_T , typename FlagField_T >
BaseField_T& walberla::field::KernelDistributor< Field_T, FlagField_T >::baseField_
private

◆ block_

template<typename Field_T , typename FlagField_T >
const IBlock& walberla::field::KernelDistributor< Field_T, FlagField_T >::block_
private

◆ blockStorage_

template<typename Field_T , typename FlagField_T >
weak_ptr<StructuredBlockStorage> walberla::field::KernelDistributor< Field_T, FlagField_T >::blockStorage_
private

◆ evaluationMask_

template<typename Field_T , typename FlagField_T >
flag_t walberla::field::KernelDistributor< Field_T, FlagField_T >::evaluationMask_
private

◆ F_SIZE

template<typename Field_T , typename FlagField_T >
const uint_t walberla::field::KernelDistributor< Field_T, FlagField_T >::F_SIZE = Field_T::F_SIZE
static

◆ flagField_

template<typename Field_T , typename FlagField_T >
const FlagField_T& walberla::field::KernelDistributor< Field_T, FlagField_T >::flagField_
private

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