ERKALE
ERKALE - DFT from Hel
 All Classes Functions Variables Friends Pages
Public Member Functions | Private Attributes | List of all members
GaussianShell Class Reference

A shell of Gaussian basis functions of a given angular momentum, sharing the same exponential contraction. More...

#include <basis.h>

Public Member Functions

 GaussianShell ()
 Dummy constructor.
 
 GaussianShell (int am, bool lm, const std::vector< contr_t > &C)
 Constructor, need also to set index of first function and nucleus (see below)
 
 ~GaussianShell ()
 Destructor.
 
void set_first_ind (size_t ind)
 Set index of first basis function.
 
void set_center (const coords_t &cenv, size_t cenindv)
 Set center.
 
void sort ()
 Sort exponents in decreasing order.
 
void convert_contraction ()
 
void normalize (bool coeffs=true)
 Normalize contractions.
 
void coulomb_normalize ()
 Normalize contractions in Coulomb norm (for density fitting)
 
std::vector< contr_tget_contr () const
 Get the exponential contraction.
 
std::vector< shellf_tget_cart () const
 Get cartesians.
 
std::vector< contr_tget_contr_normalized () const
 
size_t get_Nbf () const
 Number of functions on shell.
 
size_t get_Ncart () const
 Number of cartesians on shell.
 
size_t get_Nlm () const
 Number of spherical harmonics on shell.
 
double range (double eps) const
 
bool lm_in_use () const
 Are spherical harmonics in use?
 
void set_lm (bool lm)
 Toggle use of spherical harmonics.
 
arma::mat get_trans () const
 Get transformation matrix to spherical harmonics basis.
 
size_t get_Ncontr () const
 Get number of contractions.
 
int get_am () const
 Get angular momentum.
 
size_t get_center_ind () const
 Get nucleus index.
 
coords_t get_center () const
 Get coordinates.
 
bool operator< (const GaussianShell &rhs) const
 Comparison operator for angular momentum ordering.
 
bool operator== (const GaussianShell &rhs) const
 Are the two the same?
 
size_t get_first_ind () const
 Get index of first function on shell.
 
size_t get_last_ind () const
 Get index of last function on shell.
 
void print () const
 Print out information about shell.
 
arma::vec eval_func (double x, double y, double z) const
 Evaluate functions at (x,y,z)
 
arma::mat eval_grad (double x, double y, double z) const
 Evaluate gradients at (x,y,z)
 
arma::vec eval_lapl (double x, double y, double z) const
 Evaluate laplacian at (x,y,z)
 
arma::mat eval_hess (double x, double y, double z) const
 Evaluate Hessian at (x,y,z)
 
arma::mat eval_laplgrad (double x, double y, double z) const
 Evaluate gradient of laplacian at (x,y,z)
 
arma::mat overlap (const GaussianShell &rhs) const
 Calculate block overlap matrix between shells.
 
arma::mat coulomb_overlap (const GaussianShell &rhs) const
 Calculate block Coulomb overlap matrix between shells.
 
arma::mat kinetic (const GaussianShell &rhs) const
 Calculate kinetic energy matrix between shells.
 
arma::mat nuclear (double cx, double cy, double cz, const GaussianShell &rhs) const
 Calculate nuclear repulsion matrix between shells.
 
arma::vec nuclear_pulay (double cx, double cy, double cz, const arma::mat &P, const GaussianShell &rhs) const
 Calculate nuclear Pulay forces.
 
arma::vec nuclear_der (double cx, double cy, double cz, const arma::mat &P, const GaussianShell &rhs) const
 Calculate nuclear Hellman-Feynman force.
 
arma::vec kinetic_pulay (const arma::mat &P, const GaussianShell &rhs) const
 Calculate kinetic Pulay forces.
 
arma::vec overlap_der (const arma::mat &W, const GaussianShell &rhs) const
 Calculate overlap derivative.
 
arma::vec integral () const
 Calculate integral over function (used in xc-fitting)
 
std::vector< arma::mat > moment (int mom, double x, double y, double z, const GaussianShell &rhs) const
 Calculate moment integrals around (x,y,z) between shells.
 

Private Attributes

size_t indstart
 Number of first function on shell.
 
coords_t cen
 Coordinates of center.
 
size_t cenind
 Index of center.
 
bool uselm
 Use spherical harmonics?
 
arma::mat transmat
 Transformation matrix to spherical basis.
 
std::vector< contr_tc
 
int am
 Angular momentum of shell.
 
std::vector< shellf_tcart
 

Detailed Description

A shell of Gaussian basis functions of a given angular momentum, sharing the same exponential contraction.

Author
Susi Lehtola
Date
2011/05/05 20:17

Member Function Documentation

void GaussianShell::convert_contraction ( )

Convert contraction from coefficients of normalized primitives to those of unnormalized primitives.

std::vector< contr_t > GaussianShell::get_contr_normalized ( ) const

Get contraction coefficients of normalized primitives. For some reason these are at variance with what is put in, e.g. the cc-pVXZ basis set data from the ESML basis set exchange. Maybe the input isn't really normalized..?

double GaussianShell::range ( double  eps) const

Compute range of shell - how far must one go for absolute value of functions to drop below eps?

Member Data Documentation

std::vector<contr_t> GaussianShell::c
private

Contraction of unnormalized primitives. N.B. Normalization is wrt first function of shell.

std::vector<shellf_t> GaussianShell::cart
private

Table of cartesians, containing am indices and relative normalization factors.


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