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) {}
52 [[nodiscard]] TraversalOption
getTraversalType()
const override {
return TraversalOption::vlp_c08; }
73template <
class ParticleCell,
class PairwiseFunctor>
75 if (this->_dataLayout == DataLayoutOption::soa) {
76 _soa = this->_cellPairVerletList->loadSoA(_functor);
79 this->c08Traversal([&](
unsigned long x,
unsigned long y,
unsigned long z) {
81 _cellHandler.processCellListsC08(*(this->_cellPairVerletList), baseIndex, _functor, this->_dataLayout, _soa,
85 if (this->_dataLayout == DataLayoutOption::soa) {
86 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:45
Class for Cells of Particles.
Definition: ParticleCell.h:49
Structur of the array class.
Definition: SoA.h:28
This class provides the base logic for the c08 traversal for VLCCellPairNeighborList.
Definition: VLCCellPairC08CellHandler.h:19
C08 traversal for VLCCellPairNeighborList.
Definition: VLCCellPairC08Traversal.h:24
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
bool isApplicableToDomain() const override
PVL C08 is always applicable to the domain.
Definition: VLCCellPairC08Traversal.h:50
TraversalOption getTraversalType() const override
Return a enum representing the name of the traversal class.
Definition: VLCCellPairC08Traversal.h:52
void setSoASortingThreshold(size_t soaSortingThreshold) override
Set the SoA sorting-threshold for traversals that use the CellFunctor.
Definition: VLCCellPairC08Traversal.h:62
void traverseParticles() override
Traverse the particles by pairs, triplets etc.
Definition: VLCCellPairC08Traversal.h:74
void setAoSSortingThreshold(size_t aosSortingThreshold) override
Set the aos-sorting-threshold for traversals that use the CellFunctor If the sum of the number of par...
Definition: VLCCellPairC08Traversal.h:58
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:34