OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
olb::SuperConst3D< T, W > Class Template Referencefinal

Functor returning a constant vector for all inputs. More...

#include <superConst3D.h>

+ Inheritance diagram for olb::SuperConst3D< T, W >:
+ Collaboration diagram for olb::SuperConst3D< T, W >:

Public Member Functions

 SuperConst3D (SuperStructure< T, 3 > &superStructure, std::vector< W > v)
 Constructor accepting std::vector.
 
 SuperConst3D (SuperStructure< T, 3 > &superStructure, W scalar)
 Constructor accepting single scalar.
 
template<unsigned Size>
 SuperConst3D (SuperStructure< T, 3 > &superStructure, Vector< W, Size > v)
 Constructor template accepting vectors.
 
bool operator() (W output[], const int input[]) override
 
- Public Member Functions inherited from olb::SuperF3D< T, W >
SuperF3D< T, W > & operator- (SuperF3D< T, W > &rhs)
 
SuperF3D< T, W > & operator+ (SuperF3D< T, W > &rhs)
 
SuperF3D< T, W > & operator* (SuperF3D< T, W > &rhs)
 
SuperF3D< T, W > & operator/ (SuperF3D< T, W > &rhs)
 
SuperStructure< T, 3 > & getSuperStructure ()
 
int getBlockFSize () const
 
BlockF3D< W > & getBlockF (int iCloc)
 
bool operator() (W output[], const int input[])
 
- 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)
 

Protected Attributes

const std::vector< W > _c
 
- Protected Attributes inherited from olb::SuperF3D< T, W >
SuperStructure< T, 3 > & _superStructure
 
std::vector< std::unique_ptr< BlockF3D< W > > > _blockF
 Super functors may consist of several BlockF3D<W> derived functors.
 

Additional Inherited Members

- Public Types inherited from olb::SuperF3D< T, W >
using identity_functor_type = SuperIdentity3D<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)
 
- Static Public Attributes inherited from olb::SuperF3D< T, W >
static constexpr bool isSuper = true
 
static constexpr unsigned d = 3
 
- Protected Member Functions inherited from olb::SuperF3D< T, W >
 SuperF3D (SuperStructure< T, 3 > &superStructure, int targetDim)
 
- Protected Member Functions inherited from olb::GenericF< T, S >
 GenericF (int targetDim, int sourceDim)
 

Detailed Description

template<typename T, typename W = T>
class olb::SuperConst3D< T, W >

Functor returning a constant vector for all inputs.

Note that outside of SuperCalcF3D you should never be required to instantiate this functor by itself. Functor arithmetic involving constant values only makes sense in conjunction with simulation dependent functors.

Instantiation of this functor is performed by SuperCalcF3D to compose normal functors with constant vectors. e.g. scalar multiplication

SuperCalcF3D handles compositions of blockified and non-blockified functors which is why SuperConst3D is explicitly not blockified.

Definition at line 47 of file superConst3D.h.

Constructor & Destructor Documentation

◆ SuperConst3D() [1/3]

template<typename T , typename W >
olb::SuperConst3D< T, W >::SuperConst3D ( SuperStructure< T, 3 > & superStructure,
std::vector< W > v )

Constructor accepting std::vector.

Parameters
superStructureOnly required to instantiate underlying SuperF3D
vstd::vector to be copied to output by operator. Size determines target dimension.

Definition at line 34 of file superConst3D.hh.

35 : SuperF3D<T,W>(superStructure, v.size()),
36 _c{std::move(v)}
37{
38 this->getName() = "const(" + std::to_string(_c.size()) + ")";
39}
std::string & getName()
read and write access to name
Definition genericF.hh:51
const std::vector< W > _c

References olb::SuperConst3D< T, W >::_c, and olb::GenericF< T, S >::getName().

+ Here is the call graph for this function:

◆ SuperConst3D() [2/3]

template<typename T , typename W >
olb::SuperConst3D< T, W >::SuperConst3D ( SuperStructure< T, 3 > & superStructure,
W scalar )

Constructor accepting single scalar.

Definition at line 42 of file superConst3D.hh.

43 : SuperConst3D(superStructure, std::vector<W>(1, scalar))
44{ }
SuperConst3D(SuperStructure< T, 3 > &superStructure, std::vector< W > v)
Constructor accepting std::vector.

◆ SuperConst3D() [3/3]

template<typename T , typename W = T>
template<unsigned Size>
olb::SuperConst3D< T, W >::SuperConst3D ( SuperStructure< T, 3 > & superStructure,
Vector< W, Size > v )
inline

Constructor template accepting vectors.

Definition at line 63 of file superConst3D.h.

64 : SuperConst3D(superStructure, v.toStdVector()) { };

Member Function Documentation

◆ operator()()

template<typename T , typename W >
bool olb::SuperConst3D< T, W >::operator() ( W output[],
const int input[] )
override

Definition at line 47 of file superConst3D.hh.

48{
49 for (int i = 0; i < this->getTargetDim(); ++i) {
50 output[i] = _c[i];
51 }
52 return true;
53}
int getTargetDim() const
read only access to member variable _n
Definition genericF.hh:45

Member Data Documentation

◆ _c

template<typename T , typename W = T>
const std::vector<W> olb::SuperConst3D< T, W >::_c
protected

Definition at line 49 of file superConst3D.h.


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