{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Fast Fourier Transform (FFT)\n", "\n", "Fast Fourier Transform (FFT) is used to determine the field at a distance far away from the mask,\n", "\n", "$$z\\gg\\frac{\\pi}{\\lambda}\\left(\\xi^{2}+\\eta^{2}\\right)_{\\max},$$\n", "\n", "where $\\xi$ and $\\eta$ are the locations of the mask. The field can be computed using the following integral (in 2D):\n", "\n", "\n", "$$E(x,y,z)=\\frac{e^{ik(z+\\frac{x^{2}+y^{2}}{2z})}}{i\\lambda z}\\iint E_{0}(\\xi,\\eta)e^{-i\\frac{k}{z}(x\\xi+y\\eta)}d\\xi d\\eta,$$\n", "\n", "which can be computed as a FFT:\n", "\n", "$$E(x,y,z)=\\frac{e^{ik(z+\\frac{x^{2}+y^{2}}{2z})}}{i\\lambda z}TF\\left[E_{0}(\\xi,\\eta)\\right].$$" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2020-05-01T22:59:18.340256Z", "start_time": "2020-05-01T22:59:16.547227Z" } }, "outputs": [], "source": [ "from diffractio import sp, nm, plt, np, mm, degrees, um\n", "from diffractio.scalar_fields_X import Scalar_field_X\n", "from diffractio.scalar_sources_X import Scalar_source_X\n", "from diffractio.scalar_masks_X import Scalar_mask_X" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## X Scheme" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2020-05-01T22:59:20.459273Z", "start_time": "2020-05-01T22:59:20.207712Z" } }, "outputs": [], "source": [ "x0 = np.linspace(-50 * um, 50 * um, 1024 * 32)\n", "wavelength = 0.5 * um" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# plane wave\n", "u0 = Scalar_source_X(x=x0, wavelength=wavelength)\n", "u0.plane_wave(A=1, theta=0)\n", "\n", "# slit\n", "t0 = Scalar_mask_X(x=x0, wavelength=wavelength)\n", "t0.slit(x0=0, size=10 * um)\n", "t0.draw()\n", "\n", "u1 = u0 * t0" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "u2 = u1.fft(z=2 * mm, remove0=False, new_field=True)\n", "u2.draw(kind=\"intensity\", logarithm=False, normalize=True)\n", "plt.xlim(-500, 500)\n", "plt.ylim(bottom=0)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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8jBs2DD06dMH9957b7n2qVu3rk+b2hwDj7uu040bN8b27dtd0lUVL7zwAmrVqoURI0ZcURmIrBRM3amJAm758uV4+umnsXPnznLvU716dVy+fBmAbwOPJ56a2vbu3YsOHTrg8uXLOHPmzBWVgchKDDxEDhITE3Hdddfh2muvxYEDB8q9n61JLD8//4oHCbUFHk8/FK1VqxYuXbrkkv7JJ5/gz3/+MwYNGoQPPvjgispAZCUGHiJTVlaWfVy0u+66C5988onT9vKMGFBSUuJyD6iibIHH0/0iT3Pz5OTkIDY2Fs2aNbP/rogoGDHwEJl27NiBX//61wCAOnXquNQqsrKyUKdOHcvLERUVhby8PJw7dw716tUr1z75+fmIjo52SuPQOhSsGHiITDt37kS3bt3s66X/cbv7DU9pvpgp1DbZ2/nz58sdeBITE9GhQwf7elxcHA4fPnzFZSGyAgMPkSk3N9ep1hAZGYn8/Hz7+qlTp9CkSRO3+/pyampb4KlIjWffvn1O3at79uyJbdu2+axMRL7EwEMh49ixY7h48aLH7aWDxzXXXIPExET7urcaj6raH1fKMfDUrVvXbZ5q1arZe9IBQFJSEtq1a2dfj4uLw5EjRzyeIzk52WvPOSIrMfBQSLh48SJmzpyJ4cOHu+1qfP78eZd/8p06dcK+ffvs695qPGV1ga4Ix6Y2T/eUGjVqBMfBcIuLi+2zogLea2AffvghVq9ejZkzZ/qkvEQVxcBDIWHBggWYMGECJk+ejPfff99l+8GDB9GxY0entHbt2iEpKcm+7q0GEhsb67U2VRFRUVHIzc1FdnY2ateu7TZPZYfNUVXs3r0bI0aMQLNmzXDw4MErLS5RhTHwUEjIyspCkyZN0KxZM5w6dcqlSezAgQO49tprndKqVauG4uJipzRPNYmYmBifBR5bjefixYuIiYlxm8dxJlJPXbhr1arlUqb4+Hh7z7377rsP69ev90mZiSqCgYeqPFVFYWGhx+2JiYm4+uqr7etXX301UlJSnPIcP34cLVu2LL1rufky8ERERODy5csoKipyaj5z1KRJE5w6dQqAce/JXRPgtddei59++skp7YsvvsBtt90GwBjq58KFC17L4u26ElUWAw9VeTNnzsS4ceOwdu1at9s3btyIO+64w75+880345tvvnHKc6U//IyJiUF2dnal968oxxpPamoqWrVq5ZLH3egLFy9eRGxsrH29RYsWOHHC/SwjkydPxlNPPcXeceRzDDxUpe3YsQMtWrTArFmz8O2337r9hn7u3Dn7iASA0ePr0KFDTnk8NaGVNUWBjS/v8ZRHjRo1UFBQAMBz4GndujWOHj1qXy8uLkZ4eLhTnptvvhnfffedy75bt25Fp06d8Oabb2LFihWceI58ioGHgpaqYt26dTh58qTHPGvXrsXf/vY3AMCDDz6IFStWuByjtNJB5vLly6hevbrb4zdv3hwnTpxASUmJ155i/q7xAD8/N0+Bp/Q9qv379+O6665zytOpUyf8+OOPLvtu2LAB9957L0QEd911Fz799FOPZdi2bRsSEhKu4JlQqGHgoaD14osvIiIiAjNmzEBmZqbL9qysLMTExNiDxg033ODStJScnIy2bdu67Gsblgbw/I8bAFq1aoXU1FS33a0dxcTEIDMz0/LZR90p/cNXTxISEtC1a1entPDwcJfazKVLlxAbG2tveuzVqxe+/vprt8dcvnw5Dh06hM8//xxbtmyp3BOgkMPAQwGxevVqLFiwwONvXw4cOIB69erh9ttvx9SpUzFv3jyXPJs2bULfvn3t6yKCiIgIexMUAGzbtg09e/Z02bdjx472rsRHjhxx+vGlI1vg8fYbHsBoasvIyChXAPA3W80oOTkZbdq0cdle+jdImzZtwp/+9Cf7uoggKirKaRQHwLhftHfvXgwaNAjDhw/H2rVrPTbJHTlyBFOnTnXqnk6hi4GHfEpV8dNPP3n9Bf8777yDiIgI9O7dG9OmTXOb54MPPsDgwYMBGAN2RkdHu/TA2r17Nzp37uyU9oc//AFbt261rx8+fNipR5uNYxNTUlIS2rdv77YcLVu2RFpaWpnjtEVHR+PUqVN+DTzlGaanfv369knqSkpKXO7xAMD111+P/fv329d37dqF7t27O+X5wx/+4FKjWbVqFR5++GF7WTw1yV24cAGvv/46hg4dijfffBPHjh3zWN7c3FykpqaW+byoamPgoXLLyMhAbm6ux+15eXl46qmn8O2332Lo0KEu35AB49f/J06cwB133IEOHTrg+uuvx7fffuuU59KlS6hZsyYiIiLsaX/961+xcuVK+7qqQkRc/vn27NnTaXZOT/9s27Zti+TkZHuZGjVq5PY52WoDZdV4RASXLl3ya+ApXbtzp127dl6HzgGAzp07Y/fu3fZ1EXHp4feb3/zGpRPCTz/95PSj2169ern0FgSAuXPnYsKECahbty6mTJnitvYKGF8knn/+eaxZswbz58/3WuaTJ0+6fX9R1cDAQ0hJScH//d//eQ0q8+fPx/vvv4/Jkyfj888/d5tn5syZGD16NAYPHozRo0dj1qxZLnmWLFmCIUN+nsnc3Y8Y165di3vuuccprfTYY+5GGgCMQGH7h+St1hUWFua0vazaQ3lGps7NzXU7f45VGjVqhLS0NKcAXVr79u2RlJSECxcueBwFoWXLljh+/DgA4OzZs24HJq1evbpTM5q7QBwWFobo6GinThZZWVkIDw9H/fr1ARj31hybOW3y8/OxZMkSzJkzB8OGDUOtWrXc3ldSVUyZMgWrVq3CmDFjnAJmacePH8fatWuRk5PjMQ8FBgNPFZWdnV3m9Mb/+9//8Pzzz2P27NlOA0o6WrlyJT7++GPUr18fI0eOdHvMDRs2oFGjRhg5ciRefvllfPXVVy6//Th8+DAaNmxo/xHmVVddhZo1azrlKywsRHZ2tlPX5vDwcDRt2hTp6en2tAMHDjiNtGwTExNjnyNn69at+N3vfuf2OYWFhaG4uBjHjx/HVVdd5enylJuIICsry+M/bpucnByf1XjcdX0urXHjxtizZ4/XmlibNm2QkpLiMVADzkH3+++/x0033eQ2X506dezNnV988QX++Mc/uuS588478d///te+/sEHH9ib42wGDBiADz/80CnN9oXEVtN6+OGHsWbNGpcvD0uWLMGtt96Kp556CrNnz8Z7773n9kewn3/+Od599100adIEI0eORFpamtvnlJKSgokTJ2LixIn24OuOqiI1NdVlJAuqHAYePyksLMRXX32F3bt3e/wmXlxcjPnz52PcuHFYtGiR2xu1qop58+Zh3rx5WLZsGSZMmOA2qPznP/9Beno6XnzxRdx1110YPXq0y/H27duH1NRUjBo1Cr/5zW8wY8YMzJgxwylPQUEBvvzyS9x33332tNGjR7s0hSxduhSPPvqoU9rjjz+Od999177+6aefOv2Q0+aee+7BunXr7NfJ0zf4Xr162e8zeBtp4LrrrsOBAweQkJDgcg/IUc2aNZGTk1PuKQ3KyuduMrbKysvLQ61atbzmady4MRISEtCsWTOPeSIjI1FQUIBDhw45zddTmoigpKQEP/zwA7p06eI2z29/+1t7s6i7rtmAcb/IsXv2iRMnXHoMRkVFISwszN5MWFxcjJSUFKfyiQj69OmDTZs22dOys7Nx5MgR3HzzzQCMLxhjxozB66+/7nT8U6dOYcuWLZg8eTJ69uyJ2bNn46WXXnIJGsnJyXjjjTcwfvx4jB07FrNnz3Z7/+no0aMYOnQoPv30UwwbNgw7d+50e30yMzPxwgsvYOzYsV57+OXm5mLz5s0uo0qEkl9k4MnLy/Navc7JycHHH3+MZcuWOY3w66ikpATLli3D+PHjMX36dI/5PvvsM4wcORITJkzA2LFj3U45nJSUhOeeew4FBQVITEzEiBEjXJq1Ll++jOHDh6NXr16YPn06brzxRrfB4q233sL111+P8ePHY/jw4XjwwQfx4osvOuU5fPgwjh49ikGDBkFE0L59ewwcOBBvvfWWPY+qYtGiRXjmmWfsabGxsejdu7fTN9alS5fi8ccfdzp+rVq10KxZM/tN4AsXLiA6OtqlK3Ht2rWRn59v/wHm999/77aHWatWrewf+G+++cZjTaZHjx7YsWOH222ObrzxRsTHx+PHH390W3OyiYuLw9dff43mzZuXeczyTHcQHR3ts8BTs2ZNj+O02TRq1Ai7d+9G06ZNyzze0aNHPXYZB35ukissLERkZKTbPN26dcOuXbsA/HyPrTRbWklJCc6cOWNvYivttttusweVr776Cr1793bJ06dPH2zevNm+vnjxYvzrX/9yytO4cWNEREQ4DZj62muvYdSoUfb1GjVq4PHHH8fbb79tTysuLsacOXMwY8YMREREoEaNGpgxYwZmzZrl9JnLzs7GK6+8gjlz5uAf//gH5s2bh3Xr1rn0zjt27BimTZuG5557DtOnT0dqaiqWLVvm8pwSEhIwbtw4hIWF4dtvv8W4cePcfnHctm0bhg8fjvHjx2PUqFEea2zbtm3DhAkTMH78ePtr405CQgLeeustfPPNN0ExM+0vMvDk5+fj5ZdfxhtvvOFykbdv347x48ejffv2uOmmmzB//nysWbPGKU9eXh6effZZdOzYEdOmTcOQIUMwY8YM7Nmzxynfhx9+iIyMDMyaNQtTp07FqFGjMHHiRKfgk5GRgddffx1z587FbbfdhgEDBmDEiBEYO3as0xt8xowZGDJkiP1bZJcuXTBw4EC89tpr9jz79u1DQUEBbrnlFntahw4dcO211zp9QBcuXIhnn33WqazdunXD6dOn7WWz1T5KjwV2++23249VUlKCpKQkXHPNNS7X+MEHH8S///1vAMZvOQYMGOCSBwD++Mc/YvPmzcjLy0NkZKTHYWliYmKQlZWFrVu32r/RllatWjWUlJTg2LFjXsdVa926NVJSUpCXl+f1dzVXX301Nm7c6LFHm029evXsPcO8iY2N9VngiY6Odhraxp3y1HhsPHWysCndwcCdiIgIFBYWIiUlxW23bJuuXbti9+7d2LBhg9saLgDcdNNN9s4Kmzdvdht4RASNGjXCqVOnUFJSgvT0dLRo0cIl36OPPoqlS5cCMJrOmjVr5nLtfvWrX+HYsWP2buPLly/HQw895FS7rlGjBh5++GGn0ctffvllTJo0yZ5PRDBp0iS89tpr9hpUYWEhXn75ZcyaNQsxMTEQEQwaNAj5+flOPSxTUlKwfPlyzJ49G7fccgsGDx6MRx55BBMnTnT6P7Vp0yZs27YNr7zyCqZNm4bJkyfj1VdfdRlfcMGCBUhMTMSUKVMwZcoU7Ny506mFAQCKioowadIk7NmzB/369cOZM2cwfPhwlx87nz17FiNGjHC5tpZxnMAqmB8A+gJIBJAEYIy3vN26dVNV1e3bt+v48eO1pKTEvj5t2jT7us3SpUt11apVqqpaXFyszz77rKalpTnlKS4u1hEjRujx48dVVfW7777T+fPna2lZWVn61FNPaXFxsZaUlOjTTz+tFy9edMkXHx+vCxcuVFXVrVu36vvvv++SR1V17ty5evDgQfuxLl++7JLHcdsXX3yhq1evdnuszMxMnTp1qpaUlOiwYcNcroPN6tWrdevWrbpx40b9/PPP3eZRVR03bpzm5+fryJEjPeYpLi7WMWPG6OrVq3X79u0e8yUkJOjy5ct17NixHvOoqs6ZM0fnzp2r+/fv95pvwoQJOn78eK95cnJytH379nr06FGv+VasWKGPP/641zyqqg899JBmZmaWma88XnvtNf3kk0/KzFevXj0tLi72mmfmzJn63HPPec1TWFiojz76qL799tte802dOlVff/11TU5O9pgnKytLZ8yYoWPGjPF6rEmTJunZs2d18uTJHvOcPHlSZ8+erf/973+9vhfHjh2reXl5OmHCBLefN1XVQ4cO6fz587WwsFCHDx/u8Vgj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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "u3 = u1.fft(z=2 * mm, remove0=False, new_field=True)\n", "u3.draw(kind=\"fft\", logarithm=False, normalize=True)\n", "plt.xlim(-1e5, 1e5)\n", "plt.ylim(bottom=0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Fast Fourier Transform using Rayleigh-Sommerfeld (near field) and a lens**\n", "\n", "Now, let us determine the field at the Fourier plane of the lens." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2020-05-01T22:59:21.856057Z", "start_time": "2020-05-01T22:59:21.602609Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "x = np.linspace(-100 * um, 100 * um, 4096)\n", "wavelength = 0.5 * um\n", "\n", "focal = 0.25 * mm\n", "\n", "u0 = Scalar_source_X(x=x0, wavelength=wavelength, info=\"u0\")\n", "u0.plane_wave(A=1, theta=0 * degrees)\n", "\n", "t0 = Scalar_mask_X(x=x0, wavelength=wavelength)\n", "t0.slit(x0=0, size=10 * um)\n", "t0.draw()\n", "\n", "t1 = Scalar_mask_X(x=x0, wavelength=wavelength, info=\"t0\")\n", "t1.lens(x0=0, radius=500, focal=focal)\n", "t1.draw(kind=\"phase\")" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2020-05-01T22:59:22.123531Z", "start_time": "2020-05-01T22:59:21.858096Z" } }, "outputs": [ { "data": { "image/png": "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J939013tt7MgePfdd6murv7A15kzZz70H5mXl0dRUREFBQUUFBSQn59PU1MTp06doqmpqcNjjhw5kvHjx1NSUsL48eMZO3Zsr4Y7rqur480332Tjxo3vfegPHTqU+fPnM2/evD59cMc0Njaybt06Xn31VU6cOEG/fv2YN28eixYtYsSIEV0+9/Tp0zz33HOsXbuWcePGceuttzJs2LA+19QTTU1N/PCHP2TgwIHccccdH3gDHD16lPvuu4+77rqLc845J6V1ZbIdO3awfPnyD50ZnDp1ikceeYTW1lbuueeePt/z6am6ujoeffRRamtrWbRoEVdeeWW3TU7r6+t5/fXXKS8v58yZMxQUFDB//nwuueSSpPxh0NzczNatW1m3bh379+8HIrO/zZs3j4ULFzJq1Khe7bexsZGDBw9y4MABDhw4QHV1NUePHv3QdgMGDKB///7k5+eTl5dHW1sbJ0+e7PSzacCAAYwbN+69r7FjxzJy5MgOAyysIPgI8G13/1h0+V4Ad/9fcdusim7zmpn1Aw4Bo72LooqLi/22224juq/31g8ePJjx48e/91VcXJyUdsyxXpTV1dVUVVVRXV3NoUOHaG1t/dC2+fn5FBQU0NbW9t54L/E1jhgxgrlz53LBBRcwdOjQPteWiJaWFt58803WrFnDsWPH3msDbmb079+fxsZG2tracHf69+/P1VdfzcKFC0M/TX777bd57LHHaGtrY8CAAZw+fZrCwkLuuuuubgNNPqy2tpYf/ehHuPt7r2d+fj4333wzU6ZMCbW21tZWXn/9dV566SWampowM8yMAQMGvPf7Ce9fzrn44ouZP39+yvopNDQ0sHHjRtatW/eBYb5j75HYH5Xx76XY47HLUYWFhYwbN47i4uL3Pp+GDx/e5/dZQ0MDBw8e/MBXLGDaf4wuW7YslCD4FLDY3f9HdPkm4CJ3vzNum63Rbaqiy7uj29S129dtwG3RxenAzkCK7plRQF23W+UGvRYReh3ep9fifenyWkxy99EdPZARHcrcfTmwPOw64plZeWfpmmv0WkTodXifXov3ZcJrEWSHsmogvqdRSXRdh9tELw0NJXLTWEREUiTIIFgHTDWzMjMrBG4AVrbbZiVwS/T7TwEvd3V/QEREki+wS0Pu3mJmdwKriDQf/bm7bzOzZUC5u68EfgY8Zma7gKNEwiJTpNWlqpDptYjQ6/A+vRbvS/vXIuM6lImISHJp0DkRkRynIBARyXEKgl4ws6Vm5mY2KrpsZvYjM9tlZpvNbF7YNQbNzP7RzN6K/ry/NrNhcY/dG30tdppZYiOeZTgzWxz9eXeZ2dfDrieVzGyCmb1iZtvNbJuZ3R1dP8LMXjCzd6L/5syYIGaWb2ZvmtnT0eUyM3s9+vvxf6MNaNKGgqCHzGwCcDWwL271NcDU6NdtwI9DKC3VXgBmuvtsIkOJ3AtgZucTuek/A1gM/Ft0uJGsFf35Hibye3A+cGP0dcgVLcBSdz8fuBj4m+jP/3XgJXefCrwUXc4VdwM74pbvBx5w93OAY8DnQqmqEwqCnnsA+Fsg/i779cAvPWItMMzMxoVSXYq4+/Pu3hJdXEuknwhEXovH3b3R3fcAu4ALw6gxhS4Edrl7hbs3AY8TeR1ygrsfdPcN0e9PEPkAHE/kNXg0utmjwJ+FUmCKmVkJ8HHgp9FlA64AnoxuknavhYKgB8zseqDa3Te1e2g8sD9uuSq6Lld8Fng2+n0uvha5+DN3yMxKgbnA68AYdz8YfegQMCasulLsQSJ/LLZFl0cC9XF/OKXd70dGDDGRSmb2ItDRuLh/B3yDyGWhnNDVa+Huv41u83dELg38KpW1Sfoxs0HA/wPucfd34wdUc3c3s6xvq25mnwBq3H29mV0WcjkJUxC04+4f7Wi9mc0CyoBN0V/wEmCDmV1IYsNpZJzOXosYM7sV+ARwZVyP8Kx8LbqRiz/zB5hZAZEQ+JW7PxVdfdjMxrn7weil0prwKkyZS4HrzOxaoAgYQmROlmFm1i96VpB2vx+6NJQgd9/i7me7e6m7lxI5vZvn7oeIDJVxc7T10MXA8bhT4qwUnXTob4Hr3D1+GrWVwA1m1t/MyojcQH8jjBpTKJHhVLJW9Br4z4Ad7v7PcQ/FDyFzC/DbVNeWau5+r7uXRD8jbiAybM5fAq8QGUYH0vC10BlBcjwDXEvkxmgD8NfhlpMS/wr0B16IniGtdffbo8OIrAC2E7lk9Dfu/uHJG7JIZ8OphFxWKl0K3ARsMbON0XXfAL4PrDCzzwGVwF+EU15a+BrwuJl9F3iTSHCmDQ0xISKS43RpSEQkxykIRERynIJARCTHKQhERHKcgkBEJMcpCEREcpyCQEQkxykIRHrAzAaY2X8mY2htMys0sz+YmTp2SqgUBCI981ngqWT0lo4OWf0S8Ok+VyXSBwoCkXais21dFf3+u2b2L3EP/yVx48SY2WozOzf6/Ugz2xr32BNm9q9m9l9mVmlmi8zsMTN728xiQwz8JrpPkdDolFTkw/4nsMzMziYytv51ELmUA0x2971x255DZIY2gNnAlrjHZgGvufudZvYNIuPLXAbUAlVm1h/YCiwM7kcR6Z6CQKQdd/9DdETNLwOXxV0GGgXUx7Yzs0lEJiqKTUAyG9gcfawIGEZkkhKIzGj3s9iotGbWCjRFx+lvMrPB0dm9RFJOl4ZE2onOPTGOyAd1/IfzaSJjzMdcQPSDP2p+3PIMYENcSFxAZNau2FSGB+LmcOgPnEnqDyHSAwoCkTjRCVR+RWS+3ZPReRcAcPdjQH70r32AOUSDwcymRp8TuzQ0C4if0vS9swXiAsTMRgJ17t4cxM8jkggFgUiUmQ0EngKWuvsO4DtE7hfEex5YFP3+AiDPzDYB3yIyB0NsIpZZwMbofouAAdEggQ+GwuXA75P+w4j0gOYjEOkBM5sHLHH3m8zsHSKz1PX62r6ZPQV83d3f7nZjkYDojECkB9x9A/CKmQ2NLPYpBAqB3ygEJGw6IxARyXE6IxARyXEKAhGRHKcgEBHJcQoCEZEcpyAQEclxCgIRkRynIBARyXH/H2/AMsxWM/UaAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "u1 = t0 * t1 * u0\n", "\n", "t2 = u1.RS(z=focal, verbose=False)\n", "t2.normalize()\n", "t2.draw(kind=\"intensity\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## XY Scheme" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "from diffractio.scalar_sources_XY import Scalar_source_XY\n", "from diffractio.scalar_masks_XY import Scalar_mask_XY" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "x0 = np.linspace(-150 * um, 150 * um, 1024)\n", "y0 = np.linspace(-150 * um, 150 * um, 1024)\n", "wavelength = 0.5 * um" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# plane wave\n", "u0 = Scalar_source_XY(x=x0, y=y0, wavelength=wavelength)\n", "u0.plane_wave(A=1, theta=0)\n", "\n", "# slit\n", "t0 = Scalar_mask_XY(x=x0, y=y0, wavelength=wavelength)\n", "t0.square(r0=(0 * um, 0 * um), size=(4 * um, 4 * um), angle=0)\n", "t0.draw()\n", "plt.xlim(-10, 10)\n", "plt.ylim(-10, 10)\n", "\n", "u1 = u0 * t0" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "u2 = u1.fft(remove0=False, new_field=True)\n", "u2.draw(logarithm=1e-1)" ] } ], "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.10.12" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": { "height": "calc(100% - 180px)", "left": "10px", "top": "150px", "width": "191.667px" }, "toc_section_display": true, "toc_window_display": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }