SPH
|
Helper template, allowing to define all three functions with a single function. More...
#include <NeighbourFinder.h>
Public Member Functions | |
virtual Size | findAll (const Size index, const Float radius, Array< NeighbourRecord > &neighbours) const override |
Finds all neighbours within given radius from the point given by index. More... | |
virtual Size | findAll (const Vector &pos, const Float radius, Array< NeighbourRecord > &neighbours) const override |
Finds all points within given radius from given position. More... | |
virtual Size | findLowerRank (const Size index, const Float radius, Array< NeighbourRecord > &neighbours) const override |
Finds all points within radius that have a lower rank in smoothing length. More... | |
Public Member Functions inherited from ISymmetricFinder | |
void | build (IScheduler &scheduler, ArrayView< const Vector > points, Flags< FinderFlag > flags=FinderFlag::MAKE_RANK) |
Constructs the struct with an array of vectors. More... | |
template<typename TCompare > | |
void | buildWithRank (IScheduler &scheduler, ArrayView< const Vector > points, TCompare &&comp) |
Constructs the struct with custom predicate for ordering particles. More... | |
Public Member Functions inherited from IBasicFinder | |
void | build (IScheduler &scheduler, ArrayView< const Vector > points) |
Constructs the struct with an array of vectors. More... | |
Public Member Functions inherited from Polymorphic | |
virtual | ~Polymorphic () |
Additional Inherited Members | |
Protected Member Functions inherited from IBasicFinder | |
virtual void | buildImpl (IScheduler &scheduler, ArrayView< const Vector > points)=0 |
Builds finder from set of vectors. More... | |
Protected Attributes inherited from ISymmetricFinder | |
Order | rank |
Ranks of particles according to their smoothing lengths. More... | |
Protected Attributes inherited from IBasicFinder | |
ArrayView< const Vector > | values |
View of the source datapoints, updated every time (re)build is called. More... | |
Helper template, allowing to define all three functions with a single function.
Definition at line 137 of file NeighbourFinder.h.
|
inlineoverridevirtual |
Finds all neighbours within given radius from the point given by index.
Point view passed in build must not be invalidated, in particular the number of particles must not change before function findAll is called. Note that the particle itself (index-th particle) is also included in the list of neighbours.
index | Index of queried particle in the view given in build function. |
radius | Radius in which the neighbours are searched. Must be a positive value. |
neighbours | Output parameter, containing the list of neighbours as indices to the array. The array is cleared by the function. |
Implements IBasicFinder.
Definition at line 139 of file NeighbourFinder.h.
|
inlineoverridevirtual |
Finds all points within given radius from given position.
The position may not correspond to any point.
Implements IBasicFinder.
Definition at line 147 of file NeighbourFinder.h.
|
inlineoverridevirtual |
Finds all points within radius that have a lower rank in smoothing length.
The sorting of particles with equal smoothing length is not specified, but it is ensured that all found neighbours will not find the queries particle if findAsymmetric is called with that particle. Note that this does NOT find the queried particle itself.
index | Index of queried particle in the view given in build function. |
radius | Radius in which the neighbours are searched. Must be a positive value. |
neighbours | Output parameter, containing the list of neighbours as indices to the array. The array is cleared by the function. |
Implements ISymmetricFinder.
Definition at line 160 of file NeighbourFinder.h.