OpenLB 1.7
|
BlockReduction3D2D reduces the data of a SuperF3D functor to the intersection between a given hyperplane and the super geometry. More...
#include <blockReduction3D2D.h>
Public Member Functions | |
BlockReduction3D2D (FunctorPtr< SuperF3D< T > > &&f, const HyperplaneLattice3D< T > &lattice, BlockDataSyncMode syncMode=BlockDataSyncMode::ReduceAndBcast, BlockDataReductionMode reductionMode=BlockDataReductionMode::Analytical) | |
Construction using functor and hyperplane lattice. | |
BlockReduction3D2D (FunctorPtr< SuperF3D< T > > &&f, const Hyperplane3D< T > &hyperplane, BlockDataSyncMode syncMode=BlockDataSyncMode::ReduceAndBcast, BlockDataReductionMode reductionMode=BlockDataReductionMode::Analytical) | |
Construction using functor and hyperplane. | |
BlockReduction3D2D (FunctorPtr< SuperF3D< T > > &&f, const Hyperplane3D< T > &hyperplane, int resolution=600, BlockDataSyncMode syncMode=BlockDataSyncMode::ReduceAndBcast) | |
Construction using functor, hyperplane and resolution. | |
BlockReduction3D2D (FunctorPtr< SuperF3D< T > > &&f, const Vector< T, 3 > &origin, const Vector< T, 3 > &u, const Vector< T, 3 > &v, int resolution=600, BlockDataSyncMode syncMode=BlockDataSyncMode::ReduceAndBcast) | |
Construction using functor, origin and span vectors as well as resolution. | |
BlockReduction3D2D (FunctorPtr< SuperF3D< T > > &&f, const Vector< T, 3 > &origin, const Vector< T, 3 > &normal, int resolution=600, BlockDataSyncMode syncMode=BlockDataSyncMode::ReduceAndBcast) | |
Construction using functor, origin, normal and resolution. | |
BlockReduction3D2D (FunctorPtr< SuperF3D< T > > &&f, const Vector< T, 3 > &normal, int resolution=600, BlockDataSyncMode syncMode=BlockDataSyncMode::ReduceAndBcast) | |
Construction using functor, normal vector and resolution. | |
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. | |
const std::vector< std::tuple< int, int, int > > & | getRankLocalSubplane () const |
Public Member Functions inherited from olb::HyperplaneLattice3D< T > | |
HyperplaneLattice3D (CuboidGeometry3D< T > &geometry, Hyperplane3D< T > hyperplane) | |
Constructor for automatic discretization. | |
HyperplaneLattice3D (CuboidGeometry3D< T > &geometry, Hyperplane3D< T > hyperplane, int resolution) | |
Constructor for discretization of a given resolution. | |
HyperplaneLattice3D (CuboidGeometry3D< T > &geometry, Hyperplane3D< T > hyperplane, T h) | |
Constructor for discretization of a given grid width. | |
HyperplaneLattice3D (Hyperplane3D< T > hyperplane, T h, int nx, int ny) | |
Constructor for manual discretization. | |
HyperplaneLattice3D (const HyperplaneLattice3D &)=default | |
const Hyperplane3D< T > & | getHyperplane () const |
Vector< T, 3 > | getPhysR (const int &planeX, const int &planeY) const |
Transform 2d lattice coordinates to their physical 3d location. | |
int | getNx () const |
int | getNy () const |
T | getPhysSpacing () const |
Vector< T, 3 > | getPhysOrigin () const |
Vector< T, 3 > | getVectorU () const |
Vector< T, 3 > | getVectorV () const |
Public Member Functions inherited from olb::BlockDataF2D< T, T > | |
BlockDataF2D (BlockData< 2, T, T > &blockData) | |
Constructor. | |
BlockDataF2D (BlockF2D< T > &f) | |
to store functor data, constuctor creates _blockData with functor data | |
~BlockDataF2D () | |
BlockData< 2, T, T > & | getBlockData () |
returns _blockData | |
bool | operator() (T output[], const int input[]) override |
access to _blockData via its get() | |
Public Member Functions inherited from olb::BlockF2D< T > | |
void | setBlockStructure (BlockStructureD< 2 > *blockStructure) |
BlockF2D< T > & | operator- (BlockF2D< T > &rhs) |
BlockF2D< T > & | operator+ (BlockF2D< T > &rhs) |
BlockF2D< T > & | operator* (BlockF2D< T > &rhs) |
BlockF2D< T > & | operator/ (BlockF2D< T > &rhs) |
Public Member Functions inherited from olb::GenericF< T, int > | |
virtual | ~GenericF ()=default |
int | getSourceDim () const |
read only access to member variable _m | |
int | getTargetDim () const |
read only access to member variable _n | |
std::string & | getName () |
read and write access to name | |
std::string const & | getName () const |
read only access to name | |
virtual bool | operator() (T output[], const int input[])=0 |
has to be implemented for 'every' derived class | |
bool | operator() (T output[]) |
wrapper that call the pure virtual operator() (T output[], const S input[]) from above | |
bool | operator() (T output[], int input0) |
bool | operator() (T output[], int input0, int input1) |
bool | operator() (T output[], int input0, int input1, int input2) |
bool | operator() (T output[], int input0, int input1, int input2, int input3) |
Additional Inherited Members | |
Public Types inherited from olb::GenericF< T, int > | |
using | targetType |
using | sourceType |
Public Attributes inherited from olb::GenericF< T, int > | |
std::shared_ptr< GenericF< T, int > > | _ptrCalcC |
memory management, frees resouces (calcClass) | |
Protected Member Functions inherited from olb::BlockDataF2D< T, T > | |
BlockDataF2D (int nx, int ny, int size=1) | |
Protected Member Functions inherited from olb::BlockF2D< T > | |
BlockF2D (BlockStructureD< 2 > &blockStructure, int targetDim) | |
BlockF2D (int targetDim) | |
Protected Member Functions inherited from olb::GenericF< T, int > | |
GenericF (int targetDim, int sourceDim) | |
Protected Attributes inherited from olb::HyperplaneLattice3D< T > | |
const Hyperplane3D< T > | _hyperplane |
Vector< T, 3 > | _origin |
Origin vector of the lattice. | |
Vector< T, 3 > | _u |
Span vector of the lattice, normalized to grid width _h. | |
Vector< T, 3 > | _v |
Span vector of the lattice, normalized to grid width _h. | |
T | _h |
Distance between discrete lattice points. | |
int | _nx |
Number of lattice points in the direction of _u. | |
int | _ny |
Number of lattice points in the direction of _v. | |
Protected Attributes inherited from olb::BlockDataF2D< T, T > | |
BlockData< 2, T, T > * | _blockData |
bool | _owning |
Protected Attributes inherited from olb::BlockF2D< T > | |
BlockStructureD< 2 > * | _blockStructure |
BlockReduction3D2D reduces the data of a SuperF3D functor to the intersection between a given hyperplane and the super geometry.
This intersection is interpolated at a set of discrete points according to the given resolution and exposed as a BlockDataF2D functor.
The hyperplane is parametrized by a origin and two span vector u and v. Definition of hyperplanes using e.g. origin and normal vectors is supported via the Hyperplane3D interface.
Definition at line 54 of file blockReduction3D2D.h.
olb::BlockReduction3D2D< T >::BlockReduction3D2D | ( | FunctorPtr< SuperF3D< T > > && | f, |
const HyperplaneLattice3D< T > & | lattice, | ||
BlockDataSyncMode | syncMode = BlockDataSyncMode::ReduceAndBcast, | ||
BlockDataReductionMode | reductionMode = BlockDataReductionMode::Analytical ) |
Construction using functor and hyperplane lattice.
f | Functor to be reduced as a (non-)owning pointer or reference to SuperF3D<T>. |
lattice | Hyperplane lattice parametrization |
syncMode | Defines MPI synchronization strategy of the interpolated block data. |
reductionMode | Defines whether data is interpolated or read from discrete lattice locations. Note: BlockDataReductionMode::Analytical imposes restrictions on hyperplane definition and discretization. |
Definition at line 93 of file blockReduction3D2D.hh.
References olb::Discrete, olb::HyperplaneLattice3D< T >::getHyperplane(), olb::CuboidGeometry3D< T >::getMinDeltaR(), olb::GenericF< T, int >::getName(), olb::HyperplaneLattice3D< T >::getPhysSpacing(), olb::BlockReduction3D2D< T >::initialize(), olb::Hyperplane3D< T >::isXYPlane(), olb::Hyperplane3D< T >::isXZPlane(), olb::Hyperplane3D< T >::isYZPlane(), and olb::BlockReduction3D2D< T >::update().
olb::BlockReduction3D2D< T >::BlockReduction3D2D | ( | FunctorPtr< SuperF3D< T > > && | f, |
const Hyperplane3D< T > & | hyperplane, | ||
BlockDataSyncMode | syncMode = BlockDataSyncMode::ReduceAndBcast, | ||
BlockDataReductionMode | reductionMode = BlockDataReductionMode::Analytical ) |
Construction using functor and hyperplane.
f | Functor to be reduced as a (non-)owning pointer or reference to SuperF3D<T>. |
hyperplane | Hyperplane parametrization |
syncMode | Defines MPI synchronization strategy of the interpolated block data. |
reductionMode | Defines whether data is interpolated or read from discrete lattice locations. |
Definition at line 131 of file blockReduction3D2D.hh.
olb::BlockReduction3D2D< T >::BlockReduction3D2D | ( | FunctorPtr< SuperF3D< T > > && | f, |
const Hyperplane3D< T > & | hyperplane, | ||
int | resolution = 600, | ||
BlockDataSyncMode | syncMode = BlockDataSyncMode::ReduceAndBcast ) |
Construction using functor, hyperplane and resolution.
f | Functor to be reduced as a (non-)owning pointer or reference to SuperF3D<T>. |
hyperplane | Hyperplane parametrization |
resolution | Defines the number of voxel of the longest side. If it equals zero, _h is set to the cuboid geometry's minDeltaR. |
syncMode | Defines MPI synchronization strategy of the interpolated block data. |
Definition at line 145 of file blockReduction3D2D.hh.
olb::BlockReduction3D2D< T >::BlockReduction3D2D | ( | FunctorPtr< SuperF3D< T > > && | f, |
const Vector< T, 3 > & | origin, | ||
const Vector< T, 3 > & | u, | ||
const Vector< T, 3 > & | v, | ||
int | resolution = 600, | ||
BlockDataSyncMode | syncMode = BlockDataSyncMode::ReduceAndBcast ) |
Construction using functor, origin and span vectors as well as resolution.
f | Functor to be reduced as a (non-)owning pointer or reference to SuperF3D<T>. |
origin | Origin vector |
u | Span vector |
v | Span vector |
resolution | Defines the number of voxel of the longest side. If it equals zero, _h is set to the cuboid geometry's minDeltaR. |
syncMode | Defines MPI synchronization strategy of the interpolated block data. |
Definition at line 158 of file blockReduction3D2D.hh.
olb::BlockReduction3D2D< T >::BlockReduction3D2D | ( | FunctorPtr< SuperF3D< T > > && | f, |
const Vector< T, 3 > & | origin, | ||
const Vector< T, 3 > & | normal, | ||
int | resolution = 600, | ||
BlockDataSyncMode | syncMode = BlockDataSyncMode::ReduceAndBcast ) |
Construction using functor, origin, normal and resolution.
f | Functor to be reduced as a (non-)owning pointer or reference to SuperF3D<T>. |
origin | Origin vector |
normal | Normal vector |
resolution | Defines the number of voxel of the longest side. If it equals zero, _h is set to the cuboid geometry's minDeltaR. |
syncMode | Defines MPI synchronization strategy of the interpolated block data. |
Definition at line 169 of file blockReduction3D2D.hh.
olb::BlockReduction3D2D< T >::BlockReduction3D2D | ( | FunctorPtr< SuperF3D< T > > && | f, |
const Vector< T, 3 > & | normal, | ||
int | resolution = 600, | ||
BlockDataSyncMode | syncMode = BlockDataSyncMode::ReduceAndBcast ) |
Construction using functor, normal vector and resolution.
f | Functor to be reduced as a (non-)owning pointer or reference to SuperF3D<T>. |
normal | Normal vector |
resolution | Defines the number of voxel of the longest side. If it equals zero, _h is set to the cuboid geometry's minDeltaR. |
syncMode | Defines MPI synchronization strategy of the interpolated block data. |
Definition at line 180 of file blockReduction3D2D.hh.
|
overridevirtual |
Overload of virtual function from class BlockF2D.
Reimplemented from olb::BlockF2D< T >.
Definition at line 264 of file blockReduction3D2D.hh.
const std::vector< std::tuple< int, int, int > > & olb::BlockReduction3D2D< T >::getRankLocalSubplane | ( | ) | const |
Definition at line 270 of file blockReduction3D2D.hh.
void olb::BlockReduction3D2D< T >::initialize | ( | ) |
Initialize rank-local list of plane points to be stored in _blockData.
Definition at line 193 of file blockReduction3D2D.hh.
References olb::CuboidGeometry3D< T >::getC(), and olb::LoadBalancer< T >::isLocal().
void olb::BlockReduction3D2D< T >::update | ( | ) |
Updates and writes the data to _blockData using _rankLocalSubplane.
Definition at line 218 of file blockReduction3D2D.hh.
References olb::Analytical, olb::singleton::MpiManager::bCast(), olb::Discrete, olb::singleton::mpi(), olb::None, olb::singleton::MpiManager::reduce(), olb::ReduceAndBcast, and olb::ReduceOnly.