|
| | LCC08Traversal (const std::array< unsigned long, 3 > &dims, Functor_T &functor, double interactionLength, const std::array< double, 3 > &cellLength, DataLayoutOption dataLayout, bool useNewton3) |
| | Constructor of the lc_c08 traversal.
|
| |
| void | traverseParticles () override |
| | Traverse the particles by pairs, triplets etc.
|
| |
| TraversalOption | getTraversalType () const override |
| | Return a enum representing the name of the traversal class.
|
| |
| bool | isApplicableToDomain () const override |
| | LC C08 is always applicable to the domain.
|
| |
| void | setAoSSortingThreshold (size_t aosSortingThreshold) override |
| | Set the aos-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.
|
| |
| void | setSoASortingThreshold (size_t soaSortingThreshold) override |
| | Set the SoA sorting-threshold for traversals that use the CellFunctor.
|
| |
| | C08BasedTraversal (const std::array< unsigned long, 3 > &dims, Functor_T &functor, const double interactionLength, const std::array< double, 3 > &cellLength, DataLayoutOption dataLayout, bool useNewton3) |
| | Constructor of the c08 traversal.
|
| |
| void | initTraversal () override |
| | load Data Layouts required for this Traversal if cells have been set through setCellsToTraverse().
|
| |
| void | endTraversal () override |
| | write Data to AoS if cells have been set through setCellsToTraverse().
|
| |
| | 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 | setAoSSortingThreshold (size_t aosSortingThreshold)=0 |
| | Set the aos-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.
|
| |
| virtual void | setSoASortingThreshold (size_t soaSortingThreshold)=0 |
| | Set the SoA sorting-threshold for traversals that use the CellFunctor.
|
| |
|
virtual | ~TraversalInterface ()=default |
| | Destructor of TraversalInterface.
|
| |
| | TraversalInterface (DataLayoutOption dataLayout, bool useNewton3) |
| | Constructor of the TraversalInterface.
|
| |
| virtual TraversalOption | getTraversalType () const =0 |
| | Return a enum representing the name of the traversal class.
|
| |
| virtual bool | isApplicableToDomain () const =0 |
| | Checks if the traversal is applicable to the current state of the domain.
|
| |
| virtual void | initTraversal ()=0 |
| | Initializes the traversal.
|
| |
| virtual void | traverseParticles ()=0 |
| | Traverse the particles by pairs, triplets etc.
|
| |
| virtual void | endTraversal ()=0 |
| | Finalizes the traversal.
|
| |
| bool | getUseNewton3 () const |
| | Return whether the traversal uses newton 3.
|
| |
| DataLayoutOption | getDataLayout () const |
| | Return the data layout option.
|
| |
|
| void | c08Traversal (LoopBody &&loopBody) |
| | The main traversal of the C08Traversal.
|
| |
| | ColorBasedTraversal (const std::array< unsigned long, 3 > &dims, Functor &functor, const double interactionLength, const std::array< double, 3 > &cellLength, DataLayoutOption dataLayout, bool useNewton3) |
| | Constructor of the ColorBasedTraversal.
|
| |
|
| ~ColorBasedTraversal () override=default |
| | Destructor of ColorBasedTraversal.
|
| |
| template<typename LoopBody > |
| void | colorTraversal (LoopBody &&loopBody, const std::array< unsigned long, 3 > &end, const std::array< unsigned long, 3 > &stride, const std::array< unsigned long, 3 > &offset={0ul, 0ul, 0ul}) |
| | The main traversal of the ColorBasedTraversal.
|
| |
| virtual void | notifyColorChange (unsigned long newColor) |
| | This method is called when the color during the traversal has changed.
|
| |
|
const double | _interactionLength |
| | Interaction length (cutoff + skin).
|
| |
|
const std::array< double, 3 > | _cellLength |
| | cell length in CellBlock3D.
|
| |
| std::array< unsigned long, 3 > | _overlap |
| | overlap of interacting cells.
|
| |
| std::array< unsigned long, 3 > | _cellsPerDimension |
| | The dimensions of the cellblock.
|
| |
|
std::vector< ParticleCell > * | _cells |
| | The cells to traverse.
|
| |
|
DataLayoutOption | _dataLayout |
| | The datalayout used by this traversal.
|
| |
|
bool | _useNewton3 |
| | If this traversal makes use of newton3.
|
| |
template<class ParticleCell_T, class Functor_T>
class autopas::LCC08Traversal< ParticleCell_T, Functor_T >
This class provides the lc_c08 traversal.
The traversal uses the c08 base step performed on every single cell.
C08 base step in 2D. (dark blue cell = base cell)
Since these steps overlap a domain coloring with eight colors is applied.
C08 domain coloring in 2D. 4 colors are required.
- Template Parameters
-
| ParticleCell_T | the type of cells |
| Functor_T | The functor that defines the interaction of two particles. |
template<class ParticleCell_T , class Functor_T >
Set the SoA sorting-threshold for traversals that use the CellFunctor.
If the sum of the SoA buffer sizes of two cells exceeds this value, the SoA path uses SoAFunctorPairSorted. Traversals that hold a CellFunctor should forward to it; others should explicitly override with an empty body.
- Parameters
-
| soaSortingThreshold | Sum of the SoA buffer sizes from which SoA sorting should be enabled. |
Implements autopas::CellTraversal< ParticleCell >.