def confinement(self, lambda_i, x_germ): n1 = sellmeier(SiO2, GeO2, x_germ, lambda_i) n2 = sellmeier(SiO2, GeO2, 0, lambda_i) NA = np.sqrt(n1**2 - n2**2) k0 = 2 * np.pi / lambda_i V = k0 * NA * self.ac u = miyagi(V, True) gamma = get_gamma(0, u, V) print(gamma) return gamma
np.lib.scimath.sqrt(kappa**2 - sigma**2) * L)) - sigma**2 / kappa**2 return np.real(num / denum) # a) best_wl = 0 best_delta = 100000 ref = [] wavelengths = np.linspace(1347e-9, 1350e-9, 10000) for wl in wavelengths: n1 = sellmeier(SiO2, GeO2, x_germ, wl) n2 = sellmeier(SiO2, GeO2, 0, wl) NA = np.sqrt(n1**2 - n2**2) k0 = 2 * np.pi / wl V = k0 * NA * a u = miyagi(V, True) n_eff = get_ref_index(u, k0, n1, a) r = reflextivity(wl, n_eff) ref.append(r) new_wl = bragg_lambda(n_eff, Lambda, 1) if abs(new_wl - wl) < best_delta: best_delta = abs(new_wl - wl) best_wl = wl print( f"La longueur d'onde de Bragg de premier ordre est de {best_wl * 1e6} µm") # b) plt.figure() plt.plot(wavelengths * 1e6, ref) plt.xlabel("Longueur d'onde [µm]")
# Parametètres wl = 1.55e-06 k0 = 2 * np.pi / wl n1_1 = 1.4519 n2 = 1.44402 a_1 = 2.4e-6 a_2 = 3.69e-6 d = 12e-6 # Calcul n_eff de la première fibre (qui doit être égal au n_eff de la deuxième fibre) NA = np.sqrt(n1_1**2 - n2**2) V_1 = k0 * NA * a_1 u_1 = miyagi(V_1, True) n_eff = get_ref_index(u_1, k0, a_1, n1_1) print(f"L'indice effectif de la première fibre est {round(n_eff, 6)}") best_n = 0 best_n_eff = 0 best_V = 0 best_u = 0 best_delta = 10000 for n1 in np.linspace(n2, 1.5, 10000): NA = np.sqrt(n1**2 - n2**2) V = k0 * NA * a_2 mi_u = miyagi(V, True) new_n = get_ref_index(mi_u, k0, a_2, n1) if abs(new_n - n_eff) < best_delta:
import numpy as np wl = 633e-9 k0 = 2 * np.pi / wl NA_values = [0.04, 0.06, 0.08, 0.10, 0.12] V = np.linspace(1.8, 2.6, 100) def waist(a, u, w): return np.sqrt(a**2 * 2 / 3 * (jv(0, u) / (u * jv(1, u)) + 1 / 2 + 1 / w**2 - 1 / u**2)) if __name__ == '__main__': for NA in NA_values: a = V / (k0 * NA) u = np.array([miyagi(V_val, True) for V_val in V]) w = np.sqrt(V**2 - u**2) w_0 = waist(a, u, w) plt.figure(0) plt.plot(V, w_0 * 1e6, label=f'NA={NA}') plt.ylabel('Diamètre w$_0$ [µm]') plt.xlabel('Fréquence normalisée V [-]') plt.xlim([1.8, 2.6]) plt.ylim([1, 5.8]) plt.legend(ncol=3) plt.savefig('figs/Num2_w0.pdf', bbox_inches='tight') plt.show()