Skip to main content

beams.shifted_rotated_fields

beams.shifted_rotated_fields

Computes the fields on a rotated coordinate system.

Given fields_fn(xf, yf, zf) -> (exf, eyf, ezf), (hxf, hyf, hzf) which returns the fields in the field coordinate system, returns the fields at coordinates (x, y, z), which are rotated from (xf, yf, zf), by the specified polar_angle, azimuthal_angle, and polarization_angle.

A beam propagating in the zf direction, polarized in the xf direction will be propagating in the direction specified by polar_angle and azimuthal_angle, with polarization rotated about the propagation direction by polarization_angle.

Args:

  • field_fn: Function which returns the fields in the field coordinate system. The fields should be for a beam propagating in the zf direction, i.e. in the z-direction of the beam coordinate system.
  • x: x-coordinates of the desired output fields.
  • y: y-coordinates of the desired output fields.
  • z: z-coordinates of the desired output fields.
  • beam_origin_x: The x-origin of the beam coordinate system in the (x, y, z) unit system.
  • beam_origin_y: The y-origin of the beam coordinate system.
  • beam_origin_z: The z-origin of the beam coordinate system.
  • polar_angle: The rotation angle about the y-axis.
  • azimuthal_angle: The rotation angle about the z-axis.
  • polarization_angle: The rotation angle about the propagation axis.

Returns:

  • None: The fields ((ex, ey, ez), (hx, hy, hz)) at the specified coordinates.