46 std::array<double, 3> boxMin, std::array<double, 3> boxMax,
double cutoff);
58 std::array<double, 3> boxMax,
double cutoff)
59 :
ParticleBinStructure({numBinsPerDim, numBinsPerDim, numBinsPerDim}, binLength, boxMin, boxMax, cutoff){};
66 void countParticle(
const std::array<double, 3> &particlePosition);
110 void setCellsPerDim(
const std::array<std::size_t, 3> &numBinsPerDim);
116 [[nodiscard]]
const std::array<double, 3> &
getBinLength()
const;
128 void setBinLength(
const std::array<double, 3> &binLength);
134 [[nodiscard]]
const std::array<double, 3> &
getBoxMin()
const;
140 void setBoxMin(
const std::array<double, 3> &boxMin);
146 [[nodiscard]]
const std::array<double, 3> &
getBoxMax()
const;
152 void setBoxMax(
const std::array<double, 3> &boxMax);
279 std::vector<std::size_t> _particleCounts{0};
284 size_t _totalParticleCount{0};
289 std::array<std::size_t, 3> _numBinsPerDim{};
294 std::array<double, 3> _binLength{};
299 std::array<double, 3> _binLengthReciprocal{};
304 std::array<double, 3> _boxMin{};
309 std::array<double, 3> _boxMax{};
320 bool _statisticsCalculated =
false;
329 double _meanParticlesPerBin{};
334 double _meanDensity{};
339 double _stdDevParticlesPerBin{};
344 double _relStdDevParticlesPerBin{};
349 double _stdDevDensity{};
354 double _maxDensity{};
359 size_t _maxParticlesPerBin{};
364 size_t _minimumParticlesPerBin{};
369 size_t _medianParticlesPerBin{};
374 size_t _lowerQuartileParticlesPerBin{};
379 size_t _upperQuartileParticlesPerBin{};
384 size_t _numEmptyBins{};
393 double _estimatedNumberOfNeighborInteractions{};
Particle-counting bin structure.
Definition: ParticleBinStructure.h:34
size_t getMedianParticlesPerBin() const
Returns the median number of particles across all bins.
Definition: ParticleBinStructure.cpp:255
double getStdDevParticlesPerBin() const
Returns the standard deviation of the number of particles per bins.
Definition: ParticleBinStructure.cpp:206
size_t getMaxParticlesPerBin() const
Returns the maximum number of particles in a single bin.
Definition: ParticleBinStructure.cpp:241
double getMaxDensity() const
Returns the maximum density of any bin.
Definition: ParticleBinStructure.cpp:234
size_t getUpperQuartileParticlesPerBin() const
Returns the upper quartile (75th percentile) number of particles across all bins.
Definition: ParticleBinStructure.cpp:269
size_t getNumEmptyBins() const
Returns the number of empty bins.
Definition: ParticleBinStructure.cpp:276
ParticleBinStructure(size_t numBinsPerDim, std::array< double, 3 > binLength, std::array< double, 3 > boxMin, std::array< double, 3 > boxMax, double cutoff)
Constructor, for if there are the same number of bins in each dimension.
Definition: ParticleBinStructure.h:57
double getMeanDensity() const
Returns the mean density of particles per bins.
Definition: ParticleBinStructure.cpp:220
double getBinVolume() const
Getter for the volume of each bin.
Definition: ParticleBinStructure.cpp:197
const std::array< double, 3 > & getBinLengthReciprocal() const
Getter for the reciprocal of the dimensions of each bin.
Definition: ParticleBinStructure.cpp:177
const std::array< double, 3 > & getBoxMax() const
Getter for the box max.
Definition: ParticleBinStructure.cpp:189
size_t getLowerQuartileParticlesPerBin() const
Returns the lower quartile (25th percentile) number of particles across all bins.
Definition: ParticleBinStructure.cpp:262
std::size_t getNumberOfBins() const
Getter for the number of bins.
Definition: ParticleBinStructure.cpp:193
const std::vector< size_t > & getParticleCounts() const
Getter for the particle counts.
Definition: ParticleBinStructure.cpp:167
double getStdDevDensity() const
Returns the standard deviation of the density per bins.
Definition: ParticleBinStructure.cpp:227
void setBoxMax(const std::array< double, 3 > &boxMax)
Setter for the box max.
Definition: ParticleBinStructure.cpp:191
const size_t & getTotalParticleCount() const
Getter for the total number of particles counted.
Definition: ParticleBinStructure.cpp:165
const std::array< double, 3 > & getBoxMin() const
Getter for the box min.
Definition: ParticleBinStructure.cpp:185
double getEstimatedNumberOfNeighborInteractions() const
Returns the estimated number of neighbor interactions across all bins.
Definition: ParticleBinStructure.cpp:283
void calculateStatistics()
Calculates the following statistics:
Definition: ParticleBinStructure.cpp:84
size_t getMinParticlesPerBin() const
Returns the minimum number of particles in a single bin.
Definition: ParticleBinStructure.cpp:248
void countParticle(const std::array< double, 3 > &particlePosition)
Determines the appropriate bin for the particle based on its position, and increments the correspondi...
Definition: ParticleBinStructure.cpp:34
void setBoxMin(const std::array< double, 3 > &boxMin)
Setter for the box min.
Definition: ParticleBinStructure.cpp:187
void resize()
Resizes the particle count structure.
Definition: ParticleBinStructure.cpp:195
const std::array< double, 3 > & getBinLength() const
Getter for the dimensions of each bin.
Definition: ParticleBinStructure.cpp:175
void resetCounters()
Resets all counters to zero.
Definition: ParticleBinStructure.cpp:157
const std::array< std::size_t, 3 > & getNumBinsPerDim() const
Getter for the number of bins per dimension.
Definition: ParticleBinStructure.cpp:169
void setBinLength(const std::array< double, 3 > &binLength)
Setter for the dimension of each bin.
Definition: ParticleBinStructure.cpp:179
double getRelStdDevParticlesPerBin() const
Returns the standard deviation of the number of particles per bins relative to the mean.
Definition: ParticleBinStructure.cpp:213
void setCellsPerDim(const std::array< std::size_t, 3 > &numBinsPerDim)
Setter for the number of bins per dimension.
Definition: ParticleBinStructure.cpp:171
double getMeanParticlesPerBin() const
Returns the mean number of particles per bins.
Definition: ParticleBinStructure.cpp:199
In this namespace some helper classes and functions can be found used inside of AutoPas.
Definition: namespaces.h:44