24#ifndef BLOCK_REDUCTION_2D1D_H
25#define BLOCK_REDUCTION_2D1D_H
61 std::vector<std::tuple<int,int>> _rankLocalSubplane;
BlockDataF2D can store data of any BlockFunctor2D.
BlockReduction2D1D reduces the data of a SuperF2D functor to the intersection between a given 2D hype...
BlockReduction2D1D(FunctorPtr< SuperF2D< T > > &&f, const HyperplaneLattice2D< T > &lattice, BlockDataSyncMode syncMode=BlockDataSyncMode::ReduceAndBcast, BlockDataReductionMode reductionMode=BlockDataReductionMode::Analytical)
Construction using functor and hyperplane lattice.
const std::vector< std::tuple< int, int > > & getRankLocalSubplane() const
void update()
Updates and writes the data to _blockData using _rankLocalSubplane.
void initialize()
Initialize rank-local list of plane points to be stored in _blockData.
bool operator()(T output[], int i)
Custom operator for easier access to 1-dimensional block data.
BlockStructureD< 2 > & getBlockStructure() override
Overload of virtual function from class BlockF2D.
Smart pointer for managing the various ways of passing functors around.
Parametrization of a hyperplane lattice (i.e. a line lattice).
represents all functors that operate on a SuperStructure<T,2> 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 line embedded in 2D space.
efficient implementation of a vector class