24#ifndef FUNCTOR_DSL_3D_H
25#define FUNCTOR_DSL_3D_H
66namespace functor_dsl {
69template<
typename T,
typename W>
70std::shared_ptr<SuperF3D<T,W>>
lift(SuperF3D<T,W>& f);
73template<
typename T,
typename W>
74std::shared_ptr<SuperF3D<T,W>>
lift(SuperF3D<T,W>* f);
77template<
typename T,
typename W>
78std::shared_ptr<AnalyticalF3D<T,W>>
lift(AnalyticalF3D<T,W>& f);
81template<
typename T,
typename W>
82std::shared_ptr<AnalyticalF3D<T,W>>
lift(AnalyticalF3D<T,W>* f);
85template<
typename T,
typename W>
86std::shared_ptr<SuperF3D<T,W>>
pow(std::shared_ptr<SuperF3D<T,W>> baseF,
87 std::shared_ptr<SuperF3D<T,W>> exponentF);
90template<
typename T,
typename W,
typename E>
91std::shared_ptr<SuperF3D<T,W>>
pow(std::shared_ptr<SuperF3D<T,W>> baseF,
95template<
typename T,
typename W,
typename B>
96std::shared_ptr<SuperF3D<T,W>>
pow(B base,
97 std::shared_ptr<SuperF3D<T,W>> exponentF);
100template<
int P,
typename T,
typename W>
101std::shared_ptr<SuperF3D<T,W>>
norm(std::shared_ptr<SuperF3D<T,W>> f,
102 std::shared_ptr<SuperIndicatorF3D<T>> indicatorF);
105template<
typename T,
typename W,
typename DESCRIPTOR>
106std::shared_ptr<SuperF3D<T,W>>
restrictF(std::shared_ptr<AnalyticalF3D<T,W>> f,
107 SuperLattice<T, DESCRIPTOR>& sLattice);
110template<
typename T,
typename DESCRIPTOR,
typename FIELD>
111std::enable_if_t<DESCRIPTOR::d == 3, std::shared_ptr<SuperF3D<T>>>
112field(SuperLattice<T,DESCRIPTOR>& sLattice);
std::enable_if_t< DESCRIPTOR::d==2, std::shared_ptr< SuperF2D< T > > > field(SuperLattice< T, DESCRIPTOR > &sLattice)
Returns external field functor.
std::shared_ptr< SuperF2D< T, W > > lift(SuperF2D< T, W > &f)
Lifts functor reference to std::shared_ptr functor arithmetic.
std::shared_ptr< SuperF2D< T, W > > pow(std::shared_ptr< SuperF2D< T, W > > baseF, std::shared_ptr< SuperF2D< T, W > > exponentF)
Returns baseF raised to the power of exponentF.
std::shared_ptr< SuperF2D< T, W > > norm(std::shared_ptr< SuperF2D< T, W > > f, std::shared_ptr< SuperIndicatorF2D< T > > indicatorF)
Returns Lp norm for a functor f on the subset described by indicatorF.
std::shared_ptr< SuperF2D< T, W > > restrictF(std::shared_ptr< AnalyticalF2D< T, W > > f, SuperLattice< T, DESCRIPTOR > &sLattice)
Returns restriction of a analytical functor f to the lattice sLattice.
Top level namespace for all of OpenLB.