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(), and treams.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