diff --git a/examples/rectangular/scattering/04_scattering_cut_compare.ipynb b/examples/rectangular/scattering/04_scattering_cut_compare.ipynb new file mode 100644 index 0000000..d7399eb --- /dev/null +++ b/examples/rectangular/scattering/04_scattering_cut_compare.ipynb @@ -0,0 +1,200 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "inputlist_finite=[\n", + " 'cyl_r30nm_h30nm_p375nmx375nm_40x40_mAg_bg1.52_φ0π_θ(-0.025_0.025)π_ψ0.5π_χ0π_f2.15eV_L2.npz',\n", + " 'cyl_r30nm_h30nm_p375nmx375nm_50x50_mAg_bg1.52_φ0π_θ(-0.025_0.025)π_ψ0.5π_χ0π_f2.15eV_L2.npz',\n", + " 'cyl_r30nm_h30nm_p375nmx375nm_70x70_mAg_bg1.52_φ0π_θ(-0.025_0.025)π_ψ0.5π_χ0π_f2.15eV_L2.npz',\n", + " '100x100.npz'\n", + " \n", + "]\n", + "input_infinite = 'cyl_r30nm_h30nm_p375nmx375nm_mAg_bg1.52_φ0_θ(-0.025_0.025)π_ψ0.5π_χ0π_f2.15eV_L3.npz'" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from matplotlib import pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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ZWVlluHDh4/sWEwm08Tt27dbq6qqzJdccsng0aNHjxg9evSI999/P6a3P59ohxc8oZT6r6/bp2maph0/r7/+OpdeeimFhYUkJyfz5ZdfMmHCBAA+//xzNm3aREFBAWVlZRQXF/Piiy/y3HPPAfCrX/2K5ORkgsEgF154IRs2bOCCCy7gzjvvpKamhrS0NF588UVuvvnmA665b98+09tvv51UWlq6yTAMamtrTV2P5+fn+7dt27YF4L//+7/TPv7447jCwkLf1KlTC+699959l1xySeuOHTusl1xyydDS0tJenW0m2jrrRd3s+1ZPFNM3S5YAACAASURBVOREtH79es4991xGjhyJYRiISOd/PJqmaSeK+fPnM3PmTABmzpzJ/PnzO49NmjSJgoL9HTzz8vI488wzO7dfffVVJkyYwPjx49m8eTNbtmxBRLjhhhv429/+RmNjI59++inf+taBf+qTk5ODNpstNHPmzLyXX345MTY2ttsp295///2YOXPmpM2fP78MYOXKlfF333137vDhw0dOnTp1SGtrq6mhoaFXB80faRvdD4E7gMEisqHLoThgZW8UrK95PB5mzJjBnDlzmDRpEg8//DAej6fbe9+apml9pa6ujqVLl7Jp0yZEhGAwiIjw5JNPAhATc+Cdwa7bu3bt4re//S1ffPEFSUlJ3HTTTXg8HgBuvvlmpk6dit1u55prrsFsPjBcWCwW1q1bt3XRokXxCxYsSHr++efTP/vss+1d05SXl1t+8IMf5L/xxhslCQkJIQi3Da5evXprbGzscRtDeKRRdB4wDfgMmNplmaiUur6XytanlixZwoQJE5g0aRIAY8eOpb6+HhE5IN1LL73E4sWL+6KImqZpLFy4kBtvvJHy8nLKysqoqKigoKCAFStWfO25zc3NxMTEkJCQwL59+3jnnXc6j2VlZZGVlcXjjz/OTTfddMi5TU1NRn19vWnGjBlNf/rTnyq2bt3q7Hrc6/XKVVddNeiXv/xl5dixY70d+ydPntz8xBNPpHdsf/LJJ46je+dH7ohqdEqpJqBJRBKVUuW9XKYTwqZNmxgzZkzndsc9782bN/PKK6+wb98+br31ViB822DZsmWkp6fzX//1X8ybN4/ly5cTFxfHr3/9a2w2W1+9DU3T+rn58+fzwAMPHLBv+vTpzJs3jxkzZnzluePGjWP8+PGM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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "f, ax = plt.subplots(3,1)\n", + "u = 1e-12 # inverse micrometer\n", + "for i, fil in enumerate(inputlist_finite):\n", + " dat = np.load(inputlist_finite[i], allow_pickle=True)\n", + " meta = dat['meta'][()]\n", + " theta = meta['theta']\n", + " sz = meta['size']\n", + " N = sz[0]*sz[1]\n", + " scat_n = dat['σ_scat'][0,:] / N / u\n", + " abs_n = dat['σ_abs'][0,:] / N / u\n", + " ext_n = dat['σ_ext'][0,:] / N / u \n", + " ax[0].plot(theta, scat_n, label='$%d \\\\times %d$' % (sz[0], sz[1]))\n", + " ax[1].plot(theta, abs_n)\n", + " ax[2].plot(theta,ext_n)\n", + "dat = np.load(input_infinite, allow_pickle=True)\n", + "meta = dat['meta'][()]\n", + "N = 1\n", + "scat_n = dat['σ_scat'][0,:] / N / u\n", + "abs_n = dat['σ_abs'][0,:] / N / u\n", + "ext_n = dat['σ_ext'][0,:] / N / u\n", + "ax[0].plot(theta, scat_n, label='$\\\\infty \\\\times \\\\infty$')\n", + "ax[1].plot(theta, abs_n)\n", + "ax[2].plot(theta,ext_n)\n", + "for l in range(3):\n", + " ax[l].set_xlim([-.05,.05])\n", + " ax[l].set_ylim([0,0.065])\n", + "for l in range(2):\n", + " ax[l].xaxis.set_ticklabels([])\n", + "ax[1].set_ylabel('$\\\\sigma / \\\\mathrm{\\\\mu m}^{2}$ per particle')\n", + "ax[2].set_xlabel('incident angle / rad')#('$\\\\theta/\\mathrm{rad}$')\n", + "for l, txt in enumerate(['$\\\\sigma_\\\\mathrm{scat}$','$\\\\sigma_\\\\mathrm{abs}$','$\\\\sigma_\\\\mathrm{ext}$']):\n", + " ax[l].text(0.02, 0.95,txt,\n", + " horizontalalignment='left',\n", + " verticalalignment='top',\n", + " transform = ax[l].transAxes)\n", + "f.legend(title=\"Array size\", loc=\"center right\")\n", + "plt.savefig('04_scattering_cuts.pdf')" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['meta',\n", + " 'k_sph',\n", + " 'k_cart',\n", + " 'E_cart',\n", + " 'E_sph',\n", + " 'σ_ext',\n", + " 'σ_abs',\n", + " 'σ_scat',\n", + " 'σ_ext_ir',\n", + " 'σ_abs_ir',\n", + " 'σ_scat_ir',\n", + " 'omega',\n", + " 'wavenumbers']" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dat = np.load(inputlist_finite[0], allow_pickle=True)\n", + "[k for k in dat.keys()]" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'period': (3.75e-07, 3.75e-07),\n", + " 'size': [40, 40],\n", + " 'background': 1.52,\n", + " 'material': 'Ag',\n", + " 'radius': 3e-08,\n", + " 'height': 3e-08,\n", + " 'lMax_extend': 6,\n", + " 'lMax': 2,\n", + " 'eV': [[2.15]],\n", + " 'phi': 0.0,\n", + " 'theta': array([-0.07853982, -0.07696902, -0.07539822, -0.07382743, -0.07225663,\n", + " -0.07068583, -0.06911504, -0.06754424, -0.06597345, -0.06440265,\n", + " -0.06283185, -0.06126106, -0.05969026, -0.05811946, -0.05654867,\n", + " -0.05497787, -0.05340708, -0.05183628, -0.05026548, -0.04869469,\n", + " -0.04712389, -0.04555309, -0.0439823 , -0.0424115 , -0.0408407 ,\n", + " -0.03926991, -0.03769911, -0.03612832, -0.03455752, -0.03298672,\n", + " -0.03141593, -0.02984513, -0.02827433, -0.02670354, -0.02513274,\n", + " -0.02356194, -0.02199115, -0.02042035, -0.01884956, -0.01727876,\n", + " -0.01570796, -0.01413717, -0.01256637, -0.01099557, -0.00942478,\n", + " -0.00785398, -0.00628319, -0.00471239, -0.00314159, -0.0015708 ,\n", + " 0. , 0.0015708 , 0.00314159, 0.00471239, 0.00628319,\n", + " 0.00785398, 0.00942478, 0.01099557, 0.01256637, 0.01413717,\n", + " 0.01570796, 0.01727876, 0.01884956, 0.02042035, 0.02199115,\n", + " 0.02356194, 0.02513274, 0.02670354, 0.02827433, 0.02984513,\n", + " 0.03141593, 0.03298672, 0.03455752, 0.03612832, 0.03769911,\n", + " 0.03926991, 0.0408407 , 0.0424115 , 0.0439823 , 0.04555309,\n", + " 0.04712389, 0.04869469, 0.05026548, 0.05183628, 0.05340708,\n", + " 0.05497787, 0.05654867, 0.05811946, 0.05969026, 0.06126106,\n", + " 0.06283185, 0.06440265, 0.06597345, 0.06754424, 0.06911504,\n", + " 0.07068583, 0.07225663, 0.07382743, 0.07539822, 0.07696902,\n", + " 0.07853982]),\n", + " 'psi': 1.5707963267948966,\n", + " 'chi': 0.0,\n", + " 'output': None,\n", + " 'plot_out': None,\n", + " 'plot': True,\n", + " 'save_gradually': False,\n", + " 'basis_vectors': [(3.75e-07, 0.0), (0.0, 3.75e-07)]}" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dat['meta'][()]" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.3" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +}