File oneCenterSlaterIntegral.h¶
- Copyright
This code is licensed under the 3-clause BSD license.
Copyright ETH Zurich, Laboratory for Physical Chemistry, Reiher Group.
See LICENSE.txt for details.
-
namespace
Scine -
namespace
Sparrow -
namespace
nddo -
class
OneCenterSlaterIntegral - #include <oneCenterSlaterIntegral.h>
Calculation of the one-centre integrals (related to Slater-Condon parameters) according to Kumar, Mishra, J. Phys., 1987, 29, 385-390. The calculation is not optimized for performance as it does not need to be fast. NB: this returns U^l(a,b,c,d) = R^k(a,c,b,d) as defined in other papers.
Public Functions
-
OneCenterSlaterIntegral()¶
-
void
setPrincipal(int na, int nb, int nc, int nd)¶
-
void
setAngular(int la, int lb, int lc, int ld)¶
-
void
setExponents(double ea, double eb, double ec, double ed)¶
-
double
calculate(int l)¶
Private Functions
-
bool
validLValue() const¶
-
void
computeHelperVariables()¶
-
double
calculateFactor()¶
-
double
calculateFirstTerm()¶
-
double
calculateSecondTerm()¶
-
double
calculateThirdTerm()¶
-
double
calculateSecondSumTerm(int ll)¶
-
double
calculateThirdSumTerm(int ll)¶
-
long long int
factorial(int n)¶ Factorial, works up to n = 20.
Private Members
-
int
l_¶
-
int
na_¶
-
int
nb_¶
-
int
nc_¶
-
int
nd_¶
-
int
la_¶
-
int
lb_¶
-
int
lc_¶
-
int
ld_¶
-
double
ea_¶
-
double
eb_¶
-
double
ec_¶
-
double
ed_¶
-
int
n1_¶
-
int
n2_¶
-
double
e1_¶
-
double
e2_¶
Private Static Functions
-
static std::array<long long int, 20>
createFactorialArrayUpTo20()¶
-
-
class
-
namespace
-
namespace