24#ifndef ERROR_NORM_2D_HH
25#define ERROR_NORM_2D_HH
33template <
typename T,
typename W,
int P>
34template <
typename DESCRIPTOR>
42 using namespace functor_dsl;
44 auto wantedLatticeF = restrictF(wantedF.toShared(), sLattice);
46 return norm<P>(wantedLatticeF - f.toShared(), indicatorF.toShared())
47 / norm<P>(wantedLatticeF, indicatorF.toShared());
50 this->getName() =
"relErrorNormL" + std::to_string(P);
53template <
typename T,
typename W,
int P>
54template <
typename DESCRIPTOR>
61 std::forward<decltype(wantedF)>(wantedF),
62 std::forward<decltype(indicatorF)>(indicatorF))
66template <
typename T,
typename W,
int P>
67template <
typename DESCRIPTOR>
75 using namespace functor_dsl;
77 return norm<P>(restrictF(wantedF.toShared(), sLattice) - f.toShared(),
78 indicatorF.toShared());
81 this->getName() =
"absErrorNormL" + std::to_string(P);
84template <
typename T,
typename W,
int P>
85template <
typename DESCRIPTOR>
92 std::forward<decltype(wantedF)>(wantedF),
93 std::forward<decltype(indicatorF)>(indicatorF))
AnalyticalF are applications from DD to XD, where X is set by the constructor.
Smart pointer for managing the various ways of passing functors around.
Absolute error norm functor.
SuperAbsoluteErrorLpNorm2D(SuperLattice< T, DESCRIPTOR > &sLattice, FunctorPtr< SuperF2D< T, W > > &&f, FunctorPtr< AnalyticalF2D< T, W > > &&wantedF, FunctorPtr< SuperIndicatorF2D< T > > &&indicatorF)
represents all functors that operate on a SuperStructure<T,2> in general
identity functor for memory management
represents all functors that operate on a SuperLattice in general, e.g. getVelocity(),...
Super class maintaining block lattices for a cuboid decomposition.
Relative error norm functor.
SuperRelativeErrorLpNorm2D(SuperLattice< T, DESCRIPTOR > &sLattice, FunctorPtr< SuperF2D< T, W > > &&f, FunctorPtr< AnalyticalF2D< T, W > > &&wantedF, FunctorPtr< SuperIndicatorF2D< T > > &&indicatorF)
Top level namespace for all of OpenLB.