AutoPas  3.0.0
Loading...
Searching...
No Matches
C08BasedTraversal.h
Go to the documentation of this file.
1
7#pragma once
8
11
12namespace autopas {
13
23template <class ParticleCell, class Functor>
24class C08BasedTraversal : public ColorBasedTraversal<ParticleCell, Functor> {
25 public:
36 explicit C08BasedTraversal(const std::array<unsigned long, 3> &dims, Functor *functor, const double interactionLength,
37 const std::array<double, 3> &cellLength, DataLayoutOption dataLayout, bool useNewton3)
38 : ColorBasedTraversal<ParticleCell, Functor>(dims, functor, interactionLength, cellLength, dataLayout,
39 useNewton3) {}
40
41 protected:
46 template <typename LoopBody>
47 inline void c08Traversal(LoopBody &&loopBody);
48};
49
50template <class ParticleCell, class Functor>
51template <typename LoopBody>
53 using namespace autopas::utils::ArrayMath::literals;
54
55 const auto end = this->_cellsPerDimension - this->_overlap;
56 const auto stride = this->_overlap + 1ul;
57 this->colorTraversal(std::forward<LoopBody>(loopBody), end, stride);
58}
59} // namespace autopas
This class provides the base for traversals using the c08 base step.
Definition: C08BasedTraversal.h:24
C08BasedTraversal(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 c08 traversal.
Definition: C08BasedTraversal.h:36
void c08Traversal(LoopBody &&loopBody)
The main traversal of the C08Traversal.
Definition: C08BasedTraversal.h:52
This class provides the base for traversals using base steps based on cell coloring.
Definition: ColorBasedTraversal.h:27
Functor base class.
Definition: Functor.h:40
Class for Cells of Particles.
Definition: ParticleCell.h:51
This is the main namespace of AutoPas.
Definition: AutoPasDecl.h:32