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