cylindrical_channels

Function cylindrical_channels 

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

Incident and radiated channels of a cylindrical basis in a 1D array along x with lattice period.

The plane modes are q = (kz, kx) with polarizations polarizations. The order (kz, kx) is that of a plane basis permuted to the zx plane, as treams permutes it in SMatrices.from_array. The axial kz values are fixed labels, and pol has the meaning of spherical_channels.

The rows of the matrix pack (incident/radiated, up/down, cylindrical mode), as the module documentation shows; its columns are plane modes. With fixed_q, the pullback holds the kx components fixed.

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