mirror of
https://github.com/edoverg/MPID.git
synced 2026-10-14 23:26:38 +00:00
42 lines
1.8 KiB
Python
42 lines
1.8 KiB
Python
import numpy as np
|
|
import matplotlib.pyplot as plt
|
|
|
|
#import the parameter sweep arrays for the central wavelength
|
|
diameters = np.load("unit_cell/unit_cell_center_1550_h900nm_res50_wvl_diameters.npy")
|
|
print(diameters)
|
|
mode_wvl = np.load("unit_cell/unit_cell_center_1550_h900nm_res50_wvl_mode_wvl.npy")
|
|
mode_tran_arr = np.load("unit_cell/unit_cell_center_1550_h900nm_res50_wvl_mode_tran.npy")
|
|
print(mode_tran_arr)
|
|
mode_phase_arr = np.load("unit_cell/unit_cell_center_1550_h900nm_res50_wvl_mode_phase.npy")
|
|
print(mode_wvl)
|
|
unwrap_mode_phase_arr = np.abs(np.unwrap(mode_phase_arr - mode_phase_arr[0], period=2*np.pi))
|
|
#import the reference value array
|
|
ref_results = np.loadtxt("unit_cell/results_S21_p700nm_h900nm.txt", skiprows=5,dtype=complex)
|
|
R_ref = np.real(ref_results[:,1])
|
|
S21_ref = ref_results[:,3]
|
|
S21_ref_mag = np.abs(S21_ref)
|
|
S21_ref_phase = np.abs(np.unwrap(np.angle(S21_ref) - np.angle(S21_ref[0]), period=2*np.pi))
|
|
|
|
|
|
|
|
plt.figure()
|
|
plt.subplot(1,2,1)
|
|
plt.plot(1e3*diameters/2,mode_tran_arr, '^r-.', label='FDTD')
|
|
plt.plot(R_ref,S21_ref_mag, '*k--',label='FEM')
|
|
plt.xlabel("Pillar Radius (nm)")
|
|
plt.xticks([t for t in np.linspace(1e3*diameters[0]/2, 1e3*diameters[-1]/2, 5)])
|
|
plt.gca().set_xticklabels([f"{t:.0f}" for t in np.linspace(1e3*diameters[0]/2, 1e3*diameters[-1]/2, 5)])
|
|
plt.ylabel("Transmission")
|
|
plt.legend()
|
|
|
|
plt.subplot(1,2,2)
|
|
plt.plot(1e3*diameters/2,unwrap_mode_phase_arr, '^r-.', label='FDTD')
|
|
plt.plot(R_ref,S21_ref_phase, '*k--', label='FEM')
|
|
plt.xlabel("Pillar Radius (nm)")
|
|
plt.xticks([t for t in np.linspace(1e3*diameters[0]/2, 1e3*diameters[-1]/2, 5)])
|
|
plt.gca().set_xticklabels([f"{t:.0f}" for t in np.linspace(1e3*diameters[0]/2, 1e3*diameters[-1]/2, 5)])
|
|
plt.ylabel("Phase (rad)")
|
|
plt.legend()
|
|
|
|
plt.subplots_adjust(wspace=0.5)
|
|
plt.savefig("unit_cell/unit_cell_param_sweep_lineplot.pdf") |