hartree = 4.36e-18 # J bohr_radius = 5.29e-11 # m # plot S vs C3 C3 = np.linspace(0.1, 1.5, 20) S_max = np.zeros(C3.size) S_kd = np.zeros(C3.size) s_result_kd = cs.calc_sensitivity_kd(npv.I_inc_nom, npv.L_nom, npv.v_nom, npv.d_nom) for i in range(C3.size): result = cs.calc_sensitivity_vdw( npv.I_inc_nom, npv.l_nom, npv.L_nom, npv.v_nom, C3[i] * hartree * bohr_radius ** 3, npv.d_nom ) S_max[i] = result[0] S_kd[i] = s_result_kd print result l1, l2 = plt.plot(C3, S_max, "b-", C3, S_kd, "r-") plt.xlabel("C3 (atomic units)") plt.ylabel("sensitivity (rad/s / sqrt(Hz))") l1_str = "material gratings, optimal open fraction = " + str(cs.f_max(npv.d_nom)) plt.legend( (l1, l2), ("material gratings, optimal open fraction", "Kapitza-Dirac gratings (open fraction = 0.5)"), loc="upper right", )
import nominal_param_values as npv v = 50.0 # m/s d = np.linspace(80.0e-9,400.0e-9,30) d_plot = d*1.0e9 S_vdw = np.zeros(d.size, dtype=np.float) S_kd = np.zeros(d.size, dtype=np.float) f1 = np.zeros(d.size, dtype=np.float) f2 = np.zeros(d.size, dtype=np.float) f_max = cs.f_max(d) for i in range(d.size): print d[i] result = cs.calc_sensitivity_vdw(npv.I_inc_nom, npv.l_nom, npv.L_nom, npv.v_nom, npv.C3_nom, d[i]) S_vdw[i] = result[0] f1[i] = result[2] f2[i] = result[3] S_kd[i] = cs.calc_sensitivity_kd(npv.I_inc_nom, npv.L_nom, npv.v_nom, d[i]) plt.figure(figsize=plt.figaspect(1.4)) plt.subplot(211) l1, l2 = plt.plot(d_plot, S_vdw, 'b-', d_plot, S_kd, 'r-') plt.xlabel('grating period (nm)') plt.ylabel('sensitivity (rad/s / sqrt(Hz))') plt.legend((l1, l2), ('material gratings', 'Kapitza-Dirac gratings'), loc='upper right') plt.subplot(212) l3, l4, l5 = plt.plot(d_plot, f_max, 'k-', d_plot, f1, 'g-', d_plot, f2, 'm-')
import time import numpy as np import matplotlib.pyplot as plt import calc_sensitivity as cs import nominal_param_values as npv # NOTE: unreliable v = np.linspace(20.0,200.0,20) S = np.zeros(v.size, dtype=np.float) d = np.zeros(v.size, dtype=np.float) f1 = np.zeros(v.size, dtype=np.float) f2 = np.zeros(v.size, dtype=np.float) for i in range(v.size): print v[i] S_result = cs.calc_sensitivity_vdw(npv.I_inc_nom, npv.l_nom, npv.L_nom, v[i], npv.C3_nom) S[i] = S_result[0] d[i] = S_result[1] f1[i] = S_result[2] f2[i] = S_result[3] print S_result d_plot = d*1.0e9 plt.figure(figsize=(800,1200)) plt.subplot(311) plt.plot(v, S, 'bo') plt.ylabel("sensitivity (rad/s / sqrt(Hz))") plt.xlabel("velocity (m/s)") plt.ticklabel_format(style='sci', axis='y', scilimits=(0,0)) plt.subplot(312)
# plot S vs d and v v = np.linspace(20.0, 100.0, 5) d = np.linspace(80.0e-9, 400.0e-9, 15) V, D = np.meshgrid(v,d*1.0e9) S = np.zeros([d.size, v.size], dtype = np.float) S_kd = np.zeros([d.size, v.size], dtype = np.float) f1 = np.zeros([d.size, v.size], dtype = np.float) f2 = np.zeros([d.size, v.size], dtype = np.float) for i in range(v.size): for j in range(d.size): print i,j result = cs.calc_sensitivity_vdw(npv.I_inc_nom, npv.l_nom, npv.L_nom, v[i], npv.C3_nom, fixed_d = d[j]) S[j][i] = result[0] f1[j][i] = result[2] f2[j][i] = result[3] S_kd[j][i] = cs.calc_sensitivity_kd(npv.I_inc_nom, npv.L_nom, v[i], d[j]) fig = plt.figure(figsize=plt.figaspect(0.8)) ax = fig.add_subplot(2, 2, 1, projection='3d') surf1 = ax.plot_surface(V, D, S, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=True) ax.set_xlabel("v (m/s)") ax.set_ylabel("grating period (um)") ax.set_zlabel("S (rad/s / sqrt(Hz))") ax.set_title("a. material gratings") ax = fig.add_subplot(2, 2, 2, projection='3d')
#!/usr/bin/python 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 S vs C3 f = np.linspace(0.1, 0.99, 20) S = np.zeros(f.size) for i in range(f.size): S[i] = cs.calc_sensitivity_vdw(npv.I_inc_nom, npv.l_nom, npv.L_nom, npv.v_nom, npv.C3_nom, npv.d_nom, f[i])[0] plt.semilogy(f, S, 'bo') plt.xlabel("g1 and g2 open fraction") plt.ylabel("sensitivity (rad/s / sqrt(Hz))") plt.show()
import time import numpy as np import matplotlib.pyplot as plt import calc_sensitivity as cs import nominal_param_values as npv # Replicates Fig 5 of the Cronin 2005 paper, "Limitations on nanotechnology..." d = np.linspace(10.0e-9,250.0e-9,30) d_plot = d*1.0e9 S_vdw = np.zeros(d.size, dtype=np.float) S_kd = np.zeros(d.size, dtype=np.float) for i in range(d.size): S_vdw[i] = cs.calc_sensitivity_vdw(npv.I_inc_nom, 150.0e-9, 1.0, 1000.0, 4.8e-49, d[i], 0.5)[0] S_kd[i] = cs.calc_sensitivity_kd(npv.I_inc_nom, 1.0, 1000.0, d[i]) S_vdw_inv_sq = 1/S_vdw**2 S_kd_inv_sq = 1/S_kd**2 S_vdw_inv_sq_norm = S_vdw_inv_sq / np.linalg.norm(S_vdw_inv_sq) S_kd_inv_sq_norm = S_kd_inv_sq / np.linalg.norm(S_kd_inv_sq) plt.plot(d_plot, S_vdw_inv_sq_norm, 'bo', d_plot, S_kd_inv_sq_norm, 'ro') plt.xlabel('grating period (nm)') plt.ylabel('normalized inverse-squared sensitivity') plt.show()