Commit 3ac6e316 authored by Antoine RAVETTA's avatar Antoine RAVETTA

end of report, many figures

parent 805bb1a0
......@@ -9,7 +9,7 @@
"import numpy as np\n",
"from HSCN import CrankNicolsonDisp\n",
"\n",
"lambd = 0.7e-6\n",
"lambd = 0.35e-6\n",
"\n",
"k = 2 * np.pi / lambd\n",
"#k_2 = 2e-28\n",
......
......@@ -109,13 +109,13 @@
"metadata": {},
"outputs": [],
"source": [
"Pin_list = [i*1e9 for i in range(2,11)]\n",
"Pin_list = [i*1e9 for i in range(31,41)]\n",
"E_list = []\n",
"zc_list = []\n",
"index_list = []\n",
"\n",
"def marburger_law(p, b=0.367, a=0.852, delta=0):\n",
" return delta + b * zR / np.sqrt((np.sqrt(p/Pc) - a) ** 2 - (1 - a) ** 2)"
" return delta + b * zR / np.sqrt((np.sqrt(p) - a) ** 2 - (1 - a) ** 2)"
]
},
{
......@@ -141,6 +141,7 @@
"outputs": [],
"source": [
"for E in E_list:\n",
" E = E[:,:,crank.n_t//2] \n",
" I = np.abs(E) ** 2\n",
" I = np.nan_to_num(I)\n",
" max_ind = np.unravel_index(np.argmax(I, axis=None), I.shape)\n",
......@@ -149,6 +150,18 @@
" zc_list.append(zc)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"intermediate_powers = np.array(Pin_list) / Pc\n",
"intermediate_zc = np.array(zc_list)\n",
"\n",
"print(len(zc_list))"
]
},
{
"cell_type": "code",
"execution_count": null,
......@@ -159,12 +172,53 @@
"\n",
"%matplotlib inline\n",
"\n",
"Pin_list = np.array(Pin_list)\n",
"zc_list = np.array(zc_list)\n",
"fig, ax = plt.subplots(figsize=(15, 10))\n",
"ax.plot(intermediate_powers, intermediate_zc, label=\"calculated\")\n",
"ax.plot(intermediate_powers, marburger_law(intermediate_powers), label=\"theoretical\")\n",
"ax.legend()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"powers = np.array([])\n",
"zc_total = np.array([])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"powers = np.concatenate((powers, intermediate_powers))\n",
"zc_total =np.concatenate((zc_total, intermediate_zc))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"%matplotlib inline\n",
"\n",
"fig, ax = plt.subplots(figsize=(15, 10))\n",
"\n",
"ax.plot(powers, zc_total, label=\"calculated\")\n",
"ax.plot(powers, marburger_law(powers), label=\"theoretical\")\n",
"\n",
"ax.set_title(\"Marburger's law test, distance of collapse against the power\", size=20)\n",
"ax.set_xlabel(\"Power / Pcr\", size=20)\n",
"ax.set_ylabel(\"z_c (m)\", size=20)\n",
"ax.legend()\n",
"\n",
"plt.plot(Pin_list, zc_list, label=\"calculated\")\n",
"plt.plot(Pin_list, marburger_law(Pin_list), label=\"theoretical\")\n",
"plt.legend()"
"fig.savefig(\"marburger_basic.png\", dpi=300)"
]
},
{
......@@ -173,7 +227,9 @@
"metadata": {},
"outputs": [],
"source": [
"print(index_list)"
"print(\"Does the maximum only occurs at the center of the beam in t ? No but shenanigans with NaNs\")\n",
"print(index_list)\n",
"print(powers)"
]
},
{
......
......@@ -556,7 +556,7 @@
"w0 = 1e-3\n",
"tp = 85e-15\n",
"#tp = 1\n",
"Pin = 4e9\n",
"Pin = 1.5e9\n",
"\n",
"diff_coeff = 1j*1/(2 * k)\n",
"#diff_coeff = 0\n",
......@@ -577,7 +577,7 @@
"source": [
"crank = CrankNicolsonFocus()\n",
"\n",
"crank.set_grid(r_max=2.8e-3, n_r=100, z_min=0, z_max=6, n_z=300, t_min=-5e-13, t_max=5e-13, n_t=100)\n",
"crank.set_grid(r_max=2.8e-3, n_r=100, z_min=0, z_max=15, n_z=600, t_min=-5e-13, t_max=5e-13, n_t=100)\n",
"crank.set_parameters(Dr=diff_coeff, Dt=0, V=potential, f=kerr)\n",
"\n",
"crank.solve(initial_enveloppe(crank.r_pts, crank.t_pts, w0, tp, Pin))"
......@@ -602,7 +602,23 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"We transform all the NaNs into zeros"
"We transform all the NaNs into zeros\n",
"\n",
"Do we take the maximum only at t=0 ? this is really just a numerical issue"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"E = crank.get_E()\n",
"I = np.abs(E) ** 2\n",
"J = np.nan_to_num(I)\n",
"index = np.unravel_index(np.argmax(J, axis=None), J.shape)\n",
"print(index)\n",
"print(index[0] * crank.delta_z)"
]
},
{
......@@ -612,6 +628,7 @@
"outputs": [],
"source": [
"E = crank.get_E()\n",
"E = E[:,:,crank.n_t//2]\n",
"I = np.abs(E) ** 2\n",
"J = np.nan_to_num(I)\n",
"index = np.unravel_index(np.argmax(J, axis=None), J.shape)\n",
......@@ -625,10 +642,11 @@
"metadata": {},
"outputs": [],
"source": [
"number_of_points = 90\n",
"number_of_points = 470\n",
"\n",
"fig, ax = plt.subplots()\n",
"mesh = ax.pcolormesh(np.real(crank.r_pts), np.real(crank.z_pts[:number_of_points]), np.abs(E[:number_of_points,:,crank.n_t//2])**2)\n",
"#mesh = ax.pcolormesh(np.real(crank.r_pts), np.real(crank.z_pts[:number_of_points]), np.abs(E[:number_of_points,:,crank.n_t//2])**2)\n",
"mesh = ax.pcolormesh(np.real(crank.r_pts), np.real(crank.z_pts[:number_of_points]), np.abs(E[:number_of_points,:,50])**2)\n",
"plt.colorbar(mesh, ax=ax)\n",
"ax.set_xlim(0,5e-4)\n",
"ax.set_ylim((number_of_points - 10) * crank.delta_z, (number_of_points - 1) * crank.delta_z)\n",
......@@ -664,8 +682,16 @@
"metadata": {},
"outputs": [],
"source": [
"fig, ax = plt.subplots()\n",
"ax.plot(crank.r_pts, np.abs(E[65, :, crank.n_t // 2])**2)"
"fig, ax = plt.subplots(figsize=(15,10))\n",
"ax.set_xlim([0, 0.0005])\n",
"ax.set_xlabel(\"r (m)\", size = 20)\n",
"ax.set_ylabel(\"ln(|E|²)\", size = 20)\n",
"ax.set_title(\"Logarithm of the beam intensity close to r = 0 for different z\", size = 20)\n",
"for i in range(5):\n",
" ax.plot(crank.r_pts, np.log(np.abs(E[87+i, :])**2), label=\"z = {:3.2f} m\".format((87+i)*crank.delta_z))\n",
"ax.legend()\n",
"\n",
"fig.savefig(\"energy_divergence.png\", dpi=300)"
]
},
{
......
......@@ -145,7 +145,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Evolution of the wavepacket along t at r=0 against z"
"## Animation : evolution of the wavepacket along t at r=0 against z"
]
},
{
......@@ -155,29 +155,38 @@
"outputs": [],
"source": [
"fig, ax = plt.subplots(figsize=(8,8))\n",
"ax.plot(t_pts, E_matrix[0,0,:])\n",
"ax.set_title(\"Beam temporal extension at z=0\")\n",
"ax.plot(t_pts, E_matrix[0,0,:], label=\"calculated\")\n",
"ax.set_title(\"Beam temporal extension at z=0.0 m\")\n",
"ax.set_xlabel('t (s)')\n",
"ax.set_ylabel('E (V/m)')\n",
"\n",
"popt, pcov = curve_fit(gaussian_temp, t_pts, E_matrix[0,0,:], p0=[1e-3, 17e-16, 1])\n",
"ax.plot(t_pts, [gaussian_temp(t, *popt) for t in t_pts], '--')\n",
"ax.plot(t_pts, [gaussian_temp(t, *popt) for t in t_pts], '--', label=\"fitted\")\n",
"\n",
"ax.legend()\n",
"\n",
"temp_sigmas = []\n",
"temp_error = []\n",
" \n",
"\n",
"def update(i):\n",
" ax.cla()\n",
" ax.plot(t_pts, E_matrix[i,0,:])\n",
" ax.set_title(\"Beam temporal extension at z=%d\" %i)\n",
" ax.plot(t_pts, E_matrix[i,0,:], label=\"calculated\")\n",
" ax.set_title(\"Beam temporal extension at z={:2.1f} m\".format(i*10/E_matrix.shape[0]))\n",
" ax.set_xlabel('t (s)')\n",
" ax.set_ylabel('E (V/m)')\n",
" popt, pcov = curve_fit(gaussian_temp, t_pts, E_matrix[i,0,:], p0=[1e-3, 17e-16, 1])\n",
" ax.plot(t_pts, [gaussian_temp(t, *popt) for t in t_pts], '--')\n",
" ax.plot(t_pts, [gaussian_temp(t, *popt) for t in t_pts], '--', label=\"fitted\")\n",
" ax.legend()\n",
" temp_sigmas.append(popt[1])\n",
" temp_error.append(np.diag(pcov)[1])\n",
" if i == 99:\n",
" fig.savefig(\"temp_fit_end.png\", dpi=300)\n",
"\n",
" \n",
"ani = animation.FuncAnimation(fig, update, frames=E_matrix.shape[0], interval=100, repeat=False)"
"ani = animation.FuncAnimation(fig, update, frames=E_matrix.shape[0], interval=100, repeat=False)\n",
"\n",
"#fig.savefig(\"temp_fit_init.png\", dpi=300)"
]
},
{
......@@ -198,17 +207,18 @@
"source": [
"fig, ax = plt.subplots(figsize=(9,7))\n",
"\n",
"ax.plot(z_pts, temp_sigmas[1:], label=\"fitted waists\")\n",
"\n",
"def func(x, a, c):\n",
" return c * np.sqrt(1 + a * x ** 2)\n",
"\n",
"ax.errorbar(z_pts, np.array(temp_sigmas[1:]), fmt=':', yerr=np.array(temp_error[1:]), label='fitted waists')\n",
"\n",
"popt, pcov = curve_fit(func, z_pts, temp_sigmas[1:])\n",
"\n",
"ax.plot(z_pts, [func(z, *popt) for z in z_pts], '--', label=\"tp * (1 + (z/zT)^2)^(1/2) \\n tp = {:e} m \\n zT = {:f} m\".format(popt[1], 1/np.sqrt(popt[0])))\n",
"ax.plot(z_pts, [func(z, *popt) for z in z_pts], '--',\n",
" label=\"tp * (1 + (z/zT)^2)^(1/2) \\n tp = {:e} s \\n zT = {:f} m\".format(popt[1], 1/np.sqrt(popt[0])))\n",
"\n",
"ax.set_title(\"Beam temporal width evolution along z and its fit\")\n",
"ax.set_ylabel(\"tp(z) (m)\")\n",
"ax.set_ylabel(\"tp(z) (s)\")\n",
"ax.set_xlabel(\"z (m)\")\n",
"\n",
"ax.legend()\n",
......@@ -216,6 +226,13 @@
"fig.savefig(\"temp_characteristic_length.png\", dpi=300)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Animation : evolution of the wavepacket along r at t=max of the gaussian against z"
]
},
{
"cell_type": "code",
"execution_count": null,
......@@ -223,28 +240,43 @@
"outputs": [],
"source": [
"fig, ax = plt.subplots(figsize=(8,8))\n",
"ax.plot(full_r_pts, np.concatenate((np.flip(E_matrix[0,:,E_matrix.shape[2]//2], axis=0), E_matrix[0,:,E_matrix.shape[2]//2])))\n",
"ax.set_title(\"Beam spatial extension at z=0\")\n",
"ax.plot(full_r_pts, np.concatenate((np.flip(E_matrix[0,:,E_matrix.shape[2]//2], axis=0),\n",
" E_matrix[0,:,E_matrix.shape[2]//2])),\n",
" label=\"calculated\")\n",
"ax.set_title(\"Beam spatial extension at z=0.0 m\")\n",
"ax.set_xlabel('r (m)')\n",
"ax.set_ylabel('E (V/m)')\n",
"\n",
"popt, pcov = curve_fit(gaussian_space, full_r_pts, np.concatenate((np.flip(E_matrix[0,:,E_matrix.shape[2]//2], axis=0), E_matrix[0,:,E_matrix.shape[2]//2])), p0=[1e-3, 1])\n",
"ax.plot(full_r_pts, [gaussian_space(r, *popt) for r in full_r_pts], '--')\n",
"ax.plot(full_r_pts, [gaussian_space(r, *popt) for r in full_r_pts], '--', label=\"fitted\")\n",
"\n",
"ax.legend()\n",
"\n",
"space_sigmas = []\n",
"space_error = []\n",
"\n",
"def update(i):\n",
" ax.cla()\n",
" ax.plot(full_r_pts, np.concatenate((np.flip(E_matrix[i,:,E_matrix.shape[2]//2], axis=0), E_matrix[i,:,E_matrix.shape[2]//2])))\n",
" ax.set_title(\"Beam spatial extension at z=%d\" %i)\n",
" ax.plot(full_r_pts, np.concatenate((np.flip(E_matrix[i,:,E_matrix.shape[2]//2], axis=0),\n",
" E_matrix[i,:,E_matrix.shape[2]//2])),\n",
" label=\"calculated\")\n",
" ax.set_title(\"Beam spatial extension at z={:2.1f} m\".format(i*10/E_matrix.shape[0]))\n",
" ax.set_xlabel('r (r)')\n",
" ax.set_ylabel('E (V/m)')\n",
" popt, pcov = curve_fit(gaussian_space, full_r_pts, np.concatenate((np.flip(E_matrix[i,:,E_matrix.shape[2]//2], axis=0), E_matrix[i,:,E_matrix.shape[2]//2])), p0=[1e-3, 1])\n",
" ax.plot(full_r_pts, [gaussian_space(r, *popt) for r in full_r_pts], '--')\n",
" popt, pcov = curve_fit(gaussian_space, full_r_pts,\n",
" np.concatenate((np.flip(E_matrix[i,:,E_matrix.shape[2]//2], axis=0),\n",
" E_matrix[i,:,E_matrix.shape[2]//2])), p0=[1e-3, 1])\n",
" ax.plot(full_r_pts, [gaussian_space(r, *popt) for r in full_r_pts], '--', label=\"fitted\")\n",
" space_sigmas.append(popt[0])\n",
" space_error.append(np.diag(pcov)[0])\n",
" ax.legend()\n",
" if i == 99:\n",
" fig.savefig(\"spatial_fit_end.png\", dpi=300)\n",
"\n",
" \n",
"ani = animation.FuncAnimation(fig, update, frames=E_matrix.shape[0], interval=100, repeat=False)"
"ani = animation.FuncAnimation(fig, update, frames=E_matrix.shape[0], interval=100, repeat=False)\n",
"\n",
"#fig.savefig(\"spatial_fit_init.png\", dpi=300)"
]
},
{
......@@ -255,14 +287,16 @@
"source": [
"fig, ax = plt.subplots(figsize=(9,7))\n",
"\n",
"ax.plot(z_pts, space_sigmas[1:], label=\"fitted waists\")\n",
"ax.errorbar(z_pts, np.array(space_sigmas[1:]), fmt=':', yerr=np.array(space_error[1:]), label='fitted waists')\n",
"\n",
"\n",
"def func(x, a, c):\n",
" return c * np.sqrt(1 + a * x ** 2)\n",
"\n",
"popt, pcov = curve_fit(func, z_pts, space_sigmas[1:])\n",
"\n",
"ax.plot(z_pts, [func(z, *popt) for z in z_pts], '--', label=\"w0 * (1 + (z/zR)^2)^(1/2) \\n w0 = {:f} m \\n zR = {:f} m\".format(popt[1], 1/np.sqrt(popt[0])))\n",
"ax.plot(z_pts, [func(z, *popt) for z in z_pts], '--',\n",
" label=\"w0 * (1 + (z/zR)^2)^(1/2) \\n w0 = {:f} m \\n zR = {:f} m\".format(popt[1], 1/np.sqrt(popt[0])))\n",
"\n",
"ax.set_title(\"Beam spatial width evolution along z and its fit\")\n",
"ax.set_ylabel(\"w(z) (m)\")\n",
......@@ -287,7 +321,7 @@
"cb = fig.colorbar(cm)\n",
"cb.set_label('E (V/m)')\n",
"\n",
"plt.savefig('diffraction_init.png', dpi=300)"
"#plt.savefig('diffraction_init.png', dpi=300)"
]
},
{
......@@ -304,7 +338,14 @@
"cb = fig.colorbar(cm)\n",
"cb.set_label('E (V/m)')\n",
"\n",
"plt.savefig('diffraction_end.png', dpi=300)"
"plt.savefig('strong_dispersion_end.png', dpi=300)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Animated colormesh : E(r, t) evolution along z "
]
},
{
......@@ -313,9 +354,11 @@
"metadata": {},
"outputs": [],
"source": [
"fig, ax = plt.subplots()\n",
"fig, ax = plt.subplots(figsize=(9,7))\n",
"ax.pcolormesh(t_pts, full_r_pts, np.concatenate((np.flip(E_matrix[0,:,:], axis=0), E_matrix[0,:,:])))\n",
"ax.set_title('Position=%d' % 0)\n",
"ax.set_title('Position=0.0 m')\n",
"ax.set_xlabel('t (s)')\n",
"ax.set_ylabel('r (m)')\n",
"\n",
"div = make_axes_locatable(ax)\n",
"cax = div.append_axes('right', '5%', '5%')\n",
......@@ -323,9 +366,10 @@
"\n",
"def update(i):\n",
" cm = ax.pcolormesh(t_pts, full_r_pts, np.concatenate((np.flip(E_matrix[i,:,:], axis=0), E_matrix[i,:,:])))\n",
" ax.set_title('Position=%d' % i)\n",
" ax.set_title('Position={:2.1f} m'.format(i*10/E_matrix.shape[0]))\n",
" cax.cla()\n",
" fig.colorbar(cm, cax=cax)\n",
" cb =fig.colorbar(cm, cax=cax)\n",
" cb.set_label('E (V/m)')\n",
"\n",
" \n",
"ani = animation.FuncAnimation(fig, update, frames=E_matrix.shape[0], interval=100, repeat=True)"
......
......@@ -69,37 +69,16 @@
"metadata": {},
"outputs": [],
"source": [
"fig, ax = plt.subplots(figsize=(15,10))\n",
"\n",
"fig, [[ax1, ax2, ax3], [ax4, ax5, ax6], [ax7, ax8, ax9]] = plt.subplots(3, 3, figsize=(15,10))\n",
"\n",
"ax1.errorbar(z_pts, np.array(sigmas), yerr=np.array(errors_sig), label='fitted')\n",
"ax1.plot(z_pts, beam_width(z_pts), '--', label='theoretical')\n",
"ax1.set_ylabel('beam width')\n",
"ax1.legend()\n",
"\n",
"ax2.plot(z_pts, np.array(powers), label='fitted')\n",
"ax2.plot(z_pts, np.vectorize((lambda x : Pin))(z_pts), '--', label='theoretical')\n",
"ax2.set_ylabel('amplitude decrease')\n",
"ax2.legend()\n",
"\n",
"ax3.plot(z_pts, np.array(errors_sig), label='sigma error')\n",
"ax3.plot(z_pts, np.array(errors_pow), label='amplitude error')\n",
"ax3.set_ylabel('variance error')\n",
"ax3.legend()\n",
"\n",
"ax4.plot(z_pts, np.array(sigmas) - beam_width(z_pts))\n",
"ax4.set_ylabel('sigma difference')\n",
"\n",
"ax5.plot(z_pts, np.array(powers) - (lambda x : Pin)(z_pts))\n",
"ax5.set_ylabel('amplitude difference')\n",
"\n",
"ax7.plot(z_pts, (np.array(sigmas) - beam_width(z_pts)) / np.array(sigmas))\n",
"ax7.set_ylabel('sigma difference')\n",
"\n",
"ax8.plot(z_pts, (np.array(powers) - (lambda x : Pin)(z_pts)) / np.array(powers))\n",
"ax8.set_ylabel('amplitude difference')\n",
"ax.set_title(\"Evolution of the beam width along z : theory and calculation\", size=20)\n",
"ax.errorbar(z_pts, np.array(sigmas), yerr=np.array(errors_sig), label='fitted')\n",
"ax.plot(z_pts, beam_width(z_pts), '--', label='theoretical')\n",
"ax.set_ylabel('beam width (m)', size=20)\n",
"ax.set_xlabel('z (m)', size=20)\n",
"ax.legend()\n",
"\n",
"#fig.tight_layout()"
"#plt.savefig(\"check_theory_sigma\", dpi=300)"
]
},
{
......@@ -110,14 +89,23 @@
"source": [
"fig, ax = plt.subplots(figsize=(15,10))\n",
"\n",
"ax.set_title(\"Evolution of the beam width along z : theory and calculation\", size=20)\n",
"ax.errorbar(z_pts, np.array(sigmas), yerr=np.array(errors_sig), label='fitted')\n",
"ax.plot(z_pts, beam_width(z_pts), '--', label='theoretical')\n",
"ax.set_title(\"Fitted evolution of the beam width along z\", size=20)\n",
"\n",
"ax.errorbar(z_pts, np.array(sigmas), yerr=np.array(errors_sig), label='fitted waists', fmt=':')\n",
"\n",
"def func(x, a, c):\n",
" return c * np.sqrt(1 + a * x ** 2)\n",
"\n",
"popt, pcov = curve_fit(func, z_pts, np.array(sigmas))\n",
"\n",
"ax.plot(z_pts, [func(z, *popt) for z in z_pts], '--',\n",
" label=\"w0 * (1 + (z/zR)^2)^(1/2) \\n w0 = {:f} m \\n zR = {:f} m\".format(popt[1], 1/np.sqrt(popt[0])))\n",
"\n",
"ax.set_ylabel('beam width (m)', size=20)\n",
"ax.set_xlabel('z (m)', size=20)\n",
"ax.legend()\n",
"\n",
"plt.savefig(\"check_theory_sigma\", dpi=300)"
"plt.savefig(\"fit_theory_sigma\", dpi=300)"
]
},
{
......@@ -136,7 +124,46 @@
"ax.legend()\n",
"ax.set_ylim([0, 2])\n",
"\n",
"plt.savefig(\"check_theory_power\", dpi=300)"
"#plt.savefig(\"check_theory_power\", dpi=300)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"\n",
"fig, [[ax1, ax2, ax3], [ax4, ax5, ax6], [ax7, ax8, ax9]] = plt.subplots(3, 3, figsize=(15,10))\n",
"\n",
"ax1.errorbar(z_pts, np.array(sigmas), yerr=np.array(errors_sig), label='fitted')\n",
"ax1.plot(z_pts, beam_width(z_pts), '--', label='theoretical')\n",
"ax1.set_ylabel('beam width')\n",
"ax1.legend()\n",
"\n",
"ax2.plot(z_pts, np.array(powers), label='fitted')\n",
"ax2.plot(z_pts, np.vectorize((lambda x : Pin))(z_pts), '--', label='theoretical')\n",
"ax2.set_ylabel('amplitude decrease')\n",
"ax2.legend()\n",
"\n",
"ax3.plot(z_pts, np.array(errors_sig), label='sigma error')\n",
"ax3.plot(z_pts, np.array(errors_pow), label='amplitude error')\n",
"ax3.set_ylabel('variance error')\n",
"ax3.legend()\n",
"\n",
"ax4.plot(z_pts, np.array(sigmas) - beam_width(z_pts))\n",
"ax4.set_ylabel('sigma difference')\n",
"\n",
"ax5.plot(z_pts, np.array(powers) - (lambda x : Pin)(z_pts))\n",
"ax5.set_ylabel('amplitude difference')\n",
"\n",
"ax7.plot(z_pts, (np.array(sigmas) - beam_width(z_pts)) / np.array(sigmas))\n",
"ax7.set_ylabel('sigma difference')\n",
"\n",
"ax8.plot(z_pts, (np.array(powers) - (lambda x : Pin)(z_pts)) / np.array(powers))\n",
"ax8.set_ylabel('amplitude difference')\n",
"\n",
"#fig.tight_layout()"
]
},
{
......
figures/HSCN/spatial_fit_end.png

156 KB | W: | H:

figures/HSCN/spatial_fit_end.png

147 KB | W: | H:

figures/HSCN/spatial_fit_end.png
figures/HSCN/spatial_fit_end.png
figures/HSCN/spatial_fit_end.png
figures/HSCN/spatial_fit_end.png
  • 2-up
  • Swipe
  • Onion skin
figures/HSCN/spatial_fit_init.png

153 KB | W: | H:

figures/HSCN/spatial_fit_init.png

145 KB | W: | H:

figures/HSCN/spatial_fit_init.png
figures/HSCN/spatial_fit_init.png
figures/HSCN/spatial_fit_init.png
figures/HSCN/spatial_fit_init.png
  • 2-up
  • Swipe
  • Onion skin
figures/HSCN/temp_fit_end.png

173 KB | W: | H:

figures/HSCN/temp_fit_end.png

164 KB | W: | H:

figures/HSCN/temp_fit_end.png
figures/HSCN/temp_fit_end.png
figures/HSCN/temp_fit_end.png
figures/HSCN/temp_fit_end.png
  • 2-up
  • Swipe
  • Onion skin
figures/HSCN/temp_fit_init.png

137 KB | W: | H:

figures/HSCN/temp_fit_init.png

129 KB | W: | H:

figures/HSCN/temp_fit_init.png
figures/HSCN/temp_fit_init.png
figures/HSCN/temp_fit_init.png
figures/HSCN/temp_fit_init.png
  • 2-up
  • Swipe
  • Onion skin
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment