8#ifndef SRC_PARTICLECONTAINER_LINKEDCELLTRAVERSALS_CELLPAIRTRAVERSALS_H_
9#define SRC_PARTICLECONTAINER_LINKEDCELLTRAVERSALS_CELLPAIRTRAVERSALS_H_
20template <
class CellTemplate>
24 std::vector<CellTemplate>& cells,
25 const std::array<unsigned long, 3>& dims): _cells(&cells), _dims(dims) {}
32 virtual void rebuild(std::vector<CellTemplate>& cells,
const std::array<unsigned long, 3>& dims,
38 virtual void traverseCellPairs(
CellProcessor& cellProcessor) = 0;
39 virtual void traverseCellPairsOuter(
CellProcessor& cellProcessor) = 0;
40 virtual void traverseCellPairsInner(
CellProcessor& cellProcessor,
unsigned stage,
unsigned stageCount) = 0;
44 virtual bool requiresForceExchange()
const {
return false;}
47 virtual unsigned maxCellsInCutoff()
const {
return 1; }
52 std::vector<CellTemplate> * _cells;
53 std::array<unsigned long, 3> _dims;
Definition: CellPairTraversals.h:21
virtual void rebuild(std::vector< CellTemplate > &cells, const std::array< unsigned long, 3 > &dims, double cellLength[3], double cutoff, CellPairTraversalData *data)
Definition: CellPairTraversals.h:32
Definition: CellProcessor.h:29
Definition: CellPairTraversals.h:16