24#ifndef SMOOTH_INDICATOR_BASE_F_3D_H
25#define SMOOTH_INDICATOR_BASE_F_3D_H
37template <
typename T,
typename S,
bool PARTICLE=false>
46template <
typename T,
typename S>
59 std::string _name =
"smoothIndicator3D";
67 const S& getCircumRadius()
const;
68 const S& getEpsilon()
const;
72 void setEpsilon(S epsilon);
73 virtual S getVolume( );
79 virtual const S signedDistance(
const PhysR<T,3> input);
80 virtual bool distance(S& distance,
const Vector<S,3>& origin,
const Vector<S,3>& direction, S precision, S pitch);
81 virtual bool operator()(T output[],
const S input[]);
82 bool isInsideCircumRadius(
const PhysR<S,3>& input);
88template <
typename T,
typename S>
94 bool operator() (T output[],
const S input[])
override;
100template <
typename T,
typename S>
106 std::string _name=
"3D-Particle surface";
109 const S& getCircumRadius()
const;
110 const S& getEpsilon()
const;
112 void setEpsilon(S epsilon);
113 virtual S getVolume( );
119 virtual const S signedDistance(
const PhysR<T,3> input);
120 virtual bool distance(S& distance,
const Vector<S,3>& origin,
const Vector<S,3>& direction, S precision, S pitch);
121 virtual bool operator()(T output[],
const S input[]);
122 bool isInsideCircumRadius(
const PhysR<S,3>& input);
AnalyticalF are applications from DD to XD, where X is set by the constructor.
SmoothIndicatorF3D< T, S, false > & operator+(SmoothIndicatorF3D< T, S, false > &rhs)
bool operator()(T output[], const S input[]) override
has to be implemented for 'every' derived class
SmoothIndicatorF3D< T, S, false > & _f
SmoothIndicatorIdentity3D(SmoothIndicatorF3D< T, S, false > &f)
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