ErgoMolInfo Class Reference

Ergo specific implementation of molecule-grid interface. More...

#include <dft_common.h>

Inheritance diagram for ErgoMolInfo:
GridGenMolInfo

List of all members.

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

Detailed Description

Ergo specific implementation of molecule-grid interface.


Constructor & Destructor Documentation

ErgoMolInfo::ErgoMolInfo ( const BasisInfoStruct &  bis_,
const Molecule &  mol 
)

Ther standard constructor.

References bis, BasisInfoStruct::noOfShells, setShellRadii(), and shellTree.

ErgoMolInfo::~ErgoMolInfo (  )  [virtual]

References shellTree.


Member Function Documentation

void ErgoMolInfo::getAtom ( int  icent,
int *  cnt,
real(*)  coor[3],
int *  charge,
int *  mult 
) const [virtual]

Return atom data.

Implements GridGenMolInfo.

References Atom::charge, Atom::coords, Molecule::getAtom(), 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, BasisInfoStruct::shellList, and template_blas_sqrt().

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.

Parameters:
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 bis, ShellSpecStruct::centerCoords, Atom::coords, ShellSpecStruct::exponentList, Molecule::getAtom(), Molecule::getNoOfAtoms(), molecule, GridGenMolInfo::noOfAtoms, ShellSpecStruct::noOfContr, BasisInfoStruct::noOfShells, BasisInfoStruct::shellList, and ShellSpecStruct::shellType.

void ErgoMolInfo::setShellRadii ( real *  shellRadii  )  const [virtual]

Member Data Documentation

const Molecule& ErgoMolInfo::molecule [private]

Referenced by getAtom(), and getExps().


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

Generated on 10 Jul 2018 for ergo by  doxygen 1.6.1