coating_design#

furst.feed_optics.materials.coating_design()[source]#

The as-designed coating for the FURST feed optics, Acton Optics broadband VUV coating #1200.

Since we presumably don’t know the formula of this proprietary coating, this function uses the formula in Quijada et al. [2012].

Examples

Plot the efficiency of the coating across the VUV range

import numpy as np
import matplotlib.pyplot as plt
import astropy.units as u
import named_arrays as na
import optika
import furst

# Define an array of wavelengths with which to sample the efficiency
wavelength = na.geomspace(120, 600, axis="wavelength", num=1001) * u.nm

# Define the incident rays from the wavelength array
angle = na.linspace(0, 75, axis="angle", num=5) * u.deg
rays = optika.rays.RayVectorArray(
    wavelength=wavelength,
    direction=na.Cartesian3dVectorArray(
        x=np.sin(angle),
        y=0,
        z=np.cos(angle),
    ),
)

# Initialize the FURST feed optic coating model
coating = furst.feed_optics.materials.coating_design()

# Compute the reflectivity of the feed optics
reflectivity = coating.efficiency(
    rays=rays,
    normal=na.Cartesian3dVectorArray(0, 0, -1),
)

# Plot the reflectivity of the feed optics vs wavelength
fig, ax = plt.subplots(constrained_layout=True)
na.plt.plot(
    wavelength,
    reflectivity,
    ax=ax,
    axis="wavelength",
    label=angle,
);
ax.set_xlabel(f"wavelength ({wavelength.unit:latex_inline})");
ax.set_ylabel("reflectivity");
ax.legend(title="incidence angle");
../_images/furst.feed_optics.materials.coating_design_0_1.png
Return type:

MultilayerMirror