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.