ergo
|
Class that can be used to store sparse matrix patterns. More...
Macros | |
#define | USE_CUTHILL_MCKEE 0 |
prepares a shell map and matching AO map permuted to optimize performance of the XC code. More... | |
Functions | |
static void | prepareAOMap (const BasisInfoStruct &bis, const int *shellMap, int *aoMap) |
Prepares the AO map given a shell map. More... | |
static void | clusterShells (const ShellSpecStruct *shells, const Box &box, const std::vector< int > &inputList, std::vector< int > &result, int depth) |
void | setupShellMap (const BasisInfoStruct &bis, int *shellMap, int *aoMap) |
Class that can be used to store sparse matrix patterns.
#define USE_CUTHILL_MCKEE 0 |
prepares a shell map and matching AO map permuted to optimize performance of the XC code.
We cannot reuse the permutations used in the matrix library because they can are AO based and not shell based.
shellMap | - previously allocated vector that will be filled with the permutation data. |
aoMap | - corresponding AO permutation vector, preallocated. |
The code uses a variant of the Cuthill-McKee algorithm to determine the shell map. The AO map is trivially generated from the shell map (perhaps it could be a separate function?). Generation of the optimal performance is in general a complex matter but since we use a discrete selection criteria to determine the shell radius, Cuthill-McKee will do.
|
static |
References Box::getMaxDim(), Box::hi, and Box::lo.
Referenced by setupShellMap().
|
static |
Prepares the AO map given a shell map.
References SparsePattern::bis, ShellSpecStruct::noOfBasisFuncs, BasisInfoStruct::noOfShells, BasisInfoStruct::shellList, and ShellSpecStruct::startIndexInMatrix.
Referenced by setupShellMap().
void setupShellMap | ( | const BasisInfoStruct & | bis, |
int * | shellMap, | ||
int * | aoMap | ||
) |
References SparsePattern::bis, ShellSpecStruct::centerCoords, clusterShells(), Box::hi, Box::lo, BasisInfoStruct::noOfShells, prepareAOMap(), and BasisInfoStruct::shellList.
Referenced by grid_test_scaling(), and XCEvaluator::XCEvaluator().