{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Dispersive materials" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction / Setup\n", "\n", "Run this notebook in your browser using [Binder](https://mybinder.org/v2/gh/flexcompute-readthedocs/tidy3d-docs/readthedocs?labpath=docs%2Fsource%2Fnotebooks%2FDispersion.ipynb).\n", "\n", "Here we show to to model dispersive materials in Tidy3D with an example showing transmission spectrum of a multilayer stack of slabs." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2022-06-07T17:13:20.918942Z", "iopub.status.busy": "2022-06-07T17:13:20.918379Z", "iopub.status.idle": "2022-06-07T17:13:22.126736Z", "shell.execute_reply": "2022-06-07T17:13:22.126022Z" }, "tags": [] }, "outputs": [], "source": [ "# standard python imports\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "import tidy3d as td\n", "from tidy3d import web" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, let us define some basic parameters." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2022-06-07T17:13:22.128765Z", "iopub.status.busy": "2022-06-07T17:13:22.128648Z", "iopub.status.idle": "2022-06-07T17:13:22.144562Z", "shell.execute_reply": "2022-06-07T17:13:22.144129Z" }, "tags": [] }, "outputs": [], "source": [ "# Wavelength and frequency range\n", "lambda_range = (0.5, 1.5)\n", "lam0 = np.sum(lambda_range)/2\n", "freq_range = (td.constants.C_0/lambda_range[1], td.constants.C_0/lambda_range[0])\n", "Nfreq = 333\n", "\n", "# frequencies and wavelengths of monitor\n", "monitor_freqs = np.linspace(freq_range[0], freq_range[1], Nfreq)\n", "monitor_lambdas = td.constants.C_0 / monitor_freqs\n", "\n", "# central frequency, frequency pulse width and total running time\n", "freq0 = monitor_freqs[Nfreq // 2]\n", "freqw = 0.3 * (freq_range[1] - freq_range[0])\n", "t_stop = 100 / freq0\n", "\n", "# Thicknesses of slabs\n", "t_slabs = [0.5, 0.2, 0.4, 0.3] # um\n", "\n", "# Grid resolution (cells per um)\n", "res = 150\n", "\n", "# space between slabs and sources and PML\n", "spacing = 1 * lambda_range[-1]\n", "\n", "# simulation size\n", "sim_size = Lx, Ly, Lz = (1.0, 1.0, 4*spacing + sum(t_slabs))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Defining Materials (4 Ways)\n", "\n", "Here, we will illustrate defining materials in four different ways:\n", "\n", "1. Simple, lossless, dispersionless dielectric defined by a real-valued relative permittivity.\n", "2. Lossy material defined by real and imaginary part of the refractive index ($n$) and ($k$) at a given frequency. Values are exact only at that frequency, so this approach is only good for narrow-band simulations.\n", "3. Simple, lossless dispersive material (one-pole fitting) defined by the real part of the refractive index $n$ and the dispersion $\\mathrm{d}n/\\mathrm{d}\\lambda$ at a given frequency. The dispersion must be negative. This is a convenient approach to incorporate weakly dispersive materials in your simulations, as the values can be taken directly from [refractiveindex.info](https://refractiveindex.info/)\n", "4. Dispersive material imported from our pre-defined library of materials.\n", "\n", "More complicated dispersive materials [can also be defined](https://docs.simulation.cloud/en/latest/api.html#dispersive-mediums) through dispersive models like Lorentz, Sellmeier, Debye, or Drude, if the model parameters are known. Finally, arbitrary dispersion data can also be fit, which is a the subject of [this tutorial](https://docs.simulation.cloud/en/latest/notebooks/Fitting.html)." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2022-06-07T17:13:22.146320Z", "iopub.status.busy": "2022-06-07T17:13:22.146210Z", "iopub.status.idle": "2022-06-07T17:13:22.161060Z", "shell.execute_reply": "2022-06-07T17:13:22.160625Z" }, "tags": [] }, "outputs": [], "source": [ "# simple, lossless, dispersionless material (either epsilon or n)\n", "mat1 = td.Medium(permittivity=4.0)\n", "\n", "# lossy material with n & k values at a specified frequency or wavelength\n", "mat2 = td.Medium.from_nk(n=3.0, k=0.1, freq=freq0)\n", "\n", "# weakly dispersive material defined by dn_dwvl at a given frequency\n", "mat3 = td.Sellmeier.from_dispersion(n=2.0, dn_dwvl=-0.1, freq=freq0)\n", "\n", "# dispersive material from tidy3d library\n", "mat4 = td.material_library['BK7']['Zemax']\n", "\n", "# put all together\n", "mat_slabs = [mat1, mat2, mat3, mat4]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Create Simulation\n", "Now we set everything else up (structures, sources, monitors, simulation) to run the example." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we define the multilayer stack structure." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2022-06-07T17:13:22.162972Z", "iopub.status.busy": "2022-06-07T17:13:22.162860Z", "iopub.status.idle": "2022-06-07T17:13:22.178135Z", "shell.execute_reply": "2022-06-07T17:13:22.177715Z" }, "tags": [] }, "outputs": [], "source": [ "slabs = []\n", "slab_position = -Lz/2 + 2*spacing\n", "for t, mat in zip(t_slabs, mat_slabs):\n", " slab = td.Structure(\n", " geometry=td.Box(\n", " center=(0, 0, slab_position + t/2),\n", " size=(td.inf, td.inf, t),\n", " ),\n", " medium=mat,\n", " )\n", " slabs.append(slab)\n", " slab_position += t" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We must now define the excitation conditions and field monitors. We will excite the slab using a normally incident (along z) planewave, polarized along the x direciton." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2022-06-07T17:13:22.179968Z", "iopub.status.busy": "2022-06-07T17:13:22.179857Z", "iopub.status.idle": "2022-06-07T17:13:22.194056Z", "shell.execute_reply": "2022-06-07T17:13:22.193644Z" }, "tags": [] }, "outputs": [], "source": [ "# Here we define the planewave source, placed just in advance (towards negative z) of the slab\n", "source = td.PlaneWave(\n", " source_time = td.GaussianPulse(\n", " freq0=freq0,\n", " fwidth=freqw\n", " ),\n", " size=(td.inf, td.inf, 0),\n", " center=(0, 0, -Lz/2+spacing),\n", " direction='+',\n", " pol_angle=0,\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we define the field monitor, placed just past (towards positive z) of the stack." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2022-06-07T17:13:22.195879Z", "iopub.status.busy": "2022-06-07T17:13:22.195710Z", "iopub.status.idle": "2022-06-07T17:13:22.209227Z", "shell.execute_reply": "2022-06-07T17:13:22.208804Z" }, "tags": [] }, "outputs": [], "source": [ "# We are interested in measuring the transmitted flux, so we set it to be an oversized plane.\n", "monitor = td.FluxMonitor(\n", " center = (0, 0, Lz/2 - spacing),\n", " size = (td.inf, td.inf, 0),\n", " freqs = monitor_freqs,\n", " name='flux',\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, define the boundary conditions to use PMLs along z and the default periodic boundaries along x and y" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2022-06-07T17:13:22.210978Z", "iopub.status.busy": "2022-06-07T17:13:22.210855Z", "iopub.status.idle": "2022-06-07T17:13:22.224572Z", "shell.execute_reply": "2022-06-07T17:13:22.224150Z" } }, "outputs": [], "source": [ "boundary_spec = td.BoundarySpec.pml(z=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now it is time to define the simulation object." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2022-06-07T17:13:22.226318Z", "iopub.status.busy": "2022-06-07T17:13:22.226207Z", "iopub.status.idle": "2022-06-07T17:13:22.243752Z", "shell.execute_reply": "2022-06-07T17:13:22.243305Z" }, "tags": [] }, "outputs": [], "source": [ "sim = td.Simulation(\n", " center = (0, 0, 0),\n", " size = sim_size,\n", " grid_spec=td.GridSpec.auto(min_steps_per_wvl=40),\n", " structures = slabs,\n", " sources = [source],\n", " monitors = [monitor],\n", " run_time = t_stop,\n", " boundary_spec = boundary_spec\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot The Structure\n", "\n", "Let's now plot the permittivity profile to confirm that the structure was defined correctly." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First we use the `Simulation.plot()` method to plot the materials only, which assigns a different color to each slab without knowledge of the material properties." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2022-06-07T17:13:22.245624Z", "iopub.status.busy": "2022-06-07T17:13:22.245479Z", "iopub.status.idle": "2022-06-07T17:13:22.430082Z", "shell.execute_reply": "2022-06-07T17:13:22.429570Z" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
[10:13:22] INFO     Auto meshing using wavelength 0.7500 defined from        grid_spec.py:478\n",
       "                    sources.                                                                 \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[10:13:22]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Auto meshing using wavelength \u001b[1;36m0.7500\u001b[0m defined from \u001b]8;id=806549;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/components/grid/grid_spec.py\u001b\\\u001b[2mgrid_spec.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=353484;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/components/grid/grid_spec.py#478\u001b\\\u001b[2m478\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m sources. \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
<Figure size 432x288 with 1 Axes>\n",
       "
\n" ], "text/plain": [ "\u001b[1m<\u001b[0m\u001b[1;95mFigure\u001b[0m\u001b[39m size 432x288 with \u001b[0m\u001b[1;36m1\u001b[0m\u001b[39m Axes\u001b[0m\u001b[1m>\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "sim.plot(x=0)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, we use `Simulation.plot_eps()` to vizualize the permittivity of the stack. However, because the stack contains dispersive materials, we need to specify the `freq` of interest as an argument to the plotting tool. Here we show the permittivity at the lowest and highest frequences in the range of interest. Note that in this case, the real part of the permittivity (being plotted) only changes slightly between the two frequencies on the dispersive material. However, for other materials with more dispersion, the effect can be much more prominent." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2022-06-07T17:13:22.431857Z", "iopub.status.busy": "2022-06-07T17:13:22.431741Z", "iopub.status.idle": "2022-06-07T17:13:22.855288Z", "shell.execute_reply": "2022-06-07T17:13:22.854785Z" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
<Figure size 864x288 with 4 Axes>\n",
       "
\n" ], "text/plain": [ "\u001b[1m<\u001b[0m\u001b[1;95mFigure\u001b[0m\u001b[39m size 864x288 with \u001b[0m\u001b[1;36m4\u001b[0m\u001b[39m Axes\u001b[0m\u001b[1m>\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# plot the permittivity at a few frequencies\n", "freqs_plot = (freq_range[0], freq_range[1])\n", "fig, axes = plt.subplots(1, len(freqs_plot), tight_layout=True, figsize=(12, 4))\n", "for ax, freq_plot in zip(axes, freqs_plot):\n", " sim.plot_eps(x=0, freq=freq_plot, ax=ax)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also take a look at the source to make sure it's defined correctly over our frequency range of interst." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2022-06-07T17:13:22.857018Z", "iopub.status.busy": "2022-06-07T17:13:22.856905Z", "iopub.status.idle": "2022-06-07T17:13:23.204601Z", "shell.execute_reply": "2022-06-07T17:13:23.204158Z" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
<Figure size 432x288 with 1 Axes>\n",
       "
\n" ], "text/plain": [ "\u001b[1m<\u001b[0m\u001b[1;95mFigure\u001b[0m\u001b[39m size 432x288 with \u001b[0m\u001b[1;36m1\u001b[0m\u001b[39m Axes\u001b[0m\u001b[1m>\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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Z/PmzTV573FTZu7uy9y9zd3bZszY7xkzhuWuu+4qP/75z38+Iu8hIlIr7k4URUMfOEaMVoBaBxyWej432TbY9pq45557ePOb38x73/te7rzzTnXzici4t2bNGhYvXszHPvYxjjvuOL74xS9yyimncMIJJ3DllVeWj7vgggs4+eSTOfbYY1m2bFkNW9xrtMrMlwOXmdktxAURO9x9vZndDfxDqjDiHHqX7B5V27dv55FHHuHKK69kxowZ3HHHHbzyyitoUloRqYZfXbuNTc/lq3rOQ96Q5azLh64rW7VqFTfffDM7d+7ktttu4+GHH8bdOf/883nwwQd529vexo033si0adPYu3cvp5xyCu9///uZPn16Vdu7v6oSoMzsx8CZQKuZtRNX5mUB3P0G4E7gPcBqYA/wJ8m+rWb2ReCR5FRXu/u+ii1GzLPPPou709bWxpQpU8rbFKBEZLybN28ep512Gp/97Ge55557OOmkkwDYvXs3q1at4m1vexvXX389t99+OwBr165l1apVB0eAcvePDLHfgb8cZN+NwI3VaEclXnjhBQAWLVrE1KlTy9vOO++8WjZLRA4Sw8l0RkpzczMQj0FdccUV/Nmf/Vmf/Q888AD33nsvDz30EE1NTZx55pljYvaLcVMkMdJWrVpFGIYsWLCA1tZWpkyZUg5aIiIHg3e/+93ceOON7N69G4B169axadMmduzYwdSpU2lqauK5555jxYoVNW5pTFMdJV544QUWLFhQnkNq8eLFPP/88zVulYhI9Zxzzjk8++yznH766QC0tLTwgx/8gHPPPZcbbriBo48+msWLF3PaaafVuKUxBajECy+8wKJFi8rPjzrqKB544IHaNUhEpArmz5/PU0/1zkL3qU99ik996lOvOy59m03amjVrRqppQ1IXH3G/7OrVqznqqKPK2xYtWsTatWvZs2dPDVsmIlK/FKCAzZs309nZ2WcG3nnz5gFxH62IiIw+BSh6g9CcOb2zLJUeK0CJiNSGAhS9QWju3LnlbaXH7e3tNWmTiEi9U4BCGZSIyFikAEWcJZkZM2fOLG9raWlh8uTJyqBERGpEAYo4S5o5c2b5HqiSOXPmKIMSkXHtzW9+c62bcMAUoIgDVLp7r2Tu3LkKUCIyrv32t7+tdRMOmAIUgweoOXPmqItPRMa1lpYWIJ5v7+1vfztLly7liCOO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\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "text/html": [ "
<Figure size 432x288 with 1 Axes>\n",
       "
\n" ], "text/plain": [ "\u001b[1m<\u001b[0m\u001b[1;95mFigure\u001b[0m\u001b[39m size 432x288 with \u001b[0m\u001b[1;36m1\u001b[0m\u001b[39m Axes\u001b[0m\u001b[1m>\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Check probe and source\n", "ax1 = sim.sources[0].source_time.plot(times=np.linspace(0, sim.run_time, 1001))\n", "ax1.set_xlim(0, 1e-13)\n", "ax2 = sim.sources[0].source_time.plot_spectrum(times=np.linspace(0, sim.run_time, 1001))\n", "ax2.fill_between(freq_range, [-8e-16, -8e-16], [8e-16, 8e-16], alpha=0.4, color='g', label=\"mesure\")\n", "ax2.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Run the simulation\n", "\n", "We will submit the simulation to run as a new project." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "execution": { "iopub.execute_input": "2022-06-07T17:13:23.206409Z", "iopub.status.busy": "2022-06-07T17:13:23.206294Z", "iopub.status.idle": "2022-06-07T17:14:34.364968Z", "shell.execute_reply": "2022-06-07T17:14:34.364289Z" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
[10:13:23] INFO     Using Tidy3D credentials from stored file                      auth.py:74\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[10:13:23]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Using Tidy3D credentials from stored file \u001b]8;id=594822;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/auth.py\u001b\\\u001b[2mauth.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=738162;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/auth.py#74\u001b\\\u001b[2m74\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[10:13:26] INFO     Uploaded task 'dispersion' with task_id                     webapi.py:120\n",
       "                    '8d088e1d-ae3b-42b9-a672-7adf06798332'.                                  \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[10:13:26]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Uploaded task \u001b[32m'dispersion'\u001b[0m with task_id \u001b]8;id=586811;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=948036;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#120\u001b\\\u001b[2m120\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m \u001b[32m'8d088e1d-ae3b-42b9-a672-7adf06798332'\u001b[0m. \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[10:13:30] INFO     Maximum flex unit cost: 0.23                                webapi.py:253\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[10:13:30]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Maximum flex unit cost: \u001b[1;36m0.23\u001b[0m \u001b]8;id=594630;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=465930;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#253\u001b\\\u001b[2m253\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
           INFO     status = queued                                             webapi.py:262\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m status = queued \u001b]8;id=581831;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=238384;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#262\u001b\\\u001b[2m262\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "843f1bcee77e429d9ef074f5ab9a051f", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Output()" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[10:13:44] INFO     status = preprocess                                         webapi.py:274\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[10:13:44]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m status = preprocess \u001b]8;id=849886;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=61160;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#274\u001b\\\u001b[2m274\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
[10:13:57] INFO     starting up solver                                          webapi.py:278\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[10:13:57]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m starting up solver \u001b]8;id=77196;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=485368;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#278\u001b\\\u001b[2m278\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[10:14:11] INFO     running solver                                              webapi.py:284\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[10:14:11]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m running solver \u001b]8;id=516458;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=124892;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#284\u001b\\\u001b[2m284\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "e6497f8f77af4961acef7a4063a1e41c", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Output()" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[10:14:18] INFO     early shutoff detected, exiting.                            webapi.py:295\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[10:14:18]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m early shutoff detected, exiting. \u001b]8;id=909836;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=610734;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#295\u001b\\\u001b[2m295\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
           INFO     status = postprocess                                        webapi.py:301\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m status = postprocess \u001b]8;id=251529;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=478849;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#301\u001b\\\u001b[2m301\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "5e19e699d4734a139d2cab1c6fef71ca", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Output()" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[10:14:32] INFO     status = success                                            webapi.py:307\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[10:14:32]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m status = success \u001b]8;id=605631;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=539069;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#307\u001b\\\u001b[2m307\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
[10:14:33] INFO     downloading file \"monitor_data.hdf5\" to                     webapi.py:584\n",
       "                    \"data/sim_data.hdf5\"                                                     \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[10:14:33]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m downloading file \u001b[32m\"monitor_data.hdf5\"\u001b[0m to \u001b]8;id=87557;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=493801;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#584\u001b\\\u001b[2m584\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m \u001b[32m\"data/sim_data.hdf5\"\u001b[0m \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "e8bd20a5e37c4eaeb207161b98d71720", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Output()" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[10:14:34] INFO     loading SimulationData from data/sim_data.hdf5              webapi.py:407\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[10:14:34]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m loading SimulationData from data/sim_data.hdf5 \u001b]8;id=469332;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=273564;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#407\u001b\\\u001b[2m407\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sim_data = web.run(sim, task_name='dispersion', path='data/sim_data.hdf5')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Postprocess and Plot\n", "\n", "Once the simulation has completed, we can download the results and load them into the simulation object." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we compute the transmitted flux and plot the transmission spectrum." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "execution": { "iopub.execute_input": "2022-06-07T17:14:34.993141Z", "iopub.status.busy": "2022-06-07T17:14:34.993033Z", "iopub.status.idle": "2022-06-07T17:14:35.089784Z", "shell.execute_reply": "2022-06-07T17:14:35.089381Z" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
<Figure size 432x288 with 1 Axes>\n",
       "
\n" ], "text/plain": [ "\u001b[1m<\u001b[0m\u001b[1;95mFigure\u001b[0m\u001b[39m size 432x288 with \u001b[0m\u001b[1;36m1\u001b[0m\u001b[39m Axes\u001b[0m\u001b[1m>\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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FJFJIjLUvds8YK+IbAIWAhNUda+q7gMew5VkVgKT3NsccfToUQoLC2nYsKFTIRSriTfLLV26FFUlKSnphO19+/YFYMWKFU6EVSlfffUV3333HU899RQdO3akVatWvP7662zevJlp06Y5HZ5PPP0P7du3d+T6Y8aM4fvvv2fVqlWOXN8XRUVFPPPMM/Tq1euUmrW1TKpaKx69e/fWQNm1a5cCOmXKlIBdw1dXXXWVdu/e3W/ny8nJ0XvvvVcnTpyoubm5fjuvtwcffFAjIiJOOn9+fr7Wq1dP//SnPwXkuv40ZMgQbdWqlR45cuSE7QMHDtQzzjhD8/LyHIrMN0VFRdqyZUsdNWqUYzHs379f69atq3fddZdjMVQkOTlZAX3zzTedDiVogFVaxueq053UNYKnCcHJaTY8/D0f05133snkyZN58skn+fOf/+y383pbtmwZPXv25PTTTz9he0REBL169WL58uUBua6//Pzzz3z++efceeedJ61D/PDDD7Njxw7ee+89h6LzTUZGBrt27TqpigumJk2acO211/Lmm2+G5D0Rqsrjjz9OXFwc1113ndPhhIQKE4SIvC4ijb2ex4rIl4ENK7QcPnwYICRmcmzdujW7du3yy/0DGRkZvP322zz88MPcddddTJ06lezsbD9E+auioiLWrFlDYmJiqa8nJiaydu3akJ5+48MPPwRg5MiRJ7120UUX0aFDh5AfwrlkyRIALrzwQkfjGDduHDk5OSGZUL/66iuWL1/Ogw8+SEREhNPhhARfKohvgOUicrmI3I7rprXnAhpViPEkiFCpIAB27NhR7XO9+uqrxfck/OlPf6KoqIhXX3212uf19uOPP3Lo0CF69+5d6uvdunUjLy8vpKeE/uCDD+jSpQudOnU66TURYfTo0SxcuDCk1+pYsmQJLVq04KyzznI0jqSkJM466yymT5/uaBylefzxx2ndujW33HKL06GEjAoThKpOA24DPgYmAb9R1U8CHVgo8TQxhUIF4c+7qT/55BOSkpJo3bo17du3p1+/fiQnlxxoVj2rV68GKHNhmq5duwKwYcMGv17XX/bs2cOSJUu49tpry9xn9OjRALz99tvBCqvSlixZwoUXXuj4amgiwrhx4/j2229JTU11NBZv3377LQsXLmTChAknNSOeynxpYroZmAGMBl4F5opI9wDHFVJCqYnJ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\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Retrieve the power flux through the monitor plane.\n", "transmission = sim_data['flux']\n", "plt.plot(monitor_lambdas, transmission, color='k')\n", "plt.xlabel('wavelength (um)')\n", "plt.ylabel('transmitted flux')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In Tidy3D, results are normalized by default. In some cases, and largely depending on the required accuracy, a normalizing run may still be needed. Here, we show how to do such a normalizing run by simulating an empty simulation with the exact same source and monitor but none of the structures." ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "execution": { "iopub.execute_input": "2022-06-07T17:14:35.091416Z", "iopub.status.busy": "2022-06-07T17:14:35.091306Z", "iopub.status.idle": "2022-06-07T17:15:40.107275Z", "shell.execute_reply": "2022-06-07T17:15:40.106486Z" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
[10:14:35] INFO     Auto meshing using wavelength 0.7500 defined from        grid_spec.py:478\n",
       "                    sources.                                                                 \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[10:14:35]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Auto meshing using wavelength \u001b[1;36m0.7500\u001b[0m defined from \u001b]8;id=63316;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/components/grid/grid_spec.py\u001b\\\u001b[2mgrid_spec.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=181478;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/components/grid/grid_spec.py#478\u001b\\\u001b[2m478\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m sources. \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[10:14:37] INFO     Uploaded task 'docs_dispersion_norm' with task_id           webapi.py:120\n",
       "                    '59949b31-2ca6-4d9a-90cb-8f7c7ad44a02'.                                  \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[10:14:37]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Uploaded task \u001b[32m'docs_dispersion_norm'\u001b[0m with task_id \u001b]8;id=883864;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=511011;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#120\u001b\\\u001b[2m120\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m \u001b[32m'59949b31-2ca6-4d9a-90cb-8f7c7ad44a02'\u001b[0m. \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[10:14:41] INFO     Maximum flex unit cost: 0.20                                webapi.py:253\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[10:14:41]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Maximum flex unit cost: \u001b[1;36m0.20\u001b[0m \u001b]8;id=175521;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=797854;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#253\u001b\\\u001b[2m253\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
           INFO     status = queued                                             webapi.py:262\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m status = queued \u001b]8;id=717299;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=702230;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#262\u001b\\\u001b[2m262\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "36fb8c68a6b5443d8eaf8ebfe5b491ca", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Output()" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[10:14:53] INFO     status = preprocess                                         webapi.py:274\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[10:14:53]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m status = preprocess \u001b]8;id=349666;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=256811;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#274\u001b\\\u001b[2m274\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
[10:15:06] INFO     starting up solver                                          webapi.py:278\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[10:15:06]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m starting up solver \u001b]8;id=712337;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=383691;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#278\u001b\\\u001b[2m278\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[10:15:24] INFO     running solver                                              webapi.py:284\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[10:15:24]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m running solver \u001b]8;id=202568;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=237944;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#284\u001b\\\u001b[2m284\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "1d0d29cf973b4a35a78efcb66fe331f2", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Output()" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
           INFO     status = postprocess                                        webapi.py:301\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m status = postprocess \u001b]8;id=12382;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=485096;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#301\u001b\\\u001b[2m301\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "afe5fb20896640e29fc740499b248ff5", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Output()" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[10:15:38] INFO     status = success                                            webapi.py:307\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[10:15:38]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m status = success \u001b]8;id=551261;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=573656;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#307\u001b\\\u001b[2m307\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
[10:15:39] INFO     downloading file \"monitor_data.hdf5\" to                     webapi.py:584\n",
       "                    \"data/sim_data.hdf5\"                                                     \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[10:15:39]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m downloading file \u001b[32m\"monitor_data.hdf5\"\u001b[0m to \u001b]8;id=223687;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=655000;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#584\u001b\\\u001b[2m584\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m \u001b[32m\"data/sim_data.hdf5\"\u001b[0m \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "17ad8a542ed3400e9d089b5eb1610d9a", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Output()" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
\n",
       "
\n" ], "text/plain": [ "\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[10:15:40] INFO     loading SimulationData from data/sim_data.hdf5              webapi.py:407\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[10:15:40]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m loading SimulationData from data/sim_data.hdf5 \u001b]8;id=641165;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=813494;file:///home/momchil/Drive/flexcompute/tidy3d-core/tidy3d_frontend/tidy3d/web/webapi.py#407\u001b\\\u001b[2m407\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sim_norm = sim.copy(deep=True)\n", "sim_norm.structures = []\n", "\n", "sim_data_norm = web.run(sim_norm, task_name='docs_dispersion_norm', path='data/sim_data.hdf5')\n", "transmission_norm = sim_data_norm['flux']" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "execution": { "iopub.execute_input": "2022-06-07T17:15:40.648419Z", "iopub.status.busy": "2022-06-07T17:15:40.648315Z", "iopub.status.idle": "2022-06-07T17:15:40.765047Z", "shell.execute_reply": "2022-06-07T17:15:40.764689Z" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
<Figure size 432x288 with 1 Axes>\n",
       "
\n" ], "text/plain": [ "\u001b[1m<\u001b[0m\u001b[1;95mFigure\u001b[0m\u001b[39m size 432x288 with \u001b[0m\u001b[1;36m1\u001b[0m\u001b[39m Axes\u001b[0m\u001b[1m>\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(monitor_lambdas, transmission, label='with structure')\n", "plt.plot(monitor_lambdas, transmission_norm, label='no structure')\n", "plt.plot(monitor_lambdas, transmission / transmission_norm, 'k--', label='normalized')\n", "plt.legend()\n", "plt.xlabel('wavelength (um)')\n", "plt.ylabel('fraction of transmitted power (normalized)')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that since the flux monitor already takes the source power into account, the normalizing run has no visible effect on the results." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Analytical Comparison\n", "\n", "We will use a transfer matrix method (TMM) [code](https://github.com/sbyrnes321/tmm) to compare tidy3d transmission to a semi-analytical result." ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "execution": { "iopub.execute_input": "2022-06-07T17:15:40.766797Z", "iopub.status.busy": "2022-06-07T17:15:40.766684Z", "iopub.status.idle": "2022-06-07T17:15:40.788508Z", "shell.execute_reply": "2022-06-07T17:15:40.788027Z" }, "tags": [] }, "outputs": [], "source": [ "# import TMM package\n", "import tmm" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "execution": { "iopub.execute_input": "2022-06-07T17:15:40.790267Z", "iopub.status.busy": "2022-06-07T17:15:40.790155Z", "iopub.status.idle": "2022-06-07T17:15:40.868707Z", "shell.execute_reply": "2022-06-07T17:15:40.868263Z" } }, "outputs": [], "source": [ "# prepare list of thicknesses including air boundaries\n", "d_list = [np.inf] + t_slabs + [np.inf]\n", "\n", "# convert the complex permittivities at each frequency to refractive indices\n", "n_list1 = np.sqrt(mat1.eps_model(monitor_freqs))\n", "n_list2 = np.sqrt(mat2.eps_model(monitor_freqs))\n", "n_list3 = np.sqrt(mat3.eps_model(monitor_freqs))\n", "n_list4 = np.sqrt(mat4.eps_model(monitor_freqs))\n", "\n", "# loop through wavelength and record TMM computed transmission\n", "transmission_tmm = [] \n", "for i, lam in enumerate(monitor_lambdas):\n", " \n", " # create list of refractive index at this wavelength including outer material (air)\n", " n_list = [1, n_list1[i], n_list2[i], n_list3[i], n_list4[i], 1]\n", "\n", " # get transmission at normal incidence\n", " T = tmm.coh_tmm('s', n_list, d_list, 0, lam)['T']\n", " transmission_tmm.append(T)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "execution": { "iopub.execute_input": "2022-06-07T17:15:40.870658Z", "iopub.status.busy": "2022-06-07T17:15:40.870537Z", "iopub.status.idle": "2022-06-07T17:15:40.989288Z", "shell.execute_reply": "2022-06-07T17:15:40.988855Z" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
<Figure size 432x288 with 1 Axes>\n",
       "
\n" ], "text/plain": [ "\u001b[1m<\u001b[0m\u001b[1;95mFigure\u001b[0m\u001b[39m size 432x288 with \u001b[0m\u001b[1;36m1\u001b[0m\u001b[39m Axes\u001b[0m\u001b[1m>\u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n" }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "plt.plot(monitor_lambdas, transmission_tmm, label='TMM')\n", "plt.plot(monitor_lambdas, transmission / transmission_norm, 'k--', label='Tidy3D')\n", "plt.xlabel('wavelength ($\\mu m$)')\n", "plt.ylabel('Transmitted')\n", "plt.legend()\n", "plt.show()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.8.3" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "0f6e1d8f54c74a85acddb005888c3329": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "16abe84fa12d4f13a31a74185d970dd6": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "17ad8a542ed3400e9d089b5eb1610d9a": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", "_model_module_version": "1.0.0", "_model_name": "OutputModel", "_view_count": null, "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", "layout": "IPY_MODEL_63bc528fb13a4bffaa79607da260b0bf", "msg_id": "", "outputs": [ { "data": { "text/html": "
Downloading... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━   0% -:--:--\n
\n", "text/plain": "\u001b[31mDownloading...\u001b[0m \u001b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m 0%\u001b[0m \u001b[36m-:--:--\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" } ] } }, "1d0d29cf973b4a35a78efcb66fe331f2": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", "_model_module_version": "1.0.0", "_model_name": "OutputModel", "_view_count": null, "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", "layout": "IPY_MODEL_ffc4c2f29a6c432aa42cdc94c267d0c7", "msg_id": "", "outputs": [ { "data": { "text/html": "
% done ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━   0% -:--:--\n
\n", "text/plain": "% done \u001b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m 0%\u001b[0m \u001b[36m-:--:--\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" } ] } }, "21eedeca22ae45aaa8bd5944852e235f": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "36fb8c68a6b5443d8eaf8ebfe5b491ca": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", "_model_module_version": "1.0.0", "_model_name": "OutputModel", "_view_count": null, "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", "layout": "IPY_MODEL_58fafcfd978d495a87e36efe1badc2f3", "msg_id": "", "outputs": [ { "data": { "text/html": "
🏃  Starting 'docs_dispersion_norm'...\n
\n", "text/plain": "\u001b[32m🏃 \u001b[0m \u001b[1;32mStarting 'docs_dispersion_norm'...\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" } ] } }, "58fafcfd978d495a87e36efe1badc2f3": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "5e19e699d4734a139d2cab1c6fef71ca": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", "_model_module_version": "1.0.0", "_model_name": "OutputModel", "_view_count": null, "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", "layout": "IPY_MODEL_0f6e1d8f54c74a85acddb005888c3329", "msg_id": "", "outputs": [ { "data": { "text/html": "
🏃  Finishing 'dispersion'...\n
\n", "text/plain": "\u001b[32m🏃 \u001b[0m \u001b[1;32mFinishing 'dispersion'...\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" } ] } }, "63bc528fb13a4bffaa79607da260b0bf": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "843f1bcee77e429d9ef074f5ab9a051f": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", "_model_module_version": "1.0.0", "_model_name": "OutputModel", "_view_count": null, "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", "layout": "IPY_MODEL_16abe84fa12d4f13a31a74185d970dd6", "msg_id": "", "outputs": [ { "data": { "text/html": "
🚶  Starting 'dispersion'...\n
\n", "text/plain": "\u001b[32m🚶 \u001b[0m \u001b[1;32mStarting 'dispersion'...\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" } ] } }, "9db4a42b9dbd4e4aa31679b872a54c33": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "afe5fb20896640e29fc740499b248ff5": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", "_model_module_version": "1.0.0", "_model_name": "OutputModel", "_view_count": null, "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", "layout": "IPY_MODEL_ed9a3c0f2fe441ffa605903479068224", "msg_id": "", "outputs": [ { "data": { "text/html": "
🚶  Finishing 'docs_dispersion_norm'...\n
\n", "text/plain": "\u001b[32m🚶 \u001b[0m \u001b[1;32mFinishing 'docs_dispersion_norm'...\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" } ] } }, "e6497f8f77af4961acef7a4063a1e41c": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", "_model_module_version": "1.0.0", "_model_name": "OutputModel", "_view_count": null, "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", "layout": "IPY_MODEL_9db4a42b9dbd4e4aa31679b872a54c33", "msg_id": "", "outputs": [ { "data": { "text/html": "
% done (field decay = 1.43e-06) ━━━━━━━━━━━╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━  28% -:--:--\n
\n", "text/plain": "% done (field decay = 1.43e-06) \u001b[38;2;249;38;114m━━━━━━━━━━━\u001b[0m\u001b[38;5;237m╺\u001b[0m\u001b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m 28%\u001b[0m \u001b[36m-:--:--\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" } ] } }, "e8bd20a5e37c4eaeb207161b98d71720": { "model_module": "@jupyter-widgets/output", "model_module_version": "1.0.0", "model_name": "OutputModel", "state": { "_dom_classes": [], "_model_module": "@jupyter-widgets/output", "_model_module_version": "1.0.0", "_model_name": "OutputModel", "_view_count": null, "_view_module": "@jupyter-widgets/output", "_view_module_version": "1.0.0", "_view_name": "OutputView", "layout": "IPY_MODEL_21eedeca22ae45aaa8bd5944852e235f", "msg_id": "", "outputs": [ { "data": { "text/html": "
Downloading... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━   0% -:--:--\n
\n", "text/plain": "\u001b[31mDownloading...\u001b[0m \u001b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m 0%\u001b[0m \u001b[36m-:--:--\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" } ] } }, "ed9a3c0f2fe441ffa605903479068224": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "ffc4c2f29a6c432aa42cdc94c267d0c7": { "model_module": "@jupyter-widgets/base", "model_module_version": "1.2.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "1.2.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "1.2.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border": null, "bottom": null, "display": null, "flex": null, "flex_flow": null, "grid_area": null, "grid_auto_columns": null, "grid_auto_flow": null, "grid_auto_rows": null, "grid_column": null, "grid_gap": null, "grid_row": null, "grid_template_areas": null, "grid_template_columns": null, "grid_template_rows": null, "height": null, "justify_content": null, "justify_items": null, "left": null, "margin": null, "max_height": null, "max_width": null, "min_height": null, "min_width": null, "object_fit": null, "object_position": null, "order": null, "overflow": null, "overflow_x": null, "overflow_y": null, "padding": null, "right": null, "top": null, "visibility": null, "width": null } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 4 }