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