treams.pw.permute_xyz¶
- treams.pw.permute_xyz(kxp, kyp, kzp, pp, kx, ky, kz, qol, helicity=True, inverse=False)¶
Change the coordinate system of the plane wave
A plane wave in the coordinate system \((x, y, z)\) with primary direction of propagation along the z-axis is described in the system \((x', y', z') = (y, z, x)\), where still the modes are described with
treams.special.vpw_M()
,treams.special.vpw_N()
, andtreams.special.vpw_A()
in the primed coordinate system. Therefore the polarizations are defined differently. The inverse transformation is also possible.The function is essentially diagonal in the wave number, because we always describe the source and destination mode in the unprimed coordinate system.
- Parameters:
kxa (float, array_like) – X component of destination mode wave vector
kya (float or complex, array_like) – Y component of destination mode wave vector
kza (float, array_like) – Z component of destination mode wave vector
pa (int, array_like) – Polarization of the destination mode
kx (float, array_like) – X component of source mode wave vector
ky (float, array_like) – Y component of source mode wave vector
kz (float or complex, array_like) – Z component of source mode wave vector
p (int, array_like) – Polarization of the source mode
helicity (bool, optional) – If true, helicity basis is assumed, else parity basis. Defaults to
True
.inverse (bool, optional) – Use the inverse transformation.
- Returns:
complex