OpenLB 1.8.1
Loading...
Searching...
No Matches
olb::AnalyticalF< D, T, S > Class Template Reference

AnalyticalF are applications from DD to XD, where X is set by the constructor. More...

#include <analyticalBaseF.h>

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

Public Types

using identity_functor_type = AnalyticalIdentity<D,T,S>
 
- Public Types inherited from olb::GenericF< T, S >
using targetType = T
 
using sourceType = S
 

Public Member Functions

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
 
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)
 

Static Public Attributes

static constexpr unsigned dim = D
 

Protected Member Functions

 AnalyticalF (int n)
 
- Protected Member Functions inherited from olb::GenericF< T, S >
 GenericF (int targetDim, int sourceDim)
 

Additional Inherited Members

- Public Attributes inherited from olb::GenericF< T, S >
std::shared_ptr< GenericF< T, S > > _ptrCalcC
 memory management, frees resouces (calcClass)
 

Detailed Description

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

AnalyticalF are applications from DD to XD, where X is set by the constructor.

Definition at line 46 of file analyticalBaseF.h.

Member Typedef Documentation

◆ identity_functor_type

template<unsigned D, typename T , typename S >
using olb::AnalyticalF< D, T, S >::identity_functor_type = AnalyticalIdentity<D,T,S>

Definition at line 54 of file analyticalBaseF.h.

Constructor & Destructor Documentation

◆ AnalyticalF()

template<unsigned D, typename T , typename S >
olb::AnalyticalF< D, T, S >::AnalyticalF ( int n)
inlineprotected

Definition at line 49 of file analyticalBaseF.h.

49 : GenericF<T,S>(n,D)
50 {
51 static_assert(D==1 || D==2 || D==3, "Only D=1,2,3 allowed.");
52 }
GenericF(int targetDim, int sourceDim)
Definition genericF.h:53

Member Function Documentation

◆ operator*()

template<unsigned D, typename T , typename S >
AnalyticalF< D, T, S > & olb::AnalyticalF< D, T, S >::operator* ( AnalyticalF< D, T, S > & rhs)

Definition at line 181 of file analyticCalcF.hh.

182{
183 auto tmp = std::make_shared< AnalyticCalcMultiplication<D,T,S> >(*this,rhs);
184 this->_ptrCalcC = tmp;
185 return *tmp;
186}
std::shared_ptr< GenericF< T, S > > _ptrCalcC
memory management, frees resouces (calcClass)
Definition genericF.h:71

◆ operator+()

template<unsigned D, typename T , typename S >
AnalyticalF< D, T, S > & olb::AnalyticalF< D, T, S >::operator+ ( AnalyticalF< D, T, S > & rhs)

Definition at line 165 of file analyticCalcF.hh.

166{
167 auto tmp = std::make_shared< AnalyticCalcPlus<D,T,S> >(*this,rhs);
168 this->_ptrCalcC = tmp;
169 return *tmp;
170}

◆ operator-()

template<unsigned D, typename T , typename S >
AnalyticalF< D, T, S > & olb::AnalyticalF< D, T, S >::operator- ( AnalyticalF< D, T, S > & rhs)

Definition at line 173 of file analyticCalcF.hh.

174{
175 auto tmp = std::make_shared< AnalyticCalcMinus<D,T,S> >(*this,rhs);
176 this->_ptrCalcC = tmp;
177 return *tmp;
178}

◆ operator/()

template<unsigned D, typename T , typename S >
AnalyticalF< D, T, S > & olb::AnalyticalF< D, T, S >::operator/ ( AnalyticalF< D, T, S > & rhs)

Definition at line 189 of file analyticCalcF.hh.

190{
191 auto tmp = std::make_shared< AnalyticCalcDivision<D,T,S> >(*this,rhs);
192 this->_ptrCalcC = tmp;
193 return *tmp;
194}

Member Data Documentation

◆ dim

template<unsigned D, typename T , typename S >
unsigned olb::AnalyticalF< D, T, S >::dim = D
staticconstexpr

Definition at line 55 of file analyticalBaseF.h.


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