Quadrature¶
The quadrature API contains the numerical integration kernels and basis machinery used by the solver internals.
Quadrature rules and kernels used by the R-matrix solver.
- class jitr.quadrature.Kernel(nbasis, basis='Legendre')[source]¶
Bases:
objectConvenience wrapper around a quadrature rule and its basis functions.
- integrate_local(values, radius)[source]¶
Integrate local values on
[0, radius]using Gauss quadrature.
- double_integrate_nonlocal(values, radius, is_symmetric=True)[source]¶
Integrate nonlocal values on
[0, radius] × [0, radius].
- fourier_bessel_transform(l, values, k, radius)[source]¶
Perform a Fourier-Bessel transform of order
l.
- double_fourier_bessel_transform(l, values, k, radius)[source]¶
Perform a double Fourier-Bessel transform of order
l.
- dwba_nonlocal(bra, ket, values, radius)[source]¶
Return a DWBA matrix element for a nonlocal operator.
- class jitr.quadrature.LagrangeLaguerreQuadrature(abscissa, weights, overlap=None)[source]¶
Bases:
objectLagrange Laguerre mesh for the Schrödinger equation following ch. 3.3 of Baye, D. (2015). The Lagrange-mesh method. Physics reports, 565, 1-107, with the only difference being the domain is scaled in each channel; e.g r -> s_i = r * k_i, and each channel’s equation is then divided by it’s asymptotic kinetic energy in the channel T_i = E_inc - E_i
- Parameters:
abscissa (FloatArray)
weights (FloatArray)
overlap (FloatArray | None)
- class jitr.quadrature.LagrangeLegendreQuadrature(abscissa, weights, overlap=None)[source]¶
Bases:
objectLagrange Legendre mesh for the Schrödinger equation following ch. 3.4 of Baye, D. (2015). The Lagrange-mesh method. Physics reports, 565, 1-107, with the only difference being the domain is scaled in each channel; e.g. r -> s_i = r * k_i, and each channel’s equation is then divided by it’s asymptotic kinetic energy in the channel T_i = E_inc - E_i
- Parameters:
abscissa (FloatArray)
weights (FloatArray)
overlap (FloatArray | None)
- jitr.quadrature.generate_laguerre_quadrature(nbasis)[source]¶
Return zeros and weights for Gauss quadrature using the Lagrange-Laguerre basis. See Ch. 3.3 of Baye, 2015
- jitr.quadrature.generate_legendre_quadrature(nbasis)[source]¶
Return zeros and weights for Gauss quadrature using the Lagrange-Legendre basis shifted and scaled onto [0,a]. See Ch. 3.4 of Baye, 2015
- jitr.quadrature.laguerre(n, a, s, quadrature)[source]¶
nth Lagrange-Laguerre function, scaled by a. Eq. 3.70 in Baye, 2015 with alpha = 0.
Note: n is indexed from 1 (constant function is not part of basis)
- jitr.quadrature.legendre(n, a, s, quadrature)[source]¶
nth Lagrange-Legendre polynomial shifted onto [0,a_i] and regularized by s. Eq. 3.122 in Baye, 2015
Note: n is indexed from 1 (constant function is not part of basis)
Quadrature kernels and transforms on Lagrange meshes.
- class jitr.quadrature.kernel.Kernel(nbasis, basis='Legendre')[source]¶
Bases:
objectConvenience wrapper around a quadrature rule and its basis functions.
- integrate_local(values, radius)[source]¶
Integrate local values on
[0, radius]using Gauss quadrature.
- double_integrate_nonlocal(values, radius, is_symmetric=True)[source]¶
Integrate nonlocal values on
[0, radius] × [0, radius].
- fourier_bessel_transform(l, values, k, radius)[source]¶
Perform a Fourier-Bessel transform of order
l.
- double_fourier_bessel_transform(l, values, k, radius)[source]¶
Perform a double Fourier-Bessel transform of order
l.
- dwba_nonlocal(bra, ket, values, radius)[source]¶
Return a DWBA matrix element for a nonlocal operator.
Quadrature rules and Lagrange-mesh basis functions.
- jitr.quadrature.quadrature.laguerre(n, a, s, quadrature)[source]¶
nth Lagrange-Laguerre function, scaled by a. Eq. 3.70 in Baye, 2015 with alpha = 0.
Note: n is indexed from 1 (constant function is not part of basis)
- jitr.quadrature.quadrature.legendre(n, a, s, quadrature)[source]¶
nth Lagrange-Legendre polynomial shifted onto [0,a_i] and regularized by s. Eq. 3.122 in Baye, 2015
Note: n is indexed from 1 (constant function is not part of basis)
- jitr.quadrature.quadrature.generate_laguerre_quadrature(nbasis)[source]¶
Return zeros and weights for Gauss quadrature using the Lagrange-Laguerre basis. See Ch. 3.3 of Baye, 2015
- jitr.quadrature.quadrature.generate_legendre_quadrature(nbasis)[source]¶
Return zeros and weights for Gauss quadrature using the Lagrange-Legendre basis shifted and scaled onto [0,a]. See Ch. 3.4 of Baye, 2015
- class jitr.quadrature.quadrature.LagrangeLaguerreQuadrature(abscissa, weights, overlap=None)[source]¶
Bases:
objectLagrange Laguerre mesh for the Schrödinger equation following ch. 3.3 of Baye, D. (2015). The Lagrange-mesh method. Physics reports, 565, 1-107, with the only difference being the domain is scaled in each channel; e.g r -> s_i = r * k_i, and each channel’s equation is then divided by it’s asymptotic kinetic energy in the channel T_i = E_inc - E_i
- Parameters:
abscissa (FloatArray)
weights (FloatArray)
overlap (FloatArray | None)
- class jitr.quadrature.quadrature.LagrangeLegendreQuadrature(abscissa, weights, overlap=None)[source]¶
Bases:
objectLagrange Legendre mesh for the Schrödinger equation following ch. 3.4 of Baye, D. (2015). The Lagrange-mesh method. Physics reports, 565, 1-107, with the only difference being the domain is scaled in each channel; e.g. r -> s_i = r * k_i, and each channel’s equation is then divided by it’s asymptotic kinetic energy in the channel T_i = E_inc - E_i
- Parameters:
abscissa (FloatArray)
weights (FloatArray)
overlap (FloatArray | None)