14#ifndef LEAFNODESCONTAINER_H_
15#define LEAFNODESCONTAINER_H_
17#include "bhfmm/containers/ParticleCellPointers.h"
22class SimpleCellProcessor;
23class VectorizedChargeP2PCellProcessor;
29 double LJCellLength[3],
30 unsigned subdivisionFactor,
33 , qsched* scheduler =
nullptr
39 double* getCellLength() {
43 void addParticle(
Molecule& particle);
44 void clearParticles();
50 const int *getNumCellsPerDimension()
const;
52 std::vector<ParticleCellPointers> & getCells();
54 long int cellIndexOf3DIndex(
int xIndex,
int yIndex,
int zIndex)
const;
59 void initializeCells();
60 void calculateNeighbourIndices();
61 void calculateCellPairOffsets();
62 unsigned long int getCellIndexOfMolecule(
Molecule* molecule)
const;
64 void threeDIndexOfCellIndex(
int ind,
int r[3],
int dim[3])
const;
68 double _boundingBoxMin[3];
69 double _boundingBoxMax[3];
70 double _haloBoundingBoxMin[3];
71 double _haloBoundingBoxMax[3];
72 double _cellLength[3];
73 int _numInnerCellsPerDimension[3];
74 int _numCellsPerDimension[3];
75 std::vector<ParticleCellPointers> _cells;
76 std::vector<unsigned long> _forwardNeighbourOffsets;
77 std::vector<unsigned long> _backwardNeighbourOffsets;
78 unsigned _maxNeighbourOffset;
79 unsigned _minNeighbourOffset;
82 std::vector<std::pair<unsigned long, unsigned long> > _cellPairOffsets;
84 unsigned int _numActiveColours;
85 std::vector<std::vector<long int> > _cellIndicesPerColour;
88 struct qsched *_scheduler;
FullMolecule modeled as LJ sphere with point polarities.
Definition: FullMolecule.h:18
Definition: LeafNodesContainer.h:25
Definition: SimpleCellProcessor.h:23
Vectorized calculation of the force.
Definition: VectorizedChargeP2PCellProcessor.h:32
Definition: L2PCellProcessor.cpp:15