OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | List of all members
olb::AnalyticalComposed< D, T, S > Class Template Referencefinal

#include <analyticalF.h>

+ Inheritance diagram for olb::AnalyticalComposed< D, T, S >:
+ Collaboration diagram for olb::AnalyticalComposed< D, T, S >:

Public Member Functions

template<unsigned otherD = D, typename = typename std::enable_if_t<otherD==2>>
 AnalyticalComposed (AnalyticalF< D, T, S > &f0, AnalyticalF< D, T, S > &f1)
 
template<unsigned otherD = D, typename = typename std::enable_if_t<otherD==3>>
 AnalyticalComposed (AnalyticalF< D, T, S > &f0, AnalyticalF< D, T, S > &f1, AnalyticalF< D, T, S > &f2)
 
 AnalyticalComposed (std::vector< AnalyticalF< D, T, S > > &f)
 
bool operator() (T output[], const S x[]) override
 has to be implemented for 'every' derived class
 
- Public Member Functions inherited from olb::AnalyticalF< D, T, S >
AnalyticalF< D, T, S > & operator- (AnalyticalF< D, T, S > &rhs)
 
AnalyticalF< D, T, S > & operator+ (AnalyticalF< D, T, S > &rhs)
 
AnalyticalF< D, T, S > & operator* (AnalyticalF< D, T, S > &rhs)
 
AnalyticalF< D, T, S > & operator/ (AnalyticalF< D, T, S > &rhs)
 
- 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
 
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::AnalyticalF< D, T, S >
using identity_functor_type = AnalyticalIdentity<D,T,S>
 
- 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)
 
- Static Public Attributes inherited from olb::AnalyticalF< D, T, S >
static constexpr unsigned dim = D
 
- Protected Member Functions inherited from olb::AnalyticalF< D, T, S >
 AnalyticalF (int n)
 
- Protected Member Functions inherited from olb::GenericF< T, S >
 GenericF (int targetDim, int sourceDim)
 

Detailed Description

template<unsigned D, typename T, typename S>
class olb::AnalyticalComposed< D, T, S >

Definition at line 55 of file analyticalF.h.

Constructor & Destructor Documentation

◆ AnalyticalComposed() [1/3]

template<unsigned D, typename T , typename S >
template<unsigned otherD = D, typename = typename std::enable_if_t<otherD==2>>
olb::AnalyticalComposed< D, T, S >::AnalyticalComposed ( AnalyticalF< D, T, S > & f0,
AnalyticalF< D, T, S > & f1 )
inline

Definition at line 60 of file analyticalF.h.

61 : AnalyticalF<D,T,S>(2), _f{f0, f1}
62 {
63 this->getName() = "composed";
64 }
std::string & getName()
read and write access to name
Definition genericF.hh:51

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

+ Here is the call graph for this function:

◆ AnalyticalComposed() [2/3]

template<unsigned D, typename T , typename S >
template<unsigned otherD = D, typename = typename std::enable_if_t<otherD==3>>
olb::AnalyticalComposed< D, T, S >::AnalyticalComposed ( AnalyticalF< D, T, S > & f0,
AnalyticalF< D, T, S > & f1,
AnalyticalF< D, T, S > & f2 )
inline

Definition at line 66 of file analyticalF.h.

67 : AnalyticalF<D,T,S>(3), _f{f0, f1, f2}
68 {
69 this->getName() = "composed";
70 }

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

+ Here is the call graph for this function:

◆ AnalyticalComposed() [3/3]

template<unsigned D, typename T , typename S >
olb::AnalyticalComposed< D, T, S >::AnalyticalComposed ( std::vector< AnalyticalF< D, T, S > > & f)

Definition at line 50 of file analyticalF.hh.

51 : AnalyticalF<D,T,S>(f.size())
52{
53 if (D != f.size()) {
54 throw std::length_error("D does not match with f.size().");
55 }
56 this->getName() = "composed";
57 for (auto&& i : f) {
58 _f.push_back(i);
59 }
60}

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

+ Here is the call graph for this function:

Member Function Documentation

◆ operator()()

template<unsigned D, typename T , typename S >
bool olb::AnalyticalComposed< D, T, S >::operator() ( T output[],
const S input[] )
overridevirtual

has to be implemented for 'every' derived class

Implements olb::GenericF< T, S >.

Definition at line 63 of file analyticalF.hh.

64{
65 for (unsigned int i=0; i<D; ++i) {
66 T outputTmp[_f[i].get().getTargetDim()];
67 _f[i].get()(outputTmp,x);
68 output[i]=outputTmp[0];
69 }
70 return true;
71}

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