22template <
class ParticleCell,
class PairwiseFunctor>
37 double interactionLength,
const std::array<double, 3> &cellLength,
38 DataLayoutOption dataLayout,
bool useNewton3)
40 dataLayout, useNewton3),
41 _functor(pairwiseFunctor),
42 _cellHandler(dims, interactionLength, cellLength) {}
50 [[nodiscard]] TraversalOption
getTraversalType()
const override {
return TraversalOption::vlp_c08; }
67template <
class ParticleCell,
class PairwiseFunctor>
69 if (this->_dataLayout == DataLayoutOption::soa) {
70 _soa = this->_cellPairVerletList->loadSoA(_functor);
73 this->c08Traversal([&](
unsigned long x,
unsigned long y,
unsigned long z) {
75 _cellHandler.processCellListsC08(*(this->_cellPairVerletList), baseIndex, _functor, this->_dataLayout, _soa,
79 if (this->_dataLayout == DataLayoutOption::soa) {
80 this->_cellPairVerletList->extractSoA(_functor);
This class provides the base for traversals using the c08 base step.
Definition: C08BasedTraversal.h:24
PairwiseFunctor class.
Definition: PairwiseFunctor.h:31
Class for Cells of Particles.
Definition: ParticleCell.h:49
Structur of the array class.
Definition: SoA.h:28
DataLayoutOption _dataLayout
The datalayout used by this traversal.
Definition: TraversalInterface.h:75
This class provides the base logic for the c08 traversal for VLCCellPairNeighborList.
Definition: VLCCellPairC08CellHandler.h:19
C08 traversal for VLCCellPairNeighborList.
Definition: VLCCellPairC08Traversal.h:24
bool isApplicable() const override
Checks if the traversal is applicable to the current state of the domain.
Definition: VLCCellPairC08Traversal.h:46
TraversalOption getTraversalType() const override
Return a enum representing the name of the traversal class.
Definition: VLCCellPairC08Traversal.h:50
void traverseParticles() override
Traverse the particles by pairs, triplets etc.
Definition: VLCCellPairC08Traversal.h:68
VLCCellPairC08Traversal(const std::array< unsigned long, 3 > &dims, PairwiseFunctor *pairwiseFunctor, double interactionLength, const std::array< double, 3 > &cellLength, DataLayoutOption dataLayout, bool useNewton3)
Constructor of the c08 traversal for VLCCellPairNeighborList.
Definition: VLCCellPairC08Traversal.h:36
void setSortingThreshold(size_t sortingThreshold) override
Set the sorting-threshold for traversals that use the CellFunctor If the sum of the number of particl...
Definition: VLCCellPairC08Traversal.h:56
Interface for traversals used with VLCCellPairNeighborList.
Definition: VLCCellPairTraversalInterface.h:21
constexpr T threeToOneD(T x, T y, T z, const std::array< T, 3 > &dims)
Convert a 3d index to a 1d index.
Definition: ThreeDimensionalMapping.h:29
This is the main namespace of AutoPas.
Definition: AutoPasDecl.h:32