Ergo specific implementation of molecule-grid interface. More...
#include <dft_common.h>
Public Member Functions | |
ErgoMolInfo (const BasisInfoStruct &bis_, const Molecule &mol) | |
Ther standard constructor. | |
virtual | ~ErgoMolInfo () |
virtual void | getAtom (int icent, int *cnt, real(*coor)[3], int *charge, int *mult) const |
Return atom data. | |
virtual void | setShellRadii (real *shellRadii) const |
virtual void | getBlocks (const real *center, real cellsz, const real *rshell, int *nblcnt, int(*iblcks)[2]) const |
same as ergo_get_shlblocks, except it should scale NlogN. | |
void | getBlocks1 (const real *center, real cellsz, const real *rshell, int *nblcnt, int(*iblcks)[2]) const |
get blocks of active SHELLS in cube of CELLSZ size centered at CENTER. | |
virtual void | getExps (int *maxl, int **nucbas, real(**aa)[2]) const |
ergo_get_exps() generates a list of exponents for every center as in mol_info table: number of gaussians at given center (nucorb), and their smallest and largest exponent in aaa. | |
Public Attributes | |
ShellTree * | shellTree |
Private Attributes | |
const BasisInfoStruct & | bis |
const Molecule & | molecule |
Ergo specific implementation of molecule-grid interface.
ErgoMolInfo::ErgoMolInfo | ( | const BasisInfoStruct & | bis_, | |
const Molecule & | mol | |||
) |
Ther standard constructor.
References bis, BasisInfoStruct::noOfShells, setShellRadii(), and shellTree.
ErgoMolInfo::~ErgoMolInfo | ( | ) | [virtual] |
References shellTree.
void ErgoMolInfo::getAtom | ( | int | icent, | |
int * | cnt, | |||
real(*) | coor[3], | |||
int * | charge, | |||
int * | mult | |||
) | const [virtual] |
Return atom data.
Implements GridGenMolInfo.
References Molecule::atoms, Atom::charge, Atom::coords, and molecule.
void ErgoMolInfo::getBlocks | ( | const real * | center, | |
real | cellsz, | |||
const real * | rshell, | |||
int * | nblcnt, | |||
int(*) | iblcks[2] | |||
) | const [virtual] |
same as ergo_get_shlblocks, except it should scale NlogN.
rshell is not used - we store this information in the tree.
Implements GridGenMolInfo.
References GET_BLOCKS_FUDGE_FACTOR, getBlocks1(), ShellTree::getOverlappingWith(), GridGenMolInfo::noOfShells, and shellTree.
void ErgoMolInfo::getBlocks1 | ( | const real * | center, | |
real | cellsz, | |||
const real * | rshell, | |||
int * | nblcnt, | |||
int(*) | iblcks[2] | |||
) | const |
get blocks of active SHELLS in cube of CELLSZ size centered at CENTER.
RSHELL - precomputed shell extents. NBLCNT (output) - number of active blocks IBLCKS (output) - pairs of (startindex, stopindex)
This algorithm scales quadratically.
References bis, ShellSpecStruct_::centerCoords, BasisInfoStruct::noOfShells, and BasisInfoStruct::shellList.
Referenced by getBlocks().
void ErgoMolInfo::getExps | ( | int * | maxl, | |
int ** | bascnt, | |||
real(**) | aa[2] | |||
) | const [virtual] |
ergo_get_exps() generates a list of exponents for every center as in mol_info table: number of gaussians at given center (nucorb), and their smallest and largest exponent in aaa.
maxl | max L quantum number - the leading dimension. | |
bascnt | [noOfAtoms][maxl] - no of funcs at center and given angular momentum. | |
aa | [noOfAtoms][maxl][2] min/max exponent. |
Implements GridGenMolInfo.
References Molecule::atoms, bis, ShellSpecStruct_::centerCoords, Atom::coords, ShellSpecStruct_::exponentList, molecule, Molecule::noOfAtoms, GridGenMolInfo::noOfAtoms, ShellSpecStruct_::noOfContr, BasisInfoStruct::noOfShells, BasisInfoStruct::shellList, and ShellSpecStruct_::shellType.
void ErgoMolInfo::setShellRadii | ( | real * | shellRadii | ) | const [virtual] |
Implements GridGenMolInfo.
References bis, ShellSpecStruct_::coeffList, ShellSpecStruct_::exponentList, ShellSpecStruct_::noOfContr, BasisInfoStruct::noOfShells, SET_SHELL_RADII_ORBITAL_THR, BasisInfoStruct::shellList, and ShellSpecStruct_::shellType.
Referenced by ErgoMolInfo().
const BasisInfoStruct& ErgoMolInfo::bis [private] |
Referenced by ErgoMolInfo(), getBlocks1(), getExps(), and setShellRadii().
const Molecule& ErgoMolInfo::molecule [private] |
Referenced by ErgoMolInfo(), getBlocks(), and ~ErgoMolInfo().