Interpolator for walberla::field::GhostLayerField with trilinear strategy.
This interpolator uses trilinear interpolation to obtain the interpolated value from the interpolation position. If at least one of the cells, that are required for trilinear interpolation, i.e. the 8 closest cells, is not contained in the evaluation mask, the nearest-neighbor interpolation (see NearestNeighborFieldInterpolator.h) will be used instead. Never construct this interpolator directly, but use the functionality from FieldInterpolatorCreators.h instead.
#include <TrilinearFieldInterpolator.h>
Public Types | |
using | BaseField_T = Field_T |
using | flag_t = typename FlagField_T::flag_t |
using | OwnType = TrilinearFieldInterpolator< Field_T, FlagField_T > |
Public Member Functions | |
TrilinearFieldInterpolator (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< StructuredBlockStorage > | blockStorage_ |
const IBlock & | block_ |
const BaseField_T & | baseField_ |
const FlagField_T & | flagField_ |
flag_t | evaluationMask_ |
NearestNeighborFieldInterpolator< Field_T, FlagField_T > | nearestNeighborInterpolator_ |
using walberla::field::TrilinearFieldInterpolator< Field_T, FlagField_T >::BaseField_T = Field_T |
using walberla::field::TrilinearFieldInterpolator< Field_T, FlagField_T >::flag_t = typename FlagField_T::flag_t |
using walberla::field::TrilinearFieldInterpolator< Field_T, FlagField_T >::OwnType = TrilinearFieldInterpolator<Field_T, FlagField_T> |
|
inline |
|
inlineprivate |
|
inline |
|
inline |
|
inline |
|
private |
|
private |
|
private |
|
private |
|
static |
|
private |
|
private |