Class AngularIntegral¶
Defined in File angular.hpp
Class Documentation¶
-
class AngularIntegral¶
Calculates and stores the angular integrals needed for ECP integration.
This should not usually be created directly, it is instead owned by an ECPIntegral object, so that integrals can be performed over multiple ECP centers without duplicating work.
Public Functions
-
ThreeIndex<double> uklm(int lam, int mu) const¶
Calculates all possible USP to spherical transformation coefficients for a given angular momentum
- Parameters
lam – - the angular momentum
mu – - the subshell
- Returns
ThreeIndex of the values U_lam,mu(k, l, m)
-
FiveIndex<double> makeU() const¶
Builds the USP to spherical transformation coefficients for use in calculating the type 1 and 2 integrals
- Returns
FiveIndex of the coefficients U(lam, lam+mu, k, l, m)
-
AngularIntegral()¶
Default constructor creates empty object.
-
AngularIntegral(int LB, int LE)¶
Specified constructor calls init with given arguments
- Parameters
LB – - the maximum angular momentum of the orbital basis
LE – - the maximum angular momentum of the ECP basis
-
void init(int LB, int LE)¶
Initialises the object, must be called before anything else if default constructor was used.
- Parameters
LB – - the maximum angular momentum of the orbital basis
LE – - the maximum angular momentum of the ECP basis
-
void compute()¶
Computes the type 1 and 2 angular integrals
-
void clear()¶
TODO: Clears the W and omega arrays.
-
double getIntegral(int k, int l, int m, int lam, int mu) const¶
Returns the type 1 angular integral W(k, l, m, lam, mu)
- Parameters
k – - x index
l – - y index
m – - z index
lam – - angular momentum
mu – - subshell
- Returns
value of type 1 angular integral
-
double getIntegral(int k, int l, int m, int lam, int mu, int rho, int sigma) const¶
Returns the type 2 angular integral Omega(k, l, m, lam, mu, rho, sigma)
- Parameters
k – - x index
l – - y index
m – - z index
lam – - angular momentum of current ECP shell
mu – - subshell of lam
rho – - angular momentum of current basis shell
sigma – - subshell of rho
- Returns
value of type 2 angular integral
-
inline int *getOmegaMults()¶
-
inline const int *getOmegaMults() const¶
-
inline int *getOmegaDims()¶
-
inline const int *getOmegaDims() const¶
-
inline std::vector<double> &getOmegaData()¶
-
inline const std::vector<double> &getOmegaData() const¶
-
bool isZero(int k, int l, int m, int lam, int mu, double tolerance) const¶
is W(k, l, m, lam, mu) zero to within a given tolerance?
-
bool isZero(int k, int l, int m, int lam, int mu, int rho, int sigma, double tolerance) const¶
is Omega(k, l, m, lam, mu, rho, sigma) zero to within a given tolerance?
-
ThreeIndex<double> uklm(int lam, int mu) const¶