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

ShellTreeshellTree

Private Attributes

const BasisInfoStructbis
const Moleculemolecule

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

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

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 21 Nov 2012 for ergo by  doxygen 1.6.1