25#ifndef SUPER_BASE_F_3D_H
26#define SUPER_BASE_F_3D_H
47template<
typename T,
typename DESCRIPTOR>
class SuperLattice;
55template <
typename T,
typename W = T>
66 std::vector<std::unique_ptr<BlockF3D<W>>>
_blockF;
70 static constexpr unsigned d = 3;
84 bool operator() (W output[],
const int input []);
91template<
typename T,
typename BaseType>
107template <
typename T,
typename W=T>
113 bool operator() (W output[],
const int input[])
override;
118template <
typename T,
typename W=T>
126 bool operator() (W output[],
const int input[]);
131template <
typename T,
typename W=T>
138 bool operator() (W output[],
const int input[])
override;
143template <
typename T,
typename W=T>
151 bool operator() (W output[],
const int input[]);
156template <
typename T,
typename W,
typename W2>
162 bool operator() (W output[],
const int input[]);
166template <
typename T,
typename W=T>
174 bool operator() (W output[],
const int input[]);
178template <
typename T,
typename DESCRIPTOR>
189 bool operator() (T output [],
const int input []);
195template <
typename T,
typename DESCRIPTOR>
201 bool operator() (T output[],
const int input[])
override;
205template <
typename T,
typename DESCRIPTOR>
216template <
typename T,
typename DESCRIPTOR,
typename TDESCRIPTOR>
226template <
typename T,
typename DESCRIPTOR>
236 bool operator() (T output[],
const int x[])
override;
represents all functors that operate on a cuboid in general, mother class of BlockLatticeF,...
bool operator()(T output[], const int x[]) override
ComposedSuperLatticeF3D(SuperLatticeF3D< T, DESCRIPTOR > &f0, SuperLatticeF3D< T, DESCRIPTOR > &f1, SuperLatticeF3D< T, DESCRIPTOR > &f2)
Smart pointer for managing the various ways of passing functors around.
GenericF is a base class, that can represent continuous as well as discrete functions.
SuperDataF3D(SuperData< 3, T, BaseType > &superData)
Constructor from SuperData3D - stores _superData reference.
SuperData< 3, T, BaseType > & _superData
SuperData3D object this functor was created from
bool operator()(BaseType output[], const int input[])
Operator for this functor - copies data from _superData object into output.
SuperData< 3, T, BaseType > & getSuperData()
Getter for _superData
represents all functors that operate on a SuperStructure<T,3> in general
SuperStructure< T, 3 > & getSuperStructure()
SuperF3D< T, W > & operator*(SuperF3D< T, W > &rhs)
int getBlockFSize() const
SuperStructure< T, 3 > & _superStructure
BlockF3D< W > & getBlockF(int iCloc)
SuperF3D(SuperStructure< T, 3 > &superStructure, int targetDim)
SuperF3D< T, W > & operator/(SuperF3D< T, W > &rhs)
bool operator()(W output[], const int input[])
static constexpr bool isSuper
SuperF3D< T, W > & operator+(SuperF3D< T, W > &rhs)
SuperF3D< T, W > & operator-(SuperF3D< T, W > &rhs)
static constexpr unsigned d
std::vector< std::unique_ptr< BlockF3D< W > > > _blockF
Super functors may consist of several BlockF3D<W> derived functors.
identity functor for memory management
FunctorPtr< SuperF3D< T, W > > _f
bool operator()(W output[], const int input[]) override
SuperIdentity3D(FunctorPtr< SuperF3D< T, W > > &&f)
identity functor for memory management
SuperIdentityOnSuperIndicatorF3D(SuperF3D< T, W > &f, SuperIndicatorF3D< T > &indicatorF, W defaultValue=0.)
SuperIndicatorF3D< T > & _indicatorF
bool operator()(W output[], const int input[])
Base indicator functor (discrete)
represents all functors that operate on a SuperLattice in general, e.g. getVelocity(),...
SuperLattice< T, DESCRIPTOR > & getSuperLattice()
SuperLattice< T, DESCRIPTOR > & _sLattice
SuperLatticeF3D(SuperLattice< T, DESCRIPTOR > &superLattice, int targetDim)
bool operator()(T output[], const int input[])
identity functor for memory management
FunctorPtr< SuperLatticeF3D< T, DESCRIPTOR > > _f
bool operator()(T output[], const int input[]) override
SuperLatticeIdentity3D(FunctorPtr< SuperLatticeF3D< T, DESCRIPTOR > > &&f)
represents all functors that operate on a DESCRIPTOR with output in Phys, e.g. physVelocity(),...
const UnitConverter< T, DESCRIPTOR > & _converter
UnitConverter< T, DESCRIPTOR > const & getConverter() const
SuperLatticePhysF3D(SuperLattice< T, DESCRIPTOR > &sLattice, const UnitConverter< T, DESCRIPTOR > &converter, int targetDim)
represents all thermal functors that operate on a DESCRIPTOR with output in Phys, e....
ThermalUnitConverter< T, DESCRIPTOR, TDESCRIPTOR > const & getConverter() const
const ThermalUnitConverter< T, DESCRIPTOR, TDESCRIPTOR > & _converter
SuperLatticeThermalPhysF3D(SuperLattice< T, TDESCRIPTOR > &sLattice, const ThermalUnitConverter< T, DESCRIPTOR, TDESCRIPTOR > &converter, int targetDim)
Super class maintaining block lattices for a cuboid decomposition.
perform explicit typecast from output type W2 to W
FunctorPtr< SuperF3D< T, W2 > > _f
SuperTypecastF3D(FunctorPtr< SuperF3D< T, W2 > > &&f)
bool operator()(W output[], const int input[])
has to be implemented for 'every' derived class
Conversion between physical and lattice units, as well as discretization specialized for thermal appl...
Conversion between physical and lattice units, as well as discretization.
The description of a generic interface for all functor classes – header file.
Top level namespace for all of OpenLB.
typename util::BaseTypeHelper< T >::type BaseType
Dynamics for a generic 2D super data – header file.