52 HGrid(
unsigned int num_buckets,
double cellOverSizeRatio, std::vector<double>& cellSizes);
const std::vector< double > & getCellSizes() const
Gets the sizes of the cells at all levels as a vector.
std::vector< bool > bucketIsChecked_
BucketIsChecked stores if hash bucket b is checked already; initially all false.
void insertParticleToHgrid(BaseParticle *obj)
Inserts the given BaseParticle in to the HGrid.
void info() const
Displays the member variables of the hGrid object. This function is intended for debugging the hGrid...
void clearFirstBaseParticleInBucket()
For all buckets, it removes the pointer to the first BaseParticle in it, practically emptying the buc...
Mdouble cellOverSizeRatio_
The maximum ratio between the size of the cell and the size of a particle it contains.
Mdouble getCellOverSizeRatio() const
Gets the maximum ratio of the cell to a particle it contains.
std::vector< BaseParticle * > firstBaseParticleInBucket_
Stores a pointer to first element in hash bucket b.
int getOccupiedLevelsMask() const
Gets the integer that represents which levels are occupied.
unsigned int getNumberOfLevels() const
Gets the number of levels of this HGrid.
std::vector< double > invCellSizes_
The inverse sizes of the cells in the different grids, where the inverse is defined as 1/cellSizes_...
std::vector< double > cellSizes_
The sizes of the cells in the different grids.
HGrid()
Default constructor, it sets the parameters to some sensible defaults.
In the HGrid class, here all information about the HGrid is stored.
unsigned int numberOfBuckets_
The number of buckets in the current HGrid.
void setFirstBaseParticleInBucket(unsigned int i, BaseParticle *p)
Sets the first particle in bucket i to be the given BaseParticle.
void clearBucketIsChecked()
Sets all buckets to not-checked.
const std::vector< double > & getInvCellSizes() const
Gets all the inverse cell sizes (1/cellSize) for all levels as a vector.
void setBucketIsChecked(unsigned int i)
Sets that the bucket with the given index is checked to true.
void Initialize_inv_size()
const BaseParticle * getFirstBaseParticleInBucket(unsigned int i) const
Gets the first BaseParticle in the given bucket, const version.
double getCellSize(unsigned int i) const
Gets the size of the cells at the given level.
bool getNeedsRebuilding() const
Gets whether or not the grid needs to be rebuilt before something else is done with it...
int occupiedLevelsMask_
Marks if there are particles at certain levels.
bool needsRebuilding_
Flag sets if the HGrid needs to be rebuilt.
unsigned int computeHashBucketIndex(int x, int y, int z, unsigned int l) const
Computes hash bucket index in range [0, NUM_BUCKETS-1] for a 3D domain.
bool getBucketIsChecked(unsigned int i) const
Gets whether or not the bucket with index i is checked.
double getInvCellSize(unsigned int i) const
Gets 1/cellSize for the cells on level i.
unsigned int getNumberOfBuckets() const
Gets the number of buckets of this HGrid.