template<typename Distributor_T, typename FlagField_T>
class walberla::field::DistributorHandling< Distributor_T, FlagField_T >
DistributorCreators.
Distributor_T: A distributor 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 distribution functions: template< typename ForwardIterator_T > inline void distribute( const Vector3<real_t> & position, ForwardIterator_T distributeValueBegin ) template< typename ForwardIterator_T > inline void distribute( const real_t & x, const real_t & y, const real_t & z, ForwardIterator_T distributeValueBegin )
See NearestNeighborDistributor for an example implementation.
A distributor is aware of the flag field (FlagField_T) and distributes values only to cells flagged by a given mask.
Distributors are used to spread a given value to the corresponding destination field. E.g. if a certain force has to be applied at some specific position onto the fluid, a distributor can be used to do so by distributing this force value (and conservation fo this force value is ensured) onto the force field.
|
| DistributorHandling (const weak_ptr< StructuredBlockStorage > &blockStorage, const BlockDataID &distributionDestinationFieldID, const ConstBlockDataID &flagFieldID, const Set< FlagUID > &cellsToEvaluate) |
|
Distributor_T * | initialize (IBlock *const block) override |
| must be thread-safe ! More...
|
|
Public Member Functions inherited from walberla::blockforest::AlwaysInitializeBlockDataHandling< Distributor_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...
|
|
Distributor_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...
|
|
Distributor_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...
|
|
Distributor_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< Distributor_T > |
| ~BlockDataHandling () override=default |
|