ergo
|
"Block" partitioning is the only one implemented now... More...
Public Member Functions | |
BoxPartitioner () | |
Initializez the BoxPartitioner object. | |
~BoxPartitioner () | |
unsigned | process (unsigned atomNumber, const std::vector< AtomicGrid > &atomGrids, int noOfRelevantAtoms, const unsigned *relevantAtoms, unsigned batchLength, real(*coor)[3], real *w) |
Applies the partitioning factors to the the grid points associated with given atom. | |
Private Member Functions | |
void | prepare (const std::vector< AtomicGrid > &atoms, unsigned noOfRelevantAtoms, const unsigned *relevantAtoms, unsigned pointCnt, const real(*gridPoints)[3]) |
real | getInvDistanceBetweenAtoms (int i, int j) const |
return distance between given pair of relevant atoms. | |
real | getFactor (int i, int j) const |
Private Attributes | |
const real(* | coor )[3] |
real * | rj |
long_real * | p_kg |
long_real * | vec |
real * | invAtomDistances |
a triangular array | |
real * | atomFactors |
a triangular array | |
real | xpasc [HARDNESS] |
real | apasc |
unsigned | maxPointCnt |
unsigned | maxAtomPointCnt |
unsigned | maxRelevantAtoms |
int | LDA |
Static Private Attributes | |
static const int | HARDNESS = 11 |
"Block" partitioning is the only one implemented now...
We rename it here to Box partitioner to avoid name space conflicts.
BoxPartitioner::BoxPartitioner | ( | ) |
Initializez the BoxPartitioner object.
BoxPartitioner::~BoxPartitioner | ( | ) |
References rj, p_kg, vec, invAtomDistances, and atomFactors.
real BoxPartitioner::getFactor | ( | int | i, |
int | j | ||
) | const [inline, private] |
References atomFactors.
Referenced by process().
real BoxPartitioner::getInvDistanceBetweenAtoms | ( | int | i, |
int | j | ||
) | const [inline, private] |
return distance between given pair of relevant atoms.
Arguments i and j specify the number of the atoms on the list of relevant atoms.
References invAtomDistances.
Referenced by process().
void BoxPartitioner::prepare | ( | const std::vector< AtomicGrid > & | atoms, |
unsigned | noOfRelevantAtoms, | ||
const unsigned * | relevantAtoms, | ||
unsigned | pointCnt, | ||
const real(*) | gridPoints[3] | ||
) | [private] |
References coor, LDA, maxAtomPointCnt, rj, p_kg, maxPointCnt, vec, maxRelevantAtoms, invAtomDistances, atomFactors, BraggRadii, BraggSize, and charge.
Referenced by process().
unsigned BoxPartitioner::process | ( | unsigned | atomNumber, |
const std::vector< AtomicGrid > & | atomGrids, | ||
int | noOfRelevantAtoms, | ||
const unsigned * | relevantAtoms, | ||
unsigned | batchLength, | ||
real(*) | coor[3], | ||
real * | w | ||
) |
Applies the partitioning factors to the the grid points associated with given atom.
atomNumber | index of the atom that the grid points are associated with, in the relevantAtoms array. |
atomGrids | the list of all atom grids. |
noOfRelevantAtoms | the number of atoms relevant for the box being processed. They need to be taken into account when computing the partitioning weights. |
relevantAtoms | the indices of the relevant atoms in the atomGrids vector. |
batchLength | number of the grid points the partitioning weights have to be computed for. |
coor | their cartesian coordinates. Will be modified if the grid point compression occurs. |
w | Their weights - they will be modified. |
References prepare(), coor, rj, LDA, p_kg, getInvDistanceBetweenAtoms(), getFactor(), HARDNESS, xpasc, apasc, vec, and WEIGHT_THRESHOLD.
Referenced by Stream::saveAtomGridInBox().
real BoxPartitioner::apasc [private] |
Referenced by BoxPartitioner(), and process().
real* BoxPartitioner::atomFactors [private] |
a triangular array
Referenced by getFactor(), ~BoxPartitioner(), and prepare().
const real(* BoxPartitioner::coor)[3] [private] |
const int BoxPartitioner::HARDNESS = 11 [static, private] |
Referenced by BoxPartitioner(), and process().
real* BoxPartitioner::invAtomDistances [private] |
a triangular array
Referenced by getInvDistanceBetweenAtoms(), ~BoxPartitioner(), and prepare().
int BoxPartitioner::LDA [private] |
unsigned BoxPartitioner::maxAtomPointCnt [private] |
Referenced by prepare().
unsigned BoxPartitioner::maxPointCnt [private] |
Referenced by prepare().
unsigned BoxPartitioner::maxRelevantAtoms [private] |
Referenced by prepare().
long_real* BoxPartitioner::p_kg [private] |
Referenced by ~BoxPartitioner(), prepare(), and process().
real* BoxPartitioner::rj [private] |
Referenced by ~BoxPartitioner(), prepare(), and process().
long_real* BoxPartitioner::vec [private] |
Referenced by ~BoxPartitioner(), prepare(), and process().
real BoxPartitioner::xpasc[HARDNESS] [private] |
Referenced by BoxPartitioner(), and process().