![]() |
Hex
1.0
Hydrogen-electron collision solver
|
#include <radial.h>
Public Member Functions | |
RadialIntegrals (Bspline const &bspline) | |
void | setupOneElectronIntegrals () |
void | setupTwoElectronIntegrals (Parallel const &par, CommandLine const &cmd, Array< bool > const &lambdas) |
Complex | computeD_iknot (int i, int j, int iknot) const |
Complex | computeD (int i, int j, int maxknot=-1) const |
Complex | computeM_iknot (int a, int i, int j, int iknot, Complex R) const |
Complex | computeM (int a, int i, int j, int maxknot=0) const |
cArray | computeMi (int a, int iknotmax=0) const |
rArray | computeScale (int a, int iknotmax=0) const |
void | M_integrand (int n, Complex *in, Complex *out, int i, int j, int a, int iknot, int iknotmax, double &logscale) const |
Complex | computeR (int lambda, int i, int j, int k, int l, cArray const &Mtr_L, cArray const &Mtr_mLm1) const |
Complex | computeRdiag (int L, int a, int b, int c, int d, int iknot, int iknotmax) const |
Complex | computeRtri (int L, int k, int l, int m, int n, int iknot, int iknotmax) const |
void | R_inner_integrand (int n, Complex *in, Complex *out, int i, int j, int L, int iknot, int iknotmax, Complex x) const |
void | R_outer_integrand (int n, Complex *in, Complex *out, int i, int j, int k, int l, int L, int iknot, int iknotmax) const |
void | allSymmetries (int i, int j, int k, int l, Complex Rijkl_tr, NumberArray< long > &R_tr_i, NumberArray< long > &R_tr_j, NumberArray< Complex > &R_tr_v) const |
template<class Functor > | |
cArray | overlapP (int n, int l, Functor weightf) const |
template<class Functor > | |
cArray | overlapj (int maxell, const rArrayView vk, Functor weightf) const |
Compute j-overlaps. More... | |
Bspline const & | bspline () const |
SymDiaMatrix const & | D () const |
SymDiaMatrix const & | S () const |
SymDiaMatrix const & | Mm1 () const |
SymDiaMatrix const & | Mm1_tr () const |
SymDiaMatrix const & | Mm2 () const |
SymDiaMatrix const & | R_tr_dia (unsigned i) const |
size_t | maxlambda () const |
|
inline |
void RadialIntegrals::allSymmetries | ( | int | i, |
int | j, | ||
int | k, | ||
int | l, | ||
Complex | Rijkl_tr, | ||
NumberArray< long > & | R_tr_i, | ||
NumberArray< long > & | R_tr_j, | ||
NumberArray< Complex > & | R_tr_v | ||
) | const |
|
inline |
Complex RadialIntegrals::computeD | ( | int | i, |
int | j, | ||
int | maxknot = -1 |
||
) | const |
Compute derivative overlap for B-splines \( B_i \) and \( B_j \).
i | B-spline index. |
j | B-spline index. |
maxknot | Right-most knot of any integration. |
Complex RadialIntegrals::computeD_iknot | ( | int | i, |
int | j, | ||
int | iknot | ||
) | const |
Compute derivative overlap of B-splines \( B_i \) and \( B_j \) over the knot "iknot", using Gauss-Legendre integration.
i | B-spline index. |
j | B-spline index. |
iknot | Interval index. |
Complex RadialIntegrals::computeM | ( | int | a, |
int | i, | ||
int | j, | ||
int | maxknot = 0 |
||
) | const |
Compute integral moment of coordinate power between the B-splines \( B_i \) and \( B_j \)
a | Exponent. |
i | B-spline index. |
j | B-spline index. |
maxknot | Right-most knot of any integration. |
Compute integral moment of coordinate power between the B-splines \( B_i \) and \( B_j \) over the knot "iknot", using Gauss-Legendre integration.
a | Exponent. |
i | B-spline index. |
j | B-spline index. |
iknot | Interval index. |
R | Potential truncation point. |
cArray RadialIntegrals::computeMi | ( | int | a, |
int | iknotmax = 0 |
||
) | const |
Compute logarithms of integral moment of degree "a" for every B-spline pair and every interknot sub-interval. Store in 1-D array of shape
a | Moment degree. |
iknotmax | Index of knot that terminates the integration range. |
Complex RadialIntegrals::computeR | ( | int | lambda, |
int | i, | ||
int | j, | ||
int | k, | ||
int | l, | ||
cArray const & | Mtr_L, | ||
cArray const & | Mtr_mLm1 | ||
) | const |
Compute the two-electron (Slater-type) four-B-spline integral.
lambda | Multipole degree. |
i | First (x-dependent) B-spline index. |
j | Second (y-dependent) B-spline index. |
k | Third (x-dependent) B-spline index. |
l | Fourth (y-dependent) B-spline index. |
Mtr_L | Logarithms of R₀-truncated partial moments. |
Mtr_mLm1 | Logarithms of R₀-truncated partial moments. |
Given the R-type integral symmetry, following calls will produce identical results:
Complex RadialIntegrals::computeRdiag | ( | int | L, |
int | a, | ||
int | b, | ||
int | c, | ||
int | d, | ||
int | iknot, | ||
int | iknotmax | ||
) | const |
Diagonal part of Slater integral
Complex RadialIntegrals::computeRtri | ( | int | L, |
int | k, | ||
int | l, | ||
int | m, | ||
int | n, | ||
int | iknot, | ||
int | iknotmax | ||
) | const |
Triangle integral
rArray RadialIntegrals::computeScale | ( | int | a, |
int | iknotmax = 0 |
||
) | const |
|
inline |
void RadialIntegrals::M_integrand | ( | int | n, |
Complex * | in, | ||
Complex * | out, | ||
int | i, | ||
int | j, | ||
int | a, | ||
int | iknot, | ||
int | iknotmax, | ||
double & | logscale | ||
) | const |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Compute B-spline overlap integrals for Riccati-Bessel function.
maxell | Maximal degree of the Riccati-Bessel function. |
vk | Array containing linear momenta. |
weightf | Weight function to multiply every value of the Bessel function. It is expected to have the "double operator() (Complex z)" interface, where the sent value is the complex coordinate. |
|
inline |
Compute P-overlaps Compute overlap vector of B-splines vs. hydrogen Pnl function.
n | Principal quantum number. |
l | Orbital quantum number. |
weightf | Weight function to multiply every value of the hydrogenic function. It is expected to have the "double operator() (Complex z)" interface, where the sent value is the complex coordinate. |
void RadialIntegrals::R_inner_integrand | ( | int | n, |
Complex * | in, | ||
Complex * | out, | ||
int | i, | ||
int | j, | ||
int | L, | ||
int | iknot, | ||
int | iknotmax, | ||
Complex | x | ||
) | const |
void RadialIntegrals::R_outer_integrand | ( | int | n, |
Complex * | in, | ||
Complex * | out, | ||
int | i, | ||
int | j, | ||
int | k, | ||
int | l, | ||
int | L, | ||
int | iknot, | ||
int | iknotmax | ||
) | const |
|
inline |
|
inline |
void RadialIntegrals::setupOneElectronIntegrals | ( | ) |
void RadialIntegrals::setupTwoElectronIntegrals | ( | Parallel const & | par, |
CommandLine const & | cmd, | ||
Array< bool > const & | lambdas | ||
) |