{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Resonator benchmark (COMSOL)\n", "\n", "Run this notebook in your browser using [Binder](https://mybinder.org/v2/gh/flexcompute-readthedocs/tidy3d-docs/readthedocs?labpath=docs%2Fsource%2Fnotebooks%2FHighQ_Si.ipynb).\n", "\n", "In this example, we reproduce the findings of Zhang et al. (2018), which is linked [here](https://www.osapublishing.org/ol/abstract.cfm?uri=ol-43-8-1842).\n", "\n", "This notebook was originally developed and written by Romil Audhkhasi (USC). \n", "\n", "The paper investigates the resonances of silicon structures by measuring their transmission spectrum under varying geometric parameters.\n", "\n", "The paper uses a finite element solver (COMSOL), which matches the result from Tidy3D.\n", "\n", "\"diagram\"\n", "\n", "(Citation: Opt. Lett. 43, 1842-1845 (2018). With permission from the Optical Society)\n", "\n", "To do this calculation, we use a broadband pulse and frequency monitor to measure the flux on the opposite side of the structure." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "execution": { "iopub.execute_input": "2022-07-21T21:05:14.089221Z", "iopub.status.busy": "2022-07-21T21:05:14.088661Z", "iopub.status.idle": "2022-07-21T21:05:15.058272Z", "shell.execute_reply": "2022-07-21T21:05:15.057806Z" }, "tags": [] }, "outputs": [], "source": [ "# standard python imports\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "# tidy3D import\n", "import tidy3d as td\n", "from tidy3d import web" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Set Up Simulation" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2022-07-21T21:05:15.060236Z", "iopub.status.busy": "2022-07-21T21:05:15.060082Z", "iopub.status.idle": "2022-07-21T21:05:15.063035Z", "shell.execute_reply": "2022-07-21T21:05:15.062781Z" }, "tags": [] }, "outputs": [], "source": [ "nm = 1e-3\n", "\n", "# define the frequencies we want to measure\n", "Nfreq = 1000\n", "wavelengths = nm * np.linspace(1050, 1400, Nfreq)\n", "freqs = td.constants.C_0 / wavelengths\n", "\n", "# define the frequency center and width of our pulse\n", "freq0 = freqs[len(freqs)//2]\n", "freqw = freqs[0] - freqs[-1]\n", "\n", "# Define material properties\n", "n_SiO2 = 1.46\n", "n_Si = 3.52\n", "SiO2 = td.Medium(permittivity=n_SiO2**2)\n", "Si = td.Medium(permittivity=n_Si**2)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2022-07-21T21:05:15.064378Z", "iopub.status.busy": "2022-07-21T21:05:15.064194Z", "iopub.status.idle": "2022-07-21T21:05:15.066543Z", "shell.execute_reply": "2022-07-21T21:05:15.066317Z" }, "tags": [] }, "outputs": [], "source": [ "# space between resonators and source\n", "spc = 1.5\n", "\n", "# geometric parameters\n", "Px = Py = P = 650 * nm # periodicity in x and y\n", "t = 260 * nm # thickness of silcon\n", "g = 80 * nm # gap size\n", "L = 480 * nm # length in x\n", "w_sum = 400 * nm # sum of lengths in y\n", "\n", "# resolution (should be commensurate with periodicity)\n", "dl = P / 32\n", "\n", "# computes widths in y (w1 and w2) given the difference in lengths in y and the sum of lengths\n", "def calc_ws(delta):\n", " \"\"\" delta is a tunable parameter used to break symmetry.\n", " w_sum = w1 + w2\n", " delta = w1 - w2\n", " w_sum + delta = 2 * w1\n", " \"\"\"\n", " w1 = (w_sum + delta) / 2\n", " w2 = w_sum - w1\n", " return w1, w2" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2022-07-21T21:05:15.068003Z", "iopub.status.busy": "2022-07-21T21:05:15.067881Z", "iopub.status.idle": "2022-07-21T21:05:15.071164Z", "shell.execute_reply": "2022-07-21T21:05:15.070836Z" }, "tags": [] }, "outputs": [], "source": [ "# total size in z and [x,y,z]\n", "Lz = spc + t + t + spc\n", "sim_size = [Px, Py, Lz]\n", "\n", "# sio2 substrate\n", "substrate = td.Structure(\n", " geometry=td.Box(\n", " center=[0, 0, -Lz/2],\n", " size=[td.inf, td.inf, 2*(spc+t)],\n", " ),\n", " medium=SiO2,\n", " name='substrate'\n", ")\n", "\n", "# creates a list of structures given a value of 'delta'\n", "def geometry(delta):\n", " w1, w2 = calc_ws(delta)\n", " center_y = (w1 - w2) / 2.0\n", "\n", " cell1 = td.Structure(\n", " geometry=td.Box(\n", " center=[0, center_y + (g + w1)/2., t/2.],\n", " size=[L, w1, t],\n", " ),\n", " medium=Si,\n", " name='cell1'\n", " )\n", "\n", " cell2 = td.Structure(\n", " geometry=td.Box(\n", " center=[0, center_y - (g + w2)/2., t/2.],\n", " size=[L, w2, t],\n", " ),\n", " medium=Si,\n", " name='cell2'\n", " )\n", "\n", " return [substrate, cell1, cell2]\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "execution": { "iopub.execute_input": "2022-07-21T21:05:15.072452Z", "iopub.status.busy": "2022-07-21T21:05:15.072348Z", "iopub.status.idle": "2022-07-21T21:05:15.074926Z", "shell.execute_reply": "2022-07-21T21:05:15.074545Z" }, "tags": [] }, "outputs": [], "source": [ "# time dependence of source\n", "gaussian = td.GaussianPulse(freq0=freq0, fwidth=freqw)\n", "\n", "# plane wave source\n", "source = td.PlaneWave(\n", " source_time=gaussian,\n", " direction='-',\n", " size=(td.inf, td.inf, 0),\n", " center=(0,0,Lz/2 - spc + 2*dl),\n", " pol_angle=0.0)\n", "\n", "# Simulation run time. Note you need to run a long time to calculate high Q resonances.\n", "run_time = 7e-12" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2022-07-21T21:05:15.076241Z", "iopub.status.busy": "2022-07-21T21:05:15.076122Z", "iopub.status.idle": "2022-07-21T21:05:15.078298Z", "shell.execute_reply": "2022-07-21T21:05:15.078060Z" }, "tags": [] }, "outputs": [], "source": [ "# monitor fields on other side of structure (substrate side) at range of frequencies\n", "monitor = td.FluxMonitor(\n", " center=[0., 0., -Lz/2 + spc - 2 * dl],\n", " size=[td.inf, td.inf, 0],\n", " freqs=freqs,\n", " name='flux')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define Case Studies\n", "\n", "Here we define the three simulations to run\n", "\n", "- With no resonators (normalization)\n", "- With symmetric (delta = 0) resonators\n", "- With asymmetric (delta != 0) resonators\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "execution": { "iopub.execute_input": "2022-07-21T21:05:15.079640Z", "iopub.status.busy": "2022-07-21T21:05:15.079515Z", "iopub.status.idle": "2022-07-21T21:05:15.085613Z", "shell.execute_reply": "2022-07-21T21:05:15.085395Z" }, "tags": [] }, "outputs": [], "source": [ "grid_spec = td.GridSpec(\n", " grid_x = td.UniformGrid(dl=dl),\n", " grid_y = td.UniformGrid(dl=dl),\n", " grid_z = td.AutoGrid(min_steps_per_wvl=32)\n", ")\n", "\n", "# normalizing run (no Si) to get baseline transmission vs freq\n", "# can be run for shorter time as there are no resonances\n", "sim_empty = td.Simulation(size=sim_size,\n", " grid_spec=grid_spec,\n", " structures=[substrate],\n", " sources=[source],\n", " monitors=[monitor],\n", " run_time=run_time/10,\n", " boundary_spec=td.BoundarySpec.pml(z=True))\n", "\n", "# run with delta = 0\n", "sim_d0 = td.Simulation(size=sim_size,\n", " grid_spec = grid_spec,\n", " structures=geometry(0),\n", " sources=[source],\n", " monitors=[monitor],\n", " run_time=run_time,\n", " boundary_spec=td.BoundarySpec.pml(z=True))\n", "\n", "# run with delta = 20nm\n", "sim_d20 = td.Simulation(size=sim_size,\n", " grid_spec = grid_spec,\n", " structures=geometry(20 * nm),\n", " sources=[source],\n", " monitors=[monitor],\n", " run_time=run_time,\n", " boundary_spec=td.BoundarySpec.pml(z=True))" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2022-07-21T21:05:15.086953Z", "iopub.status.busy": "2022-07-21T21:05:15.086832Z", "iopub.status.idle": "2022-07-21T21:05:15.458377Z", "shell.execute_reply": "2022-07-21T21:05:15.457921Z" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
[17:05:15] INFO     Auto meshing using wavelength 1.2252 defined from        grid_spec.py:472\n",
       "                    sources.                                                                 \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[17:05:15]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Auto meshing using wavelength \u001b[1;36m1.2252\u001b[0m defined from \u001b]8;id=508823;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/components/grid/grid_spec.py\u001b\\\u001b[2mgrid_spec.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=527479;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/components/grid/grid_spec.py#472\u001b\\\u001b[2m472\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 1008x576 with 6 Axes>\n",
       "
\n" ], "text/plain": [ "\u001b[1m<\u001b[0m\u001b[1;95mFigure\u001b[0m\u001b[39m size 1008x576 with \u001b[0m\u001b[1;36m6\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": [ "# Structure visualization in various planes\n", "\n", "fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(14, 8))\n", "sim_d0.plot_eps(x=0, ax=ax1)\n", "sim_d0.plot_eps(y=g, ax=ax2)\n", "sim_d0.plot_eps(z=0, ax=ax3)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Run Simulations" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2022-07-21T21:05:15.460025Z", "iopub.status.busy": "2022-07-21T21:05:15.459896Z", "iopub.status.idle": "2022-07-21T21:06:46.369559Z", "shell.execute_reply": "2022-07-21T21:06:46.369119Z" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
           INFO     Auto meshing using wavelength 1.2252 defined from        grid_spec.py:472\n",
       "                    sources.                                                                 \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Auto meshing using wavelength \u001b[1;36m1.2252\u001b[0m defined from \u001b]8;id=840398;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/components/grid/grid_spec.py\u001b\\\u001b[2mgrid_spec.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=862813;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/components/grid/grid_spec.py#472\u001b\\\u001b[2m472\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": [ "
           INFO     Using Tidy3D credentials from stored file                      auth.py:74\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Using Tidy3D credentials from stored file \u001b]8;id=381968;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/auth.py\u001b\\\u001b[2mauth.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=613848;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/auth.py#74\u001b\\\u001b[2m74\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[17:05:17] INFO     Uploaded task 'normalization' with task_id                  webapi.py:120\n",
       "                    'e11330d3-4d2c-4988-acee-2b1e9611a410'.                                  \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[17:05:17]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Uploaded task \u001b[32m'normalization'\u001b[0m with task_id \u001b]8;id=423832;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=790821;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#120\u001b\\\u001b[2m120\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m \u001b[32m'e11330d3-4d2c-4988-acee-2b1e9611a410'\u001b[0m. \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "e81664c6a76341e59adf9cc7f90cda93", "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": [ "
[17:05:19] INFO     Uploaded task 'Si-resonator-delta-0' with task_id           webapi.py:120\n",
       "                    '3c910c95-8a0f-484f-ad28-5b2f7cfd9dd0'.                                  \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[17:05:19]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Uploaded task \u001b[32m'Si-resonator-delta-0'\u001b[0m with task_id \u001b]8;id=437205;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=91779;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#120\u001b\\\u001b[2m120\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m \u001b[32m'3c910c95-8a0f-484f-ad28-5b2f7cfd9dd0'\u001b[0m. \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "dc66173d965f46cb8e826991a559d789", "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": [ "
[17:05:21] INFO     Auto meshing using wavelength 1.2252 defined from        grid_spec.py:472\n",
       "                    sources.                                                                 \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[17:05:21]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Auto meshing using wavelength \u001b[1;36m1.2252\u001b[0m defined from \u001b]8;id=541054;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/components/grid/grid_spec.py\u001b\\\u001b[2mgrid_spec.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=162217;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/components/grid/grid_spec.py#472\u001b\\\u001b[2m472\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": [ "
[17:05:22] INFO     Uploaded task 'Si-resonator-delta-20' with task_id          webapi.py:120\n",
       "                    'ba6a1b74-e93c-4c10-81f6-f1c7aa04ede1'.                                  \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[17:05:22]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Uploaded task \u001b[32m'Si-resonator-delta-20'\u001b[0m with task_id \u001b]8;id=577527;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=340914;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#120\u001b\\\u001b[2m120\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m \u001b[32m'ba6a1b74-e93c-4c10-81f6-f1c7aa04ede1'\u001b[0m. \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "7bcfaedda7dc4ec6b6504e910bd5e8a6", "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": [ "
[17:05:25] Started working on Batch.                                         container.py:384\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[17:05:25]\u001b[0m\u001b[2;36m \u001b[0mStarted working on Batch. \u001b]8;id=734243;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/container.py\u001b\\\u001b[2mcontainer.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=549903;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/container.py#384\u001b\\\u001b[2m384\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "a88b4b54244c44a3894eaa16eca0d5b4", "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": [ "
[17:06:46] Batch complete.                                                   container.py:405\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[17:06:46]\u001b[0m\u001b[2;36m \u001b[0mBatch complete. \u001b]8;id=858422;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/container.py\u001b\\\u001b[2mcontainer.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=279598;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/container.py#405\u001b\\\u001b[2m405\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "batch = web.Batch(\n", " simulations={\n", " 'normalization': sim_empty,\n", " 'Si-resonator-delta-0': sim_d0,\n", " 'Si-resonator-delta-20': sim_d20,\n", " }\n", ")\n", "\n", "results = batch.run(path_dir='data')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Get Results and Plot" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2022-07-21T21:06:46.977107Z", "iopub.status.busy": "2022-07-21T21:06:46.976971Z", "iopub.status.idle": "2022-07-21T21:06:52.423141Z", "shell.execute_reply": "2022-07-21T21:06:52.422755Z" } }, "outputs": [ { "data": { "text/html": [ "
[17:06:47] INFO     downloading file \"output/monitor_data.hdf5\" to              webapi.py:574\n",
       "                    \"data/e11330d3-4d2c-4988-acee-2b1e9611a410.hdf5\"                         \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[17:06:47]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m downloading file \u001b[32m\"output/monitor_data.hdf5\"\u001b[0m to \u001b]8;id=422994;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=116990;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#574\u001b\\\u001b[2m574\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m \u001b[32m\"data/e11330d3-4d2c-4988-acee-2b1e9611a410.hdf5\"\u001b[0m \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "e6aa515e982f4c8492fb364d46d320a9", "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": [ "
[17:06:48] INFO     loading SimulationData from                                 webapi.py:398\n",
       "                    data/e11330d3-4d2c-4988-acee-2b1e9611a410.hdf5                           \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[17:06:48]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m loading SimulationData from \u001b]8;id=921598;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=747124;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#398\u001b\\\u001b[2m398\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m data/\u001b[93me11330d3-4d2c-4988-acee-2b1e9611a410\u001b[0m.hdf5 \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
           INFO     Auto meshing using wavelength 1.2252 defined from        grid_spec.py:472\n",
       "                    sources.                                                                 \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Auto meshing using wavelength \u001b[1;36m1.2252\u001b[0m defined from \u001b]8;id=478747;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/components/grid/grid_spec.py\u001b\\\u001b[2mgrid_spec.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=873011;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/components/grid/grid_spec.py#472\u001b\\\u001b[2m472\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": [ "
[17:06:49] INFO     downloading file \"output/monitor_data.hdf5\" to              webapi.py:574\n",
       "                    \"data/3c910c95-8a0f-484f-ad28-5b2f7cfd9dd0.hdf5\"                         \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[17:06:49]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m downloading file \u001b[32m\"output/monitor_data.hdf5\"\u001b[0m to \u001b]8;id=536832;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=109635;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#574\u001b\\\u001b[2m574\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m \u001b[32m\"data/3c910c95-8a0f-484f-ad28-5b2f7cfd9dd0.hdf5\"\u001b[0m \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "9bce63d862fe4b538e3ff16b27cabb41", "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": [ "
[17:06:50] INFO     loading SimulationData from                                 webapi.py:398\n",
       "                    data/3c910c95-8a0f-484f-ad28-5b2f7cfd9dd0.hdf5                           \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[17:06:50]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m loading SimulationData from \u001b]8;id=648773;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=299430;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#398\u001b\\\u001b[2m398\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m data/\u001b[93m3c910c95-8a0f-484f-ad28-5b2f7cfd9dd0\u001b[0m.hdf5 \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
           INFO     Auto meshing using wavelength 1.2252 defined from        grid_spec.py:472\n",
       "                    sources.                                                                 \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Auto meshing using wavelength \u001b[1;36m1.2252\u001b[0m defined from \u001b]8;id=67370;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/components/grid/grid_spec.py\u001b\\\u001b[2mgrid_spec.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=345703;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/components/grid/grid_spec.py#472\u001b\\\u001b[2m472\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": [ "
[17:06:51] INFO     downloading file \"output/monitor_data.hdf5\" to              webapi.py:574\n",
       "                    \"data/ba6a1b74-e93c-4c10-81f6-f1c7aa04ede1.hdf5\"                         \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[17:06:51]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m downloading file \u001b[32m\"output/monitor_data.hdf5\"\u001b[0m to \u001b]8;id=23676;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=713430;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#574\u001b\\\u001b[2m574\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m \u001b[32m\"data/ba6a1b74-e93c-4c10-81f6-f1c7aa04ede1.hdf5\"\u001b[0m \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "75a1dcead884467995e62ff531c8df7e", "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": [ "
[17:06:52] INFO     loading SimulationData from                                 webapi.py:398\n",
       "                    data/ba6a1b74-e93c-4c10-81f6-f1c7aa04ede1.hdf5                           \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[17:06:52]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m loading SimulationData from \u001b]8;id=168258;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=334391;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#398\u001b\\\u001b[2m398\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m data/\u001b[93mba6a1b74-e93c-4c10-81f6-f1c7aa04ede1\u001b[0m.hdf5 \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
           INFO     Auto meshing using wavelength 1.2252 defined from        grid_spec.py:472\n",
       "                    sources.                                                                 \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Auto meshing using wavelength \u001b[1;36m1.2252\u001b[0m defined from \u001b]8;id=976313;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/components/grid/grid_spec.py\u001b\\\u001b[2mgrid_spec.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=788129;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/components/grid/grid_spec.py#472\u001b\\\u001b[2m472\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": [ "
           WARNING  Simulation final field decay value of 0.0069 is greater     webapi.py:404\n",
       "                    than the simulation shutoff threshold of 1e-05. Consider                 \n",
       "                    simulation again with large run_time duration for more                   \n",
       "                    accurate results.                                                        \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[31mWARNING \u001b[0m Simulation final field decay value of \u001b[1;36m0.0069\u001b[0m is greater \u001b]8;id=547165;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=703761;file:///home/shashwat/flexcompute/repositories/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#404\u001b\\\u001b[2m404\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m than the simulation shutoff threshold of \u001b[1;36m1e-05\u001b[0m. Consider \u001b[2m \u001b[0m\n", "\u001b[2;36m \u001b[0m simulation again with large run_time duration for more \u001b[2m \u001b[0m\n", "\u001b[2;36m \u001b[0m accurate results. \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "batch_data = batch.load(path_dir='data')\n", "flux_norm = batch_data['normalization']['flux']\n", "trans_g0 = batch_data['Si-resonator-delta-0']['flux'] / flux_norm\n", "trans_g20 = batch_data['Si-resonator-delta-20']['flux'] / flux_norm" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The normalizing run computes the transmitted flux for an air -> SiO2 interface, which is just below unity due to some reflection.\n", "\n", "While not technically necessary for this example, since this transmission can be computed analytically, it is often a good idea to run a normalizing run so you can accurately measure the *change* in output when the structure is added. For example, for multilayer structures, the normalizing run displays frequency dependence, which would make it prudent to include in the calculation." ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2022-07-21T21:06:52.440051Z", "iopub.status.busy": "2022-07-21T21:06:52.439863Z", "iopub.status.idle": "2022-07-21T21:06:52.549509Z", "shell.execute_reply": "2022-07-21T21:06:52.549076Z" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
<Figure size 432x324 with 1 Axes>\n",
       "
\n" ], "text/plain": [ "\u001b[1m<\u001b[0m\u001b[1;95mFigure\u001b[0m\u001b[39m size 432x324 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": [ "# plot transmission, compare to paper results, look similar\n", "fig, ax = plt.subplots(1, 1, figsize=(6, 4.5))\n", "wavelengths_nm = td.C_0 / trans_g0.f / nm\n", "plt.plot(wavelengths_nm, trans_g0.values, color='red', label='$\\delta=0$')\n", "plt.plot(wavelengths_nm, trans_g20.values, color='blue', label='$\\delta=20~nm$')\n", "plt.xlabel('wavelength ($nm$)')\n", "plt.ylabel('Transmission')\n", "plt.xlim([1050, 1400])\n", "plt.ylim([0, 1])\n", "plt.legend()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Results Comparison\n", "\n", "Compare this plot to published results computed using COMSOL (FEM):\n", "\n", "\"diagram\"\n", "\n", "(Citation: Opt. Lett. 43, 1842-1845 (2018). With permission from the Optical Society)" ] } ], "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.10" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "4054f8dbdfce44d189c2b2b53ca3e148": { "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 } }, "6a865453538f47c6a05ca07ed90a498f": { "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 } }, "75a1dcead884467995e62ff531c8df7e": { "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_4054f8dbdfce44d189c2b2b53ca3e148", "msg_id": "", "outputs": [ { "data": { "text/html": "
 monitor_data.hdf5 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%46.8/46.8 kB?0:00:00\n
\n", "text/plain": "\u001b[1;32m↓\u001b[0m \u001b[1;34mmonitor_data.hdf5\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m46.8/46.8 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" } ] } }, "7bcfaedda7dc4ec6b6504e910bd5e8a6": { "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_6a865453538f47c6a05ca07ed90a498f", "msg_id": "", "outputs": [ { "data": { "text/html": "
 simulation.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%41.5/41.5 kB?0:00:00\n
\n", "text/plain": "\u001b[1;31m↑\u001b[0m \u001b[1;34msimulation.json\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m41.5/41.5 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" } ] } }, "7d11e2c32390459482533eccf7b0b5d9": { "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 } }, "8c4a17a02e484d5497d4079c49c80446": { "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 } }, "9bce63d862fe4b538e3ff16b27cabb41": { "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_c5466835771c46dfa3810569ef982b71", "msg_id": "", "outputs": [ { "data": { "text/html": "
 monitor_data.hdf5 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0%0.0/46.8 kB?-:--:--\n
\n", "text/plain": "\u001b[1;32m↓\u001b[0m \u001b[1;34mmonitor_data.hdf5\u001b[0m \u001b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m0.0%\u001b[0m • \u001b[32m0.0/46.8 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m-:--:--\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" } ] } }, "a88b4b54244c44a3894eaa16eca0d5b4": { "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_8c4a17a02e484d5497d4079c49c80446", "msg_id": "", "outputs": [ { "data": { "text/html": "
normalization: status = success             ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00\nSi-resonator-delta-0: status = success      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00\nSi-resonator-delta-20: status = postprocess ━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━  71% -:--:--\n
\n", "text/plain": "normalization: status = success \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[36m0:00:00\u001b[0m\nSi-resonator-delta-0: status = success \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100%\u001b[0m \u001b[36m0:00:00\u001b[0m\nSi-resonator-delta-20: status = postprocess \u001b[38;2;249;38;114m━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[38;2;249;38;114m╸\u001b[0m\u001b[38;5;237m━━━━━━━━━━\u001b[0m \u001b[35m 71%\u001b[0m \u001b[36m-:--:--\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" } ] } }, "c5466835771c46dfa3810569ef982b71": { "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 } }, "ce9547fa81c3485bbdf479effd51f23b": { "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 } }, "dc66173d965f46cb8e826991a559d789": { "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_e74cd14a77b649e9a264c97f5a70df80", "msg_id": "", "outputs": [ { "data": { "text/html": "
 simulation.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%41.5/41.5 kB?0:00:00\n
\n", "text/plain": "\u001b[1;31m↑\u001b[0m \u001b[1;34msimulation.json\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m41.5/41.5 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" } ] } }, "e6aa515e982f4c8492fb364d46d320a9": { "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_7d11e2c32390459482533eccf7b0b5d9", "msg_id": "", "outputs": [ { "data": { "text/html": "
 monitor_data.hdf5 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0%0.0/46.3 kB?-:--:--\n
\n", "text/plain": "\u001b[1;32m↓\u001b[0m \u001b[1;34mmonitor_data.hdf5\u001b[0m \u001b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m0.0%\u001b[0m • \u001b[32m0.0/46.3 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m-:--:--\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" } ] } }, "e74cd14a77b649e9a264c97f5a70df80": { "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 } }, "e81664c6a76341e59adf9cc7f90cda93": { "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_ce9547fa81c3485bbdf479effd51f23b", "msg_id": "", "outputs": [ { "data": { "text/html": "
 simulation.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100.0%40.2/40.2 kB?0:00:00\n
\n", "text/plain": "\u001b[1;31m↑\u001b[0m \u001b[1;34msimulation.json\u001b[0m \u001b[38;2;114;156;31m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m100.0%\u001b[0m • \u001b[32m40.2/40.2 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m0:00:00\u001b[0m\n" }, "metadata": {}, "output_type": "display_data" } ] } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 4 }