OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | List of all members
olb::SuperPlaneIntegralFluxF2D< T, F > Class Template Reference

Template class for building flux integrals based on SuperLatticePhysF2D functors. More...

#include <superPlaneIntegralFluxF2D.h>

+ Inheritance diagram for olb::SuperPlaneIntegralFluxF2D< T, F >:
+ Collaboration diagram for olb::SuperPlaneIntegralFluxF2D< T, F >:

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.
 

Detailed Description

template<typename T, template< typename, typename > class F>
class olb::SuperPlaneIntegralFluxF2D< T, F >

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.

Constructor & Destructor Documentation

◆ SuperPlaneIntegralFluxF2D() [1/5]

template<typename T , template< typename, typename > class F>
template<typename DESCRIPTOR >
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.

47 : SuperPlaneIntegralF2D<T>(
48 std::unique_ptr<SuperF2D<T>>(new F<T, DESCRIPTOR>(sLattice, converter)),
49 geometry,
50 hyperplaneLattice,
51 std::forward<decltype(integrationIndicator)>(integrationIndicator),
52 std::forward<decltype(subplaneIndicator)>(subplaneIndicator),
53 mode)
54{
55 this->getName() = "SuperPlaneIntegralFluxF2D";
56}
std::string & getName()
read and write access to name
Definition genericF.hh:51

◆ SuperPlaneIntegralFluxF2D() [2/5]

template<typename T , template< typename, typename > class F>
template<typename DESCRIPTOR >
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.

68 : SuperPlaneIntegralF2D<T>(
69 std::unique_ptr<SuperF2D<T>>(new F<T, DESCRIPTOR>(sLattice, converter)),
70 geometry,
71 hyperplane,
72 std::forward<decltype(integrationIndicator)>(integrationIndicator),
73 std::forward<decltype(subplaneIndicator)>(subplaneIndicator),
74 mode)
75{
76 this->getName() = "SuperPlaneIntegralFluxF2D";
77}

◆ SuperPlaneIntegralFluxF2D() [3/5]

template<typename T , template< typename, typename > class F>
template<typename DESCRIPTOR >
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.

88 : SuperPlaneIntegralF2D<T>(
89 std::unique_ptr<SuperF2D<T>>(new F<T, DESCRIPTOR>(sLattice, converter)),
90 geometry,
91 hyperplane,
92 std::forward<decltype(integrationIndicator)>(integrationIndicator),
93 mode)
94{
95 this->getName() = "SuperPlaneIntegralFluxF2D";
96}

◆ SuperPlaneIntegralFluxF2D() [4/5]

template<typename T , template< typename, typename > class F>
template<typename DESCRIPTOR >
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.

107 : SuperPlaneIntegralF2D<T>(
108 std::unique_ptr<SuperF2D<T>>(new F<T, DESCRIPTOR>(sLattice, converter)),
109 geometry,
110 origin, u,
111 std::move(materials),
112 mode)
113{
114 this->getName() = "SuperPlaneIntegralFluxF2D";
115}

References olb::GenericF< T, S >::getName().

+ Here is the call graph for this function:

◆ SuperPlaneIntegralFluxF2D() [5/5]

template<typename T , template< typename, typename > class F>
template<typename DESCRIPTOR >
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.

125 : SuperPlaneIntegralF2D<T>(
126 std::unique_ptr<SuperF2D<T>>(new F<T, DESCRIPTOR>(sLattice, converter)),
127 geometry,
128 origin, u,
129 mode)
130{
131 this->getName() = "SuperPlaneIntegralFluxF2D";
132}

References olb::GenericF< T, S >::getName().

+ Here is the call graph for this function:

The documentation for this class was generated from the following files: