GNU Scientific Library - Bugs: bug #46677, Wigner d-matrix
You are not allowed to post comments on this tracker with your current authentication level.
bug #46677: Wigner d-matrix
Submitter: | Patrick Alken <psa> | ||
Submitted: | Sat 12 Dec 2015 09:07:40 PM UTC | ||
Category: | None | Severity: | 3 - Normal |
Operating System: | Status: | None | |
Assigned to: | None | Open/Closed: | Open |
Release: |
No files currently attached
Depends on the following items: None found
Items that depend on this one: None found
Carbon-Copy List
No changes have been made to this item
from holocronweaver =at= gmail =dot= com
Hello all,
While it seems most of contribs/wigner.h was ported to specfunc/gsl_sf_coupling.h, the Wigner (small) d-matrix was not. Indeed, the wigner_drot function seems to be the only reason for keeping the contribs file around. Is there a particular reason this function has not been ported? If not, what would porting it entail?
I assume the main obstacle is adding tests and verifying the implementation. As-is, simply copy/pasting the files into specfunc/, renaming them according to gsl convention, and adding the necessary lines to specfunc/Makefile.ac allows me to compile wigner.h into the library as-is.
I manually tested the function via a wrapper I wrote in Julia and was able to reproduce the expected results for j = 1/2, 1, 3/2, and 2 (i.e. j = int 1, 2, 3, 4 according to the parameter convention of multiplying by two to get an integer). All results were as expected based on the analytic formula on Wikipedia: https://en.wikipedia.org/wiki/Wigner_D-matrix#List_of_d-matrix_elements
For example, for j = m' = m = 3/2 (i.e., int 3) and theta = 3/4 * pi:
julia> theta = 3/4 * pi
julia> (1 + cos(theta)) / 2 * cos(theta/2)
0.05604269114599566
julia> sf_wigner_drot(3, 3, 3, theta)
0.05604269114599567
It seems strange to have the Wigner coefficients but not the rotation matrix, and I am sure others would find it useful, so please consider allowing this addition.