class InfraredTriplet(Optic):
def __init__(self):
super().__init__()
germanium = IdealMaterial(n=4.002)
ZnSe = IdealMaterial(n=2.4028)
detector_aperture = RectangularAperture(
x_min=-0.4, x_max=0.4, y_min=-0.4, y_max=0.4
)
self.surfaces.add(index=0, radius=be.inf, thickness=be.inf)
self.surfaces.add(
index=1,
radius=10.4578,
thickness=0.5901,
material=germanium,
is_stop=True,
)
self.surfaces.add(index=2, radius=14.1079, thickness=4.3909)
self.surfaces.add(index=3, radius=-15.8842, thickness=0.59, material=ZnSe)
self.surfaces.add(index=4, radius=-18.2105, thickness=5.6218)
self.surfaces.add(index=5, radius=2.5319, thickness=0.3918, material=germanium)
self.surfaces.add(index=6, radius=2.4308, thickness=2.5) # purposely defocus
# add detector aperture on image surface
self.surfaces.add(index=7, aperture=detector_aperture)
self.set_aperture(aperture_type="imageFNO", value=2)
self.fields.set_type(field_type="angle")
self.fields.add(y=0)
self.wavelengths.add(value=10.6, is_primary=True)