Source code for optimization.operand.paraxial

"""Paraxial Operands Module

This module provides a class that calculates various paraxial values for an
optical system. It is used in conjunction with the optimization module to
optimize optical systems.

Kramer Harrison, 2024
"""

from __future__ import annotations


[docs] class ParaxialOperand: """A class representing paraxial operands. This class provides static methods to calculate various paraxial properties of an optic. Attributes: None Methods: f1(optic): Returns the first focal length of the optic. f2(optic): Returns the second focal length of the optic. F1(optic): Returns the first principal plane distance of the optic. F2(optic): Returns the second principal plane distance of the optic. P1(optic): Returns the first principal point distance of the optic. P2(optic): Returns the second principal point distance of the optic. N1(optic): Returns the first nodal point distance of the optic. N2(optic): Returns the second nodal point distance of the optic. EPL(optic): Returns the entrance pupil distance of the optic. EPD(optic): Returns the entrance pupil diameter of the optic. XPL(optic): Returns the exit pupil distance of the optic. XPD(optic): Returns the exit pupil diameter of the optic. magnification(optic): Returns the magnification of the optic. total_track(optic): Returns the total track of the optic. """
[docs] @staticmethod def f1(optic): return optic.paraxial.f1()
[docs] @staticmethod def f2(optic): return optic.paraxial.f2()
[docs] @staticmethod def F1(optic): return optic.paraxial.F1()
[docs] @staticmethod def F2(optic): return optic.paraxial.F2()
[docs] @staticmethod def P1(optic): return optic.paraxial.P1()
[docs] @staticmethod def P2(optic): return optic.paraxial.P2()
[docs] @staticmethod def N1(optic): return optic.paraxial.N1()
[docs] @staticmethod def N2(optic): return optic.paraxial.N2()
[docs] @staticmethod def EPL(optic): return optic.paraxial.EPL()
[docs] @staticmethod def EPD(optic): return optic.paraxial.EPD()
[docs] @staticmethod def XPL(optic): return optic.paraxial.XPL()
[docs] @staticmethod def XPD(optic): return optic.paraxial.XPD()
[docs] @staticmethod def magnification(optic): return optic.paraxial.magnification()
[docs] @staticmethod def total_track(optic): return optic.total_track