![]() |
OpenLB 1.7
|
Surface integral of a subset of a interpolated hyperplane. More...
#include <superPlaneIntegralF2D.h>
Public Member Functions | |
SuperPlaneIntegralF2D (FunctorPtr< SuperF2D< T > > &&f, SuperGeometry< T, 2 > &geometry, const HyperplaneLattice2D< T > &hyperplaneLattice, FunctorPtr< SuperIndicatorF2D< T > > &&integrationIndicator, FunctorPtr< IndicatorF1D< T > > &&subplaneIndicator, BlockDataReductionMode mode=BlockDataReductionMode::Analytical) | |
Primary constructor. | |
SuperPlaneIntegralF2D (FunctorPtr< SuperF2D< T > > &&f, SuperGeometry< T, 2 > &geometry, const Hyperplane2D< T > &hyperplane, FunctorPtr< SuperIndicatorF2D< T > > &&integrationIndicator, FunctorPtr< IndicatorF1D< T > > &&subplaneIndicator, BlockDataReductionMode mode=BlockDataReductionMode::Analytical) | |
Constructor providing automatic lattice generation. | |
SuperPlaneIntegralF2D (FunctorPtr< SuperF2D< T > > &&f, SuperGeometry< T, 2 > &geometry, const Hyperplane2D< T > &hyperplane, FunctorPtr< SuperIndicatorF2D< T > > &&integrationIndicator, BlockDataReductionMode mode=BlockDataReductionMode::Analytical) | |
Constructor providing automatic lattice generation and omitting subplane restriction. | |
SuperPlaneIntegralF2D (FunctorPtr< SuperF2D< T > > &&f, SuperGeometry< T, 2 > &geometry, const Vector< T, 2 > &origin, const Vector< T, 2 > &u, std::vector< int > materials, BlockDataReductionMode mode=BlockDataReductionMode::Analytical) | |
Constructor providing automatic lattice and material indicator instantiation. | |
SuperPlaneIntegralF2D (FunctorPtr< SuperF2D< T > > &&f, SuperGeometry< T, 2 > &geometry, const Vector< T, 2 > &origin, const Vector< T, 2 > &u, BlockDataReductionMode mode=BlockDataReductionMode::Analytical) | |
Constructor providing automatic lattice parametrization, only interpolating material 1. | |
bool | operator() (T output[], const int input[]) override |
Returns the line integral in the following structure: | |
![]() | |
SuperF2D< T, W > & | operator- (SuperF2D< T, W > &rhs) |
SuperF2D< T, W > & | operator+ (SuperF2D< T, W > &rhs) |
SuperF2D< T, W > & | operator* (SuperF2D< T, W > &rhs) |
SuperF2D< T, W > & | operator/ (SuperF2D< T, W > &rhs) |
SuperStructure< T, 2 > & | getSuperStructure () |
int | getBlockFSize () const |
BlockF2D< W > & | getBlockF (int iCloc) |
bool | operator() (W output[], const int input[]) override |
![]() | |
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 S 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[], S input0) |
bool | operator() (T output[], S input0, S input1) |
bool | operator() (T output[], S input0, S input1, S input2) |
bool | operator() (T output[], S input0, S input1, S input2, S input3) |
Protected Member Functions | |
bool | isToBeIntegrated (const Vector< T, 2 > &physR, int iC) |
This is determined using the _integrationIndicatorF indicated subset of the 2d hyperplane reduced by _reductionF. | |
![]() | |
SuperF2D (SuperStructure< T, 2 > &superStructure, int targetDim) | |
![]() | |
GenericF (int targetDim, int sourceDim) | |
Protected Attributes | |
SuperGeometry< T, 2 > & | _geometry |
FunctorPtr< SuperF2D< T > > | _f |
Functor to be integrated on the line. | |
FunctorPtr< SuperIndicatorF2D< T > > | _integrationIndicatorF |
Indicator describing relevant discrete integration points. | |
FunctorPtr< IndicatorF1D< T > > | _subplaneIndicatorF |
Indicator describing the relevant subset of the interpolated hyperplane. | |
BlockReduction2D1D< T > | _reductionF |
Functor describing line to be interpolated and integrated. | |
Vector< T, 2 > | _origin |
Origin vector as given by hyperplane definition, (0,0) in respect to the subplane indicator _subplaneIndicatorF. | |
Vector< T, 2 > | _u |
Direction vector u as given by hyperplane definition, normalized to h. | |
Vector< T, 2 > | _normal |
Orthogonal vector to _u. | |
std::vector< int > | _rankLocalSubplane |
Subset of the discrete line points given by _reductionF as indicated by _integrationIndicatorF. | |
![]() | |
SuperStructure< T, 2 > & | _superStructure |
std::vector< std::unique_ptr< BlockF2D< W > > > | _blockF |
Super functors may consist of several BlockF2D<W> derived functors. | |
Additional Inherited Members | |
![]() | |
using | identity_functor_type = SuperIdentity2D<T,W> |
![]() | |
using | targetType = T |
using | sourceType = S |
![]() | |
std::shared_ptr< GenericF< T, S > > | _ptrCalcC |
memory management, frees resouces (calcClass) | |
Surface integral of a subset of a interpolated hyperplane.
Definition at line 44 of file superPlaneIntegralF2D.h.
olb::SuperPlaneIntegralF2D< T >::SuperPlaneIntegralF2D | ( | FunctorPtr< SuperF2D< T > > && | f, |
SuperGeometry< T, 2 > & | geometry, | ||
const HyperplaneLattice2D< T > & | hyperplaneLattice, | ||
FunctorPtr< SuperIndicatorF2D< T > > && | integrationIndicator, | ||
FunctorPtr< IndicatorF1D< T > > && | subplaneIndicator, | ||
BlockDataReductionMode | mode = BlockDataReductionMode::Analytical ) |
Primary constructor.
All other constructors defer the actual construction to this constructor.
f | (non-)owning pointer or reference to SuperF2D<T>. |
hyperplaneLattice | Parametrization of the hyperplane lattice to be interpolated. |
integrationIndicator | (non-)owning pointer or reference to SuperIndicatorF2D<T>. Describes the set of lattice points relevant for integration. |
subplaneIndicator | (non-)owning pointer or reference to IndicatorF2D<T>. Describes the relevant subplane of the interpolated hyperplane. |
mode | Defines how the values of the discrete hyperplane are determined. i.e. if they are interpolated or read directly from lattice points. Note: BlockDataReductionMode::Analytical imposes restrictions on hyperplane definition and discretization. If you are not sure consider providing only a hyperplane defintion instead of both a definition and a discretization. |
Definition at line 56 of file superPlaneIntegralF2D.hh.
References olb::SuperPlaneIntegralF2D< T >::_normal, olb::SuperPlaneIntegralF2D< T >::_origin, olb::SuperPlaneIntegralF2D< T >::_rankLocalSubplane, olb::SuperPlaneIntegralF2D< T >::_reductionF, olb::SuperPlaneIntegralF2D< T >::_subplaneIndicatorF, olb::SuperPlaneIntegralF2D< T >::_u, olb::GenericF< T, S >::getName(), olb::SuperPlaneIntegralF2D< T >::isToBeIntegrated(), and olb::normalize().
olb::SuperPlaneIntegralF2D< T >::SuperPlaneIntegralF2D | ( | FunctorPtr< SuperF2D< T > > && | f, |
SuperGeometry< T, 2 > & | geometry, | ||
const Hyperplane2D< T > & | hyperplane, | ||
FunctorPtr< SuperIndicatorF2D< T > > && | integrationIndicator, | ||
FunctorPtr< IndicatorF1D< T > > && | subplaneIndicator, | ||
BlockDataReductionMode | mode = BlockDataReductionMode::Analytical ) |
Constructor providing automatic lattice generation.
f | (non-)owning pointer or reference to SuperF2D<T>. |
hyperplane | Parametrization of the hyperplane to be integrated. The lattice resolution is set to CuboidGeometry2D<T>::getMinDeltaR. |
integrationIndicator | (non-)owning pointer or reference to SuperIndicatorF2D<T>. Describes the set of lattice points relevant for integration. |
subplaneIndicator | (non-)owning pointer or reference to IndicatorF2D<T>. Describes the relevant subplane of the interpolated hyperplane. |
mode | Defines how the values of the discrete hyperplane are determined. i.e. if they are interpolated or read directly from lattice points. |
Definition at line 107 of file superPlaneIntegralF2D.hh.
olb::SuperPlaneIntegralF2D< T >::SuperPlaneIntegralF2D | ( | FunctorPtr< SuperF2D< T > > && | f, |
SuperGeometry< T, 2 > & | geometry, | ||
const Hyperplane2D< T > & | hyperplane, | ||
FunctorPtr< SuperIndicatorF2D< T > > && | integrationIndicator, | ||
BlockDataReductionMode | mode = BlockDataReductionMode::Analytical ) |
Constructor providing automatic lattice generation and omitting subplane restriction.
i.e. the intersection between geometry and hyperplane is integrated wherever _integrationIndicatorF allows.
f | (non-)owning pointer or reference to SuperF2D<T>. |
hyperplane | Parametrization of the hyperplane to be integrated. The lattice resolution is set to the cuboid geometry's minDeltaR. |
integrationIndicator | (non-)owning pointer or reference to SuperIndicatorF2D<T>. Describes the set of lattice points relevant for integration. |
mode | Defines how the values of the discrete hyperplane are determined. i.e. if they are interpolated or read directly from lattice points. |
Definition at line 124 of file superPlaneIntegralF2D.hh.
olb::SuperPlaneIntegralF2D< T >::SuperPlaneIntegralF2D | ( | FunctorPtr< SuperF2D< T > > && | f, |
SuperGeometry< T, 2 > & | geometry, | ||
const Vector< T, 2 > & | origin, | ||
const Vector< T, 2 > & | u, | ||
std::vector< int > | materials, | ||
BlockDataReductionMode | mode = BlockDataReductionMode::Analytical ) |
Constructor providing automatic lattice and material indicator instantiation.
f | (non-)owning pointer or reference to SuperF2D<T>. |
origin | hyperplane origin origin |
u | hyperplane direction vector |
materials | material numbers relevant for hyperplane integration |
mode | defines how the values of the discrete hyperplane are determined |
Definition at line 140 of file superPlaneIntegralF2D.hh.
olb::SuperPlaneIntegralF2D< T >::SuperPlaneIntegralF2D | ( | FunctorPtr< SuperF2D< T > > && | f, |
SuperGeometry< T, 2 > & | geometry, | ||
const Vector< T, 2 > & | origin, | ||
const Vector< T, 2 > & | u, | ||
BlockDataReductionMode | mode = BlockDataReductionMode::Analytical ) |
Constructor providing automatic lattice parametrization, only interpolating material 1.
f | (non-)owning pointer or reference to SuperF2D<T>. |
origin | hyperplane origin |
u | hyperplane direction vector |
mode | defines how the values of the discrete hyperplane are determined |
Definition at line 155 of file superPlaneIntegralF2D.hh.
|
protected |
This is determined using the _integrationIndicatorF indicated subset of the 2d hyperplane reduced by _reductionF.
Definition at line 36 of file superPlaneIntegralF2D.hh.
|
override |
Returns the line integral in the following structure:
Note: output[0] contains the flux value if applicable
input | irrelevant |
Definition at line 170 of file superPlaneIntegralF2D.hh.
References olb::GenericF< T, S >::getTargetDim(), olb::singleton::mpi(), and olb::singleton::MpiManager::reduceAndBcast().
|
protected |
Functor to be integrated on the line.
Definition at line 49 of file superPlaneIntegralF2D.h.
|
protected |
Definition at line 46 of file superPlaneIntegralF2D.h.
|
protected |
Indicator describing relevant discrete integration points.
Definition at line 51 of file superPlaneIntegralF2D.h.
|
protected |
Orthogonal vector to _u.
Definition at line 68 of file superPlaneIntegralF2D.h.
|
protected |
Origin vector as given by hyperplane definition, (0,0) in respect to the subplane indicator _subplaneIndicatorF.
Note: The reduced plane _reductionF calculates its own origin based on _origin as its spans the maximum size possible given the direction vector, origin and geometry size.
Definition at line 64 of file superPlaneIntegralF2D.h.
|
protected |
Subset of the discrete line points given by _reductionF as indicated by _integrationIndicatorF.
i.e. the points used to interpolate the hyperplane
Definition at line 72 of file superPlaneIntegralF2D.h.
|
protected |
Functor describing line to be interpolated and integrated.
Definition at line 55 of file superPlaneIntegralF2D.h.
|
protected |
Indicator describing the relevant subset of the interpolated hyperplane.
Definition at line 53 of file superPlaneIntegralF2D.h.
|
protected |
Direction vector u as given by hyperplane definition, normalized to h.
Definition at line 66 of file superPlaneIntegralF2D.h.