from fwmi import Copper from lithosil_q import LITHOSIL_Q switch_lam = 2 lam = 532e-9 * switch_lam theta_t = 1.5 * np.pi / 180 gamma_m = 1.40e9 / switch_lam # molecular signal spectral width gamma_a = 50e6 / switch_lam # aerosol signal spectral width fopd = 0.15 * switch_lam t_ref = 20 t = 20 p = 1 f = 0.1 h1 = Copper(fopd, theta_t, gamma_m, gamma_a, lam, t, t_ref, p, d_opd_d_t=lam / 5, glass=LITHOSIL_Q) # print(h1.d1, h1.d2, h1.d3) # dt = np.linspace(-0.5, 0.5, 25) dt = np.linspace(-5, 5, 25) opd = h1.opd_exact_pure(theta_t, h1.generate_n_glass(t + dt), h1.d_glass_thermal_expansion(t + dt), h1.generate_n_air(t + dt), h1.d_air_thermal_expansion(t + dt)) opd_variation = (opd - fopd) / lam fig, ax = plt.subplots() ax.plot(dt, opd_variation, color='black') ax.grid(True) ax.set_xlabel(r"$\Delta$T ($^\circ$C)") ax.set_ylabel(r"$\Delta$OPD ($\lambda$)")
import numpy as np import matplotlib.pyplot as plt from fwmi import Copper switch_lam = 2 lam = 532e-9 * switch_lam theta_t = 1.5 * np.pi / 180 gamma_m = 1.40e9 / switch_lam # molecular signal spectral width gamma_a = 50e6 / switch_lam # aerosol signal spectral width fopd = 0.1 * switch_lam t_ref = 20 t = 20 p = 1 f = 0.1 h1 = Copper(fopd, theta_t, gamma_m, gamma_a, lam, t, t_ref, p) n_T = 3000 theta_d = 0.5 * np.pi / 180 d_T = np.linspace(-4, 4, n_T) t_m = np.zeros(n_T) t_a = np.zeros(n_T) sdr = np.zeros(n_T) fsrs = np.zeros(n_T) opds = np.zeros(n_T) theta_t_0 = theta_t for i in range(n_T): n1 = h1.generate_n_glass(h1.t + d_T[i]) d1 = h1.d_glass_thermal_expansion(h1.t + d_T[i]) print('glass', 2 * (h1.d_glass * h1.n_glass - n1 * d1) / lam)
switch_lam = 2 lam = 532e-9 * switch_lam theta_t = 1.5 * np.pi / 180 gamma_m = 1.40e9 / switch_lam # molecular signal spectral width gamma_a = 50e6 / switch_lam # aerosol signal spectral width fopd = 0.15 * switch_lam t_ref = 20 t = 20 p = 1 f = 0.1 h1 = Copper(fopd, theta_t, gamma_m, gamma_a, lam, t, t_ref, p, d_opd_d_t=lam / 5, glass=LITHOSIL_Q) n_theta = 400 theta_d = 0.002 d_theta_t = np.linspace(-6, 6, n_theta) * np.pi / 180 t_m = np.zeros(n_theta) t_a = np.zeros(n_theta) sdr = np.zeros(n_theta) fsrs = np.zeros(n_theta) theta_t_0 = theta_t for i in range(n_theta):
from fwmi import Copper from lithosil_q import LITHOSIL_Q switch_lam = 2 lam = 532e-9 * switch_lam theta_t = 1.5 * np.pi / 180 gamma_m = 1.40e9 / switch_lam # molecular signal spectral width gamma_a = 50e6 / switch_lam # aerosol signal spectral width fopd = 0.15 * switch_lam t_ref = 20 t = 20 p = 1 f = 0.1 h1 = Copper(fopd, theta_t, gamma_m, gamma_a, lam, t, t_ref, p, d_opd_d_t=lam / 5, glass=LITHOSIL_Q) n_rms = 30 theta_d = 0.002 rms = np.linspace(0, 0.2, n_rms) * lam t_m = np.zeros(n_rms) t_a = np.zeros(n_rms) sdr = np.zeros(n_rms) for i in range(n_rms): t_m[i] = h1.overall_transmittance(theta_d, f, h1.gamma_m, h1.fsr(fopd), rms[i]) t_a[i] = h1.overall_transmittance(theta_d, f, h1.gamma_a, h1.fsr(fopd), rms[i]) sdr[i] = t_m[i] / t_a[i] fig, ax = plt.subplots() ax.plot(rms / lam, sdr, color='black') ax.grid(True)
from fwmi import Copper from lithosil_q import LITHOSIL_Q switch_lam = 2 lam = 532e-9 * switch_lam theta_t = 1.5 * np.pi / 180 gamma_m = 1.40e9 / switch_lam # molecular signal spectral width gamma_a = 50e6 / switch_lam # aerosol signal spectral width fopd = 0.15 * switch_lam t_ref = 20 t = 20 p = 1 f = 0.1 h1 = Copper(fopd, theta_t, gamma_m, gamma_a, lam, t, t_ref, p, d_opd_d_t=lam / 5, glass=LITHOSIL_Q) n_nu = 100 theta_d = 0.002 d_nu = np.linspace(0.01e9, 0.1e9, n_nu) t_m = np.zeros(n_nu) t_a = np.zeros(n_nu) sdr = np.zeros(n_nu) opd = h1.opd_exact_pure(theta_t, h1.n_glass, h1.d_glass, h1.n_air, h1.d_air) for i in range(n_nu): t_m[i] = h1.overall_transmittance(theta_d, f, h1.gamma_m, h1.fsr(opd), phase_dev=d_nu[i]) t_a[i] = h1.overall_transmittance(theta_d, f, h1.gamma_a, h1.fsr(opd), phase_dev=d_nu[i]) sdr[i] = t_m[i] / t_a[i] fig, ax = plt.subplots() ax.plot(d_nu / 1e9, sdr, color='black')
from fwmi import Copper from lithosil_q import LITHOSIL_Q switch_lam = 2 lam = 532e-9 * switch_lam theta_t = 1.5 * np.pi / 180 gamma_m = 1.40e9 / switch_lam # molecular signal spectral width gamma_a = 50e6 / switch_lam # aerosol signal spectral width fopd = 0.15 * switch_lam t_ref = 20 t = 20 p = 1 f = 0.1 h1 = Copper(fopd, theta_t, gamma_m, gamma_a, lam, t, t_ref, p, d_opd_d_t=lam / 5, glass=LITHOSIL_Q) theta_t = 1.5 * np.pi / 180 theta = np.linspace(-5, 5, 25) * np.pi / 180 opd = h1.opd_exact_pure(theta, h1.n_glass, h1.d_glass, h1.n_air, h1.d_air) opd_variation = (opd - fopd) / lam fig, ax = plt.subplots() ax.plot(theta * 1000, opd_variation, color='black') ax.grid(True) ax.set_xlabel(r"$\theta$ (mrad)") ax.set_ylabel(r"$\Delta$OPD ($\lambda$)") ax.set_title("OPD Variation v. Incident Angle") plt.show()