dfun

This module provides functions to calculate the Wigner D-function.

\(D^{j}_{m_1,m_2}(\alpha,\beta,\gamma)=e^{-im_1\alpha}d^{j}_{m_1,m_2}(\beta)e^{-im_2\gamma}\), where the expression of the Wigner d-function is

\[d^{j}_{m_1,m_2}(\beta) = \sum_{l=0}^{2j} w_{l}^{(j,m_1,m_2)}\sin^{l}(\frac{\beta}{2}) \cos^{2j-l}(\frac{\beta}{2}),\]

where the weight \(w_{l}^{(j,m_1,m_2)}\) in each term satisfies

\[w^{(j,m_1,m_2)}_{l} = (-1)^{m_1-m_2+k}\frac{\sqrt{(j+m_1)!(j-m_1)!(j+m_2)!(j-m_2)!}}{(j-m_1-k)!(j+m_2-k)!(m_1-m_2+k)!k!}\]

when \(k=\frac{l+m_2-m_1}{2} \in [\max(0,m_2-m_1),\min(j-m_1,j+m_2)]\), and otherwise \(w^{(j,m_1,m_2)}_{l} = 0\).

D_matrix_conj(alpha, beta, gamma, j)[source]

The conjugated D-matrix element with indices (\(m_1,m_2\)) is

\[D^{j}_{m_1,m_2}(\alpha, \beta, \gamma)^\star = e^{i m_1 \alpha} d^{j}_{m_1,m_2}(\beta) e^{i m_2 \gamma}\]
Parameters:
  • alpha – Array

  • beta – Array

  • gamma – Array

  • j – Integer \(2j\) in the formula

Returns:

Array of the conjugated D-matrices. Same shape as alpha, beta, and gamma

Dfun_delta(d, ja, la, lb, lc=(0,))[source]

The decay from particle a to b and c requires \(|l_b-l_c|\leqslant j\)

\(D_{ma,mb-mc} = \delta[(m1,m2)->(ma, mb,mc))] D_{m1,m2}\)

Dfun_delta_v2(d, ja, la, lb, lc=(0,))[source]

The decay from particle a to b and c requires \(|l_b-l_c|\leqslant j\)

\(D_{ma,mb-mc} = \delta[(m1,m2)->(ma, mb,mc))] D_{m1,m2}\)

delta_D_index(j, la, lb, lc)[source]
delta_D_trans(j, la, lb, lc)[source]

The decay from particle a to b and c requires \(|l_b-l_c|\leqslant j\)

(ja,ja) -> (ja,jb,jc)???

exp_i(theta, mi)[source]

\(e^{im\theta}\)

Parameters:
  • theta – Array \(\theta\) in the formula

  • mi – Integer or half-integer \(m\) in the formula

Returns:

Array of tf.complex. Same length as theta

get_D_matrix_for_angle(angle, j, cached=True)[source]

Interface to D_matrix_conj()

Parameters:
  • angle – Dict of angle data {“alpha”,”beta”,”gamma”}

  • j – Integer \(2j\) in the formula

  • cached – Haven’t been used???

Returns:

Array of the conjugated D-matrices. Same length as the angle data

get_D_matrix_lambda(angle, ja, la, lb, lc=None)[source]

Get the D-matrix element

Parameters:
  • angle – Dict of angle data {“alpha”,”beta”,”gamma”}

  • ja

  • la

  • lb

  • lc

Returns:

small_d_matrix(theta, j)[source]

The matrix element of \(d^{j}(\theta)\) is \(d^{j}_{m_1,m_2}(\theta) = \sum_{l=0}^{2j} w_{l}^{(j,m_1,m_2)}\sin^{l}(\frac{\theta}{2}) \cos^{2j-l}(\frac{\theta}{2})\)

Parameters:
  • theta – Array \(\theta\) in the formula

  • j – Integer \(2j\) in the formula???

Returns:

The d-matrices array. Same length as theta

small_d_weight(j)[source]

For a certain j, the weight coefficient with index (\(m_1,m_2,l\)) is \(w^{(j,m_1,m_2)}_{l} = (-1)^{m_1-m_2+k}\frac{\sqrt{(j+m_1)!(j-m_1)!(j+m_2)!(j-m_2)!}}{(j-m_1-k)!(j+m_2-k)!(m_1-m_2+k)!k!}\), and \(l\) is an integer ranging from 0 to \(2j\).

Parameters:

j – Integer \(2j\) in the formula???

Returns:

Of the shape (j +1, j +1, j +1). The indices correspond to (\(l,m_1,m_2\))