Multipoles

Description

This class provides the mathematical framework for evaluating the multipolar fields \(A_{j m_z}\) of electric or magnetic type using vector spherical harmonics. It supports field visualization in circular polarization and integrates with domains defined by the domain_class. The implementation follows the formalism of M.E. Rose(Rose 1957).

Initialization

Creating an instance of a Multipoles object sets up the spherical harmonics, coordinate systems, and coupling factors needed to evaluate and visualize multipolar radiation patterns.

Multipoles(l_max, m_max, wl, domain, nr = 1, radius = None)

int — maximum total angular momentum quantum number \(\l\).

int — maximum quantum number for the z-projection of the AM \(m_z\).

float — wavelength of incident field (in microns).

domain_class object — spatial domain used for evaluating the fields.

float — relative refractive index of the scatterer (default is 1).

float — optional radius of the scatterer. If not specified, defaults to 25% of domain size.

Methods


Returns the spherical Hankel function of the first kind of order \(n\), or its derivative if derivative=True. Defined as \(h_n(kr) = j_n(kr) + i y_n(kr)\).


Computes the Clebsch-Gordan coefficient \(\langle j_1, m_1; j_2, m_2 | j, m \rangle\) using Wigner 3j symbols: \[C(j_1 j_2 j; m_1 m_2 m) = (-1)^{j_1 - j_2 + m} \sqrt{2j + 1} \begin{pmatrix} j_1 & j_2 & j \\ m_1 & m_2 & -m \end{pmatrix}\]


Returns the Wigner 3j symbol for given quantum numbers. Used internally by clebsch_gordan.


Normalization coefficients for vector spherical harmonics: \[C_{l+1}^{(e)} = -\sqrt{\frac{l}{2l+1}}, \quad C_{l-1}^{(e)} = \sqrt{\frac{l+1}{2l+1}}, \quad C_l^{(m)} = 1\]

Computes the normalized associated Legendre functions \(P_{l}^{m}(\cos\theta)\) using
scipy.assoc_legendre_p_all(), with optional derivative. Returns a 3D array with shape \((l+1,\, m+1,\, \text{len}(\theta))\).


Computes the scalar spherical harmonic \(Y_l^m(\theta, \phi)\) using the Rose convention: \[Y_l^m (\theta, \phi) = \frac{1}{\sqrt{2\pi}} P_l^m(\cos\theta) e^{im\phi}\]


Computes the components \(\xi_+, \xi_0, \xi_-\) of the vector spherical harmonics: \[\mathbf{T}_{l1j} = \sum_\mu C(l1j; M - \mu, \mu) Y_l^{M - \mu} \boldsymbol{\xi}_\mu\]


Computes the electric and magnetic field components of a multipole \(A_{lm_z}\) as follows, using the given spatial function (e.g., ’hankel’, ’bessel’, ’both’) for outgoing, standing or both multipole types. (Rose 1957)

\[\begin{aligned} \text{Magnetic:}\qquad&\mathbf{A}^{(m)}_{lm_z}=C_l^{(m)}\zeta_l(kr)\mathbf{T}_{llm_z}(\theta,\varphi)\\ \text{Electric:}\qquad&\mathbf{A}^{(e)}_{lm_z}=C_{l+1}^{(e)}\zeta_{l+1}(kr)\mathbf{T}_{l,l+1,m_z}(\theta,\varphi)+ C_{l-1}^{(e)}\zeta_{l-1}(kr)\mathbf{T}_{l,l-1,m_z}(\theta,\varphi), \end{aligned}\]
Returns a dict object with the two parities as keys, each holding a numpy array with each polarization component of the electric field.

    {
        "magnetic": array([xi_+, xi_0, xi_-]),
        "electric": array([xi_+, xi_0, xi_-])
    }


Visualizes the field distribution for a given multipole defined by integers \(l\) and \(m\). Options:

Rose, Morris E. 1957. Elementary Theory of Angular Momentum. John Wiley & Sons, Inc.