OpenLB 1.7
|
Template class for building flux integrals based on SuperLatticePhysF2D functors. More...
#include <superPlaneIntegralFluxF2D.h>
Public Member Functions | |
template<typename DESCRIPTOR > | |
SuperPlaneIntegralFluxF2D (SuperLattice< T, DESCRIPTOR > &sLattice, const UnitConverter< T, DESCRIPTOR > &converter, SuperGeometry< T, 2 > &geometry, const HyperplaneLattice2D< T > &hyperplaneLattice, FunctorPtr< SuperIndicatorF2D< T > > &&integrationIndicator, FunctorPtr< IndicatorF2D< T > > &&subplaneIndicator, BlockDataReductionMode mode=BlockDataReductionMode::Analytical) | |
template<typename DESCRIPTOR > | |
SuperPlaneIntegralFluxF2D (SuperLattice< T, DESCRIPTOR > &sLattice, const UnitConverter< T, DESCRIPTOR > &converter, SuperGeometry< T, 2 > &geometry, const Hyperplane2D< T > &hyperplane, FunctorPtr< SuperIndicatorF2D< T > > &&integrationIndicator, FunctorPtr< IndicatorF2D< T > > &&subplaneIndicator, BlockDataReductionMode mode=BlockDataReductionMode::Analytical) | |
template<typename DESCRIPTOR > | |
SuperPlaneIntegralFluxF2D (SuperLattice< T, DESCRIPTOR > &sLattice, const UnitConverter< T, DESCRIPTOR > &converter, SuperGeometry< T, 2 > &geometry, const Hyperplane2D< T > &hyperplane, FunctorPtr< SuperIndicatorF2D< T > > &&integrationIndicator, BlockDataReductionMode mode=BlockDataReductionMode::Analytical) | |
template<typename DESCRIPTOR > | |
SuperPlaneIntegralFluxF2D (SuperLattice< T, DESCRIPTOR > &sLattice, const UnitConverter< T, DESCRIPTOR > &converter, SuperGeometry< T, 2 > &geometry, const Vector< T, 2 > &origin, const Vector< T, 2 > &u, std::vector< int > materials, BlockDataReductionMode mode=BlockDataReductionMode::Analytical) | |
template<typename DESCRIPTOR > | |
SuperPlaneIntegralFluxF2D (SuperLattice< T, DESCRIPTOR > &sLattice, const UnitConverter< T, DESCRIPTOR > &converter, SuperGeometry< T, 2 > &geometry, const Vector< T, 2 > &origin, const Vector< T, 2 > &u, BlockDataReductionMode mode=BlockDataReductionMode::Analytical) | |
Public Member Functions inherited from 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. | |
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: | |
Public Member Functions inherited from olb::SuperF2D< T, W > | |
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 |
Public Member Functions inherited from olb::GenericF< T, S > | |
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) |
Additional Inherited Members | |
Public Types inherited from olb::SuperF2D< T, W > | |
using | identity_functor_type = SuperIdentity2D<T,W> |
Public Types inherited from olb::GenericF< T, S > | |
using | targetType = T |
using | sourceType = S |
Public Attributes inherited from olb::GenericF< T, S > | |
std::shared_ptr< GenericF< T, S > > | _ptrCalcC |
memory management, frees resouces (calcClass) | |
Protected Member Functions inherited from olb::SuperPlaneIntegralF2D< T > | |
bool | isToBeIntegrated (const Vector< T, 2 > &physR, int iC) |
This is determined using the _integrationIndicatorF indicated subset of the 2d hyperplane reduced by _reductionF. | |
Protected Member Functions inherited from olb::SuperF2D< T, W > | |
SuperF2D (SuperStructure< T, 2 > &superStructure, int targetDim) | |
Protected Member Functions inherited from olb::GenericF< T, S > | |
GenericF (int targetDim, int sourceDim) | |
Protected Attributes inherited from olb::SuperPlaneIntegralF2D< T > | |
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. | |
Protected Attributes inherited from olb::SuperF2D< T, W > | |
SuperStructure< T, 2 > & | _superStructure |
std::vector< std::unique_ptr< BlockF2D< W > > > | _blockF |
Super functors may consist of several BlockF2D<W> derived functors. | |
Template class for building flux integrals based on SuperLatticePhysF2D functors.
e.g. phys pressure flux is derived from SuperPlaneIntegralFluxF2D<T,SuperLatticePhysPressure2D> and only adds a print method. All required constructors are provided by this class and need only be inherited.
The constructors correspond to SuperPlaneIntegralF2D's with the difference that they accept a super lattice and a unit converter reference instead of a functor. The appropropriate SuperLatticePhysF2D derived functor is then instantiated internally as defined by the template argument F.
Definition at line 46 of file superPlaneIntegralFluxF2D.h.
olb::SuperPlaneIntegralFluxF2D< T, F >::SuperPlaneIntegralFluxF2D | ( | SuperLattice< T, DESCRIPTOR > & | sLattice, |
const UnitConverter< T, DESCRIPTOR > & | converter, | ||
SuperGeometry< T, 2 > & | geometry, | ||
const HyperplaneLattice2D< T > & | hyperplaneLattice, | ||
FunctorPtr< SuperIndicatorF2D< T > > && | integrationIndicator, | ||
FunctorPtr< IndicatorF2D< T > > && | subplaneIndicator, | ||
BlockDataReductionMode | mode = BlockDataReductionMode::Analytical ) |
Definition at line 39 of file superPlaneIntegralFluxF2D.hh.
olb::SuperPlaneIntegralFluxF2D< T, F >::SuperPlaneIntegralFluxF2D | ( | SuperLattice< T, DESCRIPTOR > & | sLattice, |
const UnitConverter< T, DESCRIPTOR > & | converter, | ||
SuperGeometry< T, 2 > & | geometry, | ||
const Hyperplane2D< T > & | hyperplane, | ||
FunctorPtr< SuperIndicatorF2D< T > > && | integrationIndicator, | ||
FunctorPtr< IndicatorF2D< T > > && | subplaneIndicator, | ||
BlockDataReductionMode | mode = BlockDataReductionMode::Analytical ) |
Definition at line 60 of file superPlaneIntegralFluxF2D.hh.
olb::SuperPlaneIntegralFluxF2D< T, F >::SuperPlaneIntegralFluxF2D | ( | SuperLattice< T, DESCRIPTOR > & | sLattice, |
const UnitConverter< T, DESCRIPTOR > & | converter, | ||
SuperGeometry< T, 2 > & | geometry, | ||
const Hyperplane2D< T > & | hyperplane, | ||
FunctorPtr< SuperIndicatorF2D< T > > && | integrationIndicator, | ||
BlockDataReductionMode | mode = BlockDataReductionMode::Analytical ) |
Definition at line 81 of file superPlaneIntegralFluxF2D.hh.
olb::SuperPlaneIntegralFluxF2D< T, F >::SuperPlaneIntegralFluxF2D | ( | SuperLattice< T, DESCRIPTOR > & | sLattice, |
const UnitConverter< T, DESCRIPTOR > & | converter, | ||
SuperGeometry< T, 2 > & | geometry, | ||
const Vector< T, 2 > & | origin, | ||
const Vector< T, 2 > & | u, | ||
std::vector< int > | materials, | ||
BlockDataReductionMode | mode = BlockDataReductionMode::Analytical ) |
Definition at line 100 of file superPlaneIntegralFluxF2D.hh.
References olb::GenericF< T, S >::getName().
olb::SuperPlaneIntegralFluxF2D< T, F >::SuperPlaneIntegralFluxF2D | ( | SuperLattice< T, DESCRIPTOR > & | sLattice, |
const UnitConverter< T, DESCRIPTOR > & | converter, | ||
SuperGeometry< T, 2 > & | geometry, | ||
const Vector< T, 2 > & | origin, | ||
const Vector< T, 2 > & | u, | ||
BlockDataReductionMode | mode = BlockDataReductionMode::Analytical ) |
Definition at line 119 of file superPlaneIntegralFluxF2D.hh.
References olb::GenericF< T, S >::getName().