Distributor for walberla::field::Field with nearest neighbor strategy.
This distributor distributes the given value to the nearest cell, flagged in the evaluation mask, of the given position. This is usually the cell that contains the distribution position. If this cell is a cell that is not within the evaluation mask, the direct neighborhood (8 cells) will be searched for an available cell. Never construct this distributor directly, but use the functionality from DistributorCreators.h instead.
#include <NearestNeighborDistributor.h>
Public Types | |
using | BaseField_T = Field_T |
using | flag_t = typename FlagField_T::flag_t |
using | OwnType = NearestNeighborDistributor< Field_T, FlagField_T > |
Public Member Functions | |
NearestNeighborDistributor (const weak_ptr< StructuredBlockStorage > &blockStorage, const IBlock &block, BaseField_T &baseField, const FlagField_T &flagField, const flag_t &evaluationMask) | |
bool | operator== (const OwnType &other) |
template<typename ForwardIterator_T > | |
void | distribute (const Vector3< real_t > &position, ForwardIterator_T distributeValueBegin) |
template<typename ForwardIterator_T > | |
void | distribute (const real_t &x, const real_t &y, const real_t &z, ForwardIterator_T distributeValueBegin) |
Static Public Attributes | |
static const uint_t | F_SIZE = Field_T::F_SIZE |
Private Attributes | |
weak_ptr< StructuredBlockStorage > | blockStorage_ |
const IBlock & | block_ |
BaseField_T & | baseField_ |
const FlagField_T & | flagField_ |
flag_t | evaluationMask_ |
using walberla::field::NearestNeighborDistributor< Field_T, FlagField_T >::BaseField_T = Field_T |
using walberla::field::NearestNeighborDistributor< Field_T, FlagField_T >::flag_t = typename FlagField_T::flag_t |
using walberla::field::NearestNeighborDistributor< Field_T, FlagField_T >::OwnType = NearestNeighborDistributor<Field_T, FlagField_T> |
|
inline |
|
inline |
|
inline |
|
inline |
|
private |
|
private |
|
private |
|
private |
|
static |
|
private |