24template <
class ParticleCell,
class PairwiseFunctor,
class NeighborList>
40 double interactionLength,
const std::array<double, 3> &cellLength,
41 DataLayoutOption dataLayout,
bool useNewton3, ContainerOption::Value typeOfList)
43 dims, pairwiseFunctor, interactionLength, cellLength, dataLayout, useNewton3),
45 _functor(pairwiseFunctor) {}
51 case (ContainerOption::verletListsCells):
52 return TraversalOption::vlc_c01;
53 case (ContainerOption::pairwiseVerletLists):
54 return TraversalOption::vlp_c01;
60 return TraversalOption();
83template <
class ParticleCell,
class PairwiseFunctor,
class NeighborList>
85 if (this->_dataLayout == DataLayoutOption::soa) {
86 this->loadSoA(_functor, *(this->_verletList));
89 this->c01Traversal([&](
unsigned long x,
unsigned long y,
unsigned long z) {
91 this->
template processCellLists<PairwiseFunctor>(*(this->_verletList), baseIndex, _functor, this->_dataLayout,
95 if (this->_dataLayout == DataLayoutOption::soa) {
96 this->extractSoA(_functor, *(this->_verletList));
This class provides the base for traversals using the c01 base step.
Definition: C01BasedTraversal.h:25
PairwiseFunctor class.
Definition: PairwiseFunctor.h:45
Class for Cells of Particles.
Definition: ParticleCell.h:49
This class provides the c01 traversal.
Definition: VLCC01Traversal.h:26
bool isApplicableToDomain() const override
VLC C01 is always applicable to the domain.
Definition: VLCC01Traversal.h:67
void setSoASortingThreshold(size_t soaSortingThreshold) override
Set the SoA sorting-threshold for traversals that use the CellFunctor.
Definition: VLCC01Traversal.h:77
VLCC01Traversal(const std::array< unsigned long, 3 > &dims, PairwiseFunctor &pairwiseFunctor, double interactionLength, const std::array< double, 3 > &cellLength, DataLayoutOption dataLayout, bool useNewton3, ContainerOption::Value typeOfList)
Constructor of the c01 traversal.
Definition: VLCC01Traversal.h:39
TraversalOption getTraversalType() const override
Return a enum representing the name of the traversal class.
Definition: VLCC01Traversal.h:49
void traverseParticles() override
Traverse the particles by pairs, triplets etc.
Definition: VLCC01Traversal.h:84
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: VLCC01Traversal.h:73
This class provides the Traversal Interface for the verlet lists cells container.
Definition: VLCTraversalInterface.h:38
ContainerOption _typeOfList
The type of neighbor list as an enum value.
Definition: VLCTraversalInterface.h:108
static void exception(const Exception e)
Handle an exception derived by std::exception.
Definition: ExceptionHandler.h:64
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