{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Resonator benchmark (COMSOL)\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": "2023-02-03T01:42:34.225677Z", "iopub.status.busy": "2023-02-03T01:42:34.225317Z", "iopub.status.idle": "2023-02-03T01:42:35.273133Z", "shell.execute_reply": "2023-02-03T01:42:35.272729Z" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
[19:42:35] WARNING  This version of Tidy3D was pip installed from the 'tidy3d-beta' repository on   __init__.py:103\n",
       "                    PyPI. Future releases will be uploaded to the 'tidy3d' repository. From now on,                \n",
       "                    please use 'pip install tidy3d' instead.                                                       \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[19:42:35]\u001b[0m\u001b[2;36m \u001b[0m\u001b[31mWARNING \u001b[0m This version of Tidy3D was pip installed from the \u001b[32m'tidy3d-beta'\u001b[0m repository on \u001b]8;id=709222;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/__init__.py\u001b\\\u001b[2m__init__.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=992054;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/__init__.py#103\u001b\\\u001b[2m103\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m PyPI. Future releases will be uploaded to the \u001b[32m'tidy3d'\u001b[0m repository. From now on, \u001b[2m \u001b[0m\n", "\u001b[2;36m \u001b[0m please use \u001b[32m'pip install tidy3d'\u001b[0m instead. \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
           INFO     Using client version: 1.9.0rc1                                                  __init__.py:121\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Using client version: \u001b[1;36m1.9\u001b[0m.0rc1 \u001b]8;id=667022;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/__init__.py\u001b\\\u001b[2m__init__.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=268547;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/__init__.py#121\u001b\\\u001b[2m121\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" } ], "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\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Set Up Simulation" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "execution": { "iopub.execute_input": "2023-02-03T01:42:35.275523Z", "iopub.status.busy": "2023-02-03T01:42:35.275242Z", "iopub.status.idle": "2023-02-03T01:42:35.278795Z", "shell.execute_reply": "2023-02-03T01:42:35.278411Z" }, "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)\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2023-02-03T01:42:35.280937Z", "iopub.status.busy": "2023-02-03T01:42:35.280792Z", "iopub.status.idle": "2023-02-03T01:42:35.284128Z", "shell.execute_reply": "2023-02-03T01:42:35.283783Z" }, "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\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "execution": { "iopub.execute_input": "2023-02-03T01:42:35.286027Z", "iopub.status.busy": "2023-02-03T01:42:35.285876Z", "iopub.status.idle": "2023-02-03T01:42:35.290366Z", "shell.execute_reply": "2023-02-03T01:42:35.289999Z" }, "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.0, t / 2.0],\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.0, t / 2.0],\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": "2023-02-03T01:42:35.292231Z", "iopub.status.busy": "2023-02-03T01:42:35.292107Z", "iopub.status.idle": "2023-02-03T01:42:35.295119Z", "shell.execute_reply": "2023-02-03T01:42:35.294754Z" }, "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", "\n", "# Simulation run time. Note you need to run a long time to calculate high Q resonances.\n", "run_time = 7e-12\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "execution": { "iopub.execute_input": "2023-02-03T01:42:35.297109Z", "iopub.status.busy": "2023-02-03T01:42:35.296960Z", "iopub.status.idle": "2023-02-03T01:42:35.299756Z", "shell.execute_reply": "2023-02-03T01:42:35.299388Z" }, "tags": [] }, "outputs": [], "source": [ "# monitor fields on other side of structure (substrate side) at range of frequencies\n", "monitor = td.FluxMonitor(\n", " center=[0.0, 0.0, -Lz / 2 + spc - 2 * dl],\n", " size=[td.inf, td.inf, 0],\n", " freqs=freqs,\n", " name=\"flux\",\n", ")\n" ] }, { "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": "2023-02-03T01:42:35.301777Z", "iopub.status.busy": "2023-02-03T01:42:35.301626Z", "iopub.status.idle": "2023-02-03T01:42:35.310341Z", "shell.execute_reply": "2023-02-03T01:42:35.309985Z" }, "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(\n", " 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(x=td.Boundary.periodic(), y=td.Boundary.periodic(), z=td.Boundary.pml()),\n", ")\n", "\n", "# run with delta = 0\n", "sim_d0 = td.Simulation(\n", " 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(x=td.Boundary.periodic(), y=td.Boundary.periodic(), z=td.Boundary.pml()),\n", ")\n", "\n", "# run with delta = 20nm\n", "sim_d20 = td.Simulation(\n", " 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(x=td.Boundary.periodic(), y=td.Boundary.periodic(), z=td.Boundary.pml()),\n", ")\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "execution": { "iopub.execute_input": "2023-02-03T01:42:35.312290Z", "iopub.status.busy": "2023-02-03T01:42:35.312138Z", "iopub.status.idle": "2023-02-03T01:42:35.805764Z", "shell.execute_reply": "2023-02-03T01:42:35.805310Z" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
           INFO     Auto meshing using wavelength 1.2252 defined from sources.                     grid_spec.py:510\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 sources. \u001b]8;id=375732;file:///Users/twhughes/Documents/Flexcompute/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=619379;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/components/grid/grid_spec.py#510\u001b\\\u001b[2m510\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABFgAAAK9CAYAAAAQWtiuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAChfElEQVR4nOzdd3hUZfr/8U8mkEkhhRJIIpEAltBBmiAKShZQLHEVhcUFWYWVomLcFVCkqhFFREXBsoiroogr6OKKhiYKLJ3vTxQQFCUCoZOBAKnn9wc7I0MyySTTMjPv13WdS+bMKfdMzH2e3Od5nhNiGIYhAAAAAAAAVJnJ1wEAAAAAAAD4OwosAAAAAAAALqLAAgAAAAAA4CIKLAAAAAAAAC6iwAIAAAAAAOAiCiwAAAAAAAAuosACAAAAAADgIgosAAAAAAAALqLAAgAAAAAA4CIKLH5i1apVCgkJ0apVq3wdCgDAC8j7AAAA/oUCSzXz2muvad68eb4Oo0rmz5+vmTNn+joMO//4xz/UrFkzhYeH6/LLL9crr7zi9L75+fkaM2aMkpKSFBERoc6dOysrK6vMbdeuXatu3bopMjJSCQkJeuihh3T69Gl3fQwAAYy8717eyPslJSWaM2eO2rZtq1q1aqlBgwa68cYbtXbtWnd+FAAA4GdCDMMwfB0EfteyZUvVq1ev1B3LkpISFRQUKCwsTCZT9ayL3Xzzzdq+fbt++eUXX4ciSXr99df1wAMP6I477lDv3r31zTff6N1339Wzzz6rMWPGVLj/gAED9PHHH2v06NG6/PLLNW/ePG3cuFErV65Ut27dbNtt27ZNXbp0UbNmzTRs2DD99ttvmj59uq6//np98cUXnvyIAAIAed99vJX3H330Uc2YMUP33HOPrr32Wp08eVKvv/669u3bpzVr1qhTp06e/JgAAKCaqpYFlry8PEVFRfk6DJ9w1ND2B9WpoX327FklJyfr6quv1pIlS2zr77nnHi1evFjZ2dmqXbu2w/03bNigzp076/nnn9ff/vY3SdK5c+fUsmVL1a9f3+4u5U033aRt27Zp586diomJkSS99dZbGjp0qL788kv16tXLQ58SCBzkffK+q7yV94uKihQTE6O+fftq4cKFtv337t2rJk2a6KGHHtJLL73koU8JAACqM4/fEtu/f7/uu+8+JSUlyWw2q3Hjxho+fLgKCgokSfPmzVNISIi+/vprjRgxQvXr11fDhg1t+7/22mtq0aKFzGazkpKSNHLkSJ08edLuHLt379Ydd9yhhIQEhYeHq2HDhurfv79yc3Nt22RlZalbt26Ki4tTrVq1dOWVV+rxxx+vMH5n9svPz9fEiRN12WWXyWw2Kzk5WY899pjy8/NLHe+9995Tp06dFBkZqdq1a+u6667TV199JUlKSUnR999/r6+//lohISEKCQlRjx49JDkei79w4UK1b99eERERqlevnu655x7t37/fbpt7771XtWrV0v79+5Wenq5atWopPj5ef/vb31RcXFzhd/Dpp5+qb9++tp9h06ZNNXXqVLt9e/Tooc8//1y//vqrLfaUlBSHx3z77bcVEhKiuXPn2q1/5plnFBISov/85z8VxlWelStX6tixYxoxYoTd+pEjRyovL0+ff/55uft//PHHCg0N1bBhw2zrwsPDdd9992ndunXKzs6WJFksFmVlZemee+6xFVckadCgQapVq5Y++ugjlz4H4I/I+/bI++d1795dbdq0KfO9K6+8Ur17964wrvJ4K+8XFhbq7NmzatCggd3+9evXl8lkUkREhEufAwAA+K8anjz4gQMH1KlTJ508eVLDhg1Tamqq9u/fr48//lhnzpxRWFiYbdsRI0YoPj5eEyZMUF5eniRp0qRJmjx5stLS0jR8+HDt2rVLs2fP1saNG7VmzRrVrFlTBQUF6t27t/Lz8/Xggw8qISFB+/fv15IlS3Ty5EnFxsbq+++/180336zWrVtrypQpMpvN2rNnj9asWVNu/M7sV1JSoltvvVXffvuthg0bpmbNmum7777Tiy++qB9//FGLFy+2bTt58mRNmjRJXbt21ZQpUxQWFqb169drxYoV6tWrl2bOnKkHH3xQtWrV0hNPPCFJpRpwF5o3b56GDBmijh07KjMzU4cOHdJLL72kNWvWaOvWrYqLi7NtW1xcrN69e6tz586aPn26li1bphdeeEFNmzbV8OHDy/0e5s2bp1q1aikjI0O1atXSihUrNGHCBFksFj3//POSpCeeeEK5ubn67bff9OKLL0qSatWq5fCYQ4YM0SeffKKMjAz94Q9/UHJysr777jtNnjxZ9913n2666SbbtidOnHDqD4LIyEhFRkZKkrZu3SpJ6tChg9027du3l8lk0tatW3XPPfc4PNbWrVt1xRVX2BVNJNm6fW/bts0Wc1FRUanzhIWFqW3btrY4gGBB3ifvO/LnP/9ZQ4cO1fbt29WyZUvb+o0bN+rHH3/U+PHjbeuqc963zs0yb948denSxTZEaOrUqapdu7ZdgQYAAAQZw4MGDRpkmEwmY+PGjaXeKykpMQzDMN5++21DktGtWzejqKjI9v7hw4eNsLAwo1evXkZxcbFt/axZswxJxty5cw3DMIytW7cakoyFCxc6jOPFF180JBlHjhypVPzO7Pfuu+8aJpPJ+Oabb+zWz5kzx5BkrFmzxjAMw9i9e7dhMpmM22+/3e7zGMbv34VhGEaLFi2M7t27lzrPypUrDUnGypUrDcMwjIKCAqN+/fpGy5YtjbNnz9q2W7JkiSHJmDBhgm3d4MGDDUnGlClT7I7Zrl07o3379uV/CYZhnDlzptS6v/71r0ZkZKRx7tw527q+ffsajRo1qvB4VgcPHjTq1Klj/OEPfzDy8/ONdu3aGZdeeqmRm5trt12jRo0MSRUuEydOtO0zcuRIIzQ0tMzzxsfHG/379y83thYtWhg33HBDqfXff/+9IcmYM2eOYRiGsXDhQkOSsXr16lLb9uvXz0hISKjoawACCnmfvO/IyZMnjfDwcGPMmDF26x966CEjKirKOH36tG1ddc77hnH+Z3vVVVfZxdKkSRNj586dznwVAAAgQHlsiFBJSYkWL16sW265pdTdJEkKCQmxez106FCFhobaXi9btkwFBQUaPXq03eR+Q4cOVUxMjK2rb2xsrCTpyy+/1JkzZ8qMxXpH79NPP1VJSYnTn8GZ/RYuXKhmzZopNTVVR48etS033HCDpPNdliVp8eLFKikp0YQJE0pNVnjxd+GMTZs26fDhwxoxYoTCw8Nt6/v27avU1NQyu0I/8MADdq+vvfZa/fzzzxWe68LuzqdOndLRo0d17bXX6syZM9q5c2elY7dKSEjQq6++qqysLF177bXatm2b5s6dW+ru4fvvv6+srKwKl0GDBtn2OXv2rN2d8guFh4fr7Nmz5cZ29uxZmc3mMve1vn/hfx1tW9F5gEBC3ifvlyc2Nla33XabPvjgAxn/m/6tuLhYCxYsUHp6ut0cPNU570tSdHS0WrRooZEjR+qTTz7Ra6+9pqKiIqWnp+vo0aPOfykAACCgeGyI0JEjR2SxWOy6AZencePGdq9//fVXSefHZV8oLCxMTZo0sb3fuHFjZWRkaMaMGXr//fd17bXX6tZbb9U999xja4Tffffdeuutt3T//fdr7Nix6tmzp/74xz/qzjvvLPfJDM7st3v3bu3YsUPx8fFlHuPw4cOSpJ9++kkmk0nNmzd36vuoiKPvR5JSU1P17bff2q0LDw8vFWPt2rV14sSJCs/1/fffa/z48VqxYoUsFovdexfOd1AV/fv313vvvafPP/9cw4YNU8+ePUttc80111T6uBEREbb5Hi527ty5CsfIR0RElDmXwrlz52zvX/hfR9syFh/BhLx/HnnfsUGDBmnBggX65ptvdN1112nZsmU6dOiQ/vznP9ttV53zflFRkdLS0tSjRw+7R0CnpaWpRYsWev755zVt2rRKxw8AAPyfR+dgqQxX/hB94YUXdO+99+rTTz/VV199pYceekiZmZn673//q4YNGyoiIkKrV6/WypUr9fnnn2vp0qVasGCBbrjhBn311Vd2d1Avjqmi/UpKStSqVSvNmDGjzGMkJydX+XO5k6PPWJGTJ0+qe/fuiomJ0ZQpU9S0aVOFh4dry5YtGjNmTKXuDJfl2LFj2rRpkyTphx9+UElJSak/fo4cOeLUWPxatWrZxv8nJiaquLhYhw8fVv369W3bFBQU6NixY0pKSir3WImJiaUmjZSkgwcPSpJt/8TERLv1F29b0XmAYEbe96zqmPd79+6tBg0a6L333tN1112n9957TwkJCUpLS7Pbrjrn/dWrV2v79u2lfv6XX365mjVrVuE8PwAAIHB5bIhQfHy8YmJitH379irt36hRI0nSrl277NYXFBRo7969tvetWrVqpfHjx2v16tX65ptvtH//fs2ZM8f2vslkUs+ePTVjxgz98MMPevrpp7VixQpbV25HKtqvadOmOn78uHr27Km0tLRSi/VOY9OmTVVSUqIffvih3PM5223c0fdjXXfx91NVq1at0rFjxzRv3jw9/PDDuvnmm5WWllbmoy6r0uV95MiROnXqlDIzM/Xtt99q5syZpbbp2LGjEhMTK1ymT59u26dt27aSZCveWG3atEklJSW29x1p27atfvzxx1J3btevX293/JYtW6pGjRqlzlNQUKBt27ZVeB4gkJD3yfsVCQ0N1Z/+9Cd9/PHHOnHihBYvXqwBAwaUKgZV57x/6NAhSSqzAFRYWKiioqIKvwcA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uuoqhYeH69JLL9XEiRNVVFTkro+CAEWBBQAAAAA8yFGB5brrrtPZs2d13XXXeT8oJ1WnAssTTzyhMWPG6A9/+INeeeUVXXrppfrTn/6kDz/8sMJ9S0pK1LdvX82fP1+jRo3Sc889p8OHD6tHjx7avXu33bZffPGF0tPTFRcXp1deeUXp6el66qmn9OCDD3rqoyFAMMktAhITHQJA8CH3A9VbXl6eoqKifB1GtWIymRQeHu7rMPzC/v379cILL2jkyJGaNWuWJOn+++9X9+7d9fe//139+vVTaGiow/0//vhjrV27VgsXLtSdd94pSbrrrrt0xRVXaOLEiZo/f75t27/97W9q3bq1vvrqK9Wocf5P5piYGD3zzDN6+OGHlZqa6sFPCn9GDxYAAAAAlbJ//37dd999SkpKktlsVuPGjTV8+HAVFBRIkubNm6eQkBB9/fXXGjFihOrXr6+GDRva9n/ttdfUokULmc1mJSUlaeTIkTp58qTdOXbv3q077rhDCQkJCg8PV8OGDdW/f3/l5ubatsnKylK3bt0UFxenWrVq6corr9Tjjz9eYfzO7Jefn6+JEyfqsssuk9lsVnJysh577DHl5+eXOt57772nTp06KTIyUrVr19Z1112nr776SpKUkpKi77//Xl9//bWtENyjRw9JjudgWbhwodq3b6+IiAjVq1dP99xzj/bv32+3zb333qtatWpp//79Sk9PV61atRQfH6+//e1vKi4urvA7+PTTT9W3b1/bz7Bp06aaOnWq3b49evTQ559/rl9//dUWe0pKisNj3nvvvaWGa1qXSZMmVRhTRfEWFhZqxIgRtnUhISEaPny4fvvtN61bt67c/T/++GM1aNBAf/zjH23r4uPjddddd+nTTz+1/Vx/+OEH/fDDDxo2bJituCJJI0aMkGEY+vjjj136HAhs9GABAAAA4LQDBw6oU6dOtvksUlNTtX//fn388cc6c+aMwsLCbNuOGDFC8fHxmjBhgvLy8iRJkyZN0uTJk5WWlqbhw4dr165dmj17tjZu3Kg1a9aoZs2aKigoUO/evZWfn68HH3xQCQkJ2r9/v5YsWaKTJ08qNjZW33//vW6++Wa1bt1aU6ZMkdls1p49e7RmzZpy43dmv5KSEt1666369ttvNWzYMDVr1kzfffedXnzxRf34449avHixbdvJkydr0qRJ6tq1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8cUX2rFjh+37cZW158uFMRYUFOi1114rtW1UVJTTQ4YOHjyou+66S926dbM9iagsVZmD5bbbblPNmjXtYjQMQ3PmzNEll1yirl272sWxc+dOFRYW2tbdeeedOnTokD755BPbuqNHj2rhwoW65ZZbbHOutGjRQqmpqXrjjTfsHlk9e/ZshYSE6M4773Tqu0BwYogQAAAAAKc988wz+uqrr9S9e3fbI4wPHjyohQsX6ttvv7V7jPDF4uPjNW7cOE2ePFl9+vTRrbfeql27dum1115Tx44ddc8990iSVqxYoVGjRqlfv3664oorVFRUpHfffVehoaG64447JElTpkzR6tWr1bdvXzVq1EiHDx/Wa6+9poYNG5b7uF5n9vvzn/+sjz76SA888IBWrlypa665RsXFxdq5c6c++ugjffnll+rQoYMuu+wyPfHEE5o6daquvfZa/fGPf5TZbNbGjRuVlJSkzMxMSVL79u01e/ZsPfXUU7rssstUv35924S5F6pZs6amTZumIUOGqHv37howYIDtMc0pKSl65JFHqvpjs9O1a1fVrl1bgwcP1kMPPaSQkBC9++67ZRbI2rdvrwULFigjI0MdO3ZUrVq1dMstt5R53IceekhHjhzRY489pg8//NDuvdatW6t169aSqjYHS8OGDTV69Gg9//zzKiwsVMeOHbV48WJ98803ev/99+2GS40bN07vvPOO9u7dq5SUFEnnCyxXX321hgwZoh9++EH16tXTa6+9puLiYk2ePNnuXM8//7xuvfVW9erVS/3799f27ds1a9Ys3X///aUeEw3Y8eETjPwCj+r0Pnc8qrNbt25Gjx49jB49ehjdunXjZwigUsj93kfuB/zLr7/+agwaNMiIj483zGaz0aRJE2PkyJFGfn6+YRi/P6a5rEc5G8b5xzKnpqYaNWvWNBo0aGAMHz7cOHHihO39n3/+2fjLX/5iNG3a1AgPDzfq1KljXH/99cayZcts2yxfvty47bbbjKSkJCMsLMxISkoyBgwYYPz444/lxu7sfgUFBca0adOMFi1aGGaz2ahdu7bRvn17Y/LkyaVyy9y5c4127drZtuvevbuRlZVlez8nJ8fo27evER0dbUiyPbL54sc0Wy1YsMB2vDp16hgDBw40fvvtN7ttBg8ebERFRZX6fBMnTjSc+TNvzZo1xtVXX21EREQYSUlJ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\n", "text/plain": [ "
" ] }, "metadata": {}, "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()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Run Simulations" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "execution": { "iopub.execute_input": "2023-02-03T01:42:35.808146Z", "iopub.status.busy": "2023-02-03T01:42:35.807959Z", "iopub.status.idle": "2023-02-03T01:44:30.392319Z", "shell.execute_reply": "2023-02-03T01:44:30.391872Z" }, "tags": [] }, "outputs": [ { "data": { "text/html": [ "
           INFO     Auto meshing using wavelength 1.2252 defined from sources.                     grid_spec.py:510\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 sources. \u001b]8;id=447091;file:///Users/twhughes/Documents/Flexcompute/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=684507;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/components/grid/grid_spec.py#510\u001b\\\u001b[2m510\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[19:42:36] INFO     Created task 'normalization' with task_id 'd0132940-3c42-4ed8-be8f-9473c6a66444'. webapi.py:120\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[19:42:36]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Created task \u001b[32m'normalization'\u001b[0m with task_id \u001b[32m'd0132940-3c42-4ed8-be8f-9473c6a66444'\u001b[0m. \u001b]8;id=453371;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=875641;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#120\u001b\\\u001b[2m120\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": [
       "\u001b[?25l"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "4cf2372bdd074255abd606a45cfd8d69",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
\n",
       "
\n" ], "text/plain": [ "\n", "\u001b[?25h" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[19:42:38] INFO     Created task 'Si-resonator-delta-0' with task_id                                  webapi.py:120\n",
       "                    '90971945-7fe0-4103-8ddb-b1519189844c'.                                                        \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[19:42:38]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Created task \u001b[32m'Si-resonator-delta-0'\u001b[0m with task_id \u001b]8;id=160637;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=947519;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#120\u001b\\\u001b[2m120\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m \u001b[32m'90971945-7fe0-4103-8ddb-b1519189844c'\u001b[0m. \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": [
       "\u001b[?25l"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "198eb6e1022b42ae86236a98d821755d",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
\n",
       "
\n" ], "text/plain": [ "\n", "\u001b[?25h" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[19:42:39] INFO     Auto meshing using wavelength 1.2252 defined from sources.                     grid_spec.py:510\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[19:42:39]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Auto meshing using wavelength \u001b[1;36m1.2252\u001b[0m defined from sources. \u001b]8;id=551972;file:///Users/twhughes/Documents/Flexcompute/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=87434;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/components/grid/grid_spec.py#510\u001b\\\u001b[2m510\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[19:42:40] INFO     Created task 'Si-resonator-delta-20' with task_id                                 webapi.py:120\n",
       "                    'a83eb38c-0276-405a-93f4-2af2f71e357d'.                                                        \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[19:42:40]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Created task \u001b[32m'Si-resonator-delta-20'\u001b[0m with task_id \u001b]8;id=251408;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=208931;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#120\u001b\\\u001b[2m120\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m \u001b[32m'a83eb38c-0276-405a-93f4-2af2f71e357d'\u001b[0m. \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": [
       "\u001b[?25l"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "079d9be595a0482da482f0da0a28600f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
\n",
       "
\n" ], "text/plain": [ "\n", "\u001b[?25h" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[19:42:42] Started working on Batch.                                                               container.py:361\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[19:42:42]\u001b[0m\u001b[2;36m \u001b[0mStarted working on Batch. \u001b]8;id=797274;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/container.py\u001b\\\u001b[2mcontainer.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=227598;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/container.py#361\u001b\\\u001b[2m361\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": [
       "\u001b[?25l"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "67ae7c7cce3044f4a6aa75f4c9ce031f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
\n",
       "
\n" ], "text/plain": [ "\n", "\u001b[?25h" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[19:44:30] Batch complete.                                                                         container.py:382\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[19:44:30]\u001b[0m\u001b[2;36m \u001b[0mBatch complete. \u001b]8;id=529521;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/container.py\u001b\\\u001b[2mcontainer.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=762723;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/container.py#382\u001b\\\u001b[2m382\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\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Get Results and Plot" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2023-02-03T01:44:31.833076Z", "iopub.status.busy": "2023-02-03T01:44:31.832965Z", "iopub.status.idle": "2023-02-03T01:44:37.026875Z", "shell.execute_reply": "2023-02-03T01:44:37.026400Z" } }, "outputs": [ { "data": { "text/html": [ "
[19:44:32] INFO     downloading file \"output/monitor_data.hdf5\" to                                    webapi.py:593\n",
       "                    \"data/d0132940-3c42-4ed8-be8f-9473c6a66444.hdf5\"                                               \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[19:44:32]\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=480730;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=932551;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#593\u001b\\\u001b[2m593\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m \u001b[32m\"data/d0132940-3c42-4ed8-be8f-9473c6a66444.hdf5\"\u001b[0m \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": [
       "\u001b[?25l"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "24371cb9be8a4dd39b3d8aff9bedd92d",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
\n",
       "
\n" ], "text/plain": [ "\n", "\u001b[?25h" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[19:44:33] INFO     loading SimulationData from data/d0132940-3c42-4ed8-be8f-9473c6a66444.hdf5        webapi.py:415\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[19:44:33]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m loading SimulationData from data/\u001b[93md0132940-3c42-4ed8-be8f-9473c6a66444\u001b[0m.hdf5 \u001b]8;id=600503;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=417494;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#415\u001b\\\u001b[2m415\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
           INFO     downloading file \"output/monitor_data.hdf5\" to                                    webapi.py:593\n",
       "                    \"data/90971945-7fe0-4103-8ddb-b1519189844c.hdf5\"                                               \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m \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=800675;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=388708;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#593\u001b\\\u001b[2m593\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m \u001b[32m\"data/90971945-7fe0-4103-8ddb-b1519189844c.hdf5\"\u001b[0m \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": [
       "\u001b[?25l"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "e3f9f98720aa4b46a1e17dc4fe4e6852",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
\n",
       "
\n" ], "text/plain": [ "\n", "\u001b[?25h" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[19:44:35] INFO     loading SimulationData from data/90971945-7fe0-4103-8ddb-b1519189844c.hdf5        webapi.py:415\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[19:44:35]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m loading SimulationData from data/\u001b[93m90971945-7fe0-4103-8ddb-b1519189844c\u001b[0m.hdf5 \u001b]8;id=522120;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=385401;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#415\u001b\\\u001b[2m415\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
           INFO     downloading file \"output/monitor_data.hdf5\" to                                    webapi.py:593\n",
       "                    \"data/a83eb38c-0276-405a-93f4-2af2f71e357d.hdf5\"                                               \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m \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=237455;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=881380;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#593\u001b\\\u001b[2m593\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m \u001b[32m\"data/a83eb38c-0276-405a-93f4-2af2f71e357d.hdf5\"\u001b[0m \u001b[2m \u001b[0m\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
\n"
      ],
      "text/plain": [
       "\u001b[?25l"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "99bd2fd5401c41f7a74a12d2e37d7c47",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "
\n",
       "
\n" ], "text/plain": [ "\n", "\u001b[?25h" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[19:44:36] INFO     loading SimulationData from data/a83eb38c-0276-405a-93f4-2af2f71e357d.hdf5        webapi.py:415\n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[19:44:36]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m loading SimulationData from data/\u001b[93ma83eb38c-0276-405a-93f4-2af2f71e357d\u001b[0m.hdf5 \u001b]8;id=4741;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=774836;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#415\u001b\\\u001b[2m415\u001b[0m\u001b]8;;\u001b\\\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
[19:44:37] WARNING  Simulation final field decay value of 0.00167 is greater than the simulation      webapi.py:421\n",
       "                    shutoff threshold of 1e-05. Consider simulation again with large run_time                      \n",
       "                    duration for more accurate results.                                                            \n",
       "
\n" ], "text/plain": [ "\u001b[2;36m[19:44:37]\u001b[0m\u001b[2;36m \u001b[0m\u001b[31mWARNING \u001b[0m Simulation final field decay value of \u001b[1;36m0.00167\u001b[0m is greater than the simulation \u001b]8;id=21177;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=900227;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#421\u001b\\\u001b[2m421\u001b[0m\u001b]8;;\u001b\\\n", "\u001b[2;36m \u001b[0m shutoff threshold of \u001b[1;36m1e-05\u001b[0m. Consider simulation again with large run_time \u001b[2m \u001b[0m\n", "\u001b[2;36m \u001b[0m duration for more 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\"].flux\n", "trans_g0 = batch_data[\"Si-resonator-delta-0\"][\"flux\"].flux / flux_norm\n", "trans_g20 = batch_data[\"Si-resonator-delta-20\"][\"flux\"].flux / flux_norm\n" ] }, { "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": "2023-02-03T01:44:37.053482Z", "iopub.status.busy": "2023-02-03T01:44:37.053368Z", "iopub.status.idle": "2023-02-03T01:44:37.173781Z", "shell.execute_reply": "2023-02-03T01:44:37.173352Z" }, "tags": [] }, "outputs": [ { "data": { "image/png": "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lSszc+ZMT//T3Hajc7Fq1So6dOhAqVKlMJlMxMbGZjvG9evXGTJkCKVKlaJo0aI89NBD2Ub1jY+Pp1OnToSFhVG2bFnGjBlDenq6B/9l7smP89C2bdtsn4nBgwc77OPr5wFyPxdpaWmMHTuW+vXrU6RIESpUqEDfvn3577//HI5x4cIFevfuTfHixSlRogQDBw7kSpb5cHz9+5Ef58EfrhM3+m5MnDiR2rVrU6RIEUqWLEl0dDQ7duxw2McfPg+QP+eiIHwm7A0ePBiTycScOXMctnvrM2HIICU5OZmGDRsyb948p8/PnDmTd955hwULFrBjxw6KFClCx44duX79usN+kyZN4tSpU9a/559/3vrcpUuX6NChA1WrVmXXrl288cYbTJw40ecGjbvRuUhOTuauu+5ixowZOR5j5MiRfP3113z++eds3bqV//77jwcffND6fEZGBp06dSI1NZVffvmFjz76iCVLljB+/Ph8//fkVX6cB4BBgwY5fCbsv1RGOA+Q+7m4evUqu3fvZty4cezevZtVq1Zx4MABunbt6rBf7969+eOPP9iwYQNr167lxx9/5Omnn7Y+b4TvR36cBzD+deJG341bb72VuXPnsm/fPrZt20ZUVBQdOnTg7Nmz1n384fMA+XMuwP8/ExarV6/m119/pUKFCtme89pnQjM4QFu9erV13Ww2a+XKldPeeOMN67bExEQtNDRU+7//+z/rtqpVq2qzZ8/O8bjvvvuuVrJkSS0lJcW6bezYsVqtWrXytfz5Keu5sHf06FEN0Pbs2eOwPTExUQsODtY+//xz67a//vpLA7Tt27drmqZp33zzjRYQEKAlJCRY95k/f75WvHhxh/PjK/JyHjRN09q0aaMNHz48x+Ma7TxoWu7nwmLnzp0aoB0/flzTNE37888/NUD77bffrPt8++23mslk0k6ePKlpmvG+H3k5D5rmf9cJV85DUlKSBmgbN27UNM0/Pw+alrdzoWkF5zPx77//ahUrVtT279+f7d/szc+EITMpuTl69CgJCQlER0dbt4WHh9OiRQu2b9/usO/06dMpVaoUjRs35o033nBI22/fvp3WrVsTEhJi3daxY0cOHDjAxYsXPf8P8ZJdu3aRlpbmcL5q165NlSpVrOdr+/bt1K9f3zoKMKhzcenSJf744w+vl9mTPvvsM0qXLk29evWIiYnh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YcN48cUXiYiIoFy5ckycONHhGJcvX6Z3794UKVKE8uXLM3v2bIfMyZNPPsnWrVt5++23MZlMmEwmh2oas9mc6/Gz+uabbwgNDaVly5bWbYcPH8ZkMrF27Vrat29PWFgYtWrVYseOHdZ9jh07hslkYuXKlbRu3ZrChQvTrFkz4uPj+emnn2jZsiVhYWG0b9+exMRE6+u6dOnCsmXLci2TECKT2/MmCyF0kZiYqAUEBGi//fabpmmaNmfOHK106dJaixYtrPvUrFlTW7RokaZpmvbFF19oK1eu1A4dOqTt2bNH69Kli1a/fn0tIyNDu3DhghYSEqJt3LjR+trz589n2/b6669rtWvX1tavX68dPnxY+/DDD7XQ0FBty5YtmqZpWps2bbThw4e7tX/x4sW1iRMnagcPHtQ++ugjzWQyad9//731GE899ZRWtWpVbePGjdq+ffu0Hj16aMWKFbO+T2JiotaqVStt0KBB2qlTp7RTp05p6enpLh8/q2HDhmn33Xefw7aVK1dqJpNJu+eee7TNmzdrBw8e1KKjo7W2bdta91mzZo0GaO3bt9d++uknbffu3VrlypW1u+++W3vggQe03377Tfv111+1UqVKabNmzbK+7ttvv9VCQkK069ev5/K/LYTQNE2TIEUIA7n99tu1N954Q9M0Tevevbs2ZcoULSQkRLt8+bL277//aoB28OBBp689e/asBmj79u3TNE3TunXrpg0YMMD6/HvvvadVqFBBy8jI0DRN065fv66FhYVpv/zyi8NxBg4cqD3++OOapjkGKa7uf9dddzk836xZM23s2LGapmnapUuXtODgYO3zzz+3Pp+YmKiFhYU5BENZgyP77bkd35ms50HTNG38+PFayZIltTNnzli3vfPOO9ptt91mXZ84caIWERGhnTt3zrrtiSee0KKiorTk5GTrtvvuu0978cUXretxcXEaoB07dizHMgkhFKnuEcJA2rRpw5YtW9A0jZ9++okHH3yQOnXqsG3bNrZu3UqFChW45ZZbADh06BCPP/441atXp3jx4tZGofHx8QD07t2blStXkpKSAsBnn33GY489RkCAuiz8888/XL16lXvvvZeiRYta/z7++GNrtZE9V/dv0KCBw+vKly/PmTNnADhy5AhpaWk0b97c+nx4eDi1atVy+Rzldnxnrl27RqFChRy2xcXF0a1bN8qUKWPddvToUWrWrOmwT48ePShVqpR1W3x8PD179iQsLMxhW7Vq1azrhQsXBlRbGCFE7oL0LoAQwnVt27Zl8eLFxMXFERwcTO3atWnbti1btmzh4sWLtGnTxrpvly5dqFq1KosWLbK2P6lXrx6pqanW5zVNY926dTRr1oyffvqJ2bNnW19/5coVANatW0fFihUdyhEaGpqtbK7uHxwc7PCcyWTK1jbmZrh7/NKlS3Px4kWHbXFxccTExDhsi42NpXXr1g7rWfeJi4tj5MiR1vXr169z4MABGjZsaN124cIFAIcASAjhnAQpQhjI3XffzeXLl5k9e7Y1IGnbti3Tp0/n4sWLjB49GlDjfhw4cIBFixZx9913A7Bt2zaHYxUqVIgHH3yQzz77jH/++YdatWpx++23W5+vW7cuoaGhxMfHOwQ/OXF3f2eqV69OcHAwv/32G1WqVAEgKSmJgwcPOgQIISEh1gbEN6tx48YOvW2SkpI4duwYjRs3dtgvNjaWYcOGAXDp0qVs+xw9epSkpCSHbfv27UPTNOrXr2/dtn//fipVqkTp0qXzpfxC+DMJUoQwkJIlS9KgQQM+++wz5s6dC0Dr1q159NFHSUtLswYHJUuWpFSpUixcuJDy5csTHx/v0AvIonfv3nTu3Jk//vjD2ivIolixYrzwwguMHDkSs9nMXXfdRVJSEj///DPFixenX79+N7W/M8WKFaNfv36MGTOGiIgIypYty4QJEwgICMBkMln3i4qKYseOHRw7doyiRYsSERFhraZyV8eOHYmJieHixYuULFmSvXv3EhQU5BBYHD9+nIsXL9KoUSNAZUwCAwOpV6+edZ/Y2FgiIiKoWrWqw7YaNWpQtGhR67affvqJDh065KmsQhQ00iZFCINp06YNGRkZtG3bFoCIiAjq1q1LuXLlrG03AgICWLZsGbt27aJevXqMHDmSN954I9ux2rVrR0REBAcOHKBXr17Znp88eTLjxo1j2rRp1KlTh/vuu49169Y5tLG4mf2dmTVrFq1ataJz585ER0dz5513UqdOHYd2Iy+88AKBgYHUrVuXMmXKWNvZ5EX9+vW5/fbbWbFiBaACkFq1ajm83549eyhRooS1XY+zfeLi4rJlX+Li4hyqeq5fv86aNWsYNGhQnssrREFi0jRN07sQQgiRk+TkZCpWrMhbb73lsQHX1q1bx5gxY9i/f3+eMzKumD9/PqtXr+b777/32HsI4U+kukcI4VP27NnD33//TfPmzUlKSmLSpEmAGmjOUzp16sShQ4c4efIklStX9tj7BAcH87///c9jxxfC30gmRQjhU/bs2cNTTz3FgQMHCAkJoUmTJsyaNcuhjYgQomCQIEUIIYQQPkkazgohhBDCJ0mQIoQQQgifJEGKEEIIIXySBClCCCGE8EkSpAghhBDCJ0mQIoQQQgifJEGKEEIIIXySBClCCCGE8EkSpAghhBDCJ0mQIoQQQgifJEGKEEIIIXzS/wPOPtMwUrJgXwAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "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()\n" ] }, { "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.10.9" }, "widgets": { "application/vnd.jupyter.widget-state+json": { "state": { "079d9be595a0482da482f0da0a28600f": { "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_b8b877c162594288baf6478aab78972b", "msg_id": "", "outputs": [ { "data": { "text/html": "
 simulation.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0%0.0/22.6 kB?-:--:--\n simulation.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0%0.0/22.6 kB?-:--:--
\n", "text/plain": "\r\u001b[2K\u001b[1;31m↑\u001b[0m \u001b[1;34msimulation.json\u001b[0m \u001b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m0.0%\u001b[0m • \u001b[32m0.0/22.6 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m-:--:--\u001b[0m\n\u001b[1;31m↑\u001b[0m \u001b[1;34msimulation.json\u001b[0m \u001b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m0.0%\u001b[0m • \u001b[32m0.0/22.6 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m-:--:--\u001b[0m" }, "metadata": {}, "output_type": "display_data" } ], "tabbable": null, "tooltip": null } }, "198eb6e1022b42ae86236a98d821755d": { "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_c7eb6478d8c84e558366d8326fdd6666", "msg_id": "", "outputs": [ { "data": { "text/html": "
 simulation.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0%0.0/22.5 kB?-:--:--\n simulation.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0%0.0/22.5 kB?-:--:--
\n", "text/plain": "\r\u001b[2K\u001b[1;31m↑\u001b[0m \u001b[1;34msimulation.json\u001b[0m \u001b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m0.0%\u001b[0m • \u001b[32m0.0/22.5 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m-:--:--\u001b[0m\n\u001b[1;31m↑\u001b[0m \u001b[1;34msimulation.json\u001b[0m \u001b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m0.0%\u001b[0m • \u001b[32m0.0/22.5 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m-:--:--\u001b[0m" }, "metadata": {}, "output_type": "display_data" } ], "tabbable": null, "tooltip": null } }, "219edee159994ead9c15260adda8e26c": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": 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, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "24371cb9be8a4dd39b3d8aff9bedd92d": { "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_6fa20aa9333c4849aef68905f03ef5b8", "msg_id": "", "outputs": [ { "data": { "text/html": "
 monitor_data.hdf5 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0%0.0/61.4 kB?-:--:--\n monitor_data.hdf5 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0%0.0/61.4 kB?-:--:--
\n", "text/plain": "\r\u001b[2K\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/61.4 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m-:--:--\u001b[0m\n\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/61.4 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m-:--:--\u001b[0m" }, "metadata": {}, "output_type": "display_data" } ], "tabbable": null, "tooltip": null } }, "4cf2372bdd074255abd606a45cfd8d69": { "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_7be1f3697a1f406ab6c7d2a72f518308", "msg_id": "", "outputs": [ { "data": { "text/html": "
 simulation.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0%0.0/22.0 kB?-:--:--\n simulation.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0%0.0/22.0 kB?-:--:--
\n", "text/plain": "\r\u001b[2K\u001b[1;31m↑\u001b[0m \u001b[1;34msimulation.json\u001b[0m \u001b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m0.0%\u001b[0m • \u001b[32m0.0/22.0 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m-:--:--\u001b[0m\n\u001b[1;31m↑\u001b[0m \u001b[1;34msimulation.json\u001b[0m \u001b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m0.0%\u001b[0m • \u001b[32m0.0/22.0 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m-:--:--\u001b[0m" }, "metadata": {}, "output_type": "display_data" } ], "tabbable": null, "tooltip": null } }, "5efab698aa5740cba69f844f00574432": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": 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, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "67ae7c7cce3044f4a6aa75f4c9ce031f": { "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_219edee159994ead9c15260adda8e26c", "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% -:--:--\nnormalization: status = success             ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00\nSi-resonator-delta-0: status = success      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00\nSi-resonator-delta-20: status = postprocess ━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━  71% -:--:--
\n", "text/plain": "\r\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2Knormalization: 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\nnormalization: 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" }, "metadata": {}, "output_type": "display_data" } ], "tabbable": null, "tooltip": null } }, "6fa20aa9333c4849aef68905f03ef5b8": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": 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, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "7be1f3697a1f406ab6c7d2a72f518308": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": 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, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "99bd2fd5401c41f7a74a12d2e37d7c47": { "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_a541d74998e64a52aa44d73180ce1f14", "msg_id": "", "outputs": [ { "data": { "text/html": "
 monitor_data.hdf5 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0%0.0/63.6 kB?-:--:--\n monitor_data.hdf5 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0%0.0/63.6 kB?-:--:--
\n", "text/plain": "\r\u001b[2K\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/63.6 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m-:--:--\u001b[0m\n\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/63.6 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m-:--:--\u001b[0m" }, "metadata": {}, "output_type": "display_data" } ], "tabbable": null, "tooltip": null } }, "a541d74998e64a52aa44d73180ce1f14": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": 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, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "b8b877c162594288baf6478aab78972b": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": 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, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "c7eb6478d8c84e558366d8326fdd6666": { "model_module": "@jupyter-widgets/base", "model_module_version": "2.0.0", "model_name": "LayoutModel", "state": { "_model_module": "@jupyter-widgets/base", "_model_module_version": "2.0.0", "_model_name": "LayoutModel", "_view_count": null, "_view_module": "@jupyter-widgets/base", "_view_module_version": "2.0.0", "_view_name": "LayoutView", "align_content": null, "align_items": null, "align_self": null, "border_bottom": null, "border_left": null, "border_right": null, "border_top": 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, "padding": null, "right": null, "top": null, "visibility": null, "width": null } }, "e3f9f98720aa4b46a1e17dc4fe4e6852": { "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_5efab698aa5740cba69f844f00574432", "msg_id": "", "outputs": [ { "data": { "text/html": "
 monitor_data.hdf5 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0%0.0/62.4 kB?-:--:--\n monitor_data.hdf5 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0%0.0/62.4 kB?-:--:--
\n", "text/plain": "\r\u001b[2K\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/62.4 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m-:--:--\u001b[0m\n\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/62.4 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m-:--:--\u001b[0m" }, "metadata": {}, "output_type": "display_data" } ], "tabbable": null, "tooltip": null } } }, "version_major": 2, "version_minor": 0 } } }, "nbformat": 4, "nbformat_minor": 4 }