class InfraredTripletF4(optic.Optic):
"""4-in. IR Triplet, f/4
Milton Laikin, Lens Design, 4th ed., CRC Press, 2007, p. 57
"""
def __init__(self):
super().__init__()
# refractive index at 4.2 µm
germanium = materials.IdealMaterial(n=4.002)
silicon = materials.IdealMaterial(n=3.4222)
self.surfaces.add(index=0, radius=np.inf, thickness=np.inf)
self.surfaces.add(index=1, radius=2.0721, thickness=0.1340, material=silicon)
self.surfaces.add(index=2, radius=3.5488, thickness=0.2392)
self.surfaces.add(index=3, thickness=0.6105, is_stop=True)
self.surfaces.add(index=4, radius=13.7583, thickness=0.1, material=germanium)
self.surfaces.add(index=5, radius=1.7491, thickness=0.8768)
self.surfaces.add(index=6, thickness=0.1462, material=silicon)
self.surfaces.add(index=7, radius=-3.5850, thickness=2.8386)
self.surfaces.add(index=8)
self.set_aperture(aperture_type="imageFNO", value=4)
self.fields.set_type(field_type="angle")
self.fields.add(y=0)
self.fields.add(y=2.45)
self.fields.add(y=3.5)
self.wavelengths.add(value=4.2, is_primary=True)