{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Dielectric disc\n", "\n", "This code will calculate the modes of a dielectric disc. This is calculated using a surface equivalent problem, where the solution is represented by equivalent surface currents of electric type \"J\" and magnetic type \"M\". This results in an impedance matrix of the following form:\n", "\n", "$$\\begin{bmatrix}E_{inc} \\\\ H_{inc}\\end{bmatrix} =\n", "\\begin{bmatrix} Z_{EJ} & Z_{EM} \\\\ Z_{HJ} & Z_{HM}\\end{bmatrix}\n", "\\begin{bmatrix}J \\\\ M\\end{bmatrix}\n", "$$\n", "\n", "Compared to examples with PEC objeccts, the calculations are considerably slower (this will hopefully be improved in a future version)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from __future__ import print_function\n", "\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "\n", "import os.path as osp\n", "import numpy as np\n", "\n", "import openmodes\n", "from openmodes.material import IsotropicMaterial\n", "from openmodes.operator.penetrable import PMCHWTOperator, CTFOperator\n", "from openmodes.sources import PlaneWaveSource\n", "from openmodes.integration import RectangularContour, EllipticalContour, ExternalModeContour, DunavantRule, GaussLegendreRule" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Uncomment the lines below to see more information about the internal workings of OpenModes, including which parts of the simulation are taking the most time." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# import logging\n", "# logging.getLogger().setLevel(logging.INFO)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since we are solving a surface equivalent problem for a dielectric object, we need to change the operator that we solve. The operator we are using here is the \"Combined Tangential Form\", as defined in [Ylä-Oijala et al, Radio Sci. 40, RS6002 (2005)](http://dx.doi.org/10.1029/2004RS003169). This operator is specified by the option `operator_class=CTFOperator` when creating the `Simulation` object." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", " \n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sim = openmodes.Simulation(operator_class=CTFOperator, notebook=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When placing the part into the simulation, in addition to specifying the mesh, we also need to indicate which material the part will be made from. Here we use a simple model for silicon, as a non-dispersive material with a refractive index of 3.53 (note that it is squared to give the permittivity)." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Pruned cell types: vertex, line\n" ] } ], "source": [ "parameters={'radius':242e-9, 'height':220e-9, 'mesh_tol':75e-9, 'rounding':50e-9}\n", "cross_section = 2*np.pi*parameters['radius']**2\n", "mesh = sim.load_mesh(osp.join(openmodes.geometry_dir, 'cylinder_rounded.geo'), parameters=parameters)\n", "\n", "material = IsotropicMaterial(\"Silicon\", 3.53**2, 1)\n", "\n", "part = sim.place_part(mesh, material=material)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Calculate extinction directly" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "d8481ee4387048ad995e6e88f430f3e4", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(Label(value='Frequency Sweep'), FloatProgress(value=0.0, max=99.0)))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "pw = PlaneWaveSource([0, 1, 0], [0, 0, 1], p_inc=1.0)\n", "\n", "num_freqs = 100\n", "\n", "freqs = np.linspace(100e12, 300e12, num_freqs)\n", "extinction = np.empty(num_freqs, np.complex128)\n", "\n", "for freq_count, s in sim.iter_freqs(freqs, log_skip=20):\n", " Z = sim.impedance(s)\n", " V = sim.source_vector(pw, s)\n", " I = Z.solve(V)\n", " V_E = sim.source_vector(pw, s, extinction_field=True)\n", " extinction[freq_count] = np.vdot(V_E, I) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Find modes" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "57d99bd44eca4ee8837be80ff5ccc4d1", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(Label(value='Contour Integration'), FloatProgress(value=0.0, max=74.0)))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "contour = ExternalModeContour(-5.45e14+2j*np.pi*350e12, avoid_origin=0.5e14, integration_rule=GaussLegendreRule(15))\n", "estimates = sim.estimate_poles(contour)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here the estimated frequencies of the poles are shown. Also plotted is the contour around which integration was performed in order to obtain the estimates of the poles." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnIAAAGHCAYAAAA0mb+iAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8li6FKAAAgAElEQVR4nOzdd5xU1f3/8dcHpAV3E1GISJeirhhRFrtETUBQbN9ExcQYsMUo9q4JKrZYIj/BRIGgEhMVjVFKLIs9IgQXRRAQAlIVUSJlVar7+f0xd9bZyg7u3TOz+34+HvNg7j1T3nu4wIdz7rnX3B0RERERyT4NQgcQERERkR2jQk5EREQkS6mQExEREclSKuREREREspQKOREREZEspUJOREREJEupkBOR78TMjjSzBaFzVMTMjjKzlYG++3UzO3cH33uKma0wsy/N7ICazhaCmb1gZr8OnUOkrlEhJ1JPmdlSM9sYFQvJxwPVeJ+bWZfktrv/2933iinjo2Z2WxyfneHuBYa4+87u/l7oMDXB3fu7+7jQOUTqmp1CBxCRoE5w95dDh5ByOgBzK2ows53cfVst5xGRDKUROREpx8y6mNkbZrbezNaY2fho/5vRS96PRvBOLzt9GY30XW1ms83sKzMba2Y/jKbWiszsZTPbJeX1T5vZp9F3vWlm+0b7zwd+CVwTfdekaP8eZvaMmX1uZkvM7JKUz2oWjeKtNbN5QK/t/JxuZhea2X+jbLeaWWczm2ZmG8zsKTNrnPL688xskZl9YWYTzWyPlLY+ZvZh9HM8AFiZ7zrbzOZH2V4ysw4V5GliZl8CDaM+XpzSp9ea2WzgKzPbKZ1+iH4/Un+PSo2qlh35NLMBZjbLzNaZ2dtm9qMyv79XRb+/681svJk1TWk/KXrvBjNbbGb9ov2lppor6w9LGG5mn0WfP9vMulf1+yhSn6mQE5GK3AoUALsAbYGRAO7eO2rfP5r2G1/J+38G9AG6AScALwA3ALuR+HvnkpTXvgB0BVoB7wJ/j75rdPT87ui7TjCzBsAk4H2gDfAT4DIzOzb6rJuAztHjWKA652T1A3oChwDXAKNJFJDtgO7AGQBmdgxwJ3Aa0BpYBjwZte0GPAP8LvoZFwOHJ7/AzE6Ofv7/A1oC/waeKBvE3Te7+87R5v7u3jml+QzgeOAHQHEM/ZDMeiDwMPAbYFdgFDDRzJqkvOw0Ev3WCfgRMCh670HAX4Gro5y9gaUVfEdV/dE3el+36DNOB/5X3fwi9Y0KOZH67blo1CX5OC/av5XE9N4e7r7J3d9K83NHuvtqd/+YxD/S/3H399x9M/AsUHICv7s/7O5FUdvNwP5m9v1KPrcX0NLdh7n7Fnf/CBgDDIzaTwNud/cv3H0FMKIaWe9y9w3uPhf4AChw94/cfT2JIjOZ9ZfAw+7+bpT1euBQM+sIHAfMc/d/uPtW4P8Bn6Z8x2+AO919fjQtegfQo6JRuSqMcPcV7r4xpn5IOg8Y5e7/cfdvovPaNpModFOzfOLuX5AoKHtE+88h0UdT3L3Y3T929w8r+I6q+mMrkAPsDVj0mlVp5BepV1TIidRvJ7v7D1IeY6L915CYGpxhZnPN7Ow0P3d1yvONFWzvDGBmDc3sD9EU3Aa+Hb3ZrZLP7QDskVp8khjZ+WHUvgewIuX1y2oqa/TZJZ/n7l+SGClqU/Z73d3L5OgA3J+S+QsS/dumGvmSyn5eTfdD6mdfWeaz20WfmZRapH7Nt33UjsRoZHW+o8L+cPdXgQeAPwGrzWy0meWmkV+kXlEhJyLluPun7n6eu+9BYvTkz6nnVNWgXwAnAT8Fvg90jPYnzy/zMq9fASwpU3zmuPtxUfsqEsVEUvsazPoJiQIkEdCsOYmpx4/Lfq+ZWZkcK4DflMndzN3fTuP7U/viu/bD18D3UrZ3L/PZt5f57O+5e7mp4AqsIDGdW53XVdof7j7C3XsC+5KYYr26Gp8pUi+pkBORcszsVDNrG22uJVFEfBNtrwb2rKGvyiExbfc/EoXFHWXay37XDGBDdOJ/s2hEr7uZJRc1PAVcb2a7RPkvrqGcAI8Dg82sR3S+2B0kpoyXAv8C9jWz/zOznUicA5haHD0U5Uou5Pi+mZ36HbJ8136YBfwiel8/4McpbWOAC8zs4GjhQXMzO97McqqRayyJPvqJmTUwszZmtncFr6u0P8ysV/TdjYCvgE18e+yJSBkq5ETqt0lW+jpyz0b7ewH/scQKyonApe6+JGq7GRgXTYud9h2//68kpv0+BuYB08u0jwXyou96zt2/IbF4ogewBFgD/IXEaB7ALdHnLSGxWOOx75ivhLu/AvyexKKGVSRGngZGbWuAU4E/kChKuwJTU977LHAX8GQ0hfwB0P87ZPmu/XBp9P51JM79ey7lswtJnCf3AIkifhHRYoZq5JoBDAaGA+uBN0gZxUx5XVX9kUuimFwb/Qz/I3FdPRGpgCVO5RARkbrKzI4C/ububbf3WhHJLhqRExEREclSKuREREREspSmVkVERESylEbkRERERLJUnSnkzKyfmS2wxH0QrwudR0RERCRudWJq1cwaAgtJ3NtxJfAOcIa7z6vsPbvttpt37NixdgKKiIiIfAczZ85c4+4ty+7fKUSYGBwELIruN4iZPUniavGVFnIdO3aksLCwluKJiIiI7Dgzq/BWe3VlarUNpe8ruJIK7mFoZuebWaGZFX7++ee1Fk5EREQkDnWlkLMK9pWbM3b30e6e7+75LVuWG50UERERySp1pZBbSekbRLclcYNrERERkTqrrhRy7wBdzayTmTUmcf/DiYEziYiIiMSqTix2cPdtZjYEeAloCDzs7nMDxxIRERGJVZ0o5ADc/Xng+dA5RERERGpLXZlaFREREal3VMiJiIiIZCkVciIiIiJZSoWciIiISJZSISciIiKSperMqtW67JVXXmHLli2l9rVu3ZoePXoAUFBQwDfffFOqvV27dnTv3h1358UXXyz3mZ06dWLvvfdm27ZtTJkypVx7ly5d6Nq1K5s2beK1114r17733nvTqVMnvvzyS/7973+Xa+/evTvt2rVj/fr1vP322+Xa999/f/bYYw/+97//MWPGjHLtPXv2pFWrVqxevZp33323XPvBBx9MixYt+OSTT3j//ffLtR922GF8//vfZ/ny5cydW/5KNL1796Z58+Z89NFHLFiwoFz7McccQ5MmTfjvf//LokWLyrX36dOHnXbaifnz57N06dJy7f379wdgzpw5rFy5slRbw4YN6du3LwCzZs1i1apVpdqbNGnCMcccA0BhYSFlbyfXvHlzevfuDcD06dNZu3Ztqfbc3FwOP/xwAKZOncqGDRtKtbdo0YKDDz4YgDfeeIOvv/66VHurVq3o2bMnoGNPx56OvVSZeOy5J25iZGYcdthh5Obmsnz5cubNK3+rcR17NXfstWnThn333bdcHwTh7vXy0bNnT89Ua9as8VWrVpVs//CHP3QStxwrefziF78oaW/evHm59t/85jfu7l5cXFyuDfArr7zS3d3Xr19fYfvNN9/s7u4rV66ssP2Pf/yju7vPnz+/wvbR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mqQROREREZHIz3/+c/Lz84NmSKeQuz62FHXQa6+9RvPmzUPHEBERkZj0798/dIS0CrltZnYt0IbENOsnwER3nx9LsizXpUuX0BFEREQkRqtXr2bjxo107NgxWIZqnSMXFXBPkphenQG8Ez1/wsyuiy9e9ho9ejQFBQWhY4iIiEhMbrjhBo488sigGao7IncOsK+7b03daWb3AXOBP9R0sGx366230rdvX/r27Rs6ioiIiNRR1V21WgzsUcH+1lGbiIiIiNSy6o7IXQa8Ymb/BVZE+9oDXYAhcQQTERERkapVq5Bz9xfNrBtwEInFDn/qoWIAACAASURBVAasBN5x929izCciIiIilaj2qlV3Lwamx5hFREREJGuceeaZ/PjHPw6aIZ3Lj1TIzAa7+yM1EaYueeedd2jSpEnoGCIiIhKTo48+OnSEtG7RVZlbauAz6pzdd9+dXXbZJXQMERERicmyZcv44IMPgmao1oicmc2urAn4Yc3FqTuGDx9O586dOfHEE0NHERERkRgMGzaMgoICVqxYsf0Xx6S6U6s/BI4F1pbZb8DbNZqojrjvvvvo27evCjkRERGJTXULucnAzu4+q2yDmb1eo4lEREREpFqqe/mRc6po+0XNxRERERGR6qruvVatJl4jIiIiIjWnulOrr5nZM8AEd1+e3GlmjYEjgF8DrwGP1nhCERERkQx07rnncvzxxwfNUN1Crh9wNvCEmXUC1gFNgYZAATC8ovPn6rN58+ax007f+TJ9IiIikqEOPfTQ0BGqfY7cJuDPwJ/NrBGwG7DR3dfFGS6b5eTkhI4gIiIiMVq4cCFr167l4IMPDpYh7QsCu/tWd1+lIq5qt912G0899VToGCIiIhKTu+66i5///OdBM9TEnR2kAqNGjeKll14KHUNERETqsLQLOTPbqcx2+5qLIyIiIiLVVe1CzszOM7MFwAozW2dmr5rZIcBz8cUTERERkcpU916r1wL5wI/d/dNoX19gDKAROREREZEAqnt9jMHAfu6+NbnD3QvM7KckVrOKiIiI1CtDhgzhtNNOC5qh2hc6Sy3iUvatNrORNRupbli+fPn2XyQiIiJZ64ADDggdodrnyC02s3KXLjazYcArNRupbjAzdNcyERGRumv27Nm8+uqrQTNUd0TuQuAZMxsEvA/sDBwHzAIWxBMtu11//fXss88+nHXW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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "contour_points = np.fromiter((p for p, w in contour), np.complex128)#, len(contour))\n", "\n", "fig = plt.figure(figsize=(10, 6))\n", "plt.scatter(estimates.s.imag*1e-12/2/np.pi, estimates.s.real*1e-12, marker='x')\n", "plt.plot(contour_points.imag*1e-12/2/np.pi, contour_points.real*1e-12, 'k--')\n", "plt.xlabel('Frequency $j\\omega/2\\pi$ (THz)')\n", "plt.ylabel('Damping rate $\\Omega$ ($10^{-12}$ rad/s)')\n", "plt.title(\"Estimated mode frequencies\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Found 21 modes\n" ] } ], "source": [ "print(\"Found {} modes\".format(len(estimates)))" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "ebfaf0b7b68e4b17ad7f1152b17b86cb", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(Label(value='Refining modes'), FloatProgress(value=0.0, max=20.0)))" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stderr", "output_type": "stream", "text": [ "WARNING:root:Mode 3 convergence failed, mode discarded\n" ] } ], "source": [ "refined = sim.refine_poles(estimates, max_iter=10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Show complex frequencies of modes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For comparison purposes, the modes are shown after refinement. Note that in some cases modes which were estimated may be missing, due to the iterative search failing to converge." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize=(10, 6))\n", "points = plt.scatter(refined.s.imag*1e-12/2/np.pi, refined.s.real*1e-14, marker='x')\n", "plt.xlabel('Frequency $j\\omega$')\n", "plt.ylabel('Damping rate $\\Omega$')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot modes" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The equivalent surfaces currents of the modes are plotted here. Note that both electric current \"J\" and magnetic current \"M\" may be plotted, and can reveal different information about modes. Also note that for some modes the real or imaginary parts of the current may be very small, so try selecting both options from the drop-down box." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Surface current M of mode with frequency 227.21 THz\n" ] }, { "data": { "text/html": [ "
\n", " \n", " Wireframe\n", " Format\n", " \n", " \n", " Arrow Length\n", " \n", " \n", "
\n", "\n", "" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "mode = 6\n", "which_current = \"M\"\n", "print(\"Surface current {} of mode with frequency {:.2f} THz\".format(which_current, refined.s[0, mode].imag/2/np.pi*1e-12))\n", "sim.plot_3d(solution=refined.vr[which_current, :, 'modes', mode])\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Calculate extinction by modes" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "37" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "full_modes = refined.add_conjugates()\n", "len(full_modes)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "681bfac59c8d4ccb959f8cd16010bd3e", "version_major": 2, "version_minor": 0 }, "text/plain": [ "HBox(children=(Label(value='Frequency Sweep'), FloatProgress(value=0.0, max=99.0)))" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "num_modes = len(full_modes)\n", "extinction_modes = np.empty((num_freqs, num_modes), np.complex128)\n", "\n", "vr = full_modes.vr\n", "vl = full_modes.vl\n", "\n", "for freq_count, s in sim.iter_freqs(freqs, log_skip=20):\n", " V = sim.source_vector(pw, s)\n", " V_E = sim.source_vector(pw, s, extinction_field=True)\n", " \n", " I_modes = (1/(s - full_modes.s) + 1/full_modes.s)*vl.dot(V)\n", " extinction_modes[freq_count] = V_E.vdot(vr*I_modes)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The plot below shows the contribution of each mode to the total extinction of the disc. Note that in some cases there are negative contributions, indicating destructive interference between modes." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize=(8, 6))\n", "plt.plot(freqs*1e-14*2*np.pi, extinction_modes.real)\n", "plt.title('Extinction of modes')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "To see how good the model is, we compare the extinction calculated from the modes with that obtained directly, and find good agreement." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig = plt.figure(figsize=(8, 6))\n", "plt.plot(freqs*1e-12, extinction.real/cross_section, linewidth=2, color='salmon')\n", "plt.plot(freqs*1e-12, np.sum(extinction_modes.real, axis=1)/cross_section, '--', linewidth=2, color=\"forestgreen\")\n", "plt.legend((\"Exact\", \"Modes\"), loc=\"upper left\")\n", "plt.title(\"Total extinction\")\n", "plt.xlabel('Frequency $\\omega/2\\pi$ (THz)')\n", "plt.ylabel(\"Normalised extinction cross-section\")\n", "plt.show()" ] } ], "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 }