Starlight Scope Objective

[1]:
import numpy as np

from optiland import optic, physical_apertures
[ ]:
class StarlightScope(optic.Optic):
    """Starlight Scope Objective

    Milton Laikin, Lens Design, 4th ed., CRC Press, 2007, p. 188
    """

    def __init__(self):
        super().__init__()

        # add physical aperture on surface 3
        aperture3 = physical_apertures.RadialAperture(r_max=np.inf, r_min=0.75)

        self.surfaces.add(index=0, thickness=np.inf)
        self.surfaces.add(index=1, thickness=0.275, radius=-7.7618, material="BK7")
        self.surfaces.add(index=2, thickness=1.3662, radius=-16.8186)
        self.surfaces.add(
            index=3,
            thickness=-1.3662,
            radius=-5.6768,
            material="mirror",
            aperture=aperture3,
        )
        self.surfaces.add(index=4, thickness=-0.275, radius=-16.8186, material="BK7")
        self.surfaces.add(
            index=5,
            thickness=0.275,
            radius=-7.7618,
            material="mirror",
            is_stop=True,
        )
        self.surfaces.add(index=6, thickness=1.3662, radius=-16.8186)
        self.surfaces.add(index=7, thickness=0.15, radius=-15.1741, material="SF2")
        self.surfaces.add(index=8, thickness=0.1846, radius=np.inf, material="N-LAK7")
        self.surfaces.add(index=9, thickness=0.3873, radius=-2.7866)
        self.surfaces.add(index=10, thickness=0.2469, radius=1.1320, material="N-SK16")
        self.surfaces.add(index=11, thickness=0.5, radius=1.4144)
        self.surfaces.add(index=12)

        self.set_aperture(aperture_type="imageFNO", value=1.57)

        self.fields.set_type(field_type="angle")
        self.fields.add(y=0)
        self.fields.add(y=3.75)
        self.fields.add(y=7.5)

        self.wavelengths.add(value=0.48613270)
        self.wavelengths.add(value=0.58756180, is_primary=True)
        self.wavelengths.add(value=0.65627250)
[4]:
telescope = StarlightScope()
telescope.draw(num_rays=2)
../../_images/gallery_reflective_starlight_3_0.png
[ ]: