34template <
class ParticleCell,
class PairwiseFunctor,
class NeighborList>
50 double interactionLength,
const std::array<double, 3> &cellLength,
51 DataLayoutOption dataLayout,
bool useNewton3, ContainerOption::Value typeOfList)
53 cellLength, dataLayout, useNewton3, false),
55 _functor(pairwiseFunctor) {}
61 case (ContainerOption::verletListsCells):
62 return TraversalOption::vlc_sliced_balanced;
63 case (ContainerOption::pairwiseVerletLists):
64 return TraversalOption::vlp_sliced_balanced;
70 return TraversalOption();
87template <
class ParticleCell,
class PairwiseFunctor,
class NeighborList>
89 if (this->_dataLayout == DataLayoutOption::soa) {
90 this->loadSoA(_functor, *(this->_verletList));
93 this->slicedTraversal([&](
unsigned long x,
unsigned long y,
unsigned long z) {
95 this->
template processCellLists<PairwiseFunctor>(*(this->_verletList), baseIndex, _functor, this->_dataLayout,
99 if (this->_dataLayout == DataLayoutOption::soa) {
100 this->extractSoA(_functor, *(this->_verletList));
PairwiseFunctor class.
Definition: PairwiseFunctor.h:31
Class for Cells of Particles.
Definition: ParticleCell.h:51
This class provides a load balanced version of the base sliced traversal.
Definition: SlicedBalancedBasedTraversal.h:30
DataLayoutOption _dataLayout
The datalayout used by this traversal.
Definition: TraversalInterface.h:75
This class provides the balanced sliced traversal.
Definition: VLCSlicedBalancedTraversal.h:36
bool isApplicable() const override
Checks if the traversal is applicable to the current state of the domain.
Definition: VLCSlicedBalancedTraversal.h:73
TraversalOption getTraversalType() const override
Return a enum representing the name of the traversal class.
Definition: VLCSlicedBalancedTraversal.h:59
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: VLCSlicedBalancedTraversal.h:81
void traverseParticles() override
Traverse the particles by pairs, triplets etc.
Definition: VLCSlicedBalancedTraversal.h:88
VLCSlicedBalancedTraversal(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 balanced sliced traversal.
Definition: VLCSlicedBalancedTraversal.h:49
This class provides the Traversal Interface for the verlet lists cells container.
Definition: VLCTraversalInterface.h:27
ContainerOption _typeOfList
The type of neighbor list as an enum value.
Definition: VLCTraversalInterface.h:97
static void exception(const Exception e)
Handle an exception derived by std::exception.
Definition: ExceptionHandler.h:63
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