jones

Jones Module

The jones module contains classes for Jones matrices in optics. The module defines the base class BaseJones, which is an abstract class that defines the interface for Jones matrices. The module also contains classes for specific Jones matrices, such as JonesFresnel, JonesPolarizerH, JonesPolarizerV, JonesPolarizerL45, JonesPolarizerL135, JonesPolarizerRCP, JonesPolarizerLCP, JonesLinearDiattenuator, JonesLinearRetarder, JonesQuarterWaveRetarder, and JonesHalfWaveRetarder.

Kramer Harrison, 2024

Classes

BaseJones()

Base class for Jones matrices.

ConstantJones(j00, j01, j10, j11)

Base class for constant Jones matrices in the local ray frame.

JonesFresnel(material_pre, material_post)

Class representing the Jones matrix for Fresnel calculations.

JonesHalfWaveRetarder([axis, theta])

Represents a half-wave retarder in Jones calculus.

JonesLinearDiattenuator(t_min, t_max[, ...])

Represents a linear diattenuator in Jones calculus.

JonesLinearPolarizer(axis)

Class representing a general linear polarizer in 3D space.

JonesLinearRetarder(retardance[, axis, theta])

Represents a linear retarder in Jones calculus.

JonesPolarizerH()

Class representing the Jones matrix for a horizontal polarizer.

JonesPolarizerL135()

Class representing the Jones matrix for a linear polarizer at 135 degrees.

JonesPolarizerL45()

Class representing the Jones matrix for a linear polarizer at 45 degrees.

JonesPolarizerLCP()

Class representing the Jones matrix for a left circular polarizer.

JonesPolarizerRCP()

Class representing the Jones matrix for a right circular polarizer.

JonesPolarizerV()

Class representing the Jones matrix for a vertical polarizer.

JonesQuarterWaveRetarder([axis, theta])

Represents a quarter-wave retarder in Jones calculus.

class BaseJones[source]

Base class for Jones matrices.

The class defines Jones matrices given ray properties. In the general case, the Jones matrix is an Nx3x3 array, where N is the number of rays. The array is padded to make it 3x3 to account for 3D ray calculations.

abstract calculate_matrix(rays: RealRays, reflect: bool = False, aoi: be.ndarray = None)[source]

Calculate the Jones matrix for the given rays.

Parameters:
  • rays (RealRays) – Object representing the rays.

  • reflect (bool, optional) – Indicates whether the rays are reflected or not. Defaults to False.

  • aoi (be.ndarray, optional) – Array representing the angle of incidence. Defaults to None.

Returns:

The calculated Jones matrix.

Return type:

be.ndarray

class ConstantJones(j00: complex, j01: complex, j10: complex, j11: complex)[source]

Base class for constant Jones matrices in the local ray frame.

Parameters:
  • j00 (complex) – The (0, 0) element of the Jones matrix.

  • j01 (complex) – The (0, 1) element of the Jones matrix.

  • j10 (complex) – The (1, 0) element of the Jones matrix.

  • j11 (complex) – The (1, 1) element of the Jones matrix.

calculate_matrix(rays: RealRays, reflect: bool = False, aoi: be.ndarray = None)[source]

Calculate the Jones matrix for the given rays.

class JonesFresnel(material_pre, material_post)[source]

Class representing the Jones matrix for Fresnel calculations.

Parameters:
  • material_pre (Material) – Material object representing the material before the surface.

  • material_post (Material) – Material object representing the material after the surface.

calculate_matrix(rays: RealRays, reflect: bool = False, aoi: be.ndarray = None)[source]

Calculate the Jones matrix for the given rays.

Parameters:
  • rays (RealRays) – Object representing the rays.

  • reflect (bool, optional) – Indicates whether the rays are reflected or not. Defaults to False.

  • aoi (be.ndarray, optional) – Array representing the angle of incidence. Defaults to None.

Returns:

The calculated Jones matrix.

Return type:

be.ndarray

class JonesHalfWaveRetarder(axis=None, *, theta=None)[source]

Represents a half-wave retarder in Jones calculus.

calculate_matrix(rays: RealRays, reflect: bool = False, aoi: be.ndarray = None)

Calculate the Jones matrix for the given rays.

class JonesLinearDiattenuator(t_min, t_max, axis=None, *, theta=None)[source]

Represents a linear diattenuator in Jones calculus.

t_min

Minimum amplitude transmission coefficient.

Type:

be.ndarray

t_max

Maximum amplitude transmission coefficient.

Type:

be.ndarray

axis

A 3D vector representing the fast transmission axis.

Type:

be.ndarray

Note

The intensity transmission is given by the square of the amplitude coefficients.

calculate_matrix(rays: RealRays, reflect: bool = False, aoi: be.ndarray = None)[source]

Calculate the Jones matrix for the given rays.

class JonesLinearPolarizer(axis)[source]

Class representing a general linear polarizer in 3D space.

Parameters:

axis (tuple | list | be.ndarray) – A 3D vector representing the transmission axis in global coordinates (e.g., [1, 0, 0] for horizontal).

calculate_matrix(rays: RealRays, reflect: bool = False, aoi: be.ndarray = None)[source]

Calculate the Jones matrix for the given rays.

Parameters:
  • rays (RealRays) – Object representing the rays.

  • reflect (bool, optional) – Indicates whether the rays are reflected.

  • aoi (be.ndarray, optional) – Array representing the angle of incidence.

Returns:

The calculated Jones matrix.

Return type:

be.ndarray

class JonesLinearRetarder(retardance, axis=None, *, theta=None)[source]

Represents a linear retarder in Jones calculus.

retardance

Retardance of the retarder, or the absolute value of the phase difference between the two components of the electric field, in radians.

Type:

be.ndarray

axis

A 3D vector representing the fast transmission axis.

Type:

be.ndarray

calculate_matrix(rays: RealRays, reflect: bool = False, aoi: be.ndarray = None)[source]

Calculate the Jones matrix for the given rays.

class JonesPolarizerH[source]

Class representing the Jones matrix for a horizontal polarizer.

calculate_matrix(rays: RealRays, reflect: bool = False, aoi: be.ndarray = None)

Calculate the Jones matrix for the given rays.

Parameters:
  • rays (RealRays) – Object representing the rays.

  • reflect (bool, optional) – Indicates whether the rays are reflected.

  • aoi (be.ndarray, optional) – Array representing the angle of incidence.

Returns:

The calculated Jones matrix.

Return type:

be.ndarray

class JonesPolarizerL135[source]

Class representing the Jones matrix for a linear polarizer at 135 degrees.

calculate_matrix(rays: RealRays, reflect: bool = False, aoi: be.ndarray = None)

Calculate the Jones matrix for the given rays.

Parameters:
  • rays (RealRays) – Object representing the rays.

  • reflect (bool, optional) – Indicates whether the rays are reflected.

  • aoi (be.ndarray, optional) – Array representing the angle of incidence.

Returns:

The calculated Jones matrix.

Return type:

be.ndarray

class JonesPolarizerL45[source]

Class representing the Jones matrix for a linear polarizer at 45 degrees.

calculate_matrix(rays: RealRays, reflect: bool = False, aoi: be.ndarray = None)

Calculate the Jones matrix for the given rays.

Parameters:
  • rays (RealRays) – Object representing the rays.

  • reflect (bool, optional) – Indicates whether the rays are reflected.

  • aoi (be.ndarray, optional) – Array representing the angle of incidence.

Returns:

The calculated Jones matrix.

Return type:

be.ndarray

class JonesPolarizerLCP[source]

Class representing the Jones matrix for a left circular polarizer.

calculate_matrix(rays: RealRays, reflect: bool = False, aoi: be.ndarray = None)

Calculate the Jones matrix for the given rays.

class JonesPolarizerRCP[source]

Class representing the Jones matrix for a right circular polarizer.

calculate_matrix(rays: RealRays, reflect: bool = False, aoi: be.ndarray = None)

Calculate the Jones matrix for the given rays.

class JonesPolarizerV[source]

Class representing the Jones matrix for a vertical polarizer.

calculate_matrix(rays: RealRays, reflect: bool = False, aoi: be.ndarray = None)

Calculate the Jones matrix for the given rays.

Parameters:
  • rays (RealRays) – Object representing the rays.

  • reflect (bool, optional) – Indicates whether the rays are reflected.

  • aoi (be.ndarray, optional) – Array representing the angle of incidence.

Returns:

The calculated Jones matrix.

Return type:

be.ndarray

class JonesQuarterWaveRetarder(axis=None, *, theta=None)[source]

Represents a quarter-wave retarder in Jones calculus.

calculate_matrix(rays: RealRays, reflect: bool = False, aoi: be.ndarray = None)

Calculate the Jones matrix for the given rays.