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

Detailed Description

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

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

This interpolator uses a smoothed dirac kernel function to interpolate values. 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 interpolator directly, but use the functionality from the FieldInterpolatorCreator.h instead.

#include <KernelFieldInterpolator.h>

Public Types

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

Public Member Functions

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

Static Public Attributes

static const uint_t F_SIZE = Field_T::F_SIZE
 

Private Member Functions

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

Private Attributes

weak_ptr< StructuredBlockStorageblockStorage_
 
const IBlockblock_
 
const BaseField_TbaseField_
 
const FlagField_TflagField_
 
flag_t evaluationMask_
 

Member Typedef Documentation

◆ BaseField_T

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

◆ flag_t

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

◆ OwnType

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

Constructor & Destructor Documentation

◆ KernelFieldInterpolator()

template<typename Field_T , typename FlagField_T >
walberla::field::KernelFieldInterpolator< Field_T, FlagField_T >::KernelFieldInterpolator ( const weak_ptr< StructuredBlockStorage > &  blockStorage,
const IBlock block,
const 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::KernelFieldInterpolator< Field_T, FlagField_T >::addWeightedCellValue ( ForwardIterator_T  interpolationResultBegin,
const Cell curCell,
const real_t weighting 
)
inlineprivate

◆ get() [1/2]

template<typename Field_T , typename FlagField_T >
template<typename ForwardIterator_T >
void walberla::field::KernelFieldInterpolator< Field_T, FlagField_T >::get ( const real_t x,
const real_t y,
const real_t z,
ForwardIterator_T  interpolationResultBegin 
)
inline

◆ get() [2/2]

template<typename Field_T , typename FlagField_T >
template<typename ForwardIterator_T >
void walberla::field::KernelFieldInterpolator< Field_T, FlagField_T >::get ( const Vector3< real_t > &  position,
ForwardIterator_T  interpolationResultBegin 
)
inline

◆ operator==()

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

Member Data Documentation

◆ baseField_

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

◆ block_

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

◆ blockStorage_

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

◆ evaluationMask_

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

◆ F_SIZE

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

◆ flagField_

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

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