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>
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... | |
![]() | |
~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... | |
![]() | |
~BlockDataHandling () override=default | |
Private Attributes | |
weak_ptr< StructuredBlockStorage > | blockStorage_ |
ConstBlockDataID | interpolatedFieldID_ |
ConstBlockDataID | flagFieldID_ |
Set< FlagUID > | cellsToEvaluate_ |
Additional Inherited Members | |
![]() | |
using | value_type = Interpolator_T |
|
inline |
|
inlineoverridevirtual |
must be thread-safe !
Implements walberla::domain_decomposition::BlockDataHandling< Interpolator_T >.
|
private |
|
private |
|
private |
|
private |