Double Gauss

[1]:
import numpy as np

from optiland import optic
[2]:
class DoubleGauss(optic.Optic):
    def __init__(self):
        super().__init__()

        self.surfaces.add(index=0, radius=np.inf, thickness=np.inf)
        self.surfaces.add(index=1, radius=56.20238, thickness=8.75, material="N-SSK2")
        self.surfaces.add(index=2, radius=152.28580, thickness=0.5)
        self.surfaces.add(index=3, radius=37.68262, thickness=12.5, material="N-SK2")
        self.surfaces.add(
            index=4,
            radius=np.inf,
            thickness=3.8,
            material=("F5", "schott"),
        )
        self.surfaces.add(index=5, radius=24.23130, thickness=16.369445)
        self.surfaces.add(index=6, radius=np.inf, thickness=13.747957, is_stop=True)
        self.surfaces.add(
            index=7,
            radius=-28.37731,
            thickness=3.8,
            material=("F5", "schott"),
        )
        self.surfaces.add(index=8, radius=np.inf, thickness=11, material="N-SK16")
        self.surfaces.add(index=9, radius=-37.92546, thickness=0.5)
        self.surfaces.add(index=10, radius=177.41176, thickness=7, material="N-SK16")
        self.surfaces.add(index=11, radius=-79.41143, thickness=61.487536)
        self.surfaces.add(index=12)

        self.set_aperture(aperture_type="imageFNO", value=5)
        self.fields.set_type(field_type="angle")

        self.fields.add(y=0)
        self.fields.add(y=10)
        self.fields.add(y=14)

        self.wavelengths.add(value=0.4861)
        self.wavelengths.add(value=0.5876, is_primary=True)
        self.wavelengths.add(value=0.6563)
[3]:
lens = DoubleGauss()
lens.draw()
../../_images/gallery_specialized_lenses_double_Gauss_3_0.png