![]() |
OpenLB 1.8.1
|
BlockReduction3D2D reduces the data of a SuperF3D functor to the intersection between a given hyperplane and the super geometry. More...
#include <blockReduction3D2D.h>
Inheritance diagram for olb::BlockReduction3D2D< T >:
Collaboration diagram for olb::BlockReduction3D2D< T >: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 (CuboidDecomposition< T, 3 > &geometry, Hyperplane3D< T > hyperplane) | |
| Constructor for automatic discretization. | |
| HyperplaneLattice3D (CuboidDecomposition< T, 3 > &geometry, Hyperplane3D< T > hyperplane, int resolution) | |
| Constructor for discretization of a given resolution. | |
| HyperplaneLattice3D (CuboidDecomposition< T, 3 > &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 92 of file blockReduction3D2D.hh.
References olb::Discrete, olb::HyperplaneLattice3D< T >::getHyperplane(), 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().
Here is the call graph for this function:| 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 130 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 144 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 157 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 168 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 179 of file blockReduction3D2D.hh.
|
overridevirtual |
Overload of virtual function from class BlockF2D.
Reimplemented from olb::BlockF2D< T >.
Definition at line 262 of file blockReduction3D2D.hh.
| const std::vector< std::tuple< int, int, int > > & olb::BlockReduction3D2D< T >::getRankLocalSubplane | ( | ) | const |
Definition at line 268 of file blockReduction3D2D.hh.
| void olb::BlockReduction3D2D< T >::initialize | ( | ) |
Initialize rank-local list of plane points to be stored in _blockData.
Definition at line 192 of file blockReduction3D2D.hh.
References olb::LoadBalancer< T >::isLocal().
Here is the call graph for this function:
Here is the caller graph for this function:| void olb::BlockReduction3D2D< T >::update | ( | ) |
Updates and writes the data to _blockData using _rankLocalSubplane.
Definition at line 216 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.
Here is the call graph for this function:
Here is the caller graph for this function: