BoxPartitioner Class Reference

"Block" partitioning is the only one implemented now. More...

List of all members.

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]
realrj
long_realp_kg
long_realvec
realinvAtomDistances
 a triangular array
realatomFactors
 a triangular array
real xpasc [HARDNESS]
real apasc
unsigned maxPointCnt
unsigned maxAtomPointCnt
unsigned maxRelevantAtoms
int LDA

Static Private Attributes

static const int HARDNESS = 11

Detailed Description

"Block" partitioning is the only one implemented now.

.. We rename it here to Box partitioner to avoid name space conflicts.


Constructor & Destructor Documentation

BoxPartitioner::BoxPartitioner (  ) 

Initializez the BoxPartitioner object.

References apasc, HARDNESS, and xpasc.

BoxPartitioner::~BoxPartitioner (  ) 

References atomFactors, invAtomDistances, p_kg, rj, and vec.


Member Function Documentation

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]
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.

Parameters:
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.
Returns:
new batch length after compression.

References apasc, coor, getFactor(), getInvDistanceBetweenAtoms(), HARDNESS, LDA, p_kg, prepare(), rj, vec, WEIGHT_THRESHOLD, and xpasc.

Referenced by Stream::saveAtomGridInBox().


Member Data Documentation

Referenced by BoxPartitioner(), and process().

a triangular array

Referenced by getFactor(), prepare(), and ~BoxPartitioner().

const real(* BoxPartitioner::coor)[3] [private]

Referenced by prepare(), and process().

const int BoxPartitioner::HARDNESS = 11 [static, private]

Referenced by BoxPartitioner(), and process().

a triangular array

Referenced by getInvDistanceBetweenAtoms(), prepare(), and ~BoxPartitioner().

int BoxPartitioner::LDA [private]

Referenced by prepare(), and process().

unsigned BoxPartitioner::maxAtomPointCnt [private]

Referenced by prepare().

unsigned BoxPartitioner::maxPointCnt [private]

Referenced by prepare().

Referenced by prepare().

Referenced by prepare(), process(), and ~BoxPartitioner().

Referenced by prepare(), process(), and ~BoxPartitioner().

Referenced by prepare(), process(), and ~BoxPartitioner().

Referenced by BoxPartitioner(), and process().


The documentation for this class was generated from the following file:

Generated on 10 Jul 2018 for ergo by  doxygen 1.6.1