Path Integral Quantum Monte Carlo
|
The particle (bead) lookup table. More...
#include <lookuptable.h>
Public Member Functions | |
LookupTable (const Container *, const int, const int) | |
Initilialize the nearest neighbor lookup table. More... | |
~LookupTable () | |
Free all blitz arrays. | |
iVec | getNumNNGrid () |
Return the number of NN grid boxes. | |
int | getTotNumGridBoxes () |
Return the total number of grid boxes. | |
void | updateInteractionList (const Path &, const beadLocator &) |
Update the NN lookup table and the array of beadLocators containing all beads which 'interact' with the supplied bead1. | |
void | updateFullInteractionList (const beadLocator &, const int) |
Fill up the fullBeadList array with a list of beads in the same grid box as the supplied beadIndex and its nearest neighbors at the supplied time slice. | |
void | updateFullInteractionList (const int, const int) |
Fill up the fullBeadList array with a list of beads in the supplied grid box indexed by its number and all its nearest neighbors at the supplied time slice. | |
void | updateGrid (const Path &) |
We update the full nearest neighbor grid by filling up all data arrays at all time slices. | |
void | updateGrid (const Array< dVec, 1 > &) |
Update the full nearest neighbor for a set of fixed particles, which are never updated and have the same position at all time slices. | |
void | printGrid () |
Print the NN Lookup table. | |
void | delBead (const beadLocator &) |
Remove a single bead from the NN grid. | |
void | addBead (const beadLocator &, const dVec &) |
Add a single bead to the NN grid and position pos. | |
void | updateBead (const beadLocator &, const dVec &) |
Update the NN grid with a new bead position. | |
iVec | gridIndex (const dVec &) |
Given a particle position, return the grid index for the nearest neighbor lookup table. | |
int | gridNumber (const dVec &) |
Given a particle position, return the grid number for the nearest neighbor lookup table. | |
iVec | gridIndex (int) |
Given the number of a grid box, returns its coordinates as a NDIM-vector. | |
int | gridNumber (const iVec &) |
Given the grid index of a box, return its grid number. | |
void | resizeList (int _numParticles) |
Resize the bead and grid lists. | |
bool | gridNeighbors (const beadLocator &, const beadLocator &) |
Given two beadIndices, determine if the beads lie in neighboring grid boxes. | |
bool | gridShare (const beadLocator &bead1, const beadLocator &bead2) |
Determine if two beads are in the same grid box. | |
Data Fields | |
const Container * | boxPtr |
The simulation cell. | |
int | numUniqueNN |
The number of unique nearest neighbors of each box. | |
int | numNN |
The total number of nearest neighbors of each box. | |
Array< beadLocator, 1 > | beadList |
The cutoff dynamic list of interacting beads. | |
Array< beadLocator, 1 > | fullBeadList |
The full dynamic list of interacting beads. | |
Array< dVec, 1 > | beadSep |
The separation between beads. | |
int | numBeads |
The cutoff number of active beads in beadList;. | |
int | fullNumBeads |
The full number of active beads in beadList;. | |
The particle (bead) lookup table.
Holds the lookup table and methods for finding where in the simulation cell a particle is located, and which particles are close enough to interact. Accomplishes this by partitioning the simulation cell and storing the box at ever time slice where a bead is located.
Definition at line 29 of file lookuptable.h.
LookupTable::LookupTable | ( | const Container * | _boxPtr, |
const int | _numLookupTimeSlices, | ||
const int | _numParticles | ||
) |
Initilialize the nearest neighbor lookup table.
We partition the simulation cell into a grid of boxes whose edge length is defined by the global potential cutoff radius rc. All date structures are initialized to be empty. We must call an updateBeads method externally in order to place the worldlines in the lookup table.
Definition at line 26 of file lookuptable.cpp.