Module for computing the Wigner D-matrix and d-matrix (big D and little d; Fortran is case insensitive). The d-matrix can be calculated via the analytic expression, but this can overflow for large j due to the ratios of large factoials. The d-matrix can instead be calculated via sparse banded matrix diagonalization. See DOI: 10.1103PhysRevE.92.043307 for more details.
Interface to access the routines to calculate the matrix D(α,β,γ) or d(β) based on the number of arguments
Return the wigner D-matrix for integer j
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | j |
The angular momentum |
||
real(kind=rp), | intent(in) | :: | euler_alpha |
The Euler angle α |
||
real(kind=rp), | intent(in) | :: | euler_beta |
The Euler angle β |
||
real(kind=rp), | intent(in) | :: | euler_gamma |
The Euler angle γ |
||
logical, | intent(in), | optional | :: | use_analytic |
Force the use of the analytic expression to obtain ? |
The Wigner D-matrix
Return the wigner D-matrix for real j
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(in) | :: | j |
The angular momentum |
||
real(kind=rp), | intent(in) | :: | euler_alpha |
The Euler angle α |
||
real(kind=rp), | intent(in) | :: | euler_beta |
The Euler angle β |
||
real(kind=rp), | intent(in) | :: | euler_gamma |
The Euler angle γ |
||
logical, | intent(in), | optional | :: | use_analytic |
Force the use of the analytic expression to obtain ? |
The Wigner D-matrix
Return the Wigner d-matrix for integer j
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | j |
The angular momentum |
||
real(kind=rp), | intent(in) | :: | euler_beta |
The euler angle β |
||
logical, | intent(in), | optional | :: | use_analytic |
Force the use of the analytic expression to obtain ? |
The matrix
Return the Wigner d-matrix for real j
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(in) | :: | j |
The angular momentum |
||
real(kind=rp), | intent(in) | :: | euler_beta |
The euler angle β |
||
logical, | intent(in), | optional | :: | use_analytic |
Force the use of the analytic expression to obtain ? |
The matrix
Interface to access the routines to calculate D(α,β,γ) via matrix diagonalization or the analytic expression
Return the wigner D-matrix for integer j
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | j |
The angular momentum |
||
real(kind=rp), | intent(in) | :: | euler_alpha |
The Euler angle α |
||
real(kind=rp), | intent(in) | :: | euler_beta |
The Euler angle β |
||
real(kind=rp), | intent(in) | :: | euler_gamma |
The Euler angle γ |
||
logical, | intent(in), | optional | :: | use_analytic |
Force the use of the analytic expression to obtain ? |
The Wigner D-matrix
Return the wigner D-matrix for real j
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(in) | :: | j |
The angular momentum |
||
real(kind=rp), | intent(in) | :: | euler_alpha |
The Euler angle α |
||
real(kind=rp), | intent(in) | :: | euler_beta |
The Euler angle β |
||
real(kind=rp), | intent(in) | :: | euler_gamma |
The Euler angle γ |
||
logical, | intent(in), | optional | :: | use_analytic |
Force the use of the analytic expression to obtain ? |
The Wigner D-matrix
Interface to access the routines to calculate d(β) via matrix diagonalization or the analytic expression
Return the Wigner d-matrix for integer j
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | j |
The angular momentum |
||
real(kind=rp), | intent(in) | :: | euler_beta |
The euler angle β |
||
logical, | intent(in), | optional | :: | use_analytic |
Force the use of the analytic expression to obtain ? |
The matrix
Return the Wigner d-matrix for real j
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=rp), | intent(in) | :: | j |
The angular momentum |
||
real(kind=rp), | intent(in) | :: | euler_beta |
The euler angle β |
||
logical, | intent(in), | optional | :: | use_analytic |
Force the use of the analytic expression to obtain ? |
The matrix