import numpy as np import cmath import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from matplotlib import cm import calc_sensitivity as cs import nominal_param_values as npv # plot diffraction efficiencies vs open fraction for vdw and non-vdw models f = np.linspace(0.01, 0.99, 20) e0 = np.zeros(f.size) e1 = np.zeros(f.size) e0_vdw = np.zeros(f.size) e1_vdw = np.zeros(f.size) for i in range(f.size): e0[i] = f[i] e1[i] = f[i] * np.sin(np.pi * f[i]) / (np.pi * f[i]) e0_vdw[i] = cmath.polar(cs.calc_diffraction_eff_vdw(0, f[i], npv.d_nom, npv.l_nom, npv.v_nom, npv.C3_nom)[0])[0] e1_vdw[i] = cmath.polar(cs.calc_diffraction_eff_vdw(1, f[i], npv.d_nom, npv.l_nom, npv.v_nom, npv.C3_nom)[0])[0] l1, l2, l3, l4 = plt.plot(f,e0,'bo', f,e1,'ro', f,e0_vdw,'bs', f,e1_vdw,'rs') plt.xlabel("grating open fraction") plt.ylabel("|diffraction efficiency|") plt.legend((l1, l2, l3, l4), ("no vdw, n=0", "no vdw, n=1", "vdw, n=0", "vdw, n=1"), loc='upper left') plt.show()
from matplotlib import cm import calc_sensitivity as cs import nominal_param_values as npv # plot sensitivity vs g1 and g2 open fractions for a given velocity and grating period f1 = np.linspace(0.3,0.95,11) f2 = np.linspace(0.3,0.95,11) F1, F2 = np.meshgrid(f1,f2) S = np.zeros([f2.size,f1.size], dtype = np.float) for i in range(f1.size): for j in range(f2.size): # calculate diffraction efficiencies e0_g1 = cmath.polar(cs.calc_diffraction_eff_vdw(0, f1[i], npv.d_nom, npv.l_nom, npv.v_nom, npv.C3_nom)[0])[0] e1_g1 = cmath.polar(cs.calc_diffraction_eff_vdw(1, f1[i], npv.d_nom, npv.l_nom, npv.v_nom, npv.C3_nom)[0])[0] e1_g2 = cmath.polar(cs.calc_diffraction_eff_vdw(1, f2[j], npv.d_nom, npv.l_nom, npv.v_nom, npv.C3_nom)[0])[0] # calculate signal signal = 4.0*npv.I_inc_nom*0.23*(e0_g1*e1_g1*e1_g2)**2 / (e0_g1**2 + e1_g1**2) # calculate sensitivity S[j][i] = npv.v_nom*npv.d_nom / (4.0*np.pi*npv.L_nom**2*np.sqrt(signal)) fig = plt.figure() ax = fig.gca(projection='3d') surf = ax.plot_surface(F1, F2, S, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=True) plt.ticklabel_format(style='sci', axis='z', scilimits=(0,0)) ax.set_xlabel("g1 open fraction")
sig2 = np.zeros(f.size) sig1_novdw = np.zeros(f.size) sig2_novdw = np.zeros(f.size) d = 100.0e-9 v = 1000.0 print "making graphs" # calculate signal vs f for i in range(f.size): # WITH vdW # calculate diffraction efficiencies e0_g1 = cmath.polar(cs.calc_diffraction_eff_vdw(0, f[i], d, 150.0e-9, v, 4.8e-49)[0])[0] e1_g1 = cmath.polar(cs.calc_diffraction_eff_vdw(1, f[i], d, 150.0e-9, v, 4.8e-49)[0])[0] e1_g2 = e1_g1 # calculate the bracketted terms sig1[i] = (e0_g1*e1_g1)**2 / (e0_g1**2 + e1_g1**2) sig2[i] = e1_g2**2 # WITHOUT vdW # calculate diffraction efficiencies e0_g1 = cmath.polar(cs.calc_diffraction_eff_vdw(0, f[i], d, 150.0e-9, v, 0.0)[0])[0] e1_g1 = cmath.polar(cs.calc_diffraction_eff_vdw(1, f[i], d, 150.0e-9, v, 0.0)[0])[0] e1_g2 = e1_g1 # calculate the bracketted terms