ABCD (paos.classes.abcd)

class ABCD(thickness=0.0, curvature=0.0, n1=1.0, n2=1.0, M=1.0)[source]

Bases: object

ABCD matrix class for paraxial ray tracing.

Variables:
  • thickness (scalar) – optical thickness

  • power (scalar) – optical power

  • M (scalar) – optical magnification

  • n1n2 (scalar) – ratio of refractive indices n1/n2 for light propagating from a medium with refractive index n1, into a medium with refractive index n2

  • c (scalar) – speed of light. Can take values +1 for light travelling left-to-right (+Z), and -1 for light travelling right-to-left (-Z)

Note

The class properties can differ from the value of the parameters used at class instantiation. This because the ABCD matrix is decomposed into four primitives, multiplied together as discussed in Optical system equivalent.

Examples

>>> from paos.classes.abcd import ABCD
>>> thickness = 2.695  # mm
>>> radius = 31.850  # mm
>>> n1, n2 = 1.0, 1.5
>>> abcd = ABCD(thickness=thickness, curvature=1.0/radius, n1=n1, n2=n2)
>>> (A, B), (C, D) = abcd.ABCD

Initialize the ABCD matrix.

Parameters:
  • thickness (scalar) – optical thickness. It is positive from left to right. Default is 0.0

  • curvature (scalar) – inverse of the radius of curvature: it is positive if the center of curvature lies on the right. If n1=n2, the parameter is assumed describing a thin lens of focal ratio fl=1/curvature. Default is 0.0

  • n1 (scalar) – refractive index of the first medium. Default is 1.0

  • n2 (scalar) – refractive index of the second medium. Default is 1.0

  • M (scalar) – optical magnification. Default is 1.0

Note

Light is assumed to be propagating from a medium with refractive index n1 into a medium with refractive index n2.

Note

The refractive indices are assumed to be positive when light propagates from left to right (+Z), and negative when light propagates from right to left (-Z)

property thickness
property M
property n1n2
property power
property cin
property cout
property f_eff
property ABCD