A cell pair traversal. More...
#include <CellTraversal.h>
Public Member Functions | |
CellTraversal (const std::array< unsigned long, 3 > &dims) | |
Constructor of CellTraversal. | |
virtual | ~CellTraversal ()=default |
Destructor of CellTraversal. | |
virtual void | setCellsToTraverse (std::vector< ParticleCell > &cells) |
Sets the cells to iterate over. | |
virtual void | setSortingThreshold (size_t sortingThreshold)=0 |
Set the sorting-threshold for traversals that use the CellFunctor If the sum of the number of particles in two cells is greater or equal to that value, the CellFunctor creates a sorted view of the particles to avoid unnecessary distance checks. | |
Protected Attributes | |
std::array< unsigned long, 3 > | _cellsPerDimension |
The dimensions of the cellblock. | |
std::vector< ParticleCell > * | _cells |
The cells to traverse. | |
A cell pair traversal.
This class handles traversals through the cell structures. Derived classes handle the order through which the cells are traversed and should additional inherit from TraversalInterface
ParticleCell | type of cells. |
|
inlineexplicit |
Constructor of CellTraversal.
dims | the dimensions of the cellblock. |
|
inlinevirtual |
Sets the cells to iterate over.
Should always be called before initTraversal().
cells | The cells to iterate over. |
|
pure virtual |
Set the sorting-threshold for traversals that use the CellFunctor If the sum of the number of particles in two cells is greater or equal to that value, the CellFunctor creates a sorted view of the particles to avoid unnecessary distance checks.
sortingThreshold | Sum of the number of particles in two cells from which sorting should be enabled |
Implemented in autopas::DSSequentialTraversal< ParticleCell, Functor >, autopas::LCC01Traversal< ParticleCell, Functor, combineSoA >, autopas::LCC04CombinedSoATraversal< ParticleCell, PairwiseFunctor >, autopas::LCC04HCPTraversal< ParticleCell, PairwiseFunctor >, autopas::LCC04Traversal< ParticleCell, PairwiseFunctor >, autopas::LCC08Traversal< ParticleCell, PairwiseFunctor >, autopas::LCC18Traversal< ParticleCell, PairwiseFunctor >, autopas::LCSlicedBalancedTraversal< ParticleCell, PairwiseFunctor >, autopas::LCSlicedC02Traversal< ParticleCell, PairwiseFunctor >, autopas::LCSlicedTraversal< ParticleCell, PairwiseFunctor >, autopas::OTC01Traversal< Particle_T, PairwiseFunctor >, autopas::OTC18Traversal< Particle_T, PairwiseFunctor >, autopas::VCLC06Traversal< ParticleCell, PairwiseFunctor >, autopas::VCLSlicedBalancedTraversal< ParticleCell, PairwiseFunctor >, autopas::VCLSlicedC02Traversal< ParticleCell, PairwiseFunctor >, autopas::VCLSlicedTraversal< ParticleCell, PairwiseFunctor >, autopas::VLCC01Traversal< ParticleCell, PairwiseFunctor, NeighborList >, autopas::VLCC08Traversal< ParticleCell, PairwiseFunctor, NeighborList >, autopas::VLCC18Traversal< ParticleCell, PairwiseFunctor, NeighborList >, autopas::VLCCellPairC08Traversal< ParticleCell, PairwiseFunctor >, autopas::VLCSlicedBalancedTraversal< ParticleCell, PairwiseFunctor, NeighborList >, autopas::VLCSlicedC02Traversal< ParticleCell, PairwiseFunctor, NeighborList >, and autopas::VLCSlicedTraversal< ParticleCell, PairwiseFunctor, NeighborList >.
|
protected |
The dimensions of the cellblock.
The dimensions are the number of cells in x, y and z direction.