spherical_channels

Function spherical_channels 

Source
pub fn spherical_channels(
    basis: Basis,
    ks: [Complex; 2],
    q: Vec<[f64; 2]>,
    polarizations: Vec<u8>,
    area: f64,
    helicity: bool,
    fixed_q: bool,
) -> Result<(DMatrix<Complex>, SphericalChannelsResidual)>
Expand description

Incident and radiated channels of a spherical basis in a 2D array with unit-cell area.

The plane modes have transverse wavevectors q = (qx, qy) and polarizations polarizations; polarization pol sees the medium wavenumber ks[pol].

The rows of the matrix pack (incident/radiated, up/down, multipole), as the module documentation shows; its columns are plane modes. With fixed_q, the pullback holds the incident and diffraction directions fixed.

Upstream: the plane-wave expansions inside treams.SMatrices.from_array.