ergo
ErgoMolInfo Class Reference

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

#include <dft_common.h>

Inheritance diagram for ErgoMolInfo:
GridGenMolInfo

Public Member Functions

 ErgoMolInfo (const BasisInfoStruct &bis_, const Molecule &mol)
 Ther standard constructor. More...
 
virtual ~ErgoMolInfo ()
 
virtual void getAtom (int icent, int *cnt, real(*coor)[3], int *charge, int *mult) const
 Return atom data. More...
 
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. More...
 
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. More...
 
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. More...
 
- Public Member Functions inherited from GridGenMolInfo
 GridGenMolInfo (int a, int b, int s)
 
virtual ~GridGenMolInfo ()
 

Public Attributes

ShellTreeshellTree
 
- Public Attributes inherited from GridGenMolInfo
int noOfAtoms
 
int noOfBasisFuncs
 
int noOfShells
 

Private Attributes

const BasisInfoStructbis
 
const Moleculemolecule
 

Detailed Description

Ergo specific implementation of molecule-grid interface.

Constructor & Destructor Documentation

◆ ErgoMolInfo()

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

Ther standard constructor.

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

◆ ~ErgoMolInfo()

ErgoMolInfo::~ErgoMolInfo ( )
virtual

References shellTree.

Member Function Documentation

◆ getAtom()

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

Return atom data.

Implements GridGenMolInfo.

References charge, Atom::charge, Atom::coords, Molecule::getAtom(), and molecule.

◆ getBlocks()

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.

◆ getBlocks1()

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

◆ getExps()

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

◆ setShellRadii()

Member Data Documentation

◆ bis

const BasisInfoStruct& ErgoMolInfo::bis
private

◆ molecule

const Molecule& ErgoMolInfo::molecule
private

Referenced by getAtom(), and getExps().

◆ shellTree

ShellTree* ErgoMolInfo::shellTree

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