waLBerla 7.2
Loading...
Searching...
No Matches
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) const
 
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) const
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: