{ "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": "iVBORw0KGgoAAAANSUhEUgAAAJwAAAEYCAYAAACp7p83AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8+yak3AAAACXBIWXMAAAsTAAALEwEAmpwYAAASLklEQVR4nO3de3Bc5XnH8e9PEpKFrxJyjcE2l0BMDHUgUbiE0KbQFEgTIBBaIENggBomk05ImSYktCmkpVzSloSBDLiUCdQEKAZiILjcwmVch4vM3TWODcU3IJaQZWxg5Eh6+sd5Nz6sV6ur36M9+3xmdnzu5zlnf/u+Z7W7xzIznIulJusCXHXxwLmoPHAuKg+ci8oD56LywLmoPHBFJC2WdFbWdeRVVQdO0qWSFqSnmdnxZnZL5Dr2lmSS6iLs6wxJayS9L+kXkprLLHuwpGWSPgj/HpyaJ0lXSXo3PK6SpIH2P2qBi3Gy3MhIOhC4ETgTmAZ8APy0n2XrgUXAAqAJuAVYFKYDzANOAj4JzAW+DJw/YBFmVvYBzATuAdqBd4HrwvSzgf8BrgnT/wmYDNwall0D/B1QE5bfD3gS2Ax0AHeG6Qrb2Ai8B7wCHNRPLWcDbwBbgP8Dvpaadw6wAtgEPATslZp3IPAI0An8Fvg+cBywDfgdsBV4KSz7BHBeGK4Jx7Am1HcrMDnM2xsw4CxgbTimS8qcxz8HXgjHuA64NDVvbdjW1vA4osT6DwL/mhq/A7h5oOevaBv/DPw8Nf6xcA4mllj2z4ANgIrqPC4MLwXmpeadCzw9YA0DFFgLvBQCMR4YB3wu9eT3AH8N1AGN4QlZBEwMT8hvgHPD8rcDl4QnMb2dY4FlwJQQvk8A00vUMj48WbPD+HTgwDB8IrA6rFsXQrI0zJsIvA1cFPY7ETgszLsUWFC0n3Tgzgnb3ReYQPLC+8+iwP17OPZPAt3AJ/o5l58H/jAc/1yS4J9UtK26Ms/F7iShPxr4GskLb2KY9zmgq8yjcK4XAd8t2u5W4NMl9vdtYHHRtAeAi8Lw5sJ5DOOtwJaRBu4IktZqhxNBEri1ReHcBsxJTTsfeCIM3wrMB2YUbedokmAeTmgN+6llfDh5pwCNRfMWE4IdxmtIuou9gNOBF/rZ5kCBewz4RmrebJIWsS4Vkhmp+c8Cpw100sOyPwauGWzgwnKnkLSOHYUQDeURjueComkbgM+XWPbvgTuKpt1GaJmBXuCA1Lz9wzGoXA0DXcPNBNaYWU8/89elhluAXUi6n4I1wJ5h+DskLdizkpZLOgfAzH4FXAdcD2yUNF/SpOIdmdn7wF8CFwBvS/qlpAPC7L2An0jqktRF0nUq7Hsm8PoAx9mfPUocTx3J9U/BO6nhD0hawh1IOkzS45LaJW0Ox9EyxHruJ3lhrzSzJUNcF5LWrPjcTiK5RBnqssXzJwFbLaSvPwMFbh0wq8wbgvTGO0he/Xulps0ieQVhZu+Y2V+Z2R4kLd9PJe0X5l1rZp8G5gAfB/625M7MHjKzL5B0p6+RdGeFOs83sympR6OZLQ3z9h1E/aW8VeJ4eki6w6H6OXAfMNPMJgM3kLwoBlNHweUk16nTJZ1emCjpKElbyzyOCosuJ+n6C+vtCzSQ9DDFlgNzi955zg3Td9hWGF7OQAZoggvXcP/C9mu4I1Nd6pKi5RcA95JcJ+1FEopC93QqofshuYj/kCQInwEOI2kdxwP/DVxWopZpJNdq40leKJcBT4Z5XwFeZfs13WTg1DBcuIa7MJzc9DXcBcASUl05H+1SzwNWAfuQtFwLCV0wJbrB9Lol6t8InBWGDw3jhW3tStJFfbzMc/FHJC/qPYGjCsND7FIPJLkOPiqcxwUUdZupZetJWvRvhfP2zTBenzp3K0I9e5CE7YIBaxhEkbOAX5C8E+0Ari0TuKZwEO0kLcsP2P4u9WqS1m4rSRc3L0w/Bng5TO8guU6YUKKO6Wx/l9sVntz09eKZJO9wC+8Cb07NO4jk+mUTSRd4cZi+WwjcJuD5EoGrCcewLhzTAqBpmIH7anjCtpBcfF9H6voR+GHYRxdweNG6k4A3SV0fAlcBDzPANVOJOs4gebf5PsmbiObUvMXA91Pjh5C8ofsQeB44JDVP4TntDI+rB1OLwsrORVHVnzS4+DxwLioPnIvKA+eiqvoP3CdNmmRNTU07TDczCn+CSg+P1Nq1azvMbOqobKwCVX3gmpqauPLKK3eY3t3dTUdHBwAtLS00NDSMyv7OOOOMNQMvlV/epbqoqr6FK6W7u5vOzk5aWpKPOjs7O2lubh61Vq6aeQtXpBC2QsAaGhpobm6ms7OT7u7urMureB64lOKwFYxW6DywHrjf6y9sBSMNXWH71a7qr+Hq6uro6upi27ZtNDY20t3dXTZQjY2NbN68mfr6empqBvd67evr+/32q13Vf3jf2tpqbW1t0fYnaZmZtUbb4RjjXaqLygPnovLAuag8cC4qD5yLygPnovLAuag8cC4qD5yLygPnovLAuag8cC4qD5yLygPnospd4CSNk/SspJfCfeguy7omt10ev4DZDRxtZlsl7QIskbTYzJ7OujCXw8BZ8o3SrWF0l/Co7m+ZjiG561IBJNVKepHkpn+PmNkzRfPnSWqT1Nbe3p5JjdUql4Ezs14zOxiYARwq6aCi+fPNrNXMWqdOrdq7LmQil4ErMLMu4HGS/5PBjQG5C5ykqZKmhOFG4Ask9xp2Y0Du3jSQ3Av4Fkm1JC+o/zKzBzKuyQW5C5yZvUxyM2Q3BuWuS3VjmwfOReWBc1F54FxUHjgXlQfOReWBc1F54FxUHjgXlQfOReWBc1F54FxUHjgXlQfOReWBc1F54FxUufsC5pB1t8Pq+VlXUTW8hXNReeBcVLnqUiXNBG4FppH82n6+mf2k7EoNU2G/eRGqKzg/4r7GnlwFDugBLjKz5yVNBJZJesTM/jfrwlwiV12qmb1tZs+H4S3ACmDPbKtyabkKXJqkvUl+LvhMiXl+b5GM5DJwkiYAdwMXmtl7xfP93iLZyV3gwj3h7gZuM7N7sq7HfVSuAidJwH8AK8zs37Kux+0oV4EDjgTOBI6W9GJ4fDHrotx2ufqziJktAZR1Ha5/eWvh3BjngXNReeBcVB44F5UHzkXlgXNReeBcVB44F5UHzkXlgXNReeBcVB44F5UHzkXlgXNReeBcVB44F5UHzkXlgXNReeBcVLkLnKSbJW2U9GrWtbgd5S5wwM/w/+N+zMpd4MzsKaAz6zpcabkL3GD4vUWyU5WB83uLZKcqA+ey44FzUeUucJJuB34NzJa0XtK5WdfktsvVvUUAzOz0rGtw/ctdC+fGNg+ci8oD56LK3TXcUL3/ymp+/bETsy6jangL56LywLmoPHAuKg+ci8oD56LywLmoPHAuqqr/O1z7lBZu+NJZ8XZ47X3x9jUGeQvnovLAuag8cC4qD5yLygPnovLAuag8cC6q3AVO0nGSVkpaLenirOtxH5WrwEmqBa4HjgfmAKdLmpNtVS4ts8BJeqz4vweXNH+Emz0UWG1mb5jZNuAOwL/OO4Zk+dHWPsB3JX3GzC4L01pHuM09gXWp8fXAYcULSZoHzAOYPqGJv/ndmhHudvBujbansSnLLrULOAaYJul+SZNj7Th9b5GmxvGxduvINnAysx4z+wZwN7AE+IMRbnMDMDM1PiNMc2NEloG7oTBgZj8DzgYeHuE2nwP2l7SPpHrgNKC6v54xxmR2DWdmNxaNLwPOGeE2eyR9E3gIqAVuNrPlI9mmG125+z6cmT0IPJh1Ha603AVuqNp33ZUbWudmXUbVyNUfft3Y54FzUXngXFQeOBeVB85F5YFzUXngXFQeOBeVB85F5YFzUXngXFQeOBeVB85FJTPLuoZMtba2WltbW7T9SVpmZiP97UbF8hbOReWBc1F54FxUHjgXVW4CJ+lUScsl9Umq2ovysS43gQNeBU4Gnsq6ENe/3PyIxsxWAEjKuhRXRp5auEGTNE9Sm6S29vb2rMupKhXVwkl6FNi9xKxLzGzRYLdjZvOB+ZD84XeUynODUFGBM7M/zboGNzJV2aW67OQmcJK+Imk9cATwS0kPZV2T21FFdanlmNm9wL1Z1+HKy00L5yqDB85F5YFzUXngXFQeOBeVB85F5YFzUXngXFQeOBeVB85F5YFzUXngXFQeOBeVB85F5YFzUXngXFQeOBeVB85F5YFzUeUmcJJ+JOk1SS9LulfSlJ21r5UdK3l2w7M7a/O5lpvAAY8AB5nZXOA3wPd21o6uWHIFFz18EdV+99DhyE3gzOxhM+sJo08DM3bGfrZ0b2HpuqW8teUtVnWu2hm7yLXcBK7IOcDi/maO5N4iT775JIZhZixe1e8uXD8qKnCSHpX0aonHiallLgF6gNv6246ZzTezVjNrnTp16pBqWLhiIRg01jWycMVC71aHqKJ+CD3QvUUknQ18CTjGdkISevt6ee6t5zCMXutl3eZ1bHx/I9MmTBvtXeVWRbVw5Ug6DvgOcIKZfbAz9lFbU8tdp95Fb18vvdbL/C/Pp+Ht91jz0EN0d3XtjF3mTkW1cAO4DmgAHgk3JXzazC4Y7Z3MmTqHcdvgoDU17Lbbel5++gHeffllaseNo2nOHGYdeyy7H3YYDVOmjPaucyE3gTOz/YazXldPF/d03DOkdWa/U8+xS2t57bnrkjtuTpsMNT1sfekZ1i19CjVPoP7GC1Bj/XBKyrXcBC6mv/j6hVjj09TV1NK3+h1s/bto1waYMI6a4z9F7WdnQ4Of2lL8rAzDuBnT4NvJG+PettX0vbKW2iMPQPvtjmpyc1m8U1R94KbUTeHklpOHv4HjwsMNir8cXVQeOBeVB85F5YFzUXngXFQeOBeVB85F5YFzUXngXFQeOBeVB85F5YFzUXngXFQeOBeVB85F5YFzUeUqcJL+Mdxb5EVJD0vaI+ua3EflKnDAj8xsrpkdDDwA/CDjelyRXAXOzN5LjY4H/GfxY0zuftMg6XLg68Bm4E/6WWYeMA9g1qxZ8YpzqNLujSHpUWD3ErMuMbNFqeW+B4wzs38ot73W1lZra2sb5Sr7J2mZmbVG2+EYU3Et3ED3F0m5DXgQKBs4F1euruEk7Z8aPRF4LataXGkV18IN4EpJs4E+YA0w6vcWcSOTq8CZ2SlZ1+DKy1WX6sY+D5yLygPnovLAuag8cC4qD5yLygPnovLAuag8cC4qD5yLygPnovLAuag8cC4qD5yLKldfTxqOTZs2ceONNwLQ19fHtm3bqK+vp6boP/goN2+w+vr6Rlxvpav6wPX09DBp0qTfj3d3d9PZ2UlzczMNDQ39TnPD411qkYaGBpqbm+ns7KS7u9vDNsqqvoUrpRC6jo4OAFpaWjxso8RbOBeVt3AlFLrRlpYWAO9SR1HF/RB6tEnaAqwcxqotQMcw1pttZhOHsV4ueAsHK4fzS3hJbcNdb6jr5Ilfw7moPHAuKg8czK+Q9XKh6t80uLi8hXNReeBcVFUXOEnNkh6RtCr829TPcr3h5tSvS9oqabWki0ss1yDpzjD/GUl7h+nHSVpZZr2zJbWHfbwo6bxRP9gxqOoCB1wMPGZm+wOPhfFSPgQ+HYbnAnOA0yXNKVruXGCTme0HXANcJakWuB44vsx6AHea2cHhcdOIjqpCVGPgTgRuCcO3ACeVWfZQYLWZvWFm24A7wvr9bW8hcMwg16tK1Ri4aWb2dhh+B5jWz3LjgAXAIZJOCtPWA3sWLbcnsA7AzHpIbmZ9QGFamfUATgn/r8RCSTOHeiCVKJcfbZW78XR6xMxMUn9/F9oLOAI4FfixpFdGt0ruB243s25J55O0kkeP8j7GnFwGrtyNpyX9VtJ0M3tb0nRgYz/b2CBpAzAFeAI4BJgBbChadAMwE1gvqQ6YTHJv4dNSy+ywnpm9mxq9Cbh64COrfNXYpd4HnBWGzwIWFS8gqUlSA/AcMBv4Y2AVSYjuK7O9rwK/CuvtL2kfSfWl1gthLzgBWDGCY6ocZlZVD2A3knenq4BHgeYwvRW4KQx/FngFeAl4k+Ra73WS/wsC4IfACWF4HHAXsBp4Ftg3TP8i8Jsy610BLA/7eBw4IOtzE+PhH225qKqxS3UZ8sC5qDxwLioPnIvKA+ei8sC5qDxwLioP3BBI+qGkC1Pjl0v6VoYlVRz/w+8QhC9X3mNmn5JUQ/JpxaFFn4u6MnL54f3OYmZvSnpX0iEkX2t6wcM2NB64obsJOJvk6083Z1tK5fEudYjCtz9eAXYB9jez3oxLqijewg2RmW2T9DjQ5WEbOg/cEIU3C4eTfBPYDZH/WWQIwi+vVpP86mtV1vVUIr+Gc1F5C+ei8sC5qDxwLioPnIvKA+ei+n/+Lpl8l6tMgAAAAABJRU5ErkJggg==\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",
"
<Figure size 432x288 with 1 Axes>\n",
"
<Figure size 432x288 with 1 Axes>\n",
"
[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",
"
\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": []
},
"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": []
},
"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": []
},
"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": []
},
"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",
"
<Figure size 432x288 with 1 Axes>\n",
"
[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",
"
\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": []
},
"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": []
},
"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": []
},
"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": []
},
"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",
"
<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 }