|
| C18BasedTraversal (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 lc_c18 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 | 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.
|
|
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 | isApplicable () 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.
|
|
|
template<bool allCells, typename LoopBody > |
void | c18Traversal (LoopBody &&loopBody) |
| The main traversal of the C18Traversal.
|
|
| 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, class
Functor>
class autopas::C18BasedTraversal< ParticleCell, Functor >
This class provides the base for traversals using the c18 base step.
The traversal is defined in the function c18Traversal and uses 18 colors, such that interactions between the base cell and all adjacent cells with greater ID are safe, even when using newton3 optimizations.
- Template Parameters
-
ParticleCell | the type of cells |
Functor | The functor that defines the interaction of two particles. |