![]() |
OpenLB 1.8.1
|
IndicatorF3D is an application from 
#include <indicatorBaseF3D.h>
Inheritance diagram for olb::IndicatorF3D< T >:
Collaboration diagram for olb::IndicatorF3D< T >:Public Member Functions | |
| virtual Vector< S, 3 > & | getMin () |
| virtual Vector< S, 3 > & | getMax () |
| virtual bool | distance (S &distance, const Vector< S, 3 > &origin, S precision, const Vector< S, 3 > &direction) |
| virtual bool | distance (S &distance, const Vector< S, 3 > &origin, const Vector< S, 3 > &direction, S precision, S pitch) |
| virtual bool | distance (S &distance, const Vector< S, 3 > &origin, const Vector< S, 3 > &direction, int iC=-1) |
| virtual bool | distance (S &distance, const Vector< S, 3 > &origin) |
| virtual bool | distance (S &distance, const S input[]) |
| virtual bool | normal (Vector< S, 3 > &normal, const Vector< S, 3 > &origin, const Vector< S, 3 > &direction, int iC=-1) |
| returns true and the normal if there was one found for an given origin and direction | |
| virtual bool | rotOnAxis (Vector< S, 3 > &vec_rot, const Vector< S, 3 > &vec, const Vector< S, 3 > &axis, S &theta) |
| Rotate vector around axis by angle theta. | |
| virtual bool | operator() (bool output[1], const S input[3]) |
| Returns true if input is inside the indicator. | |
| virtual S | signedDistance (const Vector< S, 3 > &input) |
| Returns signed distance to the nearest point on the indicator surface Uses the fastest, but potentially less accurate method. | |
| virtual S | signedDistanceExact (const Vector< S, 3 > &input) |
| Returns exact signed distance to the nearest point on the indicator surface Uses the most accurate, but slower method This is usually sufficient for fluid-wall interactions. | |
| virtual Vector< S, 3 > | surfaceNormal (const Vector< S, 3 > &pos, const S meshSize) |
| Return surface normal Uses the fastest, but potentially less accurate method. | |
| virtual Vector< S, 3 > | surfaceNormalExact (const Vector< S, 3 > &pos, const S meshSize) |
| Return surface normal Uses the most accurate, but slower method This is likely necessary for particle-wall interactions. | |
| Vector< S, 3 > | surfaceNormal (const Vector< S, 3 > &pos, const S meshSize, std::function< Vector< S, 3 >(const Vector< S, 3 > &)> transformPos) |
| Return surface normal after possible translation and rotation Uses the fastest, but potentially less accurate method. | |
| Vector< S, 3 > | surfaceNormalExact (const Vector< S, 3 > &pos, const S meshSize, std::function< Vector< S, 3 >(const Vector< S, 3 > &)> transformPos) |
| Return surface normal after possible translation and rotation Uses the fastest, but potentially less accurate method. | |
| bool | isInsideBox (Vector< S, 3 > point) |
Returns true if point is inside a cube with corners _myMin and _myMax | |
| virtual Vector< S, 3 > | getSample (const std::function< S()> &randomness) const |
Public Member Functions inherited from olb::GenericF< bool, S > | |
| virtual | ~GenericF ()=default |
| int | getSourceDim () const |
| read only access to member variable _m | |
| int | getTargetDim () const |
| read only access to member variable _n | |
| std::string & | getName () |
| read and write access to name | |
| std::string const & | getName () const |
| read only access to name | |
| virtual bool | operator() (bool output[], const S input[])=0 |
| has to be implemented for 'every' derived class | |
| bool | operator() (bool output[]) |
| wrapper that call the pure virtual operator() (T output[], const S input[]) from above | |
| bool | operator() (bool output[], S input0) |
| bool | operator() (bool output[], S input0, S input1) |
| bool | operator() (bool output[], S input0, S input1, S input2) |
| bool | operator() (bool output[], S input0, S input1, S input2, S input3) |
Protected Member Functions | |
| IndicatorF3D () | |
Protected Member Functions inherited from olb::GenericF< bool, S > | |
| GenericF (int targetDim, int sourceDim) | |
Protected Attributes | |
| Vector< S, 3 > | _myMin |
| Vector< S, 3 > | _myMax |
Additional Inherited Members | |
Public Types inherited from olb::GenericF< bool, S > | |
| using | targetType |
| using | sourceType |
Public Attributes inherited from olb::GenericF< bool, S > | |
| std::shared_ptr< GenericF< bool, S > > | _ptrCalcC |
| memory management, frees resouces (calcClass) | |
IndicatorF3D is an application from 
| _myMin | holds minimal(component wise) vector of the domain ![]() |
| _myMax | holds maximal(component wise) vector of the domain ![]() |
|
protected |
Definition at line 41 of file indicatorBaseF3D.hh.
|
virtual |
Reimplemented in olb::RegularCachedIndicatorF3D< S >.
Definition at line 97 of file indicatorBaseF3D.hh.
References olb::util::abs().
Here is the call graph for this function:
|
virtual |
Reimplemented in olb::RegularCachedIndicatorF3D< S >.
Definition at line 90 of file indicatorBaseF3D.hh.
|
virtual |
Reimplemented in olb::IndicatorSphere3D< S >, and olb::RegularCachedIndicatorF3D< S >.
Definition at line 81 of file indicatorBaseF3D.hh.
|
virtual |
Reimplemented in olb::RegularCachedIndicatorF3D< S >.
Definition at line 69 of file indicatorBaseF3D.hh.
|
virtual |
Reimplemented in olb::RegularCachedIndicatorF3D< S >.
Definition at line 57 of file indicatorBaseF3D.hh.
Here is the caller graph for this function:
|
virtual |
Reimplemented in olb::IndicatorPolygon3D< S >, olb::IndicatorTranslate3D< S >, and olb::RegularCachedIndicatorF3D< S >.
Definition at line 51 of file indicatorBaseF3D.hh.
Here is the caller graph for this function:
|
virtual |
Reimplemented in olb::IndicatorPolygon3D< S >, olb::IndicatorTranslate3D< S >, and olb::RegularCachedIndicatorF3D< S >.
Definition at line 45 of file indicatorBaseF3D.hh.
Here is the caller graph for this function:
|
inlinevirtual |
| randomness | Callable returning uniformly sampled values in [0,1] |
Reimplemented in olb::IndicatorCuboid3D< T >, olb::IndicatorCuboid3D< S >, and olb::IndicatorCylinder3D< S >.
Definition at line 99 of file indicatorBaseF3D.h.
| bool olb::IndicatorF3D< S >::isInsideBox | ( | Vector< S, 3 > | point | ) |
Returns true if point is inside a cube with corners _myMin and _myMax
Definition at line 305 of file indicatorBaseF3D.hh.
|
virtual |
returns true and the normal if there was one found for an given origin and direction
(mind that the default computation is done by a numerical approximation which searches .. [TODO])
find perpendicular vector to direction
Loop 3 times to find three points on the surface to use for normal calc. orthogonal to direction vector 120 degree to each other
rotate directionPerpN through 3 angles {0,120,240}
Find 'positive' angle
Calculate Normal
Reimplemented in olb::RegularCachedIndicatorF3D< S >.
Definition at line 129 of file indicatorBaseF3D.hh.
References olb::util::abs(), olb::Vector< T, Size >::data(), olb::util::degreeToRadian(), M_PI, olb::util::nearZero(), olb::norm(), and olb::normalize().
Here is the call graph for this function:
Here is the caller graph for this function:
|
virtual |
Returns true if input is inside the indicator.
Reimplemented in olb::IndicatorIdentity3D< S >, and olb::RegularCachedIndicatorF3D< S >.
Definition at line 341 of file indicatorBaseF3D.hh.
|
virtual |
Rotate vector around axis by angle theta.
http://mathworld.wolfram.com/RodriguesRotationFormula.html https://en.wikipedia.org/wiki/Rodrigues%27_rotation_formula
Reimplemented in olb::RegularCachedIndicatorF3D< S >.
Definition at line 104 of file indicatorBaseF3D.hh.
References olb::util::cos(), olb::norm(), and olb::util::sin().
Here is the call graph for this function:
|
virtual |
Returns signed distance to the nearest point on the indicator surface Uses the fastest, but potentially less accurate method.
Reimplemented in olb::IndicatorCone3D< S >, olb::IndicatorCuboid3D< T >, olb::IndicatorCuboid3D< S >, olb::IndicatorCuboidRotate3D< S >, olb::IndicatorCylinder3D< S >, olb::IndicatorEllipsoid3D< S >, olb::IndicatorLayer3D< S >, olb::IndicatorSphere3D< S >, olb::IndicatorTranslate3D< S >, olb::IndicComb3D< S, F >, olb::IndicComb3D< S, util::minus >, olb::IndicComb3D< S, util::multiplies >, olb::IndicComb3D< S, util::plus >, olb::IndicMinus3D< S >, olb::IndicMultiplication3D< S >, olb::IndicPlus3D< S >, and olb::RegularCachedIndicatorF3D< S >.
Definition at line 311 of file indicatorBaseF3D.hh.
|
virtual |
Returns exact signed distance to the nearest point on the indicator surface Uses the most accurate, but slower method This is usually sufficient for fluid-wall interactions.
Reimplemented in olb::IndicComb3D< S, F >, olb::IndicComb3D< S, util::minus >, olb::IndicComb3D< S, util::multiplies >, olb::IndicComb3D< S, util::plus >, olb::IndicMinus3D< S >, olb::IndicMultiplication3D< S >, and olb::IndicPlus3D< S >.
Definition at line 319 of file indicatorBaseF3D.hh.
|
virtual |
Return surface normal Uses the fastest, but potentially less accurate method.
Reimplemented in olb::RegularCachedIndicatorF3D< S >.
Definition at line 325 of file indicatorBaseF3D.hh.
References olb::util::surfaceNormal().
Here is the call graph for this function:
Here is the caller graph for this function:| Vector< S, 3 > olb::IndicatorF3D< S >::surfaceNormal | ( | const Vector< S, 3 > & | pos, |
| const S | meshSize, | ||
| std::function< Vector< S, 3 >(const Vector< S, 3 > &)> | transformPos ) |
Return surface normal after possible translation and rotation Uses the fastest, but potentially less accurate method.
Definition at line 333 of file indicatorBaseF3D.hh.
|
virtual |
Return surface normal Uses the most accurate, but slower method This is likely necessary for particle-wall interactions.
Definition at line 363 of file indicatorBaseF3D.hh.
| Vector< S, 3 > olb::IndicatorF3D< S >::surfaceNormalExact | ( | const Vector< S, 3 > & | pos, |
| const S | meshSize, | ||
| std::function< Vector< S, 3 >(const Vector< S, 3 > &)> | transformPos ) |
Return surface normal after possible translation and rotation Uses the fastest, but potentially less accurate method.
Definition at line 370 of file indicatorBaseF3D.hh.
|
protected |
Definition at line 47 of file indicatorBaseF3D.h.
|
protected |
Definition at line 46 of file indicatorBaseF3D.h.