24#ifndef SMOOTH_INDICATOR_BASE_F_2D_H
25#define SMOOTH_INDICATOR_BASE_F_2D_H
36template <
typename T,
typename S,
bool PARTICLE=false>
45template <
typename T,
typename S>
56 std::string _name =
"smoothIndicator2D";
63 const S& getCircumRadius()
const;
64 const S& getTheta()
const;
65 const S& getEpsilon()
const;
68 void setTheta(S theta);
69 void setEpsilon(S epsilon);
75 virtual const S signedDistance(
const PhysR<T,2> input);
76 virtual bool distance(S& distance,
const Vector<S,2>& origin,
const Vector<S,2>& direction, S precision, S pitch);
77 virtual bool operator()(T output[],
const S input[]);
78 bool isInsideCircumRadius(
const PhysR<S,2>& input);
84template <
typename T,
typename S>
90 bool operator() (T output[],
const S input[])
override;
96template <
typename T,
typename S>
102 std::string _name =
"2D-Particle surface";
105 const S& getCircumRadius()
const;
106 const S& getEpsilon()
const;
108 void setEpsilon(S epsilon);
114 virtual const S signedDistance(
const PhysR<T,2> input);
115 virtual bool distance(S& distance,
const Vector<S,2>& origin,
const Vector<S,2>& direction, S precision, S pitch);
116 virtual bool operator()(T output[],
const S input[]);
117 bool isInsideCircumRadius(
const PhysR<S,2>& input);
AnalyticalF are applications from DD to XD, where X is set by the constructor.
SmoothIndicatorF2D< T, S, false > & operator+(SmoothIndicatorF2D< T, S, false > &rhs)
SmoothIndicatorIdentity2D(SmoothIndicatorF2D< T, S, false > &f)
SmoothIndicatorF2D< T, S, false > & _f
bool operator()(T output[], const S input[]) override
has to be implemented for 'every' derived class
The description of a generic interface for all functor classes – header file.
Top level namespace for all of OpenLB.
efficient implementation of a vector class