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