24#ifndef BLOCK_REDUCTION_3D2D_H
25#define BLOCK_REDUCTION_3D2D_H
57 std::unique_ptr<BlockData<2,T,T>> _blockDataMemory;
63 std::vector<std::tuple<int,int,int>> _rankLocalSubplane;
BlockDataF2D can store data of any BlockFunctor2D.
BlockReduction3D2D reduces the data of a SuperF3D functor to the intersection between a given hyperpl...
void initialize()
Initialize rank-local list of plane points to be stored in _blockData.
void update()
Updates and writes the data to _blockData using _rankLocalSubplane.
BlockStructureD< 2 > & getBlockStructure() override
Overload of virtual function from class BlockF2D.
BlockReduction3D2D(FunctorPtr< SuperF3D< T > > &&f, const HyperplaneLattice3D< T > &lattice, BlockDataSyncMode syncMode=BlockDataSyncMode::ReduceAndBcast, BlockDataReductionMode reductionMode=BlockDataReductionMode::Analytical)
Construction using functor and hyperplane lattice.
const std::vector< std::tuple< int, int, int > > & getRankLocalSubplane() const
Smart pointer for managing the various ways of passing functors around.
Parametrization of a hyperplane lattice.
represents all functors that operate on a SuperStructure<T,3> in general
Top level namespace for all of OpenLB.
BlockDataReductionMode
Mode of reducing block data from given, possibly higher dimensional data.
@ Analytical
Interpolate block data at exact physical locations.
BlockDataSyncMode
Mode of synchronizing functor block data between processes.
@ ReduceAndBcast
default behavior, full block data available on all ranks after update
Definition of a analytical 2D plane embedded in 3D space.
efficient implementation of a vector class