Compact Telescope
[5]:
import numpy as np
from optiland import optic, physical_apertures
[ ]:
# Initialize an optic system
system = optic.Optic()
# define physical aperture of first mirror
aperture1 = physical_apertures.RadialAperture(r_min=1.7, r_max=4.2)
# define physical aperture of third mirror
aperture3 = physical_apertures.RadialAperture(r_min=0.65, r_max=1.7)
# add surfaces to the system
system.surfaces.add(index=0, thickness=np.inf)
system.surfaces.add(
index=1,
thickness=-5.5119,
radius=-16.4794,
material="mirror",
conic=-0.9774823,
aperture=aperture1,
)
system.surfaces.add(
index=2,
thickness=5.9056,
radius=np.inf,
material="mirror",
is_stop=True,
)
system.surfaces.add(
index=3,
thickness=-5.9056,
radius=-5.2556,
material="mirror",
conic=-0.4605796,
aperture=aperture3,
)
system.surfaces.add(index=4, thickness=9.2807, radius=np.inf, material="mirror")
system.surfaces.add(index=5)
# add aperture
system.set_aperture(aperture_type="imageFNO", value=5.0)
# add field
system.fields.set_type(field_type="angle")
system.fields.add(y=0)
system.fields.add(y=0.5)
# add wavelength
system.wavelengths.add(value=0.587, is_primary=True)
[7]:
system.info()
+----+---------------+----------+-------------+------------+-----------+-----------------+
| | Type | Radius | Thickness | Material | Conic | Semi-aperture |
|----+---------------+----------+-------------+------------+-----------+-----------------|
| 0 | Planar | inf | inf | Air | 0 | 4.08208 |
| 1 | Standard | -16.4794 | -5.5119 | Mirror | -0.977482 | 4.08208 |
| 2 | Stop - Planar | inf | 5.9056 | Mirror | 0 | 1.30329 |
| 3 | Standard | -5.2556 | -5.9056 | Mirror | -0.46058 | 1.67397 |
| 4 | Planar | inf | 9.2807 | Mirror | 0 | 0.966242 |
| 5 | Planar | inf | nan | Air | 0 | 0.344003 |
+----+---------------+----------+-------------+------------+-----------+-----------------+
[8]:
system.draw(num_rays=2)