walberla::field::InterpolatorHandling< Interpolator_T, FlagField_T > Class Template Reference

Detailed Description

template<typename Interpolator_T, typename FlagField_T>
class walberla::field::InterpolatorHandling< Interpolator_T, FlagField_T >

FieldInterpolatorCreators.

Interpolator_T: A field interpolator that has a constructor ( const weak_ptr<StructuredBlockStorage> & blockStorage, const IBlock & block, const BaseField_T & baseField, const FlagField_T & flagField, const flag_t & evaluationMask ) and getter functions: template< typename ForwardIterator_T > inline void get( const Vector3<real_t> & position, ForwardIterator_T interpolationResultBegin ) template< typename ForwardIterator_T > inline void get( const real_t & x, const real_t & y, const real_t & z, ForwardIterator_T interpolationResultBegin )

See TrilinearFieldInterpolator for an example implementation.

A field interpolator is aware of the flag field (FlagField_T) and uses only values that contain flags from a given mask.

Field Interpolators can be used to sample the underlying field at certain positions. E.g. the fluid velocity can be interpolated to a desired global position from a velocity field.

#include <FieldInterpolatorCreators.h>

+ Inheritance diagram for walberla::field::InterpolatorHandling< Interpolator_T, FlagField_T >:

Public Member Functions

 InterpolatorHandling (const weak_ptr< StructuredBlockStorage > &blockStorage, const ConstBlockDataID &interpolatedFieldID, const ConstBlockDataID &flagFieldID, const Set< FlagUID > &cellsToEvaluate)
 
Interpolator_T * initialize (IBlock *const block) override
 must be thread-safe ! More...
 
- Public Member Functions inherited from walberla::blockforest::AlwaysInitializeBlockDataHandling< Interpolator_T >
 ~AlwaysInitializeBlockDataHandling () override=default
 
void serialize (IBlock *const, const BlockDataID &, mpi::SendBuffer &) override
 must be thread-safe ! More...
 
void serializeCoarseToFine (Block *const, const BlockDataID &, mpi::SendBuffer &, const uint_t) override
 must be thread-safe ! More...
 
void serializeFineToCoarse (Block *const, const BlockDataID &, mpi::SendBuffer &) override
 must be thread-safe ! More...
 
Interpolator_T * deserialize (IBlock *const block) override
 must be thread-safe ! More...
 
void deserialize (IBlock *const, const BlockDataID &, mpi::RecvBuffer &) override
 must be thread-safe ! More...
 
Interpolator_T * deserializeCoarseToFine (Block *const block) override
 must be thread-safe ! More...
 
void deserializeCoarseToFine (Block *const, const BlockDataID &, mpi::RecvBuffer &) override
 must be thread-safe ! More...
 
Interpolator_T * deserializeFineToCoarse (Block *const block) override
 must be thread-safe ! More...
 
void deserializeFineToCoarse (Block *const, const BlockDataID &, mpi::RecvBuffer &, const uint_t) override
 must be thread-safe ! More...
 
- Public Member Functions inherited from walberla::blockforest::BlockDataHandling< Interpolator_T >
 ~BlockDataHandling () override=default
 

Private Attributes

weak_ptr< StructuredBlockStorageblockStorage_
 
ConstBlockDataID interpolatedFieldID_
 
ConstBlockDataID flagFieldID_
 
Set< FlagUID > cellsToEvaluate_
 

Additional Inherited Members

- Public Types inherited from walberla::domain_decomposition::BlockDataHandling< Interpolator_T >
using value_type = Interpolator_T
 

Constructor & Destructor Documentation

◆ InterpolatorHandling()

template<typename Interpolator_T , typename FlagField_T >
walberla::field::InterpolatorHandling< Interpolator_T, FlagField_T >::InterpolatorHandling ( const weak_ptr< StructuredBlockStorage > &  blockStorage,
const ConstBlockDataID interpolatedFieldID,
const ConstBlockDataID flagFieldID,
const Set< FlagUID > &  cellsToEvaluate 
)
inline

Member Function Documentation

◆ initialize()

template<typename Interpolator_T , typename FlagField_T >
Interpolator_T* walberla::field::InterpolatorHandling< Interpolator_T, FlagField_T >::initialize ( IBlock *const  block)
inlineoverridevirtual

Member Data Documentation

◆ blockStorage_

template<typename Interpolator_T , typename FlagField_T >
weak_ptr<StructuredBlockStorage> walberla::field::InterpolatorHandling< Interpolator_T, FlagField_T >::blockStorage_
private

◆ cellsToEvaluate_

template<typename Interpolator_T , typename FlagField_T >
Set< FlagUID > walberla::field::InterpolatorHandling< Interpolator_T, FlagField_T >::cellsToEvaluate_
private

◆ flagFieldID_

template<typename Interpolator_T , typename FlagField_T >
ConstBlockDataID walberla::field::InterpolatorHandling< Interpolator_T, FlagField_T >::flagFieldID_
private

◆ interpolatedFieldID_

template<typename Interpolator_T , typename FlagField_T >
ConstBlockDataID walberla::field::InterpolatorHandling< Interpolator_T, FlagField_T >::interpolatedFieldID_
private

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