{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "fe061c2b",
   "metadata": {},
   "source": [
    "# Inverse design of a 3D 2x2 MMI using Tidy3D"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "479cc68c-0a82-4fb2-ba8b-5016098ce27d",
   "metadata": {},
   "source": [
    "**Author: Prof. Tianyu Wang, Boston University**\n",
    "\n",
    "In this notebook, we show how to use Tidy3D to optimize a 2x2 balanced MMI by modifying the boundaries of a structure defined with a PolySlab. This is our first example illustrating inverse design for a multi-output port device with a specified output phase relationship.\n",
    "The epitaxy and device concept follow this paper (with modifications for better performance):\n",
    "\n",
    "`Ma, Yong, Seoijin Park, Liwei Wang, and Seng Tiong Ho. \"Ultracompact multimode interference 3-dB coupler with strong lateral confinement by deep dry etching.\" *IEEE Photonics Technology Letters 12*, no. 5 (2000): 492-494.` [DOI: 10.1109/68.841263](https://ieeexplore.ieee.org/document/841263)\n",
    "\n",
    "<img src=\"img/autogradMMI.png\" alt=\"diagram\" width=\"450\"/>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "b0b56115",
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pylab as plt\n",
    "import numpy as np\n",
    "\n",
    "import autograd as ag\n",
    "import autograd.numpy as anp\n",
    "\n",
    "import tidy3d as td\n",
    "import tidy3d.web as web"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8b76491f",
   "metadata": {},
   "source": [
    "## Parameters and Materials"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "4fc58484",
   "metadata": {},
   "outputs": [],
   "source": [
    "wg_sep = 0.5\n",
    "l_MMI = 12.0  # target MMI length\n",
    "w_wg = 1.0\n",
    "freq0 = 193414493734202.56  # central frequency for 1550 nm light\n",
    "fwidth = 6245676208333.328\n",
    "\n",
    "BCB_medium = td.Medium(\n",
    "    name=\"BCB\",\n",
    "    permittivity=1.45**2,\n",
    ")\n",
    "\n",
    "InP = td.Medium(\n",
    "    name=\"InP\",\n",
    "    permittivity=3.167**2,\n",
    ")\n",
    "Q1p3_medium = td.Medium(\n",
    "    name=\"Q1p3\",\n",
    "    permittivity=3.41**2,\n",
    ")\n",
    "\n",
    "wg_loc = (wg_sep + w_wg) / 2\n",
    "sim_box_cx = l_MMI / 2\n",
    "sim_box_cy = 0.0\n",
    "sim_box_cz = 2.25\n",
    "sim_box_lx = l_MMI + 3\n",
    "sim_box_ly = wg_sep + w_wg * 2 + 3\n",
    "sim_box_lz = 6.5"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "32901332",
   "metadata": {},
   "source": [
    "## Make Simulation\n",
    "Define a function that takes y coordinates (parameters to be designed) and returns a simulation object that can be submitted to the server."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "18726bd3",
   "metadata": {},
   "outputs": [],
   "source": [
    "def make_sim(ys_half) -> td.Simulation:\n",
    "    # fixed structures\n",
    "    sub = td.Structure(\n",
    "        geometry=td.Box(center=[0, 0, -5], size=[td.inf, td.inf, 10]),\n",
    "        name=\"sub\",\n",
    "        medium=InP,\n",
    "    )\n",
    "    wg1_1 = td.Structure(\n",
    "        geometry=td.Box(center=[-2.5, wg_loc, 0.5], size=[5, w_wg, 1.0]),\n",
    "        name=\"wg1_1\",\n",
    "        medium=InP,\n",
    "    )\n",
    "    wg1_2 = td.Structure(\n",
    "        geometry=td.Box(center=[-2.5, wg_loc, 1.325], size=[5, w_wg, 0.65]),\n",
    "        name=\"wg1_2\",\n",
    "        medium=Q1p3_medium,\n",
    "    )\n",
    "    wg1_3 = td.Structure(\n",
    "        geometry=td.Box(center=[-2.5, wg_loc, 2.1], size=[5, w_wg, 0.9]),\n",
    "        name=\"wg1_3\",\n",
    "        medium=InP,\n",
    "    )\n",
    "    wg2_1 = td.Structure(\n",
    "        geometry=td.Box(center=[-2.5, -wg_loc, 0.5], size=[5, w_wg, 1.0]),\n",
    "        name=\"wg2_1\",\n",
    "        medium=InP,\n",
    "    )\n",
    "    wg2_2 = td.Structure(\n",
    "        geometry=td.Box(center=[-2.5, -wg_loc, 1.325], size=[5, w_wg, 0.65]),\n",
    "        name=\"wg2_2\",\n",
    "        medium=Q1p3_medium,\n",
    "    )\n",
    "    wg2_3 = td.Structure(\n",
    "        geometry=td.Box(center=[-2.5, -wg_loc, 2.1], size=[5, w_wg, 0.9]),\n",
    "        name=\"wg2_3\",\n",
    "        medium=InP,\n",
    "    )\n",
    "    modesource_1 = td.ModeSource(\n",
    "        name=\"modesource_1\",\n",
    "        center=[-1, wg_loc, 1.325],\n",
    "        size=[0, 2, 3.5],\n",
    "        source_time=td.GaussianPulse(\n",
    "            freq0=freq0,\n",
    "            fwidth=fwidth,\n",
    "        ),\n",
    "        direction=\"+\",\n",
    "        mode_spec=td.ModeSpec(num_modes=5, filter_pol=\"te\"),\n",
    "        mode_index=0,\n",
    "    )\n",
    "    wg3_1 = td.Structure(\n",
    "        geometry=td.Box(center=[l_MMI + 2.5, wg_loc, 0.5], size=[5, w_wg, 1.0]),\n",
    "        name=\"wg3_1\",\n",
    "        medium=InP,\n",
    "    )\n",
    "    wg3_2 = td.Structure(\n",
    "        geometry=td.Box(center=[l_MMI + 2.5, wg_loc, 1.325], size=[5, w_wg, 0.65]),\n",
    "        name=\"wg3_2\",\n",
    "        medium=Q1p3_medium,\n",
    "    )\n",
    "    wg3_3 = td.Structure(\n",
    "        geometry=td.Box(center=[l_MMI + 2.5, wg_loc, 2.1], size=[5, w_wg, 0.9]),\n",
    "        name=\"wg3_3\",\n",
    "        medium=InP,\n",
    "    )\n",
    "    wg4_1 = td.Structure(\n",
    "        geometry=td.Box(center=[l_MMI + 2.5, -wg_loc, 0.5], size=[5, w_wg, 1.0]),\n",
    "        name=\"wg4_1\",\n",
    "        medium=InP,\n",
    "    )\n",
    "    wg4_2 = td.Structure(\n",
    "        geometry=td.Box(center=[l_MMI + 2.5, -wg_loc, 1.325], size=[5, w_wg, 0.65]),\n",
    "        name=\"wg4_2\",\n",
    "        medium=Q1p3_medium,\n",
    "    )\n",
    "    wg4_3 = td.Structure(\n",
    "        geometry=td.Box(center=[l_MMI + 2.5, -wg_loc, 2.1], size=[5, w_wg, 0.9]),\n",
    "        name=\"wg4_3\",\n",
    "        medium=InP,\n",
    "    )\n",
    "    modemonitor_3 = td.ModeMonitor(\n",
    "        name=\"modemonitor_3\",\n",
    "        center=[l_MMI + 1.0, wg_loc, 1.325],  # [l_MMI + 0.1, wg_loc, 0.85],\n",
    "        size=[0, 2, 3.5],\n",
    "        freqs=[freq0],\n",
    "        mode_spec=td.ModeSpec(num_modes=5, filter_pol=\"te\"),\n",
    "    )\n",
    "    modemonitor_4 = td.ModeMonitor(\n",
    "        name=\"modemonitor_4\",\n",
    "        center=[l_MMI + 1.0, -wg_loc, 1.325],\n",
    "        size=[0, 2, 3.5],\n",
    "        freqs=[freq0],\n",
    "        mode_spec=td.ModeSpec(num_modes=5, filter_pol=\"te\"),\n",
    "    )\n",
    "\n",
    "    # Multimode waveguide structure to optimize.\n",
    "    MMI = make_wg(ys_half)\n",
    "\n",
    "    return td.Simulation(\n",
    "        center=[sim_box_cx, sim_box_cy, sim_box_cz],\n",
    "        size=[sim_box_lx, sim_box_ly, sim_box_lz],\n",
    "        grid_spec=td.GridSpec.auto(wavelength=1.55, min_steps_per_wvl=10),\n",
    "        run_time=50 * 1e-12,\n",
    "        medium=BCB_medium,\n",
    "        sources=[modesource_1],\n",
    "        monitors=[modemonitor_3, modemonitor_4],\n",
    "        structures=[\n",
    "            sub,\n",
    "            wg1_1,\n",
    "            wg1_2,\n",
    "            wg1_3,\n",
    "            wg2_1,\n",
    "            wg2_2,\n",
    "            wg2_3,\n",
    "            wg3_1,\n",
    "            wg3_2,\n",
    "            wg3_3,\n",
    "            wg4_1,\n",
    "            wg4_2,\n",
    "            wg4_3,\n",
    "        ]\n",
    "        + MMI,\n",
    "    )"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6007fd53",
   "metadata": {},
   "source": [
    "The y coordinates for the MMI slab are defined as a set of points, and `make_sim(ys_half)` returns the polygon used in the simulation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "46d820a7",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Fixed parameters\n",
    "num_points = 25\n",
    "x_start = 0\n",
    "x_half = l_MMI / 2\n",
    "xs_half = np.linspace(x_start, x_half, num_points)\n",
    "\n",
    "\n",
    "# Apply the symmetry\n",
    "def make_wg(ys_half) -> list[td.Structure]:  # ys_half excludes the first point\n",
    "    xs = anp.concatenate([xs_half, xs_half[1:] + x_half])\n",
    "    ys_half = np.concatenate(([wg_sep / 2.0 + w_wg], ys_half))\n",
    "    ys = anp.concatenate([ys_half, ys_half[:-1][::-1]])\n",
    "    vertices = anp.concatenate(\n",
    "        [\n",
    "            anp.column_stack((xs, ys)),\n",
    "            anp.column_stack((xs[::-1], -ys[::-1])),\n",
    "        ]\n",
    "    )\n",
    "    MMIs = [\n",
    "        td.Structure(\n",
    "            geometry=td.PolySlab(vertices=vertices, slab_bounds=(0, 1.0), axis=2),\n",
    "            medium=InP,\n",
    "        ),\n",
    "        td.Structure(\n",
    "            geometry=td.PolySlab(vertices=vertices, slab_bounds=(1.0, 1.65), axis=2),\n",
    "            medium=Q1p3_medium,\n",
    "        ),\n",
    "        td.Structure(\n",
    "            geometry=td.PolySlab(vertices=vertices, slab_bounds=(1.65, 2.55), axis=2),\n",
    "            medium=InP,\n",
    "        ),\n",
    "    ]\n",
    "    return MMIs"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f51d5961",
   "metadata": {},
   "source": [
    "## Extract the Output & Post-Processing\n",
    "* Define a function that measures the output intensities (for two ports) and fits them to our target (so the final loss function returns a single value regardless of the number of ports).\n",
    "* Mathematically, this is equivalent to the L2 loss of the output, treated as an N-dimensional complex vector, compared to the target output values."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "a1a61e3c",
   "metadata": {},
   "outputs": [],
   "source": [
    "def measure_outputs_fit(\n",
    "    sim_data: td.SimulationData,\n",
    ") -> float:  # Smaller values are better.\n",
    "    # For multiple outputs, measure all outputs.\n",
    "    freq0 = sim_data.simulation.monitors[0].freqs[0]\n",
    "    out1amp = (\n",
    "        sim_data[\"modemonitor_3\"]\n",
    "        .amps.sel(direction=\"+\", f=freq0, mode_index=0)\n",
    "        .values.item()\n",
    "    )\n",
    "    out2amp = (\n",
    "        sim_data[\"modemonitor_4\"]\n",
    "        .amps.sel(direction=\"+\", f=freq0, mode_index=0)\n",
    "        .values.item()\n",
    "    )\n",
    "    output_vec = anp.array([out1amp, out2amp])\n",
    "    output_vec *= anp.exp(-1j * anp.angle(out1amp))  # Remove the common phase.\n",
    "    return anp.sum(\n",
    "        anp.abs(\n",
    "            output_vec\n",
    "            - anp.array([1 / anp.sqrt(2), 1 / anp.sqrt(2) * anp.exp(-1j * anp.pi / 2)])\n",
    "        )\n",
    "        ** 2\n",
    "    )\n",
    "    # Needs to be an array of size 1; a single scalar does not work."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "29a09f10",
   "metadata": {},
   "source": [
    "A function that takes raw parameters (any real number) and smoothly maps them into valid y values (between our self-specified minimum and maximum), along with a function that performs the inverse mapping."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "f03bb312",
   "metadata": {},
   "outputs": [],
   "source": [
    "ys_half_min = 0.5\n",
    "ys_half_max = sim_box_ly / 2 - 1\n",
    "\n",
    "\n",
    "def get_ys_half(parameters: np.ndarray) -> np.ndarray:\n",
    "    \"\"\"Convert arbitrary parameters to y values for the vertices (parameter range (-inf, inf) maps to ys_half range (ys_half_min, ys_half_max)).\"\"\"\n",
    "    params_between_pm_1 = anp.tanh(np.pi * parameters)\n",
    "    return (params_between_pm_1 + 1) / 2 * (ys_half_max - ys_half_min) + ys_half_min\n",
    "\n",
    "\n",
    "def get_params(ys_half: np.ndarray) -> np.ndarray:\n",
    "    \"\"\"Inverse of the above mapping; recover parameters from ys.\"\"\"\n",
    "    return (\n",
    "        np.arctanh((ys_half - ys_half_min) * 2 / (ys_half_max - ys_half_min) - 1)\n",
    "        / np.pi\n",
    "    )\n",
    "\n",
    "\n",
    "params_test = 2 * (np.random.random((10,)) - 0.5)\n",
    "ys_test = get_ys_half(params_test)\n",
    "assert np.allclose(get_params(ys_test), params_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "1056d8d2",
   "metadata": {},
   "outputs": [],
   "source": [
    "def make_sim_params(parameters: np.ndarray) -> td.Simulation:\n",
    "    \"\"\"Make the simulation out of raw parameters.\"\"\"\n",
    "    ys_half = get_ys_half(parameters)\n",
    "    return make_sim(ys_half)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "24a474b8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "    <div class=\"simulation-viewer\" data-width=\"800\" data-height=\"800\" data-simulation=\"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\" ></div>\n",
       "    <script>\n",
       "        \n",
       "        /**\n",
       "        * Simulation Viewer Injector\n",
       "        *\n",
       "        * Monitors the document for elements being added in the form:\n",
       "        *\n",
       "        *    <div class=\"simulation-viewer\" data-width=\"800\" data-height=\"800\" data-simulation=\"{...}\" />\n",
       "        *\n",
       "        * This script will then inject an iframe to the viewer application, and pass it the simulation data\n",
       "        * via the postMessage API on request. The script may be safely included multiple times, with only the\n",
       "        * configuration of the first started script (e.g. viewer URL) applying.\n",
       "        *\n",
       "        */\n",
       "        (function() {\n",
       "            const TARGET_CLASS = \"simulation-viewer\";\n",
       "            const ACTIVE_CLASS = \"simulation-viewer-active\";\n",
       "            const VIEWER_URL = \"https://tidy3d.simulation.cloud/simulation-viewer\";\n",
       "\n",
       "            class SimulationViewerInjector {\n",
       "                constructor() {\n",
       "                    for (var node of document.getElementsByClassName(TARGET_CLASS)) {\n",
       "                        this.injectViewer(node);\n",
       "                    }\n",
       "\n",
       "                    // Monitor for newly added nodes to the DOM\n",
       "                    this.observer = new MutationObserver(this.onMutations.bind(this));\n",
       "                    this.observer.observe(document.body, {childList: true, subtree: true});\n",
       "                }\n",
       "\n",
       "                onMutations(mutations) {\n",
       "                    for (var mutation of mutations) {\n",
       "                        if (mutation.type === 'childList') {\n",
       "                            /**\n",
       "                            * Have found that adding the element does not reliably trigger the mutation observer.\n",
       "                            * It may be the case that setting content with innerHTML does not trigger.\n",
       "                            *\n",
       "                            * It seems to be sufficient to re-scan the document for un-activated viewers\n",
       "                            * whenever an event occurs, as Jupyter triggers multiple events on cell evaluation.\n",
       "                            */\n",
       "                            var viewers = document.getElementsByClassName(TARGET_CLASS);\n",
       "                            for (var node of viewers) {\n",
       "                                this.injectViewer(node);\n",
       "                            }\n",
       "                        }\n",
       "                    }\n",
       "                }\n",
       "\n",
       "                injectViewer(node) {\n",
       "                    // (re-)check that this is a valid simulation container and has not already been injected\n",
       "                    if (node.classList.contains(TARGET_CLASS) && !node.classList.contains(ACTIVE_CLASS)) {\n",
       "                        // Mark node as injected, to prevent re-runs\n",
       "                        node.classList.add(ACTIVE_CLASS);\n",
       "\n",
       "                        var uuid;\n",
       "                        if (window.crypto && window.crypto.randomUUID) {\n",
       "                            uuid = window.crypto.randomUUID();\n",
       "                        } else {\n",
       "                            uuid = \"\" + Math.random();\n",
       "                        }\n",
       "\n",
       "                        var frame = document.createElement(\"iframe\");\n",
       "                        frame.width = node.dataset.width || 800;\n",
       "                        frame.height = node.dataset.height || 800;\n",
       "                        frame.style.cssText = `width:${frame.width}px;height:${frame.height}px;max-width:none;border:0;display:block`\n",
       "                        frame.src = VIEWER_URL + \"?uuid=\" + uuid;\n",
       "\n",
       "                        var postMessageToViewer;\n",
       "                        postMessageToViewer = event => {\n",
       "                            if(event.data.type === 'viewer' && event.data.uuid===uuid){\n",
       "                                frame.contentWindow.postMessage({ type: 'jupyter', uuid, value: node.dataset.simulation, fileType: 'hdf5'}, '*');\n",
       "\n",
       "                                // Run once only\n",
       "                                window.removeEventListener('message', postMessageToViewer);\n",
       "                            }\n",
       "                        };\n",
       "                        window.addEventListener(\n",
       "                            'message',\n",
       "                            postMessageToViewer,\n",
       "                            false\n",
       "                        );\n",
       "\n",
       "                        node.appendChild(frame);\n",
       "                    }\n",
       "                }\n",
       "            }\n",
       "\n",
       "            if (!window.simulationViewerInjector) {\n",
       "                window.simulationViewerInjector = new SimulationViewerInjector();\n",
       "            }\n",
       "        })();\n",
       "    \n",
       "    </script>\n",
       "    "
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ys_half_0 = anp.linspace((wg_sep + w_wg * 2) / 2, 0.8, num_points - 1)  # Initial guess.\n",
    "params_0 = get_params(ys_half_0)\n",
    "sim = make_sim_params(params_0)\n",
    "sim.plot_3d()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6f74b5c7",
   "metadata": {},
   "source": [
    "## Penalty Function\n",
    "* Ensure the device is feasible for fabrication.\n",
    "* Similar to regularization in neural networks."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "1f10d977",
   "metadata": {},
   "outputs": [],
   "source": [
    "from tidy3d.plugins.autograd.invdes import make_curvature_penalty\n",
    "\n",
    "curvature_penalty = make_curvature_penalty(min_radius=1.0)\n",
    "\n",
    "\n",
    "def penalty(params: np.ndarray) -> float:\n",
    "    \"\"\"Compute penalty for a set of parameters.\"\"\"\n",
    "    ys = get_ys_half(params)\n",
    "    ys = np.concatenate(([wg_sep / 2.0 + w_wg], ys))\n",
    "    points = anp.array([xs_half, ys]).T\n",
    "    return curvature_penalty(points)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7de8d79b",
   "metadata": {},
   "source": [
    "## Objective Function\n",
    "The optimizer iteratively minimizes this objective, which combines the output measurement fit and the penalty term."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "b3a2b7b3",
   "metadata": {},
   "outputs": [],
   "source": [
    "def objective(params) -> float:\n",
    "    sim = make_sim_params(params)\n",
    "    sim_data = web.run(sim, task_name=\"tidy3dMMIadj\")\n",
    "    print(penalty(params))\n",
    "    print(measure_outputs_fit(sim_data))\n",
    "    return measure_outputs_fit(sim_data) + penalty(params)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "1e10eafc",
   "metadata": {},
   "outputs": [],
   "source": [
    "grad_fn = ag.value_and_grad(objective)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "e557f5d8",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:52:29 -03 </span>Created task <span style=\"color: #008000; text-decoration-color: #008000\">'tidy3dMMIadj'</span> with resource_id                       \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'fdve-c73169d2-d5da-41fa-88ce-48964d6a1e0e'</span> and task_type <span style=\"color: #008000; text-decoration-color: #008000\">'FDTD'</span>.  \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:52:29 -03\u001b[0m\u001b[2;36m \u001b[0mCreated task \u001b[32m'tidy3dMMIadj'\u001b[0m with resource_id                       \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'fdve-c73169d2-d5da-41fa-88ce-48964d6a1e0e'\u001b[0m and task_type \u001b[32m'FDTD'\u001b[0m.  \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>View task using web UI at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-c73169d2-d5da-41fa-88ce-48964d6a1e0e\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-c73169d2-d5d</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-c73169d2-d5da-41fa-88ce-48964d6a1e0e\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">a-41fa-88ce-48964d6a1e0e'</span></a>.                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mView task using web UI at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=462230;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c73169d2-d5da-41fa-88ce-48964d6a1e0e\u001b\\\u001b[32m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=101932;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c73169d2-d5da-41fa-88ce-48964d6a1e0e\u001b\\\u001b[32mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=462230;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c73169d2-d5da-41fa-88ce-48964d6a1e0e\u001b\\\u001b[32m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=502502;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c73169d2-d5da-41fa-88ce-48964d6a1e0e\u001b\\\u001b[32mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=462230;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c73169d2-d5da-41fa-88ce-48964d6a1e0e\u001b\\\u001b[32m-c73169d2-d5d\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=462230;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c73169d2-d5da-41fa-88ce-48964d6a1e0e\u001b\\\u001b[32ma-41fa-88ce-48964d6a1e0e'\u001b[0m\u001b]8;;\u001b\\.                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Task folder: <a href=\"https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'default'</span></a>.                                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTask folder: \u001b]8;id=68041;https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\u001b\\\u001b[32m'default'\u001b[0m\u001b]8;;\u001b\\.                                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "91c542de77ee452dba42969c3870e6a2",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:52:33 -03 </span>Estimated FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.176</span>. Minimum cost depends on task     \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>execution details. Use <span style=\"color: #008000; text-decoration-color: #008000\">'web.real_cost(task_id)'</span> to get the billed  \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>FlexCredit cost after a simulation run.                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:52:33 -03\u001b[0m\u001b[2;36m \u001b[0mEstimated FlexCredit cost: \u001b[1;36m1.176\u001b[0m. Minimum cost depends on task     \n",
       "\u001b[2;36m             \u001b[0mexecution details. Use \u001b[32m'web.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed  \n",
       "\u001b[2;36m             \u001b[0mFlexCredit cost after a simulation run.                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "4352acb90f224108b65665a21d4f95b6",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:52:37 -03 </span>status = queued                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:52:37 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = queued                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>To cancel the simulation, use <span style=\"color: #008000; text-decoration-color: #008000\">'web.abort(task_id)'</span> or              \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'web.delete(task_id)'</span> or abort/delete the task in the web UI.      \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Terminating the Python script will not stop the job running on the \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>cloud.                                                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTo cancel the simulation, use \u001b[32m'web.abort\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or              \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'web.delete\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or abort/delete the task in the web UI.      \n",
       "\u001b[2;36m             \u001b[0mTerminating the Python script will not stop the job running on the \n",
       "\u001b[2;36m             \u001b[0mcloud.                                                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "17a2f7037c0d4140a4771e22a2ecd298",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:52:41 -03 </span>status = preprocess                                                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:52:41 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = preprocess                                                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:52:46 -03 </span>starting up solver                                                 \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:52:46 -03\u001b[0m\u001b[2;36m \u001b[0mstarting up solver                                                 \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:52:47 -03 </span>running solver                                                     \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:52:47 -03\u001b[0m\u001b[2;36m \u001b[0mrunning solver                                                     \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "cf55dbe5ea6b43ca925d59ef8e4f5ae4",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:52:55 -03 </span>early shutoff detected at <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>%, exiting.                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:52:55 -03\u001b[0m\u001b[2;36m \u001b[0mearly shutoff detected at \u001b[1;36m4\u001b[0m%, exiting.                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:52:56 -03 </span>status = postprocess                                               \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:52:56 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = postprocess                                               \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "6f03fbcc5b7d42a89a8276b391e20ade",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:52:59 -03 </span>status = success                                                   \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:52:59 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = success                                                   \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:53:01 -03 </span>View simulation result at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-c73169d2-d5da-41fa-88ce-48964d6a1e0e\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-c73169d2-d5d</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-c73169d2-d5da-41fa-88ce-48964d6a1e0e\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">a-41fa-88ce-48964d6a1e0e'</span></a><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">.</span>                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:53:01 -03\u001b[0m\u001b[2;36m \u001b[0mView simulation result at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=375229;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c73169d2-d5da-41fa-88ce-48964d6a1e0e\u001b\\\u001b[4;34m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=275164;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c73169d2-d5da-41fa-88ce-48964d6a1e0e\u001b\\\u001b[4;34mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=375229;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c73169d2-d5da-41fa-88ce-48964d6a1e0e\u001b\\\u001b[4;34m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=1179;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c73169d2-d5da-41fa-88ce-48964d6a1e0e\u001b\\\u001b[4;34mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=375229;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c73169d2-d5da-41fa-88ce-48964d6a1e0e\u001b\\\u001b[4;34m-c73169d2-d5d\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=375229;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c73169d2-d5da-41fa-88ce-48964d6a1e0e\u001b\\\u001b[4;34ma-41fa-88ce-48964d6a1e0e'\u001b[0m\u001b]8;;\u001b\\\u001b[4;34m.\u001b[0m                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "04769da57cdc4e47b8f6033d2de151d5",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:53:05 -03 </span>Loading simulation from simulation_data.hdf5                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:53:05 -03\u001b[0m\u001b[2;36m \u001b[0mLoading simulation from simulation_data.hdf5                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Autograd ArrayBox with value 1.1914871495818756e-11\n",
      "Autograd ArrayBox with value 1.0845485202207426\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Started working on Batch containing <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span> tasks.                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mStarted working on Batch containing \u001b[1;36m1\u001b[0m tasks.                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:53:10 -03 </span>Maximum FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.208</span> for the whole batch.                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:53:10 -03\u001b[0m\u001b[2;36m \u001b[0mMaximum FlexCredit cost: \u001b[1;36m1.208\u001b[0m for the whole batch.                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Use <span style=\"color: #008000; text-decoration-color: #008000\">'Batch.real_cost()'</span> to get the billed FlexCredit cost after    \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>completion.                                                        \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mUse \u001b[32m'Batch.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed FlexCredit cost after    \n",
       "\u001b[2;36m             \u001b[0mcompletion.                                                        \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "a37f3b43f0f94dcd9555b11ddffd07ce",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:53:37 -03 </span>Batch complete.                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:53:37 -03\u001b[0m\u001b[2;36m \u001b[0mBatch complete.                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "2d36baa7cc36463e99faa52002cc28e1",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step = 1\n",
      "\tJ = 1.0845e+00\n",
      "\tgrad_norm = 7.2962e+00\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:53:39 -03 </span>Created task <span style=\"color: #008000; text-decoration-color: #008000\">'tidy3dMMIadj'</span> with resource_id                       \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'fdve-5c6049e9-a004-438c-9369-ffc6c8f0367d'</span> and task_type <span style=\"color: #008000; text-decoration-color: #008000\">'FDTD'</span>.  \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:53:39 -03\u001b[0m\u001b[2;36m \u001b[0mCreated task \u001b[32m'tidy3dMMIadj'\u001b[0m with resource_id                       \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'fdve-5c6049e9-a004-438c-9369-ffc6c8f0367d'\u001b[0m and task_type \u001b[32m'FDTD'\u001b[0m.  \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>View task using web UI at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-5c6049e9-a004-438c-9369-ffc6c8f0367d\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-5c6049e9-a00</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-5c6049e9-a004-438c-9369-ffc6c8f0367d\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">4-438c-9369-ffc6c8f0367d'</span></a>.                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mView task using web UI at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=399036;https://tidy3d.simulation.cloud/workbench?taskId=fdve-5c6049e9-a004-438c-9369-ffc6c8f0367d\u001b\\\u001b[32m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=474297;https://tidy3d.simulation.cloud/workbench?taskId=fdve-5c6049e9-a004-438c-9369-ffc6c8f0367d\u001b\\\u001b[32mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=399036;https://tidy3d.simulation.cloud/workbench?taskId=fdve-5c6049e9-a004-438c-9369-ffc6c8f0367d\u001b\\\u001b[32m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=349821;https://tidy3d.simulation.cloud/workbench?taskId=fdve-5c6049e9-a004-438c-9369-ffc6c8f0367d\u001b\\\u001b[32mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=399036;https://tidy3d.simulation.cloud/workbench?taskId=fdve-5c6049e9-a004-438c-9369-ffc6c8f0367d\u001b\\\u001b[32m-5c6049e9-a00\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=399036;https://tidy3d.simulation.cloud/workbench?taskId=fdve-5c6049e9-a004-438c-9369-ffc6c8f0367d\u001b\\\u001b[32m4-438c-9369-ffc6c8f0367d'\u001b[0m\u001b]8;;\u001b\\.                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Task folder: <a href=\"https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'default'</span></a>.                                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTask folder: \u001b]8;id=145859;https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\u001b\\\u001b[32m'default'\u001b[0m\u001b]8;;\u001b\\.                                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "6b87d0e883424a35b19c43cb6a3a0ce0",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:53:42 -03 </span>Estimated FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.176</span>. Minimum cost depends on task     \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>execution details. Use <span style=\"color: #008000; text-decoration-color: #008000\">'web.real_cost(task_id)'</span> to get the billed  \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>FlexCredit cost after a simulation run.                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:53:42 -03\u001b[0m\u001b[2;36m \u001b[0mEstimated FlexCredit cost: \u001b[1;36m1.176\u001b[0m. Minimum cost depends on task     \n",
       "\u001b[2;36m             \u001b[0mexecution details. Use \u001b[32m'web.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed  \n",
       "\u001b[2;36m             \u001b[0mFlexCredit cost after a simulation run.                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "382c0a14e33b4fcd802aaa08d29ef407",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:53:46 -03 </span>status = queued                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:53:46 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = queued                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>To cancel the simulation, use <span style=\"color: #008000; text-decoration-color: #008000\">'web.abort(task_id)'</span> or              \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'web.delete(task_id)'</span> or abort/delete the task in the web UI.      \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Terminating the Python script will not stop the job running on the \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>cloud.                                                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTo cancel the simulation, use \u001b[32m'web.abort\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or              \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'web.delete\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or abort/delete the task in the web UI.      \n",
       "\u001b[2;36m             \u001b[0mTerminating the Python script will not stop the job running on the \n",
       "\u001b[2;36m             \u001b[0mcloud.                                                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "968e9e95f0bd464f97f46ec8195a8b6b",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:54:31 -03 </span>status = preprocess                                                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:54:31 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = preprocess                                                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:54:37 -03 </span>starting up solver                                                 \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:54:37 -03\u001b[0m\u001b[2;36m \u001b[0mstarting up solver                                                 \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>running solver                                                     \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mrunning solver                                                     \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "728c1e64cff84e369e71ba2accb6280c",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:54:50 -03 </span>early shutoff detected at <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>%, exiting.                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:54:50 -03\u001b[0m\u001b[2;36m \u001b[0mearly shutoff detected at \u001b[1;36m4\u001b[0m%, exiting.                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:54:51 -03 </span>status = postprocess                                               \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:54:51 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = postprocess                                               \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "8ebeece1d8f6476395899065a3b11005",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:54:54 -03 </span>status = success                                                   \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:54:54 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = success                                                   \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:54:56 -03 </span>View simulation result at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-5c6049e9-a004-438c-9369-ffc6c8f0367d\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-5c6049e9-a00</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-5c6049e9-a004-438c-9369-ffc6c8f0367d\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">4-438c-9369-ffc6c8f0367d'</span></a><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">.</span>                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:54:56 -03\u001b[0m\u001b[2;36m \u001b[0mView simulation result at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=291448;https://tidy3d.simulation.cloud/workbench?taskId=fdve-5c6049e9-a004-438c-9369-ffc6c8f0367d\u001b\\\u001b[4;34m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=265139;https://tidy3d.simulation.cloud/workbench?taskId=fdve-5c6049e9-a004-438c-9369-ffc6c8f0367d\u001b\\\u001b[4;34mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=291448;https://tidy3d.simulation.cloud/workbench?taskId=fdve-5c6049e9-a004-438c-9369-ffc6c8f0367d\u001b\\\u001b[4;34m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=58219;https://tidy3d.simulation.cloud/workbench?taskId=fdve-5c6049e9-a004-438c-9369-ffc6c8f0367d\u001b\\\u001b[4;34mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=291448;https://tidy3d.simulation.cloud/workbench?taskId=fdve-5c6049e9-a004-438c-9369-ffc6c8f0367d\u001b\\\u001b[4;34m-5c6049e9-a00\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=291448;https://tidy3d.simulation.cloud/workbench?taskId=fdve-5c6049e9-a004-438c-9369-ffc6c8f0367d\u001b\\\u001b[4;34m4-438c-9369-ffc6c8f0367d'\u001b[0m\u001b]8;;\u001b\\\u001b[4;34m.\u001b[0m                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "aee3bfbe6e444b73b2bde592f4da5707",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:54:59 -03 </span>Loading simulation from simulation_data.hdf5                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:54:59 -03\u001b[0m\u001b[2;36m \u001b[0mLoading simulation from simulation_data.hdf5                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Autograd ArrayBox with value 0.0\n",
      "Autograd ArrayBox with value 0.8062529734229864\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Started working on Batch containing <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span> tasks.                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mStarted working on Batch containing \u001b[1;36m1\u001b[0m tasks.                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:55:05 -03 </span>Maximum FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.208</span> for the whole batch.                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:55:05 -03\u001b[0m\u001b[2;36m \u001b[0mMaximum FlexCredit cost: \u001b[1;36m1.208\u001b[0m for the whole batch.                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Use <span style=\"color: #008000; text-decoration-color: #008000\">'Batch.real_cost()'</span> to get the billed FlexCredit cost after    \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>completion.                                                        \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mUse \u001b[32m'Batch.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed FlexCredit cost after    \n",
       "\u001b[2;36m             \u001b[0mcompletion.                                                        \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "738624c8e4404de69a187d3a1e534eb3",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:57:38 -03 </span>Batch complete.                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:57:38 -03\u001b[0m\u001b[2;36m \u001b[0mBatch complete.                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "d5e2e5f4386c47b5bc3cafa14da1ed0d",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step = 2\n",
      "\tJ = 8.0625e-01\n",
      "\tgrad_norm = 6.0516e+00\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:57:40 -03 </span>Created task <span style=\"color: #008000; text-decoration-color: #008000\">'tidy3dMMIadj'</span> with resource_id                       \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'fdve-c5b56090-c581-4636-a43e-2358a903aa44'</span> and task_type <span style=\"color: #008000; text-decoration-color: #008000\">'FDTD'</span>.  \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:57:40 -03\u001b[0m\u001b[2;36m \u001b[0mCreated task \u001b[32m'tidy3dMMIadj'\u001b[0m with resource_id                       \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'fdve-c5b56090-c581-4636-a43e-2358a903aa44'\u001b[0m and task_type \u001b[32m'FDTD'\u001b[0m.  \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>View task using web UI at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-c5b56090-c581-4636-a43e-2358a903aa44\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-c5b56090-c58</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-c5b56090-c581-4636-a43e-2358a903aa44\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">1-4636-a43e-2358a903aa44'</span></a>.                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mView task using web UI at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=648990;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c5b56090-c581-4636-a43e-2358a903aa44\u001b\\\u001b[32m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=787753;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c5b56090-c581-4636-a43e-2358a903aa44\u001b\\\u001b[32mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=648990;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c5b56090-c581-4636-a43e-2358a903aa44\u001b\\\u001b[32m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=310073;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c5b56090-c581-4636-a43e-2358a903aa44\u001b\\\u001b[32mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=648990;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c5b56090-c581-4636-a43e-2358a903aa44\u001b\\\u001b[32m-c5b56090-c58\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=648990;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c5b56090-c581-4636-a43e-2358a903aa44\u001b\\\u001b[32m1-4636-a43e-2358a903aa44'\u001b[0m\u001b]8;;\u001b\\.                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Task folder: <a href=\"https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'default'</span></a>.                                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTask folder: \u001b]8;id=606829;https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\u001b\\\u001b[32m'default'\u001b[0m\u001b]8;;\u001b\\.                                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "0840d4b9e0b84636aab1e9e6996a100f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:57:43 -03 </span>Estimated FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.176</span>. Minimum cost depends on task     \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>execution details. Use <span style=\"color: #008000; text-decoration-color: #008000\">'web.real_cost(task_id)'</span> to get the billed  \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>FlexCredit cost after a simulation run.                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:57:43 -03\u001b[0m\u001b[2;36m \u001b[0mEstimated FlexCredit cost: \u001b[1;36m1.176\u001b[0m. Minimum cost depends on task     \n",
       "\u001b[2;36m             \u001b[0mexecution details. Use \u001b[32m'web.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed  \n",
       "\u001b[2;36m             \u001b[0mFlexCredit cost after a simulation run.                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "7f89bacd57d048d2b2c4a677b7e0723c",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:57:47 -03 </span>status = queued                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:57:47 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = queued                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>To cancel the simulation, use <span style=\"color: #008000; text-decoration-color: #008000\">'web.abort(task_id)'</span> or              \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'web.delete(task_id)'</span> or abort/delete the task in the web UI.      \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Terminating the Python script will not stop the job running on the \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>cloud.                                                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTo cancel the simulation, use \u001b[32m'web.abort\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or              \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'web.delete\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or abort/delete the task in the web UI.      \n",
       "\u001b[2;36m             \u001b[0mTerminating the Python script will not stop the job running on the \n",
       "\u001b[2;36m             \u001b[0mcloud.                                                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "d61275b4013a4a3ebccec1d93d6ac333",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:59:08 -03 </span>status = preprocess                                                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:59:08 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = preprocess                                                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:59:13 -03 </span>starting up solver                                                 \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:59:13 -03\u001b[0m\u001b[2;36m \u001b[0mstarting up solver                                                 \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>running solver                                                     \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mrunning solver                                                     \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "e785d333f3ae435db343029ebd7a13bc",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:59:27 -03 </span>early shutoff detected at <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>%, exiting.                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:59:27 -03\u001b[0m\u001b[2;36m \u001b[0mearly shutoff detected at \u001b[1;36m4\u001b[0m%, exiting.                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:59:28 -03 </span>status = postprocess                                               \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:59:28 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = postprocess                                               \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "ad5edb65e00747ce992c4c56f080e7da",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:59:31 -03 </span>status = success                                                   \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:59:31 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = success                                                   \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:59:33 -03 </span>View simulation result at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-c5b56090-c581-4636-a43e-2358a903aa44\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-c5b56090-c58</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-c5b56090-c581-4636-a43e-2358a903aa44\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">1-4636-a43e-2358a903aa44'</span></a><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">.</span>                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:59:33 -03\u001b[0m\u001b[2;36m \u001b[0mView simulation result at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=82016;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c5b56090-c581-4636-a43e-2358a903aa44\u001b\\\u001b[4;34m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=325238;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c5b56090-c581-4636-a43e-2358a903aa44\u001b\\\u001b[4;34mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=82016;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c5b56090-c581-4636-a43e-2358a903aa44\u001b\\\u001b[4;34m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=773619;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c5b56090-c581-4636-a43e-2358a903aa44\u001b\\\u001b[4;34mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=82016;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c5b56090-c581-4636-a43e-2358a903aa44\u001b\\\u001b[4;34m-c5b56090-c58\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=82016;https://tidy3d.simulation.cloud/workbench?taskId=fdve-c5b56090-c581-4636-a43e-2358a903aa44\u001b\\\u001b[4;34m1-4636-a43e-2358a903aa44'\u001b[0m\u001b]8;;\u001b\\\u001b[4;34m.\u001b[0m                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "a7d238d993b8429fa624117319f39fec",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:59:36 -03 </span>Loading simulation from simulation_data.hdf5                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:59:36 -03\u001b[0m\u001b[2;36m \u001b[0mLoading simulation from simulation_data.hdf5                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Autograd ArrayBox with value 1.310412275269257e-11\n",
      "Autograd ArrayBox with value 0.5603121752719921\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:59:37 -03 </span>Started working on Batch containing <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span> tasks.                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:59:37 -03\u001b[0m\u001b[2;36m \u001b[0mStarted working on Batch containing \u001b[1;36m1\u001b[0m tasks.                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">15:59:43 -03 </span>Maximum FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.208</span> for the whole batch.                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m15:59:43 -03\u001b[0m\u001b[2;36m \u001b[0mMaximum FlexCredit cost: \u001b[1;36m1.208\u001b[0m for the whole batch.                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Use <span style=\"color: #008000; text-decoration-color: #008000\">'Batch.real_cost()'</span> to get the billed FlexCredit cost after    \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>completion.                                                        \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mUse \u001b[32m'Batch.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed FlexCredit cost after    \n",
       "\u001b[2;36m             \u001b[0mcompletion.                                                        \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "67d0c26963094a4ba49abffa2b298b93",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:00:28 -03 </span>Batch complete.                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:00:28 -03\u001b[0m\u001b[2;36m \u001b[0mBatch complete.                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "8b90ba52e8ab420db03e1b9bb146c901",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step = 3\n",
      "\tJ = 5.6031e-01\n",
      "\tgrad_norm = 5.5494e+00\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:00:30 -03 </span>Created task <span style=\"color: #008000; text-decoration-color: #008000\">'tidy3dMMIadj'</span> with resource_id                       \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'fdve-6bef01f7-f407-481b-a1ee-e62926e630ff'</span> and task_type <span style=\"color: #008000; text-decoration-color: #008000\">'FDTD'</span>.  \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:00:30 -03\u001b[0m\u001b[2;36m \u001b[0mCreated task \u001b[32m'tidy3dMMIadj'\u001b[0m with resource_id                       \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'fdve-6bef01f7-f407-481b-a1ee-e62926e630ff'\u001b[0m and task_type \u001b[32m'FDTD'\u001b[0m.  \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>View task using web UI at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-6bef01f7-f407-481b-a1ee-e62926e630ff\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-6bef01f7-f40</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-6bef01f7-f407-481b-a1ee-e62926e630ff\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">7-481b-a1ee-e62926e630ff'</span></a>.                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mView task using web UI at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=60343;https://tidy3d.simulation.cloud/workbench?taskId=fdve-6bef01f7-f407-481b-a1ee-e62926e630ff\u001b\\\u001b[32m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=16790;https://tidy3d.simulation.cloud/workbench?taskId=fdve-6bef01f7-f407-481b-a1ee-e62926e630ff\u001b\\\u001b[32mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=60343;https://tidy3d.simulation.cloud/workbench?taskId=fdve-6bef01f7-f407-481b-a1ee-e62926e630ff\u001b\\\u001b[32m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=568484;https://tidy3d.simulation.cloud/workbench?taskId=fdve-6bef01f7-f407-481b-a1ee-e62926e630ff\u001b\\\u001b[32mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=60343;https://tidy3d.simulation.cloud/workbench?taskId=fdve-6bef01f7-f407-481b-a1ee-e62926e630ff\u001b\\\u001b[32m-6bef01f7-f40\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=60343;https://tidy3d.simulation.cloud/workbench?taskId=fdve-6bef01f7-f407-481b-a1ee-e62926e630ff\u001b\\\u001b[32m7-481b-a1ee-e62926e630ff'\u001b[0m\u001b]8;;\u001b\\.                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Task folder: <a href=\"https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'default'</span></a>.                                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTask folder: \u001b]8;id=926002;https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\u001b\\\u001b[32m'default'\u001b[0m\u001b]8;;\u001b\\.                                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "8852cbaaada04a6e9a23a38dae354e1c",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:00:34 -03 </span>Estimated FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.176</span>. Minimum cost depends on task     \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>execution details. Use <span style=\"color: #008000; text-decoration-color: #008000\">'web.real_cost(task_id)'</span> to get the billed  \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>FlexCredit cost after a simulation run.                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:00:34 -03\u001b[0m\u001b[2;36m \u001b[0mEstimated FlexCredit cost: \u001b[1;36m1.176\u001b[0m. Minimum cost depends on task     \n",
       "\u001b[2;36m             \u001b[0mexecution details. Use \u001b[32m'web.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed  \n",
       "\u001b[2;36m             \u001b[0mFlexCredit cost after a simulation run.                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "2d684d8902b4481f8b89721a5d9f6e5f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:00:38 -03 </span>status = queued                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:00:38 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = queued                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>To cancel the simulation, use <span style=\"color: #008000; text-decoration-color: #008000\">'web.abort(task_id)'</span> or              \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'web.delete(task_id)'</span> or abort/delete the task in the web UI.      \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Terminating the Python script will not stop the job running on the \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>cloud.                                                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTo cancel the simulation, use \u001b[32m'web.abort\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or              \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'web.delete\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or abort/delete the task in the web UI.      \n",
       "\u001b[2;36m             \u001b[0mTerminating the Python script will not stop the job running on the \n",
       "\u001b[2;36m             \u001b[0mcloud.                                                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "29518d73048d449d9e2ee8ad8aa4af32",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:00:50 -03 </span>starting up solver                                                 \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:00:50 -03\u001b[0m\u001b[2;36m \u001b[0mstarting up solver                                                 \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:00:51 -03 </span>running solver                                                     \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:00:51 -03\u001b[0m\u001b[2;36m \u001b[0mrunning solver                                                     \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "751a731797d54b5fa840afb4d1767c15",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:01:09 -03 </span>early shutoff detected at <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>%, exiting.                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:01:09 -03\u001b[0m\u001b[2;36m \u001b[0mearly shutoff detected at \u001b[1;36m4\u001b[0m%, exiting.                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:01:10 -03 </span>status = success                                                   \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:01:10 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = success                                                   \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>View simulation result at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-6bef01f7-f407-481b-a1ee-e62926e630ff\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-6bef01f7-f40</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-6bef01f7-f407-481b-a1ee-e62926e630ff\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">7-481b-a1ee-e62926e630ff'</span></a><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">.</span>                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mView simulation result at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=500145;https://tidy3d.simulation.cloud/workbench?taskId=fdve-6bef01f7-f407-481b-a1ee-e62926e630ff\u001b\\\u001b[4;34m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=905710;https://tidy3d.simulation.cloud/workbench?taskId=fdve-6bef01f7-f407-481b-a1ee-e62926e630ff\u001b\\\u001b[4;34mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=500145;https://tidy3d.simulation.cloud/workbench?taskId=fdve-6bef01f7-f407-481b-a1ee-e62926e630ff\u001b\\\u001b[4;34m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=573500;https://tidy3d.simulation.cloud/workbench?taskId=fdve-6bef01f7-f407-481b-a1ee-e62926e630ff\u001b\\\u001b[4;34mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=500145;https://tidy3d.simulation.cloud/workbench?taskId=fdve-6bef01f7-f407-481b-a1ee-e62926e630ff\u001b\\\u001b[4;34m-6bef01f7-f40\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=500145;https://tidy3d.simulation.cloud/workbench?taskId=fdve-6bef01f7-f407-481b-a1ee-e62926e630ff\u001b\\\u001b[4;34m7-481b-a1ee-e62926e630ff'\u001b[0m\u001b]8;;\u001b\\\u001b[4;34m.\u001b[0m                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "45018072701f4ad98c5df699ce963e0e",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:01:13 -03 </span>Loading simulation from simulation_data.hdf5                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:01:13 -03\u001b[0m\u001b[2;36m \u001b[0mLoading simulation from simulation_data.hdf5                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Autograd ArrayBox with value 0.00010287196003832341\n",
      "Autograd ArrayBox with value 0.37841807407707767\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Started working on Batch containing <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span> tasks.                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mStarted working on Batch containing \u001b[1;36m1\u001b[0m tasks.                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:01:19 -03 </span>Maximum FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.208</span> for the whole batch.                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:01:19 -03\u001b[0m\u001b[2;36m \u001b[0mMaximum FlexCredit cost: \u001b[1;36m1.208\u001b[0m for the whole batch.                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Use <span style=\"color: #008000; text-decoration-color: #008000\">'Batch.real_cost()'</span> to get the billed FlexCredit cost after    \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>completion.                                                        \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mUse \u001b[32m'Batch.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed FlexCredit cost after    \n",
       "\u001b[2;36m             \u001b[0mcompletion.                                                        \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "807446c290e242b7a23eab2f2d0f3760",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:01:49 -03 </span>Batch complete.                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:01:49 -03\u001b[0m\u001b[2;36m \u001b[0mBatch complete.                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "d51673e849d047f59c6456bfd7ff32af",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step = 4\n",
      "\tJ = 3.7852e-01\n",
      "\tgrad_norm = 4.1899e+00\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:01:52 -03 </span>Created task <span style=\"color: #008000; text-decoration-color: #008000\">'tidy3dMMIadj'</span> with resource_id                       \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'fdve-43d8518f-8b0d-4a70-82a3-8f1236af0bd9'</span> and task_type <span style=\"color: #008000; text-decoration-color: #008000\">'FDTD'</span>.  \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:01:52 -03\u001b[0m\u001b[2;36m \u001b[0mCreated task \u001b[32m'tidy3dMMIadj'\u001b[0m with resource_id                       \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'fdve-43d8518f-8b0d-4a70-82a3-8f1236af0bd9'\u001b[0m and task_type \u001b[32m'FDTD'\u001b[0m.  \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>View task using web UI at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-43d8518f-8b0d-4a70-82a3-8f1236af0bd9\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-43d8518f-8b0</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-43d8518f-8b0d-4a70-82a3-8f1236af0bd9\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">d-4a70-82a3-8f1236af0bd9'</span></a>.                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mView task using web UI at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=764528;https://tidy3d.simulation.cloud/workbench?taskId=fdve-43d8518f-8b0d-4a70-82a3-8f1236af0bd9\u001b\\\u001b[32m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=847230;https://tidy3d.simulation.cloud/workbench?taskId=fdve-43d8518f-8b0d-4a70-82a3-8f1236af0bd9\u001b\\\u001b[32mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=764528;https://tidy3d.simulation.cloud/workbench?taskId=fdve-43d8518f-8b0d-4a70-82a3-8f1236af0bd9\u001b\\\u001b[32m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=901160;https://tidy3d.simulation.cloud/workbench?taskId=fdve-43d8518f-8b0d-4a70-82a3-8f1236af0bd9\u001b\\\u001b[32mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=764528;https://tidy3d.simulation.cloud/workbench?taskId=fdve-43d8518f-8b0d-4a70-82a3-8f1236af0bd9\u001b\\\u001b[32m-43d8518f-8b0\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=764528;https://tidy3d.simulation.cloud/workbench?taskId=fdve-43d8518f-8b0d-4a70-82a3-8f1236af0bd9\u001b\\\u001b[32md-4a70-82a3-8f1236af0bd9'\u001b[0m\u001b]8;;\u001b\\.                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Task folder: <a href=\"https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'default'</span></a>.                                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTask folder: \u001b]8;id=531911;https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\u001b\\\u001b[32m'default'\u001b[0m\u001b]8;;\u001b\\.                                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "1b21ef3f216d4087a378898e660c1777",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:01:55 -03 </span>Estimated FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.176</span>. Minimum cost depends on task     \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>execution details. Use <span style=\"color: #008000; text-decoration-color: #008000\">'web.real_cost(task_id)'</span> to get the billed  \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>FlexCredit cost after a simulation run.                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:01:55 -03\u001b[0m\u001b[2;36m \u001b[0mEstimated FlexCredit cost: \u001b[1;36m1.176\u001b[0m. Minimum cost depends on task     \n",
       "\u001b[2;36m             \u001b[0mexecution details. Use \u001b[32m'web.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed  \n",
       "\u001b[2;36m             \u001b[0mFlexCredit cost after a simulation run.                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "8fee8551ec814089a7341c3cfeb719c0",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:02:00 -03 </span>status = queued                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:02:00 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = queued                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>To cancel the simulation, use <span style=\"color: #008000; text-decoration-color: #008000\">'web.abort(task_id)'</span> or              \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'web.delete(task_id)'</span> or abort/delete the task in the web UI.      \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Terminating the Python script will not stop the job running on the \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>cloud.                                                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTo cancel the simulation, use \u001b[32m'web.abort\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or              \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'web.delete\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or abort/delete the task in the web UI.      \n",
       "\u001b[2;36m             \u001b[0mTerminating the Python script will not stop the job running on the \n",
       "\u001b[2;36m             \u001b[0mcloud.                                                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "6354ffe4b31e42e98ab2a4aeda2e5ef3",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:02:12 -03 </span>starting up solver                                                 \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:02:12 -03\u001b[0m\u001b[2;36m \u001b[0mstarting up solver                                                 \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:02:13 -03 </span>running solver                                                     \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:02:13 -03\u001b[0m\u001b[2;36m \u001b[0mrunning solver                                                     \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "2655e4119fc947c7ae331206db1a5117",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:02:24 -03 </span>early shutoff detected at <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>%, exiting.                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:02:24 -03\u001b[0m\u001b[2;36m \u001b[0mearly shutoff detected at \u001b[1;36m4\u001b[0m%, exiting.                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>status = postprocess                                               \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mstatus = postprocess                                               \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "b6a97d754c1e4576b0ccf5c5bfccacd2",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:02:28 -03 </span>status = success                                                   \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:02:28 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = success                                                   \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:02:30 -03 </span>View simulation result at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-43d8518f-8b0d-4a70-82a3-8f1236af0bd9\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-43d8518f-8b0</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-43d8518f-8b0d-4a70-82a3-8f1236af0bd9\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">d-4a70-82a3-8f1236af0bd9'</span></a><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">.</span>                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:02:30 -03\u001b[0m\u001b[2;36m \u001b[0mView simulation result at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=906984;https://tidy3d.simulation.cloud/workbench?taskId=fdve-43d8518f-8b0d-4a70-82a3-8f1236af0bd9\u001b\\\u001b[4;34m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=178670;https://tidy3d.simulation.cloud/workbench?taskId=fdve-43d8518f-8b0d-4a70-82a3-8f1236af0bd9\u001b\\\u001b[4;34mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=906984;https://tidy3d.simulation.cloud/workbench?taskId=fdve-43d8518f-8b0d-4a70-82a3-8f1236af0bd9\u001b\\\u001b[4;34m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=904754;https://tidy3d.simulation.cloud/workbench?taskId=fdve-43d8518f-8b0d-4a70-82a3-8f1236af0bd9\u001b\\\u001b[4;34mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=906984;https://tidy3d.simulation.cloud/workbench?taskId=fdve-43d8518f-8b0d-4a70-82a3-8f1236af0bd9\u001b\\\u001b[4;34m-43d8518f-8b0\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=906984;https://tidy3d.simulation.cloud/workbench?taskId=fdve-43d8518f-8b0d-4a70-82a3-8f1236af0bd9\u001b\\\u001b[4;34md-4a70-82a3-8f1236af0bd9'\u001b[0m\u001b]8;;\u001b\\\u001b[4;34m.\u001b[0m                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "bd675c17732e48abb499cbe67eed521a",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:02:33 -03 </span>Loading simulation from simulation_data.hdf5                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:02:33 -03\u001b[0m\u001b[2;36m \u001b[0mLoading simulation from simulation_data.hdf5                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Autograd ArrayBox with value 0.011128271649457282\n",
      "Autograd ArrayBox with value 0.24685722901208346\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Started working on Batch containing <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span> tasks.                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mStarted working on Batch containing \u001b[1;36m1\u001b[0m tasks.                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:02:39 -03 </span>Maximum FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.208</span> for the whole batch.                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:02:39 -03\u001b[0m\u001b[2;36m \u001b[0mMaximum FlexCredit cost: \u001b[1;36m1.208\u001b[0m for the whole batch.                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Use <span style=\"color: #008000; text-decoration-color: #008000\">'Batch.real_cost()'</span> to get the billed FlexCredit cost after    \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>completion.                                                        \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mUse \u001b[32m'Batch.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed FlexCredit cost after    \n",
       "\u001b[2;36m             \u001b[0mcompletion.                                                        \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "486bb67bbeb44b438de6a503452580f5",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:06:15 -03 </span>Batch complete.                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:06:15 -03\u001b[0m\u001b[2;36m \u001b[0mBatch complete.                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "801cf676790a4ca881ab54e61cfdc0c8",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step = 5\n",
      "\tJ = 2.5799e-01\n",
      "\tgrad_norm = 7.5265e+00\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:06:17 -03 </span>Created task <span style=\"color: #008000; text-decoration-color: #008000\">'tidy3dMMIadj'</span> with resource_id                       \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'fdve-dcd07df4-86ce-4393-ba7e-9b5b7e78317a'</span> and task_type <span style=\"color: #008000; text-decoration-color: #008000\">'FDTD'</span>.  \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:06:17 -03\u001b[0m\u001b[2;36m \u001b[0mCreated task \u001b[32m'tidy3dMMIadj'\u001b[0m with resource_id                       \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'fdve-dcd07df4-86ce-4393-ba7e-9b5b7e78317a'\u001b[0m and task_type \u001b[32m'FDTD'\u001b[0m.  \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>View task using web UI at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-dcd07df4-86ce-4393-ba7e-9b5b7e78317a\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-dcd07df4-86c</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-dcd07df4-86ce-4393-ba7e-9b5b7e78317a\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">e-4393-ba7e-9b5b7e78317a'</span></a>.                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mView task using web UI at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=219346;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dcd07df4-86ce-4393-ba7e-9b5b7e78317a\u001b\\\u001b[32m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=976054;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dcd07df4-86ce-4393-ba7e-9b5b7e78317a\u001b\\\u001b[32mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=219346;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dcd07df4-86ce-4393-ba7e-9b5b7e78317a\u001b\\\u001b[32m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=834471;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dcd07df4-86ce-4393-ba7e-9b5b7e78317a\u001b\\\u001b[32mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=219346;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dcd07df4-86ce-4393-ba7e-9b5b7e78317a\u001b\\\u001b[32m-dcd07df4-86c\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=219346;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dcd07df4-86ce-4393-ba7e-9b5b7e78317a\u001b\\\u001b[32me-4393-ba7e-9b5b7e78317a'\u001b[0m\u001b]8;;\u001b\\.                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Task folder: <a href=\"https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'default'</span></a>.                                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTask folder: \u001b]8;id=49393;https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\u001b\\\u001b[32m'default'\u001b[0m\u001b]8;;\u001b\\.                                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "53c5defa57a84389bd578448874387e6",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:06:20 -03 </span>Estimated FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.176</span>. Minimum cost depends on task     \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>execution details. Use <span style=\"color: #008000; text-decoration-color: #008000\">'web.real_cost(task_id)'</span> to get the billed  \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>FlexCredit cost after a simulation run.                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:06:20 -03\u001b[0m\u001b[2;36m \u001b[0mEstimated FlexCredit cost: \u001b[1;36m1.176\u001b[0m. Minimum cost depends on task     \n",
       "\u001b[2;36m             \u001b[0mexecution details. Use \u001b[32m'web.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed  \n",
       "\u001b[2;36m             \u001b[0mFlexCredit cost after a simulation run.                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "6ec4513948d4404289c143172ddeb304",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:06:24 -03 </span>status = queued                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:06:24 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = queued                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>To cancel the simulation, use <span style=\"color: #008000; text-decoration-color: #008000\">'web.abort(task_id)'</span> or              \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'web.delete(task_id)'</span> or abort/delete the task in the web UI.      \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Terminating the Python script will not stop the job running on the \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>cloud.                                                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTo cancel the simulation, use \u001b[32m'web.abort\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or              \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'web.delete\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or abort/delete the task in the web UI.      \n",
       "\u001b[2;36m             \u001b[0mTerminating the Python script will not stop the job running on the \n",
       "\u001b[2;36m             \u001b[0mcloud.                                                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "16693c0f4ccb4bc6950e4695390c5062",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:06:31 -03 </span>status = preprocess                                                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:06:31 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = preprocess                                                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:06:36 -03 </span>starting up solver                                                 \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:06:36 -03\u001b[0m\u001b[2;36m \u001b[0mstarting up solver                                                 \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:06:37 -03 </span>running solver                                                     \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:06:37 -03\u001b[0m\u001b[2;36m \u001b[0mrunning solver                                                     \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "00635b54ec9a4a2e97b2dbfe755d4c96",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:06:46 -03 </span>early shutoff detected at <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>%, exiting.                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:06:46 -03\u001b[0m\u001b[2;36m \u001b[0mearly shutoff detected at \u001b[1;36m4\u001b[0m%, exiting.                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:06:47 -03 </span>status = postprocess                                               \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:06:47 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = postprocess                                               \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "7db07f67f0ec460c99dacd5d07e22ae8",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:06:50 -03 </span>status = success                                                   \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:06:50 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = success                                                   \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:06:52 -03 </span>View simulation result at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-dcd07df4-86ce-4393-ba7e-9b5b7e78317a\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-dcd07df4-86c</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-dcd07df4-86ce-4393-ba7e-9b5b7e78317a\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">e-4393-ba7e-9b5b7e78317a'</span></a><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">.</span>                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:06:52 -03\u001b[0m\u001b[2;36m \u001b[0mView simulation result at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=461320;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dcd07df4-86ce-4393-ba7e-9b5b7e78317a\u001b\\\u001b[4;34m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=51415;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dcd07df4-86ce-4393-ba7e-9b5b7e78317a\u001b\\\u001b[4;34mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=461320;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dcd07df4-86ce-4393-ba7e-9b5b7e78317a\u001b\\\u001b[4;34m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=909503;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dcd07df4-86ce-4393-ba7e-9b5b7e78317a\u001b\\\u001b[4;34mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=461320;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dcd07df4-86ce-4393-ba7e-9b5b7e78317a\u001b\\\u001b[4;34m-dcd07df4-86c\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=461320;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dcd07df4-86ce-4393-ba7e-9b5b7e78317a\u001b\\\u001b[4;34me-4393-ba7e-9b5b7e78317a'\u001b[0m\u001b]8;;\u001b\\\u001b[4;34m.\u001b[0m                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "e1d34884b37b470fb6b8d442b7587307",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:06:55 -03 </span>Loading simulation from simulation_data.hdf5                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:06:55 -03\u001b[0m\u001b[2;36m \u001b[0mLoading simulation from simulation_data.hdf5                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Autograd ArrayBox with value 3.5963767960258645e-07\n",
      "Autograd ArrayBox with value 0.14899286550021512\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Started working on Batch containing <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span> tasks.                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mStarted working on Batch containing \u001b[1;36m1\u001b[0m tasks.                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:07:01 -03 </span>Maximum FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.208</span> for the whole batch.                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:07:01 -03\u001b[0m\u001b[2;36m \u001b[0mMaximum FlexCredit cost: \u001b[1;36m1.208\u001b[0m for the whole batch.                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Use <span style=\"color: #008000; text-decoration-color: #008000\">'Batch.real_cost()'</span> to get the billed FlexCredit cost after    \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>completion.                                                        \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mUse \u001b[32m'Batch.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed FlexCredit cost after    \n",
       "\u001b[2;36m             \u001b[0mcompletion.                                                        \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "b9b9b0e90e0a4bde81d7206512e5ac74",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:07:25 -03 </span>Batch complete.                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:07:25 -03\u001b[0m\u001b[2;36m \u001b[0mBatch complete.                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "a90efa21f2dc49c7821536501d2f15b9",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step = 6\n",
      "\tJ = 1.4899e-01\n",
      "\tgrad_norm = 2.0224e+00\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:07:27 -03 </span>Created task <span style=\"color: #008000; text-decoration-color: #008000\">'tidy3dMMIadj'</span> with resource_id                       \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'fdve-3a6a074c-4a00-4191-ac06-8f499c04196c'</span> and task_type <span style=\"color: #008000; text-decoration-color: #008000\">'FDTD'</span>.  \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:07:27 -03\u001b[0m\u001b[2;36m \u001b[0mCreated task \u001b[32m'tidy3dMMIadj'\u001b[0m with resource_id                       \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'fdve-3a6a074c-4a00-4191-ac06-8f499c04196c'\u001b[0m and task_type \u001b[32m'FDTD'\u001b[0m.  \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>View task using web UI at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-3a6a074c-4a00-4191-ac06-8f499c04196c\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-3a6a074c-4a0</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-3a6a074c-4a00-4191-ac06-8f499c04196c\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">0-4191-ac06-8f499c04196c'</span></a>.                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mView task using web UI at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=619490;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3a6a074c-4a00-4191-ac06-8f499c04196c\u001b\\\u001b[32m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=821049;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3a6a074c-4a00-4191-ac06-8f499c04196c\u001b\\\u001b[32mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=619490;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3a6a074c-4a00-4191-ac06-8f499c04196c\u001b\\\u001b[32m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=706822;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3a6a074c-4a00-4191-ac06-8f499c04196c\u001b\\\u001b[32mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=619490;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3a6a074c-4a00-4191-ac06-8f499c04196c\u001b\\\u001b[32m-3a6a074c-4a0\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=619490;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3a6a074c-4a00-4191-ac06-8f499c04196c\u001b\\\u001b[32m0-4191-ac06-8f499c04196c'\u001b[0m\u001b]8;;\u001b\\.                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Task folder: <a href=\"https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'default'</span></a>.                                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTask folder: \u001b]8;id=990194;https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\u001b\\\u001b[32m'default'\u001b[0m\u001b]8;;\u001b\\.                                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "aa87f19b428e44b49631de47dd7eecfd",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:07:30 -03 </span>Estimated FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.176</span>. Minimum cost depends on task     \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>execution details. Use <span style=\"color: #008000; text-decoration-color: #008000\">'web.real_cost(task_id)'</span> to get the billed  \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>FlexCredit cost after a simulation run.                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:07:30 -03\u001b[0m\u001b[2;36m \u001b[0mEstimated FlexCredit cost: \u001b[1;36m1.176\u001b[0m. Minimum cost depends on task     \n",
       "\u001b[2;36m             \u001b[0mexecution details. Use \u001b[32m'web.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed  \n",
       "\u001b[2;36m             \u001b[0mFlexCredit cost after a simulation run.                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "09c53429f4c4486f844d741d0b14e380",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:07:34 -03 </span>status = queued                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:07:34 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = queued                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>To cancel the simulation, use <span style=\"color: #008000; text-decoration-color: #008000\">'web.abort(task_id)'</span> or              \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'web.delete(task_id)'</span> or abort/delete the task in the web UI.      \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Terminating the Python script will not stop the job running on the \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>cloud.                                                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTo cancel the simulation, use \u001b[32m'web.abort\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or              \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'web.delete\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or abort/delete the task in the web UI.      \n",
       "\u001b[2;36m             \u001b[0mTerminating the Python script will not stop the job running on the \n",
       "\u001b[2;36m             \u001b[0mcloud.                                                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "be16cac261a84b3aa67125422b9831e3",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:07:39 -03 </span>status = preprocess                                                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:07:39 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = preprocess                                                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:07:44 -03 </span>starting up solver                                                 \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:07:44 -03\u001b[0m\u001b[2;36m \u001b[0mstarting up solver                                                 \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>running solver                                                     \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mrunning solver                                                     \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "9583a54067de4f1fae56c09fe3e365b9",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:08:00 -03 </span>early shutoff detected at <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>%, exiting.                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:08:00 -03\u001b[0m\u001b[2;36m \u001b[0mearly shutoff detected at \u001b[1;36m4\u001b[0m%, exiting.                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>status = postprocess                                               \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mstatus = postprocess                                               \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "021bc8648ba44a938a3c766c26a4073d",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:08:04 -03 </span>status = success                                                   \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:08:04 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = success                                                   \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:08:06 -03 </span>View simulation result at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-3a6a074c-4a00-4191-ac06-8f499c04196c\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-3a6a074c-4a0</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-3a6a074c-4a00-4191-ac06-8f499c04196c\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">0-4191-ac06-8f499c04196c'</span></a><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">.</span>                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:08:06 -03\u001b[0m\u001b[2;36m \u001b[0mView simulation result at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=168927;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3a6a074c-4a00-4191-ac06-8f499c04196c\u001b\\\u001b[4;34m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=705367;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3a6a074c-4a00-4191-ac06-8f499c04196c\u001b\\\u001b[4;34mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=168927;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3a6a074c-4a00-4191-ac06-8f499c04196c\u001b\\\u001b[4;34m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=443364;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3a6a074c-4a00-4191-ac06-8f499c04196c\u001b\\\u001b[4;34mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=168927;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3a6a074c-4a00-4191-ac06-8f499c04196c\u001b\\\u001b[4;34m-3a6a074c-4a0\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=168927;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3a6a074c-4a00-4191-ac06-8f499c04196c\u001b\\\u001b[4;34m0-4191-ac06-8f499c04196c'\u001b[0m\u001b]8;;\u001b\\\u001b[4;34m.\u001b[0m                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "3f2e41512d274dd6b2252ed06162e8b3",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:08:09 -03 </span>Loading simulation from simulation_data.hdf5                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:08:09 -03\u001b[0m\u001b[2;36m \u001b[0mLoading simulation from simulation_data.hdf5                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Autograd ArrayBox with value 1.7070064538075662e-06\n",
      "Autograd ArrayBox with value 0.1026582001009208\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Started working on Batch containing <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span> tasks.                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mStarted working on Batch containing \u001b[1;36m1\u001b[0m tasks.                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:08:15 -03 </span>Maximum FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.208</span> for the whole batch.                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:08:15 -03\u001b[0m\u001b[2;36m \u001b[0mMaximum FlexCredit cost: \u001b[1;36m1.208\u001b[0m for the whole batch.                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Use <span style=\"color: #008000; text-decoration-color: #008000\">'Batch.real_cost()'</span> to get the billed FlexCredit cost after    \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>completion.                                                        \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mUse \u001b[32m'Batch.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed FlexCredit cost after    \n",
       "\u001b[2;36m             \u001b[0mcompletion.                                                        \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "cd38a00d3ce54db7adf04a314433abfa",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:08:41 -03 </span>Batch complete.                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:08:41 -03\u001b[0m\u001b[2;36m \u001b[0mBatch complete.                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "283895507a5e456386030c20f93f4c8b",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step = 7\n",
      "\tJ = 1.0266e-01\n",
      "\tgrad_norm = 1.6868e+00\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:08:43 -03 </span>Created task <span style=\"color: #008000; text-decoration-color: #008000\">'tidy3dMMIadj'</span> with resource_id                       \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'fdve-8af7a8f3-cd72-46d0-b33f-dfee24f4a8f6'</span> and task_type <span style=\"color: #008000; text-decoration-color: #008000\">'FDTD'</span>.  \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:08:43 -03\u001b[0m\u001b[2;36m \u001b[0mCreated task \u001b[32m'tidy3dMMIadj'\u001b[0m with resource_id                       \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'fdve-8af7a8f3-cd72-46d0-b33f-dfee24f4a8f6'\u001b[0m and task_type \u001b[32m'FDTD'\u001b[0m.  \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>View task using web UI at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-8af7a8f3-cd72-46d0-b33f-dfee24f4a8f6\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-8af7a8f3-cd7</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-8af7a8f3-cd72-46d0-b33f-dfee24f4a8f6\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">2-46d0-b33f-dfee24f4a8f6'</span></a>.                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mView task using web UI at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=792366;https://tidy3d.simulation.cloud/workbench?taskId=fdve-8af7a8f3-cd72-46d0-b33f-dfee24f4a8f6\u001b\\\u001b[32m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=223544;https://tidy3d.simulation.cloud/workbench?taskId=fdve-8af7a8f3-cd72-46d0-b33f-dfee24f4a8f6\u001b\\\u001b[32mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=792366;https://tidy3d.simulation.cloud/workbench?taskId=fdve-8af7a8f3-cd72-46d0-b33f-dfee24f4a8f6\u001b\\\u001b[32m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=740714;https://tidy3d.simulation.cloud/workbench?taskId=fdve-8af7a8f3-cd72-46d0-b33f-dfee24f4a8f6\u001b\\\u001b[32mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=792366;https://tidy3d.simulation.cloud/workbench?taskId=fdve-8af7a8f3-cd72-46d0-b33f-dfee24f4a8f6\u001b\\\u001b[32m-8af7a8f3-cd7\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=792366;https://tidy3d.simulation.cloud/workbench?taskId=fdve-8af7a8f3-cd72-46d0-b33f-dfee24f4a8f6\u001b\\\u001b[32m2-46d0-b33f-dfee24f4a8f6'\u001b[0m\u001b]8;;\u001b\\.                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Task folder: <a href=\"https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'default'</span></a>.                                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTask folder: \u001b]8;id=686007;https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\u001b\\\u001b[32m'default'\u001b[0m\u001b]8;;\u001b\\.                                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "842c9be00af849e9a3f33cc63341238c",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:08:46 -03 </span>Estimated FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.176</span>. Minimum cost depends on task     \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>execution details. Use <span style=\"color: #008000; text-decoration-color: #008000\">'web.real_cost(task_id)'</span> to get the billed  \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>FlexCredit cost after a simulation run.                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:08:46 -03\u001b[0m\u001b[2;36m \u001b[0mEstimated FlexCredit cost: \u001b[1;36m1.176\u001b[0m. Minimum cost depends on task     \n",
       "\u001b[2;36m             \u001b[0mexecution details. Use \u001b[32m'web.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed  \n",
       "\u001b[2;36m             \u001b[0mFlexCredit cost after a simulation run.                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "31b5e81bcaf3437f8045aa4dc12dc714",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:08:51 -03 </span>status = queued                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:08:51 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = queued                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>To cancel the simulation, use <span style=\"color: #008000; text-decoration-color: #008000\">'web.abort(task_id)'</span> or              \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'web.delete(task_id)'</span> or abort/delete the task in the web UI.      \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Terminating the Python script will not stop the job running on the \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>cloud.                                                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTo cancel the simulation, use \u001b[32m'web.abort\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or              \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'web.delete\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or abort/delete the task in the web UI.      \n",
       "\u001b[2;36m             \u001b[0mTerminating the Python script will not stop the job running on the \n",
       "\u001b[2;36m             \u001b[0mcloud.                                                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "d12b3ffacbe14209a09430b8b3c33e2a",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:08:55 -03 </span>status = preprocess                                                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:08:55 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = preprocess                                                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:09:00 -03 </span>starting up solver                                                 \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:09:00 -03\u001b[0m\u001b[2;36m \u001b[0mstarting up solver                                                 \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:09:01 -03 </span>running solver                                                     \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:09:01 -03\u001b[0m\u001b[2;36m \u001b[0mrunning solver                                                     \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "5acb5ab6275c440491179e59d428626c",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:09:19 -03 </span>early shutoff detected at <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>%, exiting.                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:09:19 -03\u001b[0m\u001b[2;36m \u001b[0mearly shutoff detected at \u001b[1;36m4\u001b[0m%, exiting.                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:09:20 -03 </span>status = postprocess                                               \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:09:20 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = postprocess                                               \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "b6c2e4b81f594aed99ecb01ec84b4fbd",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:09:21 -03 </span>status = success                                                   \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:09:21 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = success                                                   \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:09:23 -03 </span>View simulation result at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-8af7a8f3-cd72-46d0-b33f-dfee24f4a8f6\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-8af7a8f3-cd7</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-8af7a8f3-cd72-46d0-b33f-dfee24f4a8f6\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">2-46d0-b33f-dfee24f4a8f6'</span></a><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">.</span>                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:09:23 -03\u001b[0m\u001b[2;36m \u001b[0mView simulation result at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=773230;https://tidy3d.simulation.cloud/workbench?taskId=fdve-8af7a8f3-cd72-46d0-b33f-dfee24f4a8f6\u001b\\\u001b[4;34m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=28958;https://tidy3d.simulation.cloud/workbench?taskId=fdve-8af7a8f3-cd72-46d0-b33f-dfee24f4a8f6\u001b\\\u001b[4;34mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=773230;https://tidy3d.simulation.cloud/workbench?taskId=fdve-8af7a8f3-cd72-46d0-b33f-dfee24f4a8f6\u001b\\\u001b[4;34m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=596271;https://tidy3d.simulation.cloud/workbench?taskId=fdve-8af7a8f3-cd72-46d0-b33f-dfee24f4a8f6\u001b\\\u001b[4;34mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=773230;https://tidy3d.simulation.cloud/workbench?taskId=fdve-8af7a8f3-cd72-46d0-b33f-dfee24f4a8f6\u001b\\\u001b[4;34m-8af7a8f3-cd7\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=773230;https://tidy3d.simulation.cloud/workbench?taskId=fdve-8af7a8f3-cd72-46d0-b33f-dfee24f4a8f6\u001b\\\u001b[4;34m2-46d0-b33f-dfee24f4a8f6'\u001b[0m\u001b]8;;\u001b\\\u001b[4;34m.\u001b[0m                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "9c408143f37743f296be75755afa6bfb",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:09:26 -03 </span>Loading simulation from simulation_data.hdf5                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:09:26 -03\u001b[0m\u001b[2;36m \u001b[0mLoading simulation from simulation_data.hdf5                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Autograd ArrayBox with value 0.0005682527800021411\n",
      "Autograd ArrayBox with value 0.06247049438086219\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Started working on Batch containing <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span> tasks.                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mStarted working on Batch containing \u001b[1;36m1\u001b[0m tasks.                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:09:32 -03 </span>Maximum FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.208</span> for the whole batch.                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:09:32 -03\u001b[0m\u001b[2;36m \u001b[0mMaximum FlexCredit cost: \u001b[1;36m1.208\u001b[0m for the whole batch.                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Use <span style=\"color: #008000; text-decoration-color: #008000\">'Batch.real_cost()'</span> to get the billed FlexCredit cost after    \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>completion.                                                        \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mUse \u001b[32m'Batch.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed FlexCredit cost after    \n",
       "\u001b[2;36m             \u001b[0mcompletion.                                                        \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "04488a0568eb4825a5551d9ae3a36b2a",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:09:52 -03 </span>Batch complete.                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:09:52 -03\u001b[0m\u001b[2;36m \u001b[0mBatch complete.                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "3a654da921cc4adfa9fdf63e92e748ea",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step = 8\n",
      "\tJ = 6.3039e-02\n",
      "\tgrad_norm = 1.8994e+00\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:09:55 -03 </span>Created task <span style=\"color: #008000; text-decoration-color: #008000\">'tidy3dMMIadj'</span> with resource_id                       \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'fdve-158a2c9d-4aaa-49bd-af41-6b93bae1b97e'</span> and task_type <span style=\"color: #008000; text-decoration-color: #008000\">'FDTD'</span>.  \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:09:55 -03\u001b[0m\u001b[2;36m \u001b[0mCreated task \u001b[32m'tidy3dMMIadj'\u001b[0m with resource_id                       \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'fdve-158a2c9d-4aaa-49bd-af41-6b93bae1b97e'\u001b[0m and task_type \u001b[32m'FDTD'\u001b[0m.  \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>View task using web UI at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-158a2c9d-4aaa-49bd-af41-6b93bae1b97e\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-158a2c9d-4aa</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-158a2c9d-4aaa-49bd-af41-6b93bae1b97e\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">a-49bd-af41-6b93bae1b97e'</span></a>.                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mView task using web UI at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=685840;https://tidy3d.simulation.cloud/workbench?taskId=fdve-158a2c9d-4aaa-49bd-af41-6b93bae1b97e\u001b\\\u001b[32m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=480393;https://tidy3d.simulation.cloud/workbench?taskId=fdve-158a2c9d-4aaa-49bd-af41-6b93bae1b97e\u001b\\\u001b[32mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=685840;https://tidy3d.simulation.cloud/workbench?taskId=fdve-158a2c9d-4aaa-49bd-af41-6b93bae1b97e\u001b\\\u001b[32m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=955000;https://tidy3d.simulation.cloud/workbench?taskId=fdve-158a2c9d-4aaa-49bd-af41-6b93bae1b97e\u001b\\\u001b[32mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=685840;https://tidy3d.simulation.cloud/workbench?taskId=fdve-158a2c9d-4aaa-49bd-af41-6b93bae1b97e\u001b\\\u001b[32m-158a2c9d-4aa\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=685840;https://tidy3d.simulation.cloud/workbench?taskId=fdve-158a2c9d-4aaa-49bd-af41-6b93bae1b97e\u001b\\\u001b[32ma-49bd-af41-6b93bae1b97e'\u001b[0m\u001b]8;;\u001b\\.                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Task folder: <a href=\"https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'default'</span></a>.                                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTask folder: \u001b]8;id=501032;https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\u001b\\\u001b[32m'default'\u001b[0m\u001b]8;;\u001b\\.                                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "9d97341628a045b9a8cb8674576e3594",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:09:58 -03 </span>Estimated FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.176</span>. Minimum cost depends on task     \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>execution details. Use <span style=\"color: #008000; text-decoration-color: #008000\">'web.real_cost(task_id)'</span> to get the billed  \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>FlexCredit cost after a simulation run.                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:09:58 -03\u001b[0m\u001b[2;36m \u001b[0mEstimated FlexCredit cost: \u001b[1;36m1.176\u001b[0m. Minimum cost depends on task     \n",
       "\u001b[2;36m             \u001b[0mexecution details. Use \u001b[32m'web.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed  \n",
       "\u001b[2;36m             \u001b[0mFlexCredit cost after a simulation run.                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "4c831beb535b48dfaa5d5c39fe22f845",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:10:02 -03 </span>status = queued                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:10:02 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = queued                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>To cancel the simulation, use <span style=\"color: #008000; text-decoration-color: #008000\">'web.abort(task_id)'</span> or              \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'web.delete(task_id)'</span> or abort/delete the task in the web UI.      \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Terminating the Python script will not stop the job running on the \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>cloud.                                                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTo cancel the simulation, use \u001b[32m'web.abort\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or              \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'web.delete\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or abort/delete the task in the web UI.      \n",
       "\u001b[2;36m             \u001b[0mTerminating the Python script will not stop the job running on the \n",
       "\u001b[2;36m             \u001b[0mcloud.                                                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "9348829ae20742e9bf37655878d9b899",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:10:07 -03 </span>status = preprocess                                                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:10:07 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = preprocess                                                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:10:12 -03 </span>starting up solver                                                 \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:10:12 -03\u001b[0m\u001b[2;36m \u001b[0mstarting up solver                                                 \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>running solver                                                     \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mrunning solver                                                     \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "2a45202fb5c54cc0a564c3b36adbf76c",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:10:30 -03 </span>early shutoff detected at <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>%, exiting.                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:10:30 -03\u001b[0m\u001b[2;36m \u001b[0mearly shutoff detected at \u001b[1;36m4\u001b[0m%, exiting.                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:10:31 -03 </span>status = postprocess                                               \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:10:31 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = postprocess                                               \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "ad5ad0248969444eade9820290e5a4ab",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:10:34 -03 </span>status = success                                                   \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:10:34 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = success                                                   \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:10:36 -03 </span>View simulation result at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-158a2c9d-4aaa-49bd-af41-6b93bae1b97e\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-158a2c9d-4aa</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-158a2c9d-4aaa-49bd-af41-6b93bae1b97e\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">a-49bd-af41-6b93bae1b97e'</span></a><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">.</span>                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:10:36 -03\u001b[0m\u001b[2;36m \u001b[0mView simulation result at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=919404;https://tidy3d.simulation.cloud/workbench?taskId=fdve-158a2c9d-4aaa-49bd-af41-6b93bae1b97e\u001b\\\u001b[4;34m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=608599;https://tidy3d.simulation.cloud/workbench?taskId=fdve-158a2c9d-4aaa-49bd-af41-6b93bae1b97e\u001b\\\u001b[4;34mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=919404;https://tidy3d.simulation.cloud/workbench?taskId=fdve-158a2c9d-4aaa-49bd-af41-6b93bae1b97e\u001b\\\u001b[4;34m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=875899;https://tidy3d.simulation.cloud/workbench?taskId=fdve-158a2c9d-4aaa-49bd-af41-6b93bae1b97e\u001b\\\u001b[4;34mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=919404;https://tidy3d.simulation.cloud/workbench?taskId=fdve-158a2c9d-4aaa-49bd-af41-6b93bae1b97e\u001b\\\u001b[4;34m-158a2c9d-4aa\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=919404;https://tidy3d.simulation.cloud/workbench?taskId=fdve-158a2c9d-4aaa-49bd-af41-6b93bae1b97e\u001b\\\u001b[4;34ma-49bd-af41-6b93bae1b97e'\u001b[0m\u001b]8;;\u001b\\\u001b[4;34m.\u001b[0m                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "352edd693f7242b4af13619e2f0c5f58",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:10:39 -03 </span>Loading simulation from simulation_data.hdf5                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:10:39 -03\u001b[0m\u001b[2;36m \u001b[0mLoading simulation from simulation_data.hdf5                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Autograd ArrayBox with value 0.0025670907016877046\n",
      "Autograd ArrayBox with value 0.025802648174640674\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Started working on Batch containing <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span> tasks.                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mStarted working on Batch containing \u001b[1;36m1\u001b[0m tasks.                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:10:45 -03 </span>Maximum FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.208</span> for the whole batch.                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:10:45 -03\u001b[0m\u001b[2;36m \u001b[0mMaximum FlexCredit cost: \u001b[1;36m1.208\u001b[0m for the whole batch.                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Use <span style=\"color: #008000; text-decoration-color: #008000\">'Batch.real_cost()'</span> to get the billed FlexCredit cost after    \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>completion.                                                        \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mUse \u001b[32m'Batch.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed FlexCredit cost after    \n",
       "\u001b[2;36m             \u001b[0mcompletion.                                                        \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "f751e01eecfa4091ab7b5a246a858dd0",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:11:14 -03 </span>Batch complete.                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:11:14 -03\u001b[0m\u001b[2;36m \u001b[0mBatch complete.                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "939cb0fa207b4c0a9c93555275385409",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step = 9\n",
      "\tJ = 2.8370e-02\n",
      "\tgrad_norm = 2.9723e+00\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:11:17 -03 </span>Created task <span style=\"color: #008000; text-decoration-color: #008000\">'tidy3dMMIadj'</span> with resource_id                       \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'fdve-3948ac76-6fda-4504-9def-8bd506173fe8'</span> and task_type <span style=\"color: #008000; text-decoration-color: #008000\">'FDTD'</span>.  \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:11:17 -03\u001b[0m\u001b[2;36m \u001b[0mCreated task \u001b[32m'tidy3dMMIadj'\u001b[0m with resource_id                       \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'fdve-3948ac76-6fda-4504-9def-8bd506173fe8'\u001b[0m and task_type \u001b[32m'FDTD'\u001b[0m.  \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>View task using web UI at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-3948ac76-6fda-4504-9def-8bd506173fe8\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-3948ac76-6fd</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-3948ac76-6fda-4504-9def-8bd506173fe8\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">a-4504-9def-8bd506173fe8'</span></a>.                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mView task using web UI at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=291656;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3948ac76-6fda-4504-9def-8bd506173fe8\u001b\\\u001b[32m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=144824;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3948ac76-6fda-4504-9def-8bd506173fe8\u001b\\\u001b[32mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=291656;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3948ac76-6fda-4504-9def-8bd506173fe8\u001b\\\u001b[32m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=616172;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3948ac76-6fda-4504-9def-8bd506173fe8\u001b\\\u001b[32mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=291656;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3948ac76-6fda-4504-9def-8bd506173fe8\u001b\\\u001b[32m-3948ac76-6fd\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=291656;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3948ac76-6fda-4504-9def-8bd506173fe8\u001b\\\u001b[32ma-4504-9def-8bd506173fe8'\u001b[0m\u001b]8;;\u001b\\.                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Task folder: <a href=\"https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'default'</span></a>.                                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTask folder: \u001b]8;id=986536;https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\u001b\\\u001b[32m'default'\u001b[0m\u001b]8;;\u001b\\.                                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "0deab3ad6ac849c78026517685630ca9",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:11:20 -03 </span>Estimated FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.176</span>. Minimum cost depends on task     \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>execution details. Use <span style=\"color: #008000; text-decoration-color: #008000\">'web.real_cost(task_id)'</span> to get the billed  \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>FlexCredit cost after a simulation run.                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:11:20 -03\u001b[0m\u001b[2;36m \u001b[0mEstimated FlexCredit cost: \u001b[1;36m1.176\u001b[0m. Minimum cost depends on task     \n",
       "\u001b[2;36m             \u001b[0mexecution details. Use \u001b[32m'web.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed  \n",
       "\u001b[2;36m             \u001b[0mFlexCredit cost after a simulation run.                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "df5e457619874016a9a5e9b7834f0607",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:11:24 -03 </span>status = queued                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:11:24 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = queued                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>To cancel the simulation, use <span style=\"color: #008000; text-decoration-color: #008000\">'web.abort(task_id)'</span> or              \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'web.delete(task_id)'</span> or abort/delete the task in the web UI.      \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Terminating the Python script will not stop the job running on the \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>cloud.                                                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTo cancel the simulation, use \u001b[32m'web.abort\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or              \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'web.delete\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or abort/delete the task in the web UI.      \n",
       "\u001b[2;36m             \u001b[0mTerminating the Python script will not stop the job running on the \n",
       "\u001b[2;36m             \u001b[0mcloud.                                                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "6998b37fab9d4adfbfc8ee7a6e10eaf9",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:11:42 -03 </span>starting up solver                                                 \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:11:42 -03\u001b[0m\u001b[2;36m \u001b[0mstarting up solver                                                 \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>running solver                                                     \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mrunning solver                                                     \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "337b1657f78f453e891daf1701bc4aa7",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:11:54 -03 </span>early shutoff detected at <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>%, exiting.                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:11:54 -03\u001b[0m\u001b[2;36m \u001b[0mearly shutoff detected at \u001b[1;36m4\u001b[0m%, exiting.                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>status = postprocess                                               \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mstatus = postprocess                                               \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "7266cd489dd2408d92cd1dd02e169b15",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:11:58 -03 </span>status = success                                                   \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:11:58 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = success                                                   \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:12:00 -03 </span>View simulation result at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-3948ac76-6fda-4504-9def-8bd506173fe8\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-3948ac76-6fd</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-3948ac76-6fda-4504-9def-8bd506173fe8\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">a-4504-9def-8bd506173fe8'</span></a><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">.</span>                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:12:00 -03\u001b[0m\u001b[2;36m \u001b[0mView simulation result at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=120139;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3948ac76-6fda-4504-9def-8bd506173fe8\u001b\\\u001b[4;34m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=181888;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3948ac76-6fda-4504-9def-8bd506173fe8\u001b\\\u001b[4;34mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=120139;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3948ac76-6fda-4504-9def-8bd506173fe8\u001b\\\u001b[4;34m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=141;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3948ac76-6fda-4504-9def-8bd506173fe8\u001b\\\u001b[4;34mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=120139;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3948ac76-6fda-4504-9def-8bd506173fe8\u001b\\\u001b[4;34m-3948ac76-6fd\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=120139;https://tidy3d.simulation.cloud/workbench?taskId=fdve-3948ac76-6fda-4504-9def-8bd506173fe8\u001b\\\u001b[4;34ma-4504-9def-8bd506173fe8'\u001b[0m\u001b]8;;\u001b\\\u001b[4;34m.\u001b[0m                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "d53f24b40fec41c38987428f23654181",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:12:03 -03 </span>Loading simulation from simulation_data.hdf5                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:12:03 -03\u001b[0m\u001b[2;36m \u001b[0mLoading simulation from simulation_data.hdf5                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Autograd ArrayBox with value 0.00011907159155895129\n",
      "Autograd ArrayBox with value 0.008102693176776206\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Started working on Batch containing <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span> tasks.                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mStarted working on Batch containing \u001b[1;36m1\u001b[0m tasks.                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:12:09 -03 </span>Maximum FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.208</span> for the whole batch.                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:12:09 -03\u001b[0m\u001b[2;36m \u001b[0mMaximum FlexCredit cost: \u001b[1;36m1.208\u001b[0m for the whole batch.                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Use <span style=\"color: #008000; text-decoration-color: #008000\">'Batch.real_cost()'</span> to get the billed FlexCredit cost after    \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>completion.                                                        \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mUse \u001b[32m'Batch.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed FlexCredit cost after    \n",
       "\u001b[2;36m             \u001b[0mcompletion.                                                        \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "5da3dfa1ef234ea3a6ef88c139863766",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:13:02 -03 </span>Batch complete.                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:13:02 -03\u001b[0m\u001b[2;36m \u001b[0mBatch complete.                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "295136a13b094ced9cbcda06240086db",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step = 10\n",
      "\tJ = 8.2218e-03\n",
      "\tgrad_norm = 4.5009e-01\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:13:04 -03 </span>Created task <span style=\"color: #008000; text-decoration-color: #008000\">'tidy3dMMIadj'</span> with resource_id                       \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'fdve-d8a2e404-c3fd-434b-8c2f-6e7963b0782e'</span> and task_type <span style=\"color: #008000; text-decoration-color: #008000\">'FDTD'</span>.  \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:13:04 -03\u001b[0m\u001b[2;36m \u001b[0mCreated task \u001b[32m'tidy3dMMIadj'\u001b[0m with resource_id                       \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'fdve-d8a2e404-c3fd-434b-8c2f-6e7963b0782e'\u001b[0m and task_type \u001b[32m'FDTD'\u001b[0m.  \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>View task using web UI at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-d8a2e404-c3fd-434b-8c2f-6e7963b0782e\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-d8a2e404-c3f</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-d8a2e404-c3fd-434b-8c2f-6e7963b0782e\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">d-434b-8c2f-6e7963b0782e'</span></a>.                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mView task using web UI at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=454399;https://tidy3d.simulation.cloud/workbench?taskId=fdve-d8a2e404-c3fd-434b-8c2f-6e7963b0782e\u001b\\\u001b[32m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=458580;https://tidy3d.simulation.cloud/workbench?taskId=fdve-d8a2e404-c3fd-434b-8c2f-6e7963b0782e\u001b\\\u001b[32mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=454399;https://tidy3d.simulation.cloud/workbench?taskId=fdve-d8a2e404-c3fd-434b-8c2f-6e7963b0782e\u001b\\\u001b[32m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=432353;https://tidy3d.simulation.cloud/workbench?taskId=fdve-d8a2e404-c3fd-434b-8c2f-6e7963b0782e\u001b\\\u001b[32mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=454399;https://tidy3d.simulation.cloud/workbench?taskId=fdve-d8a2e404-c3fd-434b-8c2f-6e7963b0782e\u001b\\\u001b[32m-d8a2e404-c3f\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=454399;https://tidy3d.simulation.cloud/workbench?taskId=fdve-d8a2e404-c3fd-434b-8c2f-6e7963b0782e\u001b\\\u001b[32md-434b-8c2f-6e7963b0782e'\u001b[0m\u001b]8;;\u001b\\.                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Task folder: <a href=\"https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'default'</span></a>.                                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTask folder: \u001b]8;id=703207;https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\u001b\\\u001b[32m'default'\u001b[0m\u001b]8;;\u001b\\.                                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "7d32c107e28949fe922c937f29d06706",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:13:07 -03 </span>Estimated FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.176</span>. Minimum cost depends on task     \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>execution details. Use <span style=\"color: #008000; text-decoration-color: #008000\">'web.real_cost(task_id)'</span> to get the billed  \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>FlexCredit cost after a simulation run.                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:13:07 -03\u001b[0m\u001b[2;36m \u001b[0mEstimated FlexCredit cost: \u001b[1;36m1.176\u001b[0m. Minimum cost depends on task     \n",
       "\u001b[2;36m             \u001b[0mexecution details. Use \u001b[32m'web.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed  \n",
       "\u001b[2;36m             \u001b[0mFlexCredit cost after a simulation run.                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "d2819b068fc146409394b715a2ae2b70",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:13:11 -03 </span>status = queued                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:13:11 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = queued                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>To cancel the simulation, use <span style=\"color: #008000; text-decoration-color: #008000\">'web.abort(task_id)'</span> or              \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'web.delete(task_id)'</span> or abort/delete the task in the web UI.      \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Terminating the Python script will not stop the job running on the \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>cloud.                                                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTo cancel the simulation, use \u001b[32m'web.abort\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or              \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'web.delete\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or abort/delete the task in the web UI.      \n",
       "\u001b[2;36m             \u001b[0mTerminating the Python script will not stop the job running on the \n",
       "\u001b[2;36m             \u001b[0mcloud.                                                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "4592018f7a5248bfa983c0f52f89a90a",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:13:46 -03 </span>status = preprocess                                                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:13:46 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = preprocess                                                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:13:52 -03 </span>starting up solver                                                 \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:13:52 -03\u001b[0m\u001b[2;36m \u001b[0mstarting up solver                                                 \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>running solver                                                     \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mrunning solver                                                     \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "028c1fe1f4f94d7bb247d5b6040198d4",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:14:11 -03 </span>early shutoff detected at <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>%, exiting.                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:14:11 -03\u001b[0m\u001b[2;36m \u001b[0mearly shutoff detected at \u001b[1;36m4\u001b[0m%, exiting.                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>status = postprocess                                               \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mstatus = postprocess                                               \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "325f0bf00d2a493e94449067a6adf700",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:14:15 -03 </span>status = success                                                   \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:14:15 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = success                                                   \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:14:17 -03 </span>View simulation result at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-d8a2e404-c3fd-434b-8c2f-6e7963b0782e\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-d8a2e404-c3f</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-d8a2e404-c3fd-434b-8c2f-6e7963b0782e\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">d-434b-8c2f-6e7963b0782e'</span></a><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">.</span>                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:14:17 -03\u001b[0m\u001b[2;36m \u001b[0mView simulation result at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=256756;https://tidy3d.simulation.cloud/workbench?taskId=fdve-d8a2e404-c3fd-434b-8c2f-6e7963b0782e\u001b\\\u001b[4;34m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=327277;https://tidy3d.simulation.cloud/workbench?taskId=fdve-d8a2e404-c3fd-434b-8c2f-6e7963b0782e\u001b\\\u001b[4;34mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=256756;https://tidy3d.simulation.cloud/workbench?taskId=fdve-d8a2e404-c3fd-434b-8c2f-6e7963b0782e\u001b\\\u001b[4;34m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=649583;https://tidy3d.simulation.cloud/workbench?taskId=fdve-d8a2e404-c3fd-434b-8c2f-6e7963b0782e\u001b\\\u001b[4;34mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=256756;https://tidy3d.simulation.cloud/workbench?taskId=fdve-d8a2e404-c3fd-434b-8c2f-6e7963b0782e\u001b\\\u001b[4;34m-d8a2e404-c3f\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=256756;https://tidy3d.simulation.cloud/workbench?taskId=fdve-d8a2e404-c3fd-434b-8c2f-6e7963b0782e\u001b\\\u001b[4;34md-434b-8c2f-6e7963b0782e'\u001b[0m\u001b]8;;\u001b\\\u001b[4;34m.\u001b[0m                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "32f0f8ccffeb40fa8f851ca938ec87f5",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:14:20 -03 </span>Loading simulation from simulation_data.hdf5                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:14:20 -03\u001b[0m\u001b[2;36m \u001b[0mLoading simulation from simulation_data.hdf5                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Autograd ArrayBox with value 0.002349891506344505\n",
      "Autograd ArrayBox with value 0.003916633263534279\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Started working on Batch containing <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span> tasks.                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mStarted working on Batch containing \u001b[1;36m1\u001b[0m tasks.                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:14:26 -03 </span>Maximum FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.208</span> for the whole batch.                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:14:26 -03\u001b[0m\u001b[2;36m \u001b[0mMaximum FlexCredit cost: \u001b[1;36m1.208\u001b[0m for the whole batch.                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Use <span style=\"color: #008000; text-decoration-color: #008000\">'Batch.real_cost()'</span> to get the billed FlexCredit cost after    \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>completion.                                                        \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mUse \u001b[32m'Batch.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed FlexCredit cost after    \n",
       "\u001b[2;36m             \u001b[0mcompletion.                                                        \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "3d0d5f8ec7f543d5bb09b86f30bb977e",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:15:11 -03 </span>Batch complete.                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:15:11 -03\u001b[0m\u001b[2;36m \u001b[0mBatch complete.                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "c912da52c1e447fab180015b48639885",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step = 11\n",
      "\tJ = 6.2665e-03\n",
      "\tgrad_norm = 2.7466e+00\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:15:14 -03 </span>Created task <span style=\"color: #008000; text-decoration-color: #008000\">'tidy3dMMIadj'</span> with resource_id                       \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'fdve-a6ed8466-0ab2-454a-ba98-d0bdfd6858dd'</span> and task_type <span style=\"color: #008000; text-decoration-color: #008000\">'FDTD'</span>.  \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:15:14 -03\u001b[0m\u001b[2;36m \u001b[0mCreated task \u001b[32m'tidy3dMMIadj'\u001b[0m with resource_id                       \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'fdve-a6ed8466-0ab2-454a-ba98-d0bdfd6858dd'\u001b[0m and task_type \u001b[32m'FDTD'\u001b[0m.  \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>View task using web UI at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-a6ed8466-0ab2-454a-ba98-d0bdfd6858dd\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-a6ed8466-0ab</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-a6ed8466-0ab2-454a-ba98-d0bdfd6858dd\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">2-454a-ba98-d0bdfd6858dd'</span></a>.                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mView task using web UI at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=122387;https://tidy3d.simulation.cloud/workbench?taskId=fdve-a6ed8466-0ab2-454a-ba98-d0bdfd6858dd\u001b\\\u001b[32m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=561597;https://tidy3d.simulation.cloud/workbench?taskId=fdve-a6ed8466-0ab2-454a-ba98-d0bdfd6858dd\u001b\\\u001b[32mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=122387;https://tidy3d.simulation.cloud/workbench?taskId=fdve-a6ed8466-0ab2-454a-ba98-d0bdfd6858dd\u001b\\\u001b[32m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=403555;https://tidy3d.simulation.cloud/workbench?taskId=fdve-a6ed8466-0ab2-454a-ba98-d0bdfd6858dd\u001b\\\u001b[32mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=122387;https://tidy3d.simulation.cloud/workbench?taskId=fdve-a6ed8466-0ab2-454a-ba98-d0bdfd6858dd\u001b\\\u001b[32m-a6ed8466-0ab\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=122387;https://tidy3d.simulation.cloud/workbench?taskId=fdve-a6ed8466-0ab2-454a-ba98-d0bdfd6858dd\u001b\\\u001b[32m2-454a-ba98-d0bdfd6858dd'\u001b[0m\u001b]8;;\u001b\\.                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Task folder: <a href=\"https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'default'</span></a>.                                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTask folder: \u001b]8;id=602723;https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\u001b\\\u001b[32m'default'\u001b[0m\u001b]8;;\u001b\\.                                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "21f38b542c3d42658a47532578d05f49",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:15:17 -03 </span>Estimated FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.176</span>. Minimum cost depends on task     \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>execution details. Use <span style=\"color: #008000; text-decoration-color: #008000\">'web.real_cost(task_id)'</span> to get the billed  \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>FlexCredit cost after a simulation run.                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:15:17 -03\u001b[0m\u001b[2;36m \u001b[0mEstimated FlexCredit cost: \u001b[1;36m1.176\u001b[0m. Minimum cost depends on task     \n",
       "\u001b[2;36m             \u001b[0mexecution details. Use \u001b[32m'web.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed  \n",
       "\u001b[2;36m             \u001b[0mFlexCredit cost after a simulation run.                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "69137b4d52cc48f59bcfe459adc2efdb",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:15:20 -03 </span>status = queued                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:15:20 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = queued                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>To cancel the simulation, use <span style=\"color: #008000; text-decoration-color: #008000\">'web.abort(task_id)'</span> or              \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'web.delete(task_id)'</span> or abort/delete the task in the web UI.      \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Terminating the Python script will not stop the job running on the \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>cloud.                                                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTo cancel the simulation, use \u001b[32m'web.abort\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or              \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'web.delete\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or abort/delete the task in the web UI.      \n",
       "\u001b[2;36m             \u001b[0mTerminating the Python script will not stop the job running on the \n",
       "\u001b[2;36m             \u001b[0mcloud.                                                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "b7e964dc53e54d54843cc3b739a97e2d",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:15:29 -03 </span>status = preprocess                                                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:15:29 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = preprocess                                                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:15:35 -03 </span>starting up solver                                                 \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:15:35 -03\u001b[0m\u001b[2;36m \u001b[0mstarting up solver                                                 \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>running solver                                                     \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mrunning solver                                                     \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "e754e2130b834d4aa83468a5c84e705a",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:15:46 -03 </span>early shutoff detected at <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>%, exiting.                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:15:46 -03\u001b[0m\u001b[2;36m \u001b[0mearly shutoff detected at \u001b[1;36m4\u001b[0m%, exiting.                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:15:47 -03 </span>status = success                                                   \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:15:47 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = success                                                   \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>View simulation result at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-a6ed8466-0ab2-454a-ba98-d0bdfd6858dd\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-a6ed8466-0ab</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-a6ed8466-0ab2-454a-ba98-d0bdfd6858dd\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">2-454a-ba98-d0bdfd6858dd'</span></a><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">.</span>                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mView simulation result at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=392603;https://tidy3d.simulation.cloud/workbench?taskId=fdve-a6ed8466-0ab2-454a-ba98-d0bdfd6858dd\u001b\\\u001b[4;34m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=713340;https://tidy3d.simulation.cloud/workbench?taskId=fdve-a6ed8466-0ab2-454a-ba98-d0bdfd6858dd\u001b\\\u001b[4;34mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=392603;https://tidy3d.simulation.cloud/workbench?taskId=fdve-a6ed8466-0ab2-454a-ba98-d0bdfd6858dd\u001b\\\u001b[4;34m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=224123;https://tidy3d.simulation.cloud/workbench?taskId=fdve-a6ed8466-0ab2-454a-ba98-d0bdfd6858dd\u001b\\\u001b[4;34mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=392603;https://tidy3d.simulation.cloud/workbench?taskId=fdve-a6ed8466-0ab2-454a-ba98-d0bdfd6858dd\u001b\\\u001b[4;34m-a6ed8466-0ab\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=392603;https://tidy3d.simulation.cloud/workbench?taskId=fdve-a6ed8466-0ab2-454a-ba98-d0bdfd6858dd\u001b\\\u001b[4;34m2-454a-ba98-d0bdfd6858dd'\u001b[0m\u001b]8;;\u001b\\\u001b[4;34m.\u001b[0m                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "d8c123f9e1a345e8b30171344cad6c7f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:15:50 -03 </span>Loading simulation from simulation_data.hdf5                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:15:50 -03\u001b[0m\u001b[2;36m \u001b[0mLoading simulation from simulation_data.hdf5                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Autograd ArrayBox with value 0.0003520986322037858\n",
      "Autograd ArrayBox with value 0.004899877599120619\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:15:51 -03 </span>Started working on Batch containing <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span> tasks.                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:15:51 -03\u001b[0m\u001b[2;36m \u001b[0mStarted working on Batch containing \u001b[1;36m1\u001b[0m tasks.                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:15:56 -03 </span>Maximum FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.208</span> for the whole batch.                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:15:56 -03\u001b[0m\u001b[2;36m \u001b[0mMaximum FlexCredit cost: \u001b[1;36m1.208\u001b[0m for the whole batch.                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Use <span style=\"color: #008000; text-decoration-color: #008000\">'Batch.real_cost()'</span> to get the billed FlexCredit cost after    \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>completion.                                                        \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mUse \u001b[32m'Batch.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed FlexCredit cost after    \n",
       "\u001b[2;36m             \u001b[0mcompletion.                                                        \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "61299025e9ee4077a72b10ef68fde10e",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:16:23 -03 </span>Batch complete.                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:16:23 -03\u001b[0m\u001b[2;36m \u001b[0mBatch complete.                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "695ac9ec6fe845b79c15716b397a261a",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step = 12\n",
      "\tJ = 5.2520e-03\n",
      "\tgrad_norm = 6.3671e-01\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:16:25 -03 </span>Created task <span style=\"color: #008000; text-decoration-color: #008000\">'tidy3dMMIadj'</span> with resource_id                       \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'fdve-dac97da6-64a9-46d4-b078-f80977589ce2'</span> and task_type <span style=\"color: #008000; text-decoration-color: #008000\">'FDTD'</span>.  \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:16:25 -03\u001b[0m\u001b[2;36m \u001b[0mCreated task \u001b[32m'tidy3dMMIadj'\u001b[0m with resource_id                       \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'fdve-dac97da6-64a9-46d4-b078-f80977589ce2'\u001b[0m and task_type \u001b[32m'FDTD'\u001b[0m.  \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>View task using web UI at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-dac97da6-64a9-46d4-b078-f80977589ce2\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-dac97da6-64a</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-dac97da6-64a9-46d4-b078-f80977589ce2\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">9-46d4-b078-f80977589ce2'</span></a>.                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mView task using web UI at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=234563;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dac97da6-64a9-46d4-b078-f80977589ce2\u001b\\\u001b[32m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=272014;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dac97da6-64a9-46d4-b078-f80977589ce2\u001b\\\u001b[32mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=234563;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dac97da6-64a9-46d4-b078-f80977589ce2\u001b\\\u001b[32m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=515029;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dac97da6-64a9-46d4-b078-f80977589ce2\u001b\\\u001b[32mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=234563;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dac97da6-64a9-46d4-b078-f80977589ce2\u001b\\\u001b[32m-dac97da6-64a\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=234563;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dac97da6-64a9-46d4-b078-f80977589ce2\u001b\\\u001b[32m9-46d4-b078-f80977589ce2'\u001b[0m\u001b]8;;\u001b\\.                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Task folder: <a href=\"https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'default'</span></a>.                                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTask folder: \u001b]8;id=535795;https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\u001b\\\u001b[32m'default'\u001b[0m\u001b]8;;\u001b\\.                                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "5c1f2ecefdf341d781d6446113af4647",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:16:29 -03 </span>Estimated FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.176</span>. Minimum cost depends on task     \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>execution details. Use <span style=\"color: #008000; text-decoration-color: #008000\">'web.real_cost(task_id)'</span> to get the billed  \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>FlexCredit cost after a simulation run.                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:16:29 -03\u001b[0m\u001b[2;36m \u001b[0mEstimated FlexCredit cost: \u001b[1;36m1.176\u001b[0m. Minimum cost depends on task     \n",
       "\u001b[2;36m             \u001b[0mexecution details. Use \u001b[32m'web.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed  \n",
       "\u001b[2;36m             \u001b[0mFlexCredit cost after a simulation run.                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "5fb5ad0cea2c41faa174464d56780776",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:16:32 -03 </span>status = queued                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:16:32 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = queued                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>To cancel the simulation, use <span style=\"color: #008000; text-decoration-color: #008000\">'web.abort(task_id)'</span> or              \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'web.delete(task_id)'</span> or abort/delete the task in the web UI.      \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Terminating the Python script will not stop the job running on the \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>cloud.                                                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTo cancel the simulation, use \u001b[32m'web.abort\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or              \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'web.delete\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or abort/delete the task in the web UI.      \n",
       "\u001b[2;36m             \u001b[0mTerminating the Python script will not stop the job running on the \n",
       "\u001b[2;36m             \u001b[0mcloud.                                                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "7cc94e7271b643b3aa392f5057ab2da7",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:16:48 -03 </span>starting up solver                                                 \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:16:48 -03\u001b[0m\u001b[2;36m \u001b[0mstarting up solver                                                 \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>running solver                                                     \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mrunning solver                                                     \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "519fa2f0a148483cb0be19fc08790f13",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:17:07 -03 </span>early shutoff detected at <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>%, exiting.                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:17:07 -03\u001b[0m\u001b[2;36m \u001b[0mearly shutoff detected at \u001b[1;36m4\u001b[0m%, exiting.                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>status = postprocess                                               \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mstatus = postprocess                                               \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "f34b76e3f2bc4d0aa9e57221df4b9c13",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:17:11 -03 </span>status = success                                                   \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:17:11 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = success                                                   \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:17:13 -03 </span>View simulation result at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-dac97da6-64a9-46d4-b078-f80977589ce2\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-dac97da6-64a</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-dac97da6-64a9-46d4-b078-f80977589ce2\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">9-46d4-b078-f80977589ce2'</span></a><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">.</span>                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:17:13 -03\u001b[0m\u001b[2;36m \u001b[0mView simulation result at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=859755;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dac97da6-64a9-46d4-b078-f80977589ce2\u001b\\\u001b[4;34m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=68667;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dac97da6-64a9-46d4-b078-f80977589ce2\u001b\\\u001b[4;34mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=859755;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dac97da6-64a9-46d4-b078-f80977589ce2\u001b\\\u001b[4;34m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=140439;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dac97da6-64a9-46d4-b078-f80977589ce2\u001b\\\u001b[4;34mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=859755;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dac97da6-64a9-46d4-b078-f80977589ce2\u001b\\\u001b[4;34m-dac97da6-64a\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=859755;https://tidy3d.simulation.cloud/workbench?taskId=fdve-dac97da6-64a9-46d4-b078-f80977589ce2\u001b\\\u001b[4;34m9-46d4-b078-f80977589ce2'\u001b[0m\u001b]8;;\u001b\\\u001b[4;34m.\u001b[0m                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "5bbc8c41525c447cbe3c201f19907d4a",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:17:16 -03 </span>Loading simulation from simulation_data.hdf5                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:17:16 -03\u001b[0m\u001b[2;36m \u001b[0mLoading simulation from simulation_data.hdf5                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Autograd ArrayBox with value 0.00011586847629584113\n",
      "Autograd ArrayBox with value 0.0078057860869055334\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Started working on Batch containing <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span> tasks.                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mStarted working on Batch containing \u001b[1;36m1\u001b[0m tasks.                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:17:22 -03 </span>Maximum FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.208</span> for the whole batch.                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:17:22 -03\u001b[0m\u001b[2;36m \u001b[0mMaximum FlexCredit cost: \u001b[1;36m1.208\u001b[0m for the whole batch.                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Use <span style=\"color: #008000; text-decoration-color: #008000\">'Batch.real_cost()'</span> to get the billed FlexCredit cost after    \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>completion.                                                        \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mUse \u001b[32m'Batch.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed FlexCredit cost after    \n",
       "\u001b[2;36m             \u001b[0mcompletion.                                                        \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "0d06dc46c77e4ec092c936fda9f60e1d",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:17:44 -03 </span>Batch complete.                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:17:44 -03\u001b[0m\u001b[2;36m \u001b[0mBatch complete.                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "209d9d19204b44a5aae8d6854d48c451",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step = 13\n",
      "\tJ = 7.9217e-03\n",
      "\tgrad_norm = 6.0158e-01\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:17:46 -03 </span>Created task <span style=\"color: #008000; text-decoration-color: #008000\">'tidy3dMMIadj'</span> with resource_id                       \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'fdve-65dbff02-c404-4d86-89ce-99a952761ec6'</span> and task_type <span style=\"color: #008000; text-decoration-color: #008000\">'FDTD'</span>.  \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:17:46 -03\u001b[0m\u001b[2;36m \u001b[0mCreated task \u001b[32m'tidy3dMMIadj'\u001b[0m with resource_id                       \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'fdve-65dbff02-c404-4d86-89ce-99a952761ec6'\u001b[0m and task_type \u001b[32m'FDTD'\u001b[0m.  \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>View task using web UI at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-65dbff02-c404-4d86-89ce-99a952761ec6\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-65dbff02-c40</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-65dbff02-c404-4d86-89ce-99a952761ec6\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">4-4d86-89ce-99a952761ec6'</span></a>.                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mView task using web UI at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=106560;https://tidy3d.simulation.cloud/workbench?taskId=fdve-65dbff02-c404-4d86-89ce-99a952761ec6\u001b\\\u001b[32m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=543145;https://tidy3d.simulation.cloud/workbench?taskId=fdve-65dbff02-c404-4d86-89ce-99a952761ec6\u001b\\\u001b[32mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=106560;https://tidy3d.simulation.cloud/workbench?taskId=fdve-65dbff02-c404-4d86-89ce-99a952761ec6\u001b\\\u001b[32m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=443447;https://tidy3d.simulation.cloud/workbench?taskId=fdve-65dbff02-c404-4d86-89ce-99a952761ec6\u001b\\\u001b[32mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=106560;https://tidy3d.simulation.cloud/workbench?taskId=fdve-65dbff02-c404-4d86-89ce-99a952761ec6\u001b\\\u001b[32m-65dbff02-c40\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=106560;https://tidy3d.simulation.cloud/workbench?taskId=fdve-65dbff02-c404-4d86-89ce-99a952761ec6\u001b\\\u001b[32m4-4d86-89ce-99a952761ec6'\u001b[0m\u001b]8;;\u001b\\.                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Task folder: <a href=\"https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'default'</span></a>.                                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTask folder: \u001b]8;id=140362;https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\u001b\\\u001b[32m'default'\u001b[0m\u001b]8;;\u001b\\.                                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "46d4d21b785542edbc3742c1dfcf2c40",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:17:50 -03 </span>Estimated FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.176</span>. Minimum cost depends on task     \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>execution details. Use <span style=\"color: #008000; text-decoration-color: #008000\">'web.real_cost(task_id)'</span> to get the billed  \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>FlexCredit cost after a simulation run.                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:17:50 -03\u001b[0m\u001b[2;36m \u001b[0mEstimated FlexCredit cost: \u001b[1;36m1.176\u001b[0m. Minimum cost depends on task     \n",
       "\u001b[2;36m             \u001b[0mexecution details. Use \u001b[32m'web.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed  \n",
       "\u001b[2;36m             \u001b[0mFlexCredit cost after a simulation run.                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "5aaf48327047470e87c42d679839f907",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:17:54 -03 </span>status = queued                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:17:54 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = queued                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>To cancel the simulation, use <span style=\"color: #008000; text-decoration-color: #008000\">'web.abort(task_id)'</span> or              \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'web.delete(task_id)'</span> or abort/delete the task in the web UI.      \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Terminating the Python script will not stop the job running on the \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>cloud.                                                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTo cancel the simulation, use \u001b[32m'web.abort\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or              \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'web.delete\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or abort/delete the task in the web UI.      \n",
       "\u001b[2;36m             \u001b[0mTerminating the Python script will not stop the job running on the \n",
       "\u001b[2;36m             \u001b[0mcloud.                                                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "4be8ae3f634c40af8f1161a7e2500091",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:18:40 -03 </span>status = preprocess                                                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:18:40 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = preprocess                                                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:18:45 -03 </span>starting up solver                                                 \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:18:45 -03\u001b[0m\u001b[2;36m \u001b[0mstarting up solver                                                 \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:18:46 -03 </span>running solver                                                     \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:18:46 -03\u001b[0m\u001b[2;36m \u001b[0mrunning solver                                                     \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "4ff8d675674b45f5ac40c44d3b4334c7",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:19:03 -03 </span>early shutoff detected at <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>%, exiting.                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:19:03 -03\u001b[0m\u001b[2;36m \u001b[0mearly shutoff detected at \u001b[1;36m4\u001b[0m%, exiting.                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:19:04 -03 </span>status = postprocess                                               \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:19:04 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = postprocess                                               \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "51e1dfba1be2434ebd82c1b6a2ed0af1",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:19:08 -03 </span>status = success                                                   \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:19:08 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = success                                                   \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:19:10 -03 </span>View simulation result at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-65dbff02-c404-4d86-89ce-99a952761ec6\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-65dbff02-c40</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-65dbff02-c404-4d86-89ce-99a952761ec6\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">4-4d86-89ce-99a952761ec6'</span></a><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">.</span>                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:19:10 -03\u001b[0m\u001b[2;36m \u001b[0mView simulation result at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=313523;https://tidy3d.simulation.cloud/workbench?taskId=fdve-65dbff02-c404-4d86-89ce-99a952761ec6\u001b\\\u001b[4;34m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=731274;https://tidy3d.simulation.cloud/workbench?taskId=fdve-65dbff02-c404-4d86-89ce-99a952761ec6\u001b\\\u001b[4;34mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=313523;https://tidy3d.simulation.cloud/workbench?taskId=fdve-65dbff02-c404-4d86-89ce-99a952761ec6\u001b\\\u001b[4;34m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=873533;https://tidy3d.simulation.cloud/workbench?taskId=fdve-65dbff02-c404-4d86-89ce-99a952761ec6\u001b\\\u001b[4;34mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=313523;https://tidy3d.simulation.cloud/workbench?taskId=fdve-65dbff02-c404-4d86-89ce-99a952761ec6\u001b\\\u001b[4;34m-65dbff02-c40\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=313523;https://tidy3d.simulation.cloud/workbench?taskId=fdve-65dbff02-c404-4d86-89ce-99a952761ec6\u001b\\\u001b[4;34m4-4d86-89ce-99a952761ec6'\u001b[0m\u001b]8;;\u001b\\\u001b[4;34m.\u001b[0m                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "ded3446857324d16bbe0485d6ac8fb26",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:19:12 -03 </span>Loading simulation from simulation_data.hdf5                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:19:12 -03\u001b[0m\u001b[2;36m \u001b[0mLoading simulation from simulation_data.hdf5                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Autograd ArrayBox with value 0.00025578170972243784\n",
      "Autograd ArrayBox with value 0.012093082778784616\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:19:13 -03 </span>Started working on Batch containing <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span> tasks.                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:19:13 -03\u001b[0m\u001b[2;36m \u001b[0mStarted working on Batch containing \u001b[1;36m1\u001b[0m tasks.                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:19:27 -03 </span>Maximum FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.208</span> for the whole batch.                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:19:27 -03\u001b[0m\u001b[2;36m \u001b[0mMaximum FlexCredit cost: \u001b[1;36m1.208\u001b[0m for the whole batch.                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Use <span style=\"color: #008000; text-decoration-color: #008000\">'Batch.real_cost()'</span> to get the billed FlexCredit cost after    \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>completion.                                                        \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mUse \u001b[32m'Batch.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed FlexCredit cost after    \n",
       "\u001b[2;36m             \u001b[0mcompletion.                                                        \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "afa65f0820d549d78f41421df10bd1b7",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:19:54 -03 </span>Batch complete.                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:19:54 -03\u001b[0m\u001b[2;36m \u001b[0mBatch complete.                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "5933fdf40c4a42ecb93a15ac80eb3ca0",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step = 14\n",
      "\tJ = 1.2349e-02\n",
      "\tgrad_norm = 9.2290e-01\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:19:56 -03 </span>Created task <span style=\"color: #008000; text-decoration-color: #008000\">'tidy3dMMIadj'</span> with resource_id                       \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'fdve-cdfa82e1-3be3-46e8-8b5a-e26b91d43291'</span> and task_type <span style=\"color: #008000; text-decoration-color: #008000\">'FDTD'</span>.  \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:19:56 -03\u001b[0m\u001b[2;36m \u001b[0mCreated task \u001b[32m'tidy3dMMIadj'\u001b[0m with resource_id                       \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'fdve-cdfa82e1-3be3-46e8-8b5a-e26b91d43291'\u001b[0m and task_type \u001b[32m'FDTD'\u001b[0m.  \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>View task using web UI at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-cdfa82e1-3be3-46e8-8b5a-e26b91d43291\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-cdfa82e1-3be</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-cdfa82e1-3be3-46e8-8b5a-e26b91d43291\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">3-46e8-8b5a-e26b91d43291'</span></a>.                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mView task using web UI at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=672138;https://tidy3d.simulation.cloud/workbench?taskId=fdve-cdfa82e1-3be3-46e8-8b5a-e26b91d43291\u001b\\\u001b[32m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=821750;https://tidy3d.simulation.cloud/workbench?taskId=fdve-cdfa82e1-3be3-46e8-8b5a-e26b91d43291\u001b\\\u001b[32mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=672138;https://tidy3d.simulation.cloud/workbench?taskId=fdve-cdfa82e1-3be3-46e8-8b5a-e26b91d43291\u001b\\\u001b[32m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=945452;https://tidy3d.simulation.cloud/workbench?taskId=fdve-cdfa82e1-3be3-46e8-8b5a-e26b91d43291\u001b\\\u001b[32mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=672138;https://tidy3d.simulation.cloud/workbench?taskId=fdve-cdfa82e1-3be3-46e8-8b5a-e26b91d43291\u001b\\\u001b[32m-cdfa82e1-3be\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=672138;https://tidy3d.simulation.cloud/workbench?taskId=fdve-cdfa82e1-3be3-46e8-8b5a-e26b91d43291\u001b\\\u001b[32m3-46e8-8b5a-e26b91d43291'\u001b[0m\u001b]8;;\u001b\\.                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Task folder: <a href=\"https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\" target=\"_blank\"><span style=\"color: #008000; text-decoration-color: #008000\">'default'</span></a>.                                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTask folder: \u001b]8;id=52405;https://tidy3d.simulation.cloud/folders/folder-f9e994c1-6315-4b44-af3a-c2cb1435b23a\u001b\\\u001b[32m'default'\u001b[0m\u001b]8;;\u001b\\.                                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "fa4a6071e8f541d1a0ccc540c5bec772",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:20:08 -03 </span>Estimated FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.176</span>. Minimum cost depends on task     \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>execution details. Use <span style=\"color: #008000; text-decoration-color: #008000\">'web.real_cost(task_id)'</span> to get the billed  \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>FlexCredit cost after a simulation run.                            \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:20:08 -03\u001b[0m\u001b[2;36m \u001b[0mEstimated FlexCredit cost: \u001b[1;36m1.176\u001b[0m. Minimum cost depends on task     \n",
       "\u001b[2;36m             \u001b[0mexecution details. Use \u001b[32m'web.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed  \n",
       "\u001b[2;36m             \u001b[0mFlexCredit cost after a simulation run.                            \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "74c485a4cc3846cb8770821ce3e36b65",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:20:12 -03 </span>status = queued                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:20:12 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = queued                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>To cancel the simulation, use <span style=\"color: #008000; text-decoration-color: #008000\">'web.abort(task_id)'</span> or              \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><span style=\"color: #008000; text-decoration-color: #008000\">'web.delete(task_id)'</span> or abort/delete the task in the web UI.      \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Terminating the Python script will not stop the job running on the \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>cloud.                                                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mTo cancel the simulation, use \u001b[32m'web.abort\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or              \n",
       "\u001b[2;36m             \u001b[0m\u001b[32m'web.delete\u001b[0m\u001b[32m(\u001b[0m\u001b[32mtask_id\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m or abort/delete the task in the web UI.      \n",
       "\u001b[2;36m             \u001b[0mTerminating the Python script will not stop the job running on the \n",
       "\u001b[2;36m             \u001b[0mcloud.                                                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "85ac824b1168467b9d899381acb2280f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:20:16 -03 </span>status = preprocess                                                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:20:16 -03\u001b[0m\u001b[2;36m \u001b[0mstatus = preprocess                                                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:20:21 -03 </span>starting up solver                                                 \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:20:21 -03\u001b[0m\u001b[2;36m \u001b[0mstarting up solver                                                 \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:20:22 -03 </span>running solver                                                     \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:20:22 -03\u001b[0m\u001b[2;36m \u001b[0mrunning solver                                                     \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "d1f381dfda3040a0a83f1d059676250f",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:20:33 -03 </span>early shutoff detected at <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">4</span>%, exiting.                             \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:20:33 -03\u001b[0m\u001b[2;36m \u001b[0mearly shutoff detected at \u001b[1;36m4\u001b[0m%, exiting.                             \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>status = success                                                   \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mstatus = success                                                   \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>View simulation result at                                          \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-cdfa82e1-3be3-46e8-8b5a-e26b91d43291\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">'https://tidy3d.simulation.cloud/workbench?taskId=fdve-cdfa82e1-3be</span></a>\n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span><a href=\"https://tidy3d.simulation.cloud/workbench?taskId=fdve-cdfa82e1-3be3-46e8-8b5a-e26b91d43291\" target=\"_blank\"><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">3-46e8-8b5a-e26b91d43291'</span></a><span style=\"color: #000080; text-decoration-color: #000080; text-decoration: underline\">.</span>                                         \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mView simulation result at                                          \n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=807897;https://tidy3d.simulation.cloud/workbench?taskId=fdve-cdfa82e1-3be3-46e8-8b5a-e26b91d43291\u001b\\\u001b[4;34m'https://tidy3d.simulation.cloud/workbench?\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=507016;https://tidy3d.simulation.cloud/workbench?taskId=fdve-cdfa82e1-3be3-46e8-8b5a-e26b91d43291\u001b\\\u001b[4;34mtaskId\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=807897;https://tidy3d.simulation.cloud/workbench?taskId=fdve-cdfa82e1-3be3-46e8-8b5a-e26b91d43291\u001b\\\u001b[4;34m=\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=783343;https://tidy3d.simulation.cloud/workbench?taskId=fdve-cdfa82e1-3be3-46e8-8b5a-e26b91d43291\u001b\\\u001b[4;34mfdve\u001b[0m\u001b]8;;\u001b\\\u001b]8;id=807897;https://tidy3d.simulation.cloud/workbench?taskId=fdve-cdfa82e1-3be3-46e8-8b5a-e26b91d43291\u001b\\\u001b[4;34m-cdfa82e1-3be\u001b[0m\u001b]8;;\u001b\\\n",
       "\u001b[2;36m             \u001b[0m\u001b]8;id=807897;https://tidy3d.simulation.cloud/workbench?taskId=fdve-cdfa82e1-3be3-46e8-8b5a-e26b91d43291\u001b\\\u001b[4;34m3-46e8-8b5a-e26b91d43291'\u001b[0m\u001b]8;;\u001b\\\u001b[4;34m.\u001b[0m                                         \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "86e28d27dfa94fe6a9244391148303e8",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:20:36 -03 </span>Loading simulation from simulation_data.hdf5                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:20:36 -03\u001b[0m\u001b[2;36m \u001b[0mLoading simulation from simulation_data.hdf5                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Autograd ArrayBox with value 0.00046923602303622434\n",
      "Autograd ArrayBox with value 0.016732958016607083\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Started working on Batch containing <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1</span> tasks.                       \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mStarted working on Batch containing \u001b[1;36m1\u001b[0m tasks.                       \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:20:43 -03 </span>Maximum FlexCredit cost: <span style=\"color: #008080; text-decoration-color: #008080; font-weight: bold\">1.208</span> for the whole batch.                \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:20:43 -03\u001b[0m\u001b[2;36m \u001b[0mMaximum FlexCredit cost: \u001b[1;36m1.208\u001b[0m for the whole batch.                \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>Use <span style=\"color: #008000; text-decoration-color: #008000\">'Batch.real_cost()'</span> to get the billed FlexCredit cost after    \n",
       "<span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">             </span>completion.                                                        \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m            \u001b[0m\u001b[2;36m \u001b[0mUse \u001b[32m'Batch.real_cost\u001b[0m\u001b[32m(\u001b[0m\u001b[32m)\u001b[0m\u001b[32m'\u001b[0m to get the billed FlexCredit cost after    \n",
       "\u001b[2;36m             \u001b[0mcompletion.                                                        \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "1ad9433b00174c1181adbb7be202a4a1",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"color: #7fbfbf; text-decoration-color: #7fbfbf\">16:21:12 -03 </span>Batch complete.                                                    \n",
       "</pre>\n"
      ],
      "text/plain": [
       "\u001b[2;36m16:21:12 -03\u001b[0m\u001b[2;36m \u001b[0mBatch complete.                                                    \n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "30736dbdfa4e4b5b9178b7bc70fe37cb",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Output()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"></pre>\n"
      ],
      "text/plain": []
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">\n",
       "</pre>\n"
      ],
      "text/plain": [
       "\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "step = 15\n",
      "\tJ = 1.7202e-02\n",
      "\tgrad_norm = 1.2442e+00\n"
     ]
    }
   ],
   "source": [
    "import optax\n",
    "import pickle\n",
    "\n",
    "td.config.logging_level = \"ERROR\"\n",
    "\n",
    "# Hyperparameters\n",
    "num_steps = 15\n",
    "learning_rate = 0.01\n",
    "\n",
    "# Initialize the Adam optimizer with the starting parameters.\n",
    "params = np.array(params_0).copy()\n",
    "schedule = optax.piecewise_constant_schedule(\n",
    "    init_value=learning_rate, boundaries_and_scales={10: 0.5}\n",
    ")\n",
    "optimizer = optax.adam(\n",
    "    learning_rate=schedule,\n",
    "    b1=0.9,  # beta1\n",
    "    b2=0.99,  # beta2: default 0.999\n",
    "    eps=1e-8,\n",
    ")\n",
    "# optimizer = optax.sgd(learning_rate=learning_rate)\n",
    "opt_state = optimizer.init(params)\n",
    "\n",
    "# Store history.\n",
    "objective_history = []\n",
    "param_history = [params]\n",
    "\n",
    "for i in range(num_steps):\n",
    "    # Compute the gradient and current objective function value.\n",
    "    value, gradient = grad_fn(params)\n",
    "\n",
    "    # Convert NaNs to 0 (infinite radius of curvature) and multiply all values by -1 to maximize the objective.\n",
    "\n",
    "    # Outputs.\n",
    "    print(f\"step = {i + 1}\")\n",
    "    print(f\"\\tJ = {value:.4e}\")\n",
    "    print(f\"\\tgrad_norm = {np.linalg.norm(gradient):.4e}\")\n",
    "\n",
    "    # Compute and apply the optimizer updates based on the gradient.\n",
    "    updates, opt_state = optimizer.update(gradient, opt_state, params)\n",
    "    params = optax.apply_updates(params, updates)\n",
    "    params = np.array(params)\n",
    "\n",
    "    # Save history.\n",
    "    objective_history.append(value)\n",
    "    param_history.append(params)\n",
    "\n",
    "checkpoint = {\n",
    "    \"params\": params,\n",
    "    \"opt_state\": opt_state,\n",
    "    \"objective_history\": objective_history,\n",
    "    \"param_history\": param_history,\n",
    "    \"last_step\": num_steps,\n",
    "}\n",
    "\n",
    "with open(\"checkpoint.pkl\", \"wb\") as f:\n",
    "    pickle.dump(checkpoint, f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "247f0e4e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGwCAYAAABVdURTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAABN5UlEQVR4nO3deVxU5eIG8OfMwAyLrLIjAu6KCgqKuFzTuGqZZVaambhkdcty4f66ZqVe8ypWZlZaXrXSFtO0tFLTa2imiRuLYO7KJrKICMMi28z5/TEyRSAyOjOHmXm+n898dN45Z+YZKubpzHnPK4iiKIKIiIjIQsikDkBERERkSCw3REREZFFYboiIiMiisNwQERGRRWG5ISIiIovCckNEREQWheWGiIiILIqN1AFMTaPR4OrVq3BycoIgCFLHISIiomYQRRGlpaXw8/ODTNb0sRmrKzdXr15FQECA1DGIiIjoLmRnZ6NNmzZNbmN15cbJyQmA9ofj7OwscRoiIiJqDpVKhYCAAN3neFOsrtzUfRXl7OzMckNERGRmmnNKCU8oJiIiIovCckNEREQWheWGiIiILArLDREREVkUlhsiIiKyKCw3REREZFFYboiIiMiisNwQERGRRWG5ISIiIovCckNEREQWheWGiIiILArLDREREVkUlhsDulZahTO5KqljEBERWTWWGwPZfSoX/eLi8dq2NKmjEBERWTWWGwPpHegGAEjOKsala2USpyEiIrJeLDcG4uVkh8GdPAEA3yZekTgNERGR9WK5MaDHercBAGxLzoFaI0qchoiIyDqx3BjQ/V294Gxng9ySSiRcui51HCIiIqvEcmNAdrZyjAr1AwB8m8SvpoiIiKTAcmNgj4Vrv5rafSoPZVW1EqchIiKyPiw3BtYrwBXtPBxxs0aNXWm5UschIiKyOiw3BiYIgu7ozVbOmiIiIjI5lhsjGNPbH4IAHEsvQnZRhdRxiIiIrArLjRH4uthjQHsPADyxmIiIyNRYbozksXB/AMB3STkQRV7zhoiIyFRYboxkeIgPHBVyZBVV4HjGDanjEBERWQ2WGyNxUNhgZE9fAFyOgYiIyJRYboyobjmGnWm5uFmtljgNERGRdWC5MaI+Qe4IcLdHWVUt9vyeJ3UcIiIiq8ByY0QymYAxvbRHbzhrioiIyDRYboys7qupQxcLkVtyU+I0RERElo/lxsjatnZA3yB3iCKwLTlH6jhEREQWj+XGBB6/tRzDt4lXeM0bIiIiI2O5MYEHevjAzlaGS9fKkZJdLHUcIiIii8ZyYwJOdrYYEeIDgCcWExERGRvLjYnUrRT+48lcVNXymjdERETGwnJjIv3be8DH2Q4lN2sQf6ZA6jhEREQWS9Jy8+uvv2LUqFHw8/ODIAjYvn37Hff55Zdf0Lt3byiVSnTo0AHr1683ek5DkMsEPNpbu5gml2MgIiIyHknLTXl5OUJDQ7Fq1apmbZ+eno6RI0diyJAhSElJwaxZszBt2jTs2bPHyEkNo+6aN7+cv4ZrpVUSpyEiIrJMNlK++AMPPIAHHnig2duvXr0awcHBePfddwEAXbt2xaFDh/Dee+9h+PDhje5TVVWFqqo/ioRKpbq30Pegg1crhAW4IiW7GN+n5GDaoHaSZSEiIrJUZnXOTUJCAqKjo+uNDR8+HAkJCbfdJy4uDi4uLrpbQECAsWM2qe7E4q38aoqIiMgozKrc5OXlwdvbu96Yt7c3VCoVbt5sfGmDuXPnoqSkRHfLzs42RdTbGtXTFwq5DGfzSvH71RJJsxAREVkisyo3d0OpVMLZ2bneTUquDgpEd/MCAHybyOUYiIiIDM2syo2Pjw/y8/PrjeXn58PZ2Rn29vYSpdJf3YnF36fkoEatkTgNERGRZTGrchMVFYX4+Ph6Y3v37kVUVJREie7O3zp5wqOVEtfLq3Hg3DWp4xAREVkUSctNWVkZUlJSkJKSAkA71TslJQVZWVkAtOfLxMTE6Lb/xz/+gcuXL+Nf//oXzp49i48++gjffPMNZs+eLUX8u2Yrl2F0mB8AnlhMRERkaJKWmxMnTqBXr17o1asXACA2Nha9evXC/PnzAQC5ubm6ogMAwcHB2LlzJ/bu3YvQ0FC8++67WLdu3W2ngbdkdbOm4s/m40Z5tcRpiIiILIcgiqIodQhTUqlUcHFxQUlJieQnFz/4/kGczlXhzUdCEBMVJGkWIiKilkyfz2+zOufG0tQdveFyDERERIbDciOhR8L8YCMTcPJKCS4WlEodh4iIyCKw3EjIo5US93XWXvNmK695Q0REZBAsNxJ7PFy7Uvi25CtQa6zq9CciIiKjYLmR2JAuXnB1sEW+qgqHLhZKHYeIiMjssdxITGkjx8Oh2mve8MRiIiKie8dy0wLULcew5/c8qCprJE5DRERk3lhuWoCebVzQwasVqmo12JWaK3UcIiIis8Zy0wIIgoDH6655k8SvpoiIiO4Fy00L8Wgvf8gE4HjGDWQUlksdh4iIyGyx3LQQ3s52GNjREwDwHY/eEBER3TWWmxbksd7aa958m5QDDa95Q0REdFdYblqQ4SE+cFLaIKf4Jo6mF0kdh4iIyCyx3LQgdrZyjOzpC4AnFhMREd0tlpsWpm7W1K60XJRX1UqchoiIyPyw3LQw4YFuCGrtgIpqNXafypM6DhERkdlhuWlhBEHAmN685g0REdHdYrlpgR7tpZ01lXD5OnKKb0qchoiIyLyw3LRAAe4O6NfOHaIIbOPRGyIiIr2w3LRQj+m+msqBKPKaN0RERM3FctNCPdjDFw4KOdILy5GUVSx1HCIiIrPBctNCOSptMKK7DwBgayK/miIiImoulpsW7PFbX03tSL2Kyhq1xGmIiIjMA8tNC9avXWv4u9qjtLIWe0/nSx2HiIjILLDctGAymaCbFs5r3hARETUPy00LN+bWSuG/nr+GAlWlxGmIiIhaPpabFq6dZyuEB7pBIwLbU3KkjkNERNTisdyYgbpr3mxNvMJr3hAREd0By40ZGNnTFwobGc7nl+FUjkrqOERERC0ay40ZcLG3xbBu3gB4YjEREdGdsNyYicfCtV9NfZ+Sg+pajcRpiIiIWi6WGzMxqIMHvJyUuFFRg/3nCqSOQ0RE1GKx3JgJG7nsj2vecDkGIiKi22K5MSN1X03tO1uA62VVEqchIiJqmVhuzEgnbyf08HdBrUbEDyevSh2HiIioRWK5MTOP9eZyDERERE1huTEzD4f5w1Yu4FSOCufySqWOQ0RE1OKw3JgZd0cFhnbxAsCjN0RERI1huTFDdcsxbEvOQa2a17whIiL6M5YbM3RfZy+4OypwrbQKBy8USh2HiIioRWG5MUMKGxkeDvUDAGzlV1NERET1sNyYqcdvXfNm7+l8lFTUSJyGiIio5WC5MVMhfs7o7O2E6loNdqTxmjdERER1WG7MlCAIuqM3XI6BiIjoDyw3ZuyRXn6QywQkZRXj8rUyqeMQERG1CCw3ZszLyQ5/6+gBgNe8ISIiqsNyY+bqFtPclpQDjUaUOA0REZH0WG7MXHRXbzjb2eBqSSUSLl+XOg4REZHkWG7MnJ2tHA/duuYNTywmIiJiubEIdbOmfjqVh7KqWonTEBERSYvlxgL0CnBFOw9H3KxR46e0XKnjEBERSUrycrNq1SoEBQXBzs4OkZGROHbsWJPbr1ixAp07d4a9vT0CAgIwe/ZsVFZWmihtyyQIgu7E4q38aoqIiKycpOVm8+bNiI2NxYIFC5CUlITQ0FAMHz4cBQUFjW6/ceNGvPrqq1iwYAHOnDmDTz75BJs3b8Zrr71m4uQtz6O9/CEIwNH0IqQXlksdh4iISDKSlpvly5fj2WefxZQpU9CtWzesXr0aDg4O+PTTTxvd/vDhwxgwYACeeuopBAUFYdiwYRg/fvwdj/ZYAz9Xe9zXyRMA8OWRTInTEBERSUeyclNdXY3ExERER0f/EUYmQ3R0NBISEhrdp3///khMTNSVmcuXL2PXrl148MEHb/s6VVVVUKlU9W6WKqZ/EADgmxPZqKjmicVERGSdJCs3hYWFUKvV8Pb2rjfu7e2NvLy8Rvd56qmn8Oabb2LgwIGwtbVF+/btcd999zX5tVRcXBxcXFx0t4CAAIO+j5ZkcEdPBLZ2QGllLbYnczFNIiKyTpKfUKyPX375BUuWLMFHH32EpKQkfPfdd9i5cycWLVp0233mzp2LkpIS3S07O9uEiU1LJhMwsV8gAODzhAyIIq9YTERE1sdGqhf28PCAXC5Hfn5+vfH8/Hz4+Pg0us+8efMwceJETJs2DQDQo0cPlJeX47nnnsPrr78OmaxhV1MqlVAqlYZ/Ay3UE+EBWPa/czibV4rjGTfQN9hd6khEREQmJdmRG4VCgfDwcMTHx+vGNBoN4uPjERUV1eg+FRUVDQqMXC4HAB6luMXFwRaP9vIHAGxIyJA2DBERkQQk/VoqNjYWa9euxYYNG3DmzBm88MILKC8vx5QpUwAAMTExmDt3rm77UaNG4eOPP8amTZuQnp6OvXv3Yt68eRg1apSu5BAwsV8QAGDPqTzkq6z7GkBERGR9JPtaCgDGjRuHa9euYf78+cjLy0NYWBh2796tO8k4Kyur3pGaN954A4Ig4I033kBOTg48PT0xatQoLF68WKq30CJ183NGnyA3HM+4gY1HszD7752kjkRERGQygmhl3+eoVCq4uLigpKQEzs7OUscxmh9PXsXLXyfD00mJ3+YMhcLGrM4dJyIiqkefz29+4lmo4SE+8HJS4lppFfb83vjUeiIiIkvEcmOhFDYyjO/bFoB2WjgREZG1YLmxYE9FtoWNTMDxjBv4/WqJ1HGIiIhMguXGgnk722FEd+01g75I4HpTRERkHVhuLFxMVBAAYHtKDkoqaqQNQ0REZAIsNxauT5Abuvg4obJGgy2Jlrv0BBERUR2WGwsnCAIm3Vot/IsjmdBorGrmPxERWSGWGyvwSJgfnOxskHm9AgcuXJM6DhERkVGx3FgBB4UNxkYEAAA+P5whbRgiIiIjY7mxEhP7BQIAfjl/DZnXyyVOQ0REZDwsN1YiyMMRgzt5QhSBL49wWjgREVkulhsrMqm/9ujN5uPZuFmtljgNERGRcdzVquDx8fGIj49HQUEBNBpNvcc+/fRTgwQjwxvcyQtt3R2QVVSB71Ny8OSt5RmIiIgsid5HbhYuXIhhw4YhPj4ehYWFuHHjRr0btVxymaA79+bzhExY2YLwRERkJfQ+crN69WqsX78eEydONEYeMrInItpg2f/O4XSuComZNxAR5C51JCIiIoPS+8hNdXU1+vfvb4wsZAKuDgqMDvMHAGzgelNERGSB9C4306ZNw8aNG42RhUxkYpT2q6mf0nJRoKqUOA0REZFh6f21VGVlJdasWYOff/4ZPXv2hK2tbb3Hly9fbrBwZBzd/V0QHuiGxMwb+PpYNmZGd5Q6EhERkcHoXW5SU1MRFhYGADh16lS9xwRBMEgoMr6YqEAkZt7AV0cz8eKQ9rCV86oARERkGfQuN/v37zdGDjKxB7r7YlGrMygorcKe3/PwUE8/qSMREREZxD397/qVK1dw5coVQ2UhE1LYyPBU31vrTfHEYiIisiB6lxuNRoM333wTLi4uCAwMRGBgIFxdXbFo0aIGF/Sjlu2pyEDIZQKOpRfhTK5K6jhEREQGoXe5ef3117Fy5UosXboUycnJSE5OxpIlS/Dhhx9i3rx5xshIRuLjYocRIT4AePSGiIgshyDqeZlaPz8/rF69Gg8//HC98e+//x4vvvgicnJyDBrQ0FQqFVxcXFBSUgJnZ2ep40juyOXreHLNEdjbynHktfvhYm97552IiIhMTJ/Pb72P3BQVFaFLly4Nxrt06YKioiJ9n44kFhnsjs7eTrhZo8bWRJ4/RURE5k/vchMaGoqVK1c2GF+5ciVCQ0MNEopMRxAExNxaLfyLhAxoNFxvioiIzJveU8HffvttjBw5Ej///DOioqIAAAkJCcjOzsauXbsMHpCMb3SYP5buOouM6xU4eLEQgzt5Sh2JiIjorul95Gbw4ME4f/48Hn30URQXF6O4uBhjxozBuXPnMGjQIGNkJCNzVNrg8Yg2AIDPD2dIG4aIiOge6X1CsbnjCcWNu3ytDEPfPQBBAH59ZQgC3B2kjkRERKSjz+d3s76WSk1NRffu3SGTyZCamtrktj179mx+Umox2nm2wqCOHjh4oRBfHsnE3Ae7Sh2JiIjorjSr3ISFhSEvLw9eXl4ICwuDIAho7ICPIAhQq9UGD0mmMSkqCAcvFGLT8WzMiu4Ee4Vc6khERER6a1a5SU9Ph6enp+7vZJmGdPFCGzd7XLlxEz+evIqxfQKkjkRERKS3Zp1QHBgYqFvxOzMzE/7+/rqlF+pu/v7+yMzkVW7NmVwm4Ol+2mnhGxIyGj06R0RE1NLpPVtqyJAhjV6sr6SkBEOGDDFIKJLOuIgAKG1k+P2qCklZxVLHISIi0pve5UYURd1RnD+7fv06HB0dDRKKpOPmqMDDoX4AgM8TMqQNQ0REdBeafRG/MWPGANCeNDx58mQolUrdY2q1Gqmpqejfv7/hE5LJTeofhC2JV7ArLRdvjOwGTyflnXciIiJqIZpdblxcXABoj9w4OTnB3t5e95hCoUC/fv3w7LPPGj4hmVx3fxf0auuK5KxibDqWhZfv7yh1JCIiomZrdrn57LPPAABBQUF45ZVX4ODAi7xZsklRQUjOSsFXR7Pwj/vaw1au9zeYREREktD7EysmJgY5OTkNxi9cuICMjAxDZKIW4IEePvBopUCeqhJ7T+dLHYeIiKjZ9C43kydPxuHDhxuMHz16FJMnTzZEJmoBlDZyPNmnLQCeWExEROZF73KTnJyMAQMGNBjv168fUlJSDJGJWoinIttCLhNw5HIRzuWVSh2HiIioWfQuN4IgoLS04QddSUkJl16wMH6u9hjWzRsAj94QEZH50Lvc/O1vf0NcXFy9IqNWqxEXF4eBAwcaNBxJb2KU9orF25JzoKqskTgNERHRnTV7tlSdt956C3/729/QuXNnDBo0CABw8OBBqFQq7Nu3z+ABSVpR7Vqjo1crXCgow7eJVzBlQLDUkYiIiJqk95Gbbt26ITU1FWPHjkVBQQFKS0sRExODs2fPonv37sbISBISBAEx/YMAAF8kZEKj4XpTRETUsgmila2OqFKp4OLigpKSEjg7O0sdxyyUVdWi35J4lFXV4vOpffG3Tp5SRyIiIiujz+e33l9LAUBxcTGOHTuGgoICaDSaeo/FxMTczVNSC9ZKaYPHw9tg/eEMfJ6QyXJDREQtmt7l5scff8SECRNQVlYGZ2fneotoCoLAcmOhnu4XiPWHMxB/Nh/ZRRUIcOcVqomIqGXS+5ybf/7zn5g6dSrKyspQXFyMGzdu6G5FRUXGyEgtQAevVhjYwQOiCHx5NFPqOERERLeld7nJycnBjBkzuLaUFYq5NS38m+PZqKzhNY2IiKhl0rvcDB8+HCdOnDBGFmrh7u/qDX9Xe9yoqMGPJ69KHYeIiKhRepebkSNH4pVXXsG///1vfPvtt/jhhx/q3fS1atUqBAUFwc7ODpGRkTh27FiT2xcXF2P69Onw9fWFUqlEp06dsGvXLr1fl/QnlwmY0K9uvalMWNlEOyIiMhN6TwWXyW7fhwRB0GsJhs2bNyMmJgarV69GZGQkVqxYgS1btuDcuXPw8vJqsH11dTUGDBgALy8vvPbaa/D390dmZiZcXV0RGhrarNfkVPB7c72sClFL96G6VoNtL/ZHr7ZuUkciIiIroM/nt95HbjQazW1v+q4ttXz5cjz77LOYMmUKunXrhtWrV8PBwQGffvppo9t/+umnKCoqwvbt2zFgwAAEBQVh8ODBzS42dO9at1JiVE8/ANqjN0RERC2N3uXGUKqrq5GYmIjo6Og/wshkiI6ORkJCQqP7/PDDD4iKisL06dPh7e2N7t27Y8mSJU2WqqqqKqhUqno3ujeT+mtPLN6ZmovCsiqJ0xAREdWn93Vu3nzzzSYfnz9/frOep7CwEGq1Gt7e3vXGvb29cfbs2Ub3uXz5Mvbt24cJEyZg165duHjxIl588UXU1NRgwYIFje4TFxeHhQsXNisTNU/PNq4IDXDFyexibD6ejelDOkgdiYiISEfvcrNt27Z692tqapCeng4bGxu0b9++2eXmbmg0Gnh5eWHNmjWQy+UIDw9HTk4O3nnnnduWm7lz5yI2NlZ3X6VSISAgwGgZrcWkqEDEZhfjyyOZeP5v7WAjl+wgIBERUT16l5vk5OQGYyqVCpMnT8ajjz7a7Ofx8PCAXC5Hfn5+vfH8/Hz4+Pg0uo+vry9sbW0hl8t1Y127dkVeXh6qq6uhUCga7KNUKqFUKpudi5rnwR6+WLzzDHJLKvHzmXyM6O4rdSQiIiIABjrnxtnZGQsXLsS8efOavY9CoUB4eDji4+N1YxqNBvHx8YiKimp0nwEDBuDixYv11rM6f/48fH19Gy02ZDx2tnKM66M9AsYTi4mIqCUx2HcJJSUlKCkp0Wuf2NhYrF27Fhs2bMCZM2fwwgsvoLy8HFOmTAGgXYRz7ty5uu1feOEFFBUVYebMmTh//jx27tyJJUuWYPr06YZ6G6SHCf0CIROAw5eu40J+qdRxiIiIANzF11IffPBBvfuiKCI3NxdffPEFHnjgAb2ea9y4cbh27Rrmz5+PvLw8hIWFYffu3bqTjLOysupdVycgIAB79uzB7Nmz0bNnT/j7+2PmzJmYM2eOvm+DDMDf1R5/7+aNPb/n4/OETCwa3V3qSERERPpfxC84OLjefZlMBk9PTwwdOhRz586Fk5OTQQMaGi/iZ1i/XSzEhHVH4aiQ48hr98PJzlbqSEREZIH0+fxu1pGb1NRUdO/eHTKZDOnp6QYJSZahf/vWaO/piEvXyvFdUg4m9Q+SOhIREVm5Zp1z06tXLxQWFgIA2rVrh+vXrxs1FJkPQRB0hWZDQgbXmyIiIsk1q9y4urrqjthkZGTUm61E9Ggvfzgq5Lh8rRy/XWTxJSIiaTXra6nHHnsMgwcPhq+vLwRBQERERL1rzfzZ5cuXDRqQWj4nO1s8Ft4Gnydk4vOEDAzs6CF1JCIismLNKjdr1qzBmDFjcPHiRcyYMQPPPvtsiz9xmEwrJioQnydk4ucz+cguqkCAu4PUkYiIyEo1eyr4iBEjAACJiYmYOXMmyw3V08HLCYM6euDghUK8s+ccPhjfS+pIRERkpfS+iN9nn33GYkONmjOiCwQB+OHkVSRmFkkdh4iIrBRXOySD6e7vgifC2wAA3txxBhoNZ04REZHpsdyQQf3fsM5wVMhxMrsYP5y8KnUcIiKyQiw3ZFBeznZ4cUgHAMDSn86iorpW4kRERGRtWG7I4J4ZGAx/V3vkqSqx5ldeGoCIiEzrrsrNF198gQEDBsDPzw+ZmZkAgBUrVuD77783aDgyT3a2csx9sAsAYPWBS8gtuSlxIiIisiZ6l5uPP/4YsbGxePDBB1FcXAy1Wg1AexXjFStWGDofmamRPXwREeiGyhoN3tl9Tuo4RERkRfQuNx9++CHWrl2L119/vd5ViiMiIpCWlmbQcGS+BEHA/FHdAADfJecgJbtY2kBERGQ19C436enp6NWr4QXalEolysvLDRKKLEPPNq4Y09sfALBox2kuqklERCahd7kJDg5GSkpKg/Hdu3eja9euhshEFuRfw7vA3laOxMwb2JGaK3UcIiKyAs1efqFObGwspk+fjsrKSoiiiGPHjuHrr79GXFwc1q1bZ4yMZMZ8XOzwwn3tsXzveSz96Sz+3s0bdraNL7pKRERkCHqXm2nTpsHe3h5vvPEGKioq8NRTT8HPzw/vv/8+nnzySWNkJDP37KB2+PpYFnKKb2Ldwct4aWhHqSMREZEFE8R7OBGioqICZWVl8PLyMmQmo1KpVHBxcUFJSQmcnZ2ljmM1vk/JwcxNKXBQyPHL/90HL2c7qSMREZEZ0efzW+9zbv7zn/8gPT0dAODg4GBWxYak83CoH3q1dUVFtRrv7OHUcCIiMh69y82WLVvQoUMH9O/fHx999BEKCwuNkYssjCAImPeQdmr41qQrOJVTInEiIiKyVHqXm5MnTyI1NRX33Xcfli1bBj8/P4wcORIbN25ERUWFMTKShejd1g2PhPlBFIE3OTWciIiM5K6WXwgJCcGSJUtw+fJl7N+/H0FBQZg1axZ8fHwMnY8szJwRXWBnK8Ox9CLsPpUndRwiIrJA97xwpqOjI+zt7aFQKFBTU2OITGTB/Fzt8dzf2gMAlvx0BpU1aokTERGRpbmrcpOeno7FixcjJCQEERERSE5OxsKFC5GXx/8Tpzv7x+B28HZWIrvoJtYfzpA6DhERWRi9y02/fv3QoUMHbN26FVOmTEFmZibi4+PxzDPPwMXFxRgZycI4KGzwr+HaVcNX7ruIa6VVEiciIiJLone5uf/++5GWlobk5GT83//9H/z9/Y2Riyzco7380bONC8qqarF8L6eGExGR4ehdbhYvXoxu3boZIwtZEZnsj6nhm49n4/RVlcSJiIjIUjRr+YXY2FgsWrQIjo6OiI2NbXLb5cuXGyQYWb4+Qe4Y2dMXO1NzsWjHaWx8NhKCIEgdi4iIzFyzyk1ycrJuJlRycrJRA5F1eXVEF+w9nY+Ey9ex93Q+hoXwcgJERHRv7mltKXPEtaVanrd3n8VHv1xCUGsH/G/2YChs7vkKBUREZGGMurbU1KlTUVpa2mC8vLwcU6dO1ffpiPDikA7waKVExvUKfJ6QIXUcIiIyc3qXmw0bNuDmzZsNxm/evInPP//cIKHIurRS2uBfwzsDAN6Pv4DrZZwaTkREd6/Z5UalUqGkpASiKKK0tBQqlUp3u3HjBnbt2sUVwumuPRbeBiF+ziitrMWKny9IHYeIiMxYs04oBgBXV1cIggBBENCpU6cGjwuCgIULFxo0HFkP+a2p4U+uOYKvjmbi6X6B6OzjJHUsIiIyQ80uN/v374coihg6dCi+/fZbuLu76x5TKBQIDAyEn5+fUUKSdejXrjVGhPhg9+95+M/O0/h8al9ODSciIr01u9wMHjwYgHZdqbZt2/JDh4xi7oNdsO9sAQ5eKMQv565hSBd+1UlERPrR+4Tiffv2YevWrQ3Gt2zZgg0bNhgkFFmvwNaOmDIgCACwaOdp1Kg10gYiIiKzo3e5iYuLg4eHR4NxLy8vLFmyxCChyLpNH9oBrR0VuHytHF8eyZQ6DhERmRm9y01WVhaCg4MbjAcGBiIrK8sgoci6OdvZ4p/DtFPDV/x8AcUV1RInIiIic6J3ufHy8kJqamqD8ZMnT6J169YGCUU0rk8Auvg4oeRmDaeGExGRXvQuN+PHj8eMGTOwf/9+qNVqqNVq7Nu3DzNnzsSTTz5pjIxkheR/WjX8iyOZuFjQ8KrYREREjdG73CxatAiRkZG4//77YW9vD3t7ewwbNgxDhw7lOTdkUAM6eCC6qzfUGhGLd56ROg4REZmJu1448/z58zh58iTs7e3Ro0cPBAYGGjqbUXDhTPOSXliOYe8dQI1axIapfTG4k6fUkYiISAJGXTizTlBQEHr27IkRI0aYTbEh8xPs4YiYqCAAwH92nEYtp4YTEdEd6F1uKioq8Mwzz8DBwQEhISG6GVIvv/wyli5davCARDOGdoSbgy0uFJTh62OckUdERE3Tu9zMnTsXJ0+exC+//AI7OzvdeHR0NDZv3mzQcEQA4OJgi9i/a9czW773PEpu1kiciIiIWjK9y8327duxcuVKDBw4sN4SDCEhIbh06ZJBwxHVGd+3LTp6tcKNihp8GM+p4UREdHt6l5tr167By6vhej/l5eVcb4qMxkYuwxu3poZvSMhAemG5xImIiKil0rvcREREYOfOnbr7dYVm3bp1iIqKMlwyor8Y3MkTQzp7okYtYskuTg0nIqLGNXtV8DpLlizBAw88gNOnT6O2thbvv/8+Tp8+jcOHD+PAgQPGyEik8/rIbvj1wq/Yezofv10sxIAODdc5IyIi66b3kZuBAwciJSUFtbW16NGjB/73v//By8sLCQkJCA8Pv6sQq1atQlBQEOzs7BAZGYljx441a79NmzZBEASMHj36rl6XzE8Hr1aY2E976YFFO05DrbmryzQREZEFu+uL+BnK5s2bERMTg9WrVyMyMhIrVqzAli1bcO7cuUbP7amTkZGBgQMHol27dnB3d8f27dub9Xq8iJ/5u1FejfuW/YKSmzWIG9MD4/u2lToSEREZmcEv4qdSqer9valbbW2tXmGXL1+OZ599FlOmTEG3bt2wevVqODg44NNPP73tPmq1GhMmTMDChQvRrl07vV6PzJ+bowKzojsCAJbtOQdVJaeGExHRH5pVbtzc3FBQUAAAcHV1hZub221vdnZ26Nq1K/bv33/H562urkZiYiKio6P/CCSTITo6GgkJCbfd780334SXlxeeeeaZO75GVVVVgwJG5u/pfoFo5+mI6+XVWLX/otRxiIioBWnWCcX79u2Du7s7ANyxtFRVVWH79u144YUXcPbs2Sa3LSwshFqthre3d71xb2/v2+576NAhfPLJJ0hJSWlOdMTFxWHhwoXN2pbMh61chjdGdsXU9Sfw2aEMTOgbiLatHaSORURELUCzys3gwYMb/fvthIWFNfukYH2UlpZi4sSJWLt2LTw8mjdLZu7cuYiNjdXdV6lUCAgIMHg2Mr0hnb0wqKMHDl4oRNxPZ/Dx03d3QjsREVkWvaeCA9pzXrZt24YzZ7TXGunWrRseeeQR2Nhon87LywsnTpy44/N4eHhALpcjPz+/3nh+fj58fHwabH/p0iVkZGRg1KhRujGNRruQoo2NDc6dO4f27dvX20epVEKpVOr3BsksCIKAeQ91w4gVv+KnU3k4cvk6+rVrLXUsIiKSmN5TwX///Xd06tQJkyZNwrZt27Bt2zZMmjQJHTt2xKlTp/R6LoVCgfDwcMTHx+vGNBoN4uPjG70gYJcuXZCWloaUlBTd7eGHH8aQIUOQkpLCIzJWqJO3E56K1M6W4tRwIiIC7uLIzbRp0xASEoITJ07Azc0NAHDjxg1MnjwZzz33HA4fPqzX88XGxmLSpEmIiIhA3759sWLFCpSXl2PKlCkAgJiYGPj7+yMuLg52dnbo3r17vf1dXV0BoME4WY/Z0Z3wfcpV/H5VhW+TrmBsBEsuEZE107vcpKSk1Cs2gHY21eLFi9GnTx+9A4wbNw7Xrl3D/PnzkZeXh7CwMOzevVt3knFWVhZkMr0PMJEVad1KiZn3d8R/dp7BO3vO4cEevmilvKtvXImIyALofRG/0NBQvPfeexg6dGi98X379mHmzJlIS0szaEBD40X8LFN1rQbD3juAjOsVGNPLH++ODeVCrkREFsQoF/Gru8XFxWHGjBnYunUrrly5gitXrmDr1q2YNWsW3nrrLYO8ASJ9KWxkWPJoD8hlAr5LzsGH+3jtGyIia9WsIzcymaze/wXX7VI39uf7arXaGDkNhkduLNtXRzPx+jbtie3vPxmGR8L8JU5ERESGoM/nd7NOTGjO1YaJWoIJkYHIvF6BNb9exitbUuHnao8+Qe5SxyIiIhOSfOFMU+ORG8un0Yh48ask7P49D24OtvjuxQEI9nCUOhYREd0DfT6/76rcFBcX45NPPtFdxC8kJARTp06Fi4vL3SU2IZYb63CzWo0n1yTg5JUSBHs44rsX+sPNUSF1LCIiuksGP6H4z06cOIH27dvjvffeQ1FREYqKirB8+XK0b98eSUlJdx2ayJDsFXKsnRQBf1d7pBeW4/kvE1FV27LPByMiIsPQ+8jNoEGD0KFDB6xdu1a33EJtbS2mTZuGy5cv49dffzVKUEPhkRvrci6vFI9/fBilVbV4tJc/lnOKOBGRWTL6kZs5c+boig2gXdfpX//6V7PWkyIypc4+Tvjo6d6QywRsS87B+/EXpI5ERERGpne5cXZ2RlZWVoPx7OxsODk5GSQUkSEN6uiJ/4zWLs+x4ucL2JZ8ReJERERkTHqXm3HjxuGZZ57B5s2bkZ2djezsbGzatAnTpk3D+PHjjZGR6J6N79sWzw9uBwCYszUNRy9flzgREREZi94L8CxbtgyCICAmJga1tbUAAFtbW7zwwgtYunSpwQMSGcqc4V2Qdb0CP53Kw/NfJuK7F/qjnWcrqWMREZGB3fV1bioqKnDp0iUAQPv27eHg4GDQYMbCE4qtW2WNGk+uOYKU7GIEtXbAdy8OgDuniBMRtXhGPaG4joODA3r06IEePXqYTbEhsrOVY21MBNq42SPjegWe+/wEKms4RZyIyJLcdbkhMleeTkp8NrkPnOxscCLzBuZ8mworu1A3EZFFY7khq9TR2wkfTwiHjUzA9ylX8d7PnCJORGQpWG7Iag3s6IHFj2qniH8QfwHfJnKKOBGRJWC5Ias2rk9bvHhfewDAq9+lIuESp4gTEZk7lhuyev83rDNG9vBFjVrEP75MxKVrZVJHIiKie8ByQ1ZPJhPw7thQ9GrripKbNZjy2XFcL6uSOhYREd0llhsi/DFFPMDdHllFFXjui0ROESciMlMsN0S3eLTSThF3trNBYuYN/N+Wk9BoOEWciMjcsNwQ/UkHLyesflo7RXxHai6W7z0vdSQiItITyw3RX/Tv4IElY3oAAFbuv4gtJ7IlTkRERPpguSFqxNiIALw0pAMAYO53aTh8sVDiRERE1FwsN0S3Efv3ThgV6odajXaK+MWCUqkjERFRM7DcEN2GTCbgncd7IjzQDarKWkxZfxyFnCJORNTisdwQNcHOVo41E8PR1t0B2UU3uYo4EZEZYLkhuoPWrZT4bEofuNjbIimrGP/kFHEiohaN5YaoGdp7tsLqp8NhKxewMzUXy/53TupIRER0Gyw3RM0U1b41lo7pCQD46JdL2Hw8S+JERETUGJYbIj08Ft4GM4Zqp4i/vu0UfuMUcSKiFoflhkhPs//eCY+E/TFF/EI+p4gTEbUkLDdEehIEAW891hN9gtxQemuK+LVSThEnImopWG6I7oKdrRz/nRiBwNYOuHLjJqZ9fgI3qzlFnIioJWC5IbpL7o4KfDZZO0X8ZHYxYr9J4RRxIqIWgOWG6B6082yFNRO1U8R/OpWHt/dwijgRkdRYbojuUWS71nj7ce0U8dUHLuHLI5kSJyIism4sN0QG8GivNph5f0cAwLzvT+H7lByJExERWS+WGyIDmRXdEU/3awtRBGK/OYn//Z4ndSQiIqvEckNkIIIg4M2Hu2NML3+oNSJe2piMQxd4kT8iIlNjuSEyIJlMwNuP98SIEB9UqzV49vMTOJFRJHUsIiKrwnJDZGA2chneHx+GwZ08cbNGjSmfHcepnBKpYxERWQ2WGyIjUNrIsfrpcPQNdkdpVS0mfnKUyzQQEZkIyw2Rkdgr5PhkUgRC27jgRkUNJqw7iszr5VLHIiKyeCw3REbkZGeL9VP6orO3EwpKq/DU2qPILbkpdSwiIovGckNkZG6OCnwxrS+CPRyRU3wTE9YdRWEZF9okIjIWlhsiE/ByssOX0yLh72qPy9fKMfGTYyipqJE6FhGRRWK5ITIRf1d7fDktEh6tlDiTq8Kkz46hrKpW6lhERBaH5YbIhII9HPHVtEi4OtgiJbsY0zYcR2WNWupYREQWheWGyMQ6+zjh86l90UppgyOXi/DCl4mortVIHYuIyGKw3BBJoGcbV3w6uQ/sbGXYf+4aZm9OQa2aBYeIyBBYbogk0jfYHf+dGAFbuYCdabl49bs0aDSi1LGIiMxeiyg3q1atQlBQEOzs7BAZGYljx47ddtu1a9di0KBBcHNzg5ubG6Kjo5vcnqglG9zJEx+O7wW5TMDWxCtY+OPvEEUWHCKieyF5udm8eTNiY2OxYMECJCUlITQ0FMOHD0dBQUGj2//yyy8YP3489u/fj4SEBAQEBGDYsGHIyckxcXIiwxjR3RfvPN4TALAhIRPv7DkncSIiIvMmiBL/b2JkZCT69OmDlStXAgA0Gg0CAgLw8ssv49VXX73j/mq1Gm5ubli5ciViYmIaPF5VVYWqqj8umKZSqRAQEICSkhI4Ozsb7o0Q3aMvjmRi3vZTAIBXhnfG9CEdJE5ERNRyqFQquLi4NOvzW9IjN9XV1UhMTER0dLRuTCaTITo6GgkJCc16joqKCtTU1MDd3b3Rx+Pi4uDi4qK7BQQEGCQ7kaFN7BeIuQ90AQC8s+cc1v+WLnEiIiLzJGm5KSwshFqthre3d71xb29v5OXlNes55syZAz8/v3oF6c/mzp2LkpIS3S07O/uecxMZy/OD22PGUO0Rm3//eBrfnOC/r0RE+rKROsC9WLp0KTZt2oRffvkFdnZ2jW6jVCqhVCpNnIzo7s3+eyeUVanx6W/pePXbVDgqbDCyp6/UsYiIzIakR248PDwgl8uRn59fbzw/Px8+Pj5N7rts2TIsXboU//vf/9CzZ09jxiQyKUEQMO+hrniyTwA0IjBzUzL2nc2/845ERARA4nKjUCgQHh6O+Ph43ZhGo0F8fDyioqJuu9/bb7+NRYsWYffu3YiIiDBFVCKTEgQBix/tgYdD/VCrEfGPL5Nw+FKh1LGIiMyC5FPBY2NjsXbtWmzYsAFnzpzBCy+8gPLyckyZMgUAEBMTg7lz5+q2f+uttzBv3jx8+umnCAoKQl5eHvLy8lBWVibVWyAyCrlMwLtjQxHd1RvVtRpM23ACSVk3pI5FRNTiSV5uxo0bh2XLlmH+/PkICwtDSkoKdu/erTvJOCsrC7m5ubrtP/74Y1RXV+Pxxx+Hr6+v7rZs2TKp3gKR0djKZVj5VC8M6NAaFdVqTP70GH6/WiJ1LCKiFk3y69yYmj7z5IlaiorqWkz85BgSM2+gtaMCm5+PQgevVlLHIiIyGbO5zg0RNY+DwgafTu6DED9nXC+vxtPrjiK7qELqWERELRLLDZGZcLG3xedT+6KDVyvkqSoxYd1R5KsqpY5FRNTisNwQmZHWrZT4alok2ro7IKuoAhPWHcX1sqo770hEZEVYbojMjLezHb6aFgkfZztcLChDzKfHUHKzRupYREQtBssNkRkKcHfAl9Mi0dpRgd+vqjB1/XFUVNdKHYuIqEVguSEyUx28WuGLZyLhbGeDxMwbePbzE6isUUsdi4hIciw3RGasm58z1k/tCweFHL9dvI6XNiahRq2ROhYRkaRYbojMXO+2blg3KQJKGxl+PlOAyZ8dw/GMIljZJayIiHRYbogsQP/2Hlj9dDhs5QJ+u3gdT6xOwOhVv+HHk1dRyyM5RGRleIViIgty6VoZ1h28jG+TclBdqy01/q72mDIgCOP6BMDJzlbihEREd0efz2+WGyILVFhWhS+PZOKLhExcL68GADgpbfBk3wBMHhAMf1d7iRMSEemH5aYJLDdkTSpr1NienIN1h9JxsaAMgHa18Qd7+OLZQcHo2cZV2oBERM3EctMElhuyRhqNiAPnr2Hdocv47eJ13XjfIHdMGxSM+7t6Qy4TJExIRNQ0lpsmsNyQtfv9agk+OZSOH09eRY1a+59/UGsHPDMwGI+HB8BeIZc4IRFRQyw3TWC5IdLKK6nEhoQMfHUkE6pK7dWNXR1s8XRkIGKiAuHlbCdxQiKiP7DcNIHlhqi+8qpabE28gk8OpSOrqAIAoJDL8HCYH54ZGIyuvvzvhIikx3LTBJYbosapNSL2ns7HuoOXcSLzhm58UEcPTBvUDn/r6AFB4Hk5RCQNlpsmsNwQ3Vly1g2sO5SOn9Jyobn1G6KTdytMG9gOj/Tyg9KG5+UQkWmx3DSB5Yao+bKLKrD+cAY2HctCebV2UU6PVkrERAXi6X6BcHdUSJyQiKwFy00TWG6I9KeqrMGmY1n47LcM5JZUAgDsbGV4rHcbTB0YjPaerSROSESWjuWmCSw3RHevRq3BrrRcrDuYjrScEt14dFcvTBvUDpHB7jwvh4iMguWmCSw3RPdOFEUcSy/C2oPpiD+bj7rfIt39nfHMwGA80N0XdrY8L4eIDIflpgksN0SGdflaGT79LR1bE6+gska7WKeTnQ0eCfPD2IgA9PB34dEcIrpnLDdNYLkhMo6i8mpsPJqJTcezceXGTd14Fx8nPBERgNFhfmjdSilhQiIyZyw3TWC5ITIujUbEkcvX8c2JbPx0Kg9VtdqjObZyAdFdvTE2IgCDOnrARi6TOCkRmROWmyaw3BCZTsnNGvx48iq2nMjGySt/nIDs7azEY73b4ImIAAR7OEqYkIjMBctNE1huiKRxNk+Fb45fwbbkK7hRUaMb7xvkjici2uDBHr5wVNpImJCIWjKWmyaw3BBJq7pWg/gz+fjmRDYOnL+muwKyo0KOh3r6YWyfNujd1o0nIRNRPSw3TWC5IWo58koq8W3SFWw5kY2M6xW68XaejhgbEYAxvf3h5cTVyYmI5aZJLDdELY8oijiecQPfnMjGztRc3KzRLvUglwkY0tkTYyMCMKSLF2x5EjKR1WK5aQLLDVHLVlZVi52pV/HNiStI/NPq5B6tFBjTuw2eCG+Djt5OEiYkIimw3DSB5YbIfFwsKMOWxGx8m5iDwrIq3Xivtq4YGxGAh3r6wsnOVsKERGQqLDdNYLkhMj81ag0OnLuGb05kY9/ZAtTeOgvZzlaGB3v4YmxEANe1IrJwLDdNYLkhMm/XSquwLfkKvjlxBRcLynTjga0d8ER4GzwW3ga+LvYSJiQiY2C5aQLLDZFlEEURydnF2HIiGz+ezEVZVS0AQBCAPoHuGNnTFw9094GXM2dbEVkClpsmsNwQWZ6K6lr8lJaHzSeycSy9SDcuCNqLBI7s6YsR3X04rZzIjLHcNIHlhsiyXS2+iV1pudiZlovkrGLduCAAkcHuGNnTDyNCfODpxEU8icwJy00TWG6IrEdO8U38lJaLHam5SMku1o3LBCAyuLXuiI4HVysnavFYbprAckNknbKLKvDTqVzsTMvDyb8UnX7tbhWdEB+0ZtEhapFYbprAckNE2UUVuq+uUv+0WrlcJiDqVtEZHuIDd0eFhCmJ6M9YbprAckNEf5Z1vQK7TuViZ2ou0nLqF53+7VtjZA9t0XFj0SGSFMtNE1huiOh2Mq+XY2daLnal5eJUjko3Xld0Hurpi2HdWHSIpMBy0wSWGyJqjoxCbdHZmZqL07l/FB0bmYABHTy0X11184GLA5d/IDIFlpsmsNwQkb7SC8ux69asqzN/KToDO3pgZA/tER0WHSLjYblpAssNEd2LS9fKsCtVezLy2bxS3bitXMDADh54sIcv+gS5o627A2QyrnVFZCgsN01guSEiQ7lYUKaddZWai3P5pfUec1LaoJufM0L8XNDd3xnd/V3QzsMRNnKZRGmJzBvLTRNYbojIGC4WlGJnah72nSvAmVwVqms1Dbaxs5Whq68zut8qPCF+Lujo3QpKG7kEiYnMC8tNE1huiMjYatQaXLpWhlM5KpzKKcHvV0tw+qoK5dXqBtvaygV08nb6o/D4u6CrjzPsFSw8RH/GctMElhsikoJGIyLjejlOXVXh95wSnLpaglM5KpTcrGmwrUwA2nu2Qnd/F4T4ab/S6ubnDGc7nrBMxiOKIqpqNSivqkVFtRrl1bUor1Kj4s9/VqtRUfWXPxt5vKuvMz4Y38ug+fT5/LYx6CsTEVGjZDIB7TxboZ1nKzwc6gdA+2Fy5cZN/H61BL9f1R7lSctRobCsChcKynChoAzbknN0zxHU2gEhdYXHzwXd/V14FWUrVFdCblarUVGjxs1qbRmpqFZrx24Vk6bKR914RVXdtto/NQY63OGglLZe8MgNEVELU6Cq1B3Z0X6tpUJO8c1Gt/VzsUOIvwu6+2lLT4i/M9wcFLCRCZDLBAgCZ2xJQaMRcbPmT4WjprZe+aiortX9XbvdXx9X42aDfbRF5maN2mAl5HbsbeVwVMrhoLCBg0IOR+WtPxU2cFD+5c9GHnd3VKCLj2E/Y83ua6lVq1bhnXfeQV5eHkJDQ/Hhhx+ib9++t91+y5YtmDdvHjIyMtCxY0e89dZbePDBB5v1Wiw3RGSObpRXa4/uXC3RFZ70wvI77mcrF2Ajk8FGLsBWLoNcJsBWJsBGfmvs1mM2chlsZAJsZNrtbG7tZ/uXx2zkMt1zah8TIJfJdM9pK9eWKpkgQCYTIBMAufCX+7dKl3Yct8YFyGWAcGvb2z32x3Ph1vit7er2kwkQRaBarUZVrQY1ahHVtRrUqDWortXcGtP8MXbr79V/Hru1X1XtX8e02zV4jnrbq1Gt1qCypuEJ5cagsJHB3lYOB4Uc9grtnw62NtpiorSBo0JbUOqKiqOibrxhOal7zN5WDnkLvIyBWX0ttXnzZsTGxmL16tWIjIzEihUrMHz4cJw7dw5eXl4Ntj98+DDGjx+PuLg4PPTQQ9i4cSNGjx6NpKQkdO/eXYJ3QERkfG6OCgzs6IGBHT10Y6WVNTiTW4pTt87h+T1HhQsFpfX+r75GLaJGrQYantpDJvLX8mGvsIHDXwuJwkb7d9u6MZu/PC6Hva3NH39XyGFvK+elBW5D8iM3kZGR6NOnD1auXAkA0Gg0CAgIwMsvv4xXX321wfbjxo1DeXk5duzYoRvr168fwsLCsHr16ju+Ho/cEJEl0x6dUKNWLaJGo4FaI2r/rtagVnPrT7WIWk3dn/XHatQi1Jo/tq9Va8dqNXX3b4395THtPtoxtaj9WkYjap9LIwIa8Y/7oohb43U33BoXoRZFqDXa80r+2AZ33FcjirdeU/tzUNjItDf5H3/a2gi6+7ZyGZS3/vzj8frbK+o9Luie01bexHa3xuoKi52tjF8NGojZHLmprq5GYmIi5s6dqxuTyWSIjo5GQkJCo/skJCQgNja23tjw4cOxffv2RrevqqpCVVWV7r5KpWp0OyIiS1D3AUtkzST9L6CwsBBqtRre3t71xr29vZGXl9foPnl5eXptHxcXBxcXF90tICDAMOGJiIioRbL4ej937lyUlJTobtnZ2VJHIiIiIiOS9GspDw8PyOVy5Ofn1xvPz8+Hj49Po/v4+Pjotb1SqYRSqTRMYCIiImrxJD1yo1AoEB4ejvj4eN2YRqNBfHw8oqKiGt0nKiqq3vYAsHfv3ttuT0RERNZF8qngsbGxmDRpEiIiItC3b1+sWLEC5eXlmDJlCgAgJiYG/v7+iIuLAwDMnDkTgwcPxrvvvouRI0di06ZNOHHiBNasWSPl2yAiIqIWQvJyM27cOFy7dg3z589HXl4ewsLCsHv3bt1Jw1lZWZDJ/jjA1L9/f2zcuBFvvPEGXnvtNXTs2BHbt2/nNW6IiIgIQAu4zo2p8To3RERE5kefz2+Lny1FRERE1oXlhoiIiCwKyw0RERFZFJYbIiIisigsN0RERGRRWG6IiIjIorDcEBERkUWR/CJ+plZ3WR+VSiVxEiIiImquus/t5lyez+rKTWlpKQAgICBA4iRERESkr9LSUri4uDS5jdVdoVij0eDq1atwcnKCIAgGfW6VSoWAgABkZ2db5dWPrf39A/wZ8P1b9/sH+DOw9vcPGO9nIIoiSktL4efnV29ZpsZY3ZEbmUyGNm3aGPU1nJ2drfZfaoDvH+DPgO/fut8/wJ+Btb9/wDg/gzsdsanDE4qJiIjIorDcEBERkUVhuTEgpVKJBQsWQKlUSh1FEtb+/gH+DPj+rfv9A/wZWPv7B1rGz8DqTigmIiIiy8YjN0RERGRRWG6IiIjIorDcEBERkUVhuSEiIiKLwnJjIKtWrUJQUBDs7OwQGRmJY8eOSR3JZOLi4tCnTx84OTnBy8sLo0ePxrlz56SOJZmlS5dCEATMmjVL6igmlZOTg6effhqtW7eGvb09evTogRMnTkgdyyTUajXmzZuH4OBg2Nvbo3379li0aFGz1sAxV7/++itGjRoFPz8/CIKA7du313tcFEXMnz8fvr6+sLe3R3R0NC5cuCBNWCNo6v3X1NRgzpw56NGjBxwdHeHn54eYmBhcvXpVusAGdqd//n/2j3/8A4IgYMWKFSbLx3JjAJs3b0ZsbCwWLFiApKQkhIaGYvjw4SgoKJA6mkkcOHAA06dPx5EjR7B3717U1NRg2LBhKC8vlzqayR0/fhz//e9/0bNnT6mjmNSNGzcwYMAA2Nra4qeffsLp06fx7rvvws3NTepoJvHWW2/h448/xsqVK3HmzBm89dZbePvtt/Hhhx9KHc1oysvLERoailWrVjX6+Ntvv40PPvgAq1evxtGjR+Ho6Ijhw4ejsrLSxEmNo6n3X1FRgaSkJMybNw9JSUn47rvvcO7cOTz88MMSJDWOO/3zr7Nt2zYcOXIEfn5+Jkp2i0j3rG/fvuL06dN199Vqtejn5yfGxcVJmEo6BQUFIgDxwIEDUkcxqdLSUrFjx47i3r17xcGDB4szZ86UOpLJzJkzRxw4cKDUMSQzcuRIcerUqfXGxowZI06YMEGiRKYFQNy2bZvuvkajEX18fMR33nlHN1ZcXCwqlUrx66+/liChcf31/Tfm2LFjIgAxMzPTNKFM6Hbv/8qVK6K/v7946tQpMTAwUHzvvfdMlolHbu5RdXU1EhMTER0drRuTyWSIjo5GQkKChMmkU1JSAgBwd3eXOIlpTZ8+HSNHjqz374K1+OGHHxAREYEnnngCXl5e6NWrF9auXSt1LJPp378/4uPjcf78eQDAyZMncejQITzwwAMSJ5NGeno68vLy6v234OLigsjISKv+vSgIAlxdXaWOYhIajQYTJ07EK6+8gpCQEJO/vtUtnGlohYWFUKvV8Pb2rjfu7e2Ns2fPSpRKOhqNBrNmzcKAAQPQvXt3qeOYzKZNm5CUlITjx49LHUUSly9fxscff4zY2Fi89tprOH78OGbMmAGFQoFJkyZJHc/oXn31VahUKnTp0gVyuRxqtRqLFy/GhAkTpI4miby8PABo9Pdi3WPWpLKyEnPmzMH48eOtZjHNt956CzY2NpgxY4Ykr89yQwY1ffp0nDp1CocOHZI6islkZ2dj5syZ2Lt3L+zs7KSOIwmNRoOIiAgsWbIEANCrVy+cOnUKq1evtopy88033+Crr77Cxo0bERISgpSUFMyaNQt+fn5W8f7p9mpqajB27FiIooiPP/5Y6jgmkZiYiPfffx9JSUkQBEGSDPxa6h55eHhALpcjPz+/3nh+fj58fHwkSiWNl156CTt27MD+/fvRpk0bqeOYTGJiIgoKCtC7d2/Y2NjAxsYGBw4cwAcffAAbGxuo1WqpIxqdr68vunXrVm+sa9euyMrKkiiRab3yyit49dVX8eSTT6JHjx6YOHEiZs+ejbi4OKmjSaLud5+1/16sKzaZmZnYu3ev1Ry1OXjwIAoKCtC2bVvd78TMzEz885//RFBQkEkysNzcI4VCgfDwcMTHx+vGNBoN4uPjERUVJWEy0xFFES+99BK2bduGffv2ITg4WOpIJnX//fcjLS0NKSkpultERAQmTJiAlJQUyOVyqSMa3YABAxpM/z9//jwCAwMlSmRaFRUVkMnq/zqVy+XQaDQSJZJWcHAwfHx86v1eVKlUOHr0qNX8XqwrNhcuXMDPP/+M1q1bSx3JZCZOnIjU1NR6vxP9/PzwyiuvYM+ePSbJwK+lDCA2NhaTJk1CREQE+vbtixUrVqC8vBxTpkyROppJTJ8+HRs3bsT3338PJycn3XfqLi4usLe3lzid8Tk5OTU4v8jR0RGtW7e2mvOOZs+ejf79+2PJkiUYO3Ysjh07hjVr1mDNmjVSRzOJUaNGYfHixWjbti1CQkKQnJyM5cuXY+rUqVJHM5qysjJcvHhRdz89PR0pKSlwd3dH27ZtMWvWLPznP/9Bx44dERwcjHnz5sHPzw+jR4+WLrQBNfX+fX198fjjjyMpKQk7duyAWq3W/V50d3eHQqGQKrbB3Omf/1/LnK2tLXx8fNC5c2fTBDTZvCwL9+GHH4pt27YVFQqF2LdvX/HIkSNSRzIZAI3ePvvsM6mjScbapoKLoij++OOPYvfu3UWlUil26dJFXLNmjdSRTEalUokzZ84U27ZtK9rZ2Ynt2rUTX3/9dbGqqkrqaEazf//+Rv+7nzRpkiiK2ung8+bNE729vUWlUinef//94rlz56QNbUBNvf/09PTb/l7cv3+/1NEN4k7//P/K1FPBBVG04EtoEhERkdXhOTdERERkUVhuiIiIyKKw3BAREZFFYbkhIiIii8JyQ0RERBaF5YaIiIgsCssNERERWRSWGyIiIrIoLDdEVuS+++7DrFmzpI7RgCAI2L59u9QxjObf//43wsLCpI5BZDVYboisyHfffYdFixbp7gcFBWHFihUme/3bfcjn5ubigQceMFkOIrJsXDiTyIq4u7sb5Xmrq6vvaTFAHx8fA6axHjU1NbC1tZU6BlGLwyM3RFbkz19L3XfffcjMzMTs2bMhCAIEQdBtd+jQIQwaNAj29vYICAjAjBkzUF5erns8KCgIixYtQkxMDJydnfHcc88BAObMmYNOnTrBwcEB7dq1w7x581BTUwMAWL9+PRYuXIiTJ0/qXm/9+vUAGn4tlZaWhqFDh8Le3h6tW7fGc889h7KyMt3jkydPxujRo7Fs2TL4+vqidevWmD59uu61GlN31OiLL75AUFAQXFxc8OSTT6K0tLTe+/rrkaywsDD8+9//1t0XBAH//e9/8dBDD8HBwQFdu3ZFQkICLl68iPvuuw+Ojo7o378/Ll261CDDf//7XwQEBMDBwQFjx45FSUlJvcfXrVuHrl27ws7ODl26dMFHH32keywjIwOCIGDz5s0YPHgw7Ozs8NVXX932/RJZM5YbIiv13XffoU2bNnjzzTeRm5uL3NxcAMClS5cwYsQIPPbYY0hNTcXmzZtx6NAhvPTSS/X2X7ZsGUJDQ5GcnIx58+YBAJycnLB+/XqcPn0a77//PtauXYv33nsPADBu3Dj885//REhIiO71xo0b1yBXeXk5hg8fDjc3Nxw/fhxbtmzBzz//3OD19+/fj0uXLmH//v3YsGED1q9frytLt3Pp0iVs374dO3bswI4dO3DgwAEsXbpU759dXbFLSUlBly5d8NRTT+H555/H3LlzceLECYii2CDvxYsX8c033+DHH3/E7t27kZycjBdffFH3+FdffYX58+dj8eLFOHPmDJYsWYJ58+Zhw4YN9Z7n1VdfxcyZM3HmzBkMHz5c7+xEVsFk648TkeQGDx4szpw5U3c/MDBQfO+99+pt88wzz4jPPfdcvbGDBw+KMplMvHnzpm6/0aNH3/H13nnnHTE8PFx3f8GCBWJoaGiD7QCI27ZtE0VRFNesWSO6ubmJZWVlusd37twpymQyMS8vTxRFUZw0aZIYGBgo1tbW6rZ54oknxHHjxt02y4IFC0QHBwdRpVLpxl555RUxMjJSd7+xn0doaKi4YMGCelnfeOMN3f2EhAQRgPjJJ5/oxr7++mvRzs6u3mvL5XLxypUrurGffvpJlMlkYm5uriiKoti+fXtx48aN9V570aJFYlRUlCiKopieni4CEFesWHHb90hEWjznhojqOXnyJFJTU+t95SGKIjQaDdLT09G1a1cAQERERIN9N2/ejA8++ACXLl1CWVkZamtr4ezsrNfrnzlzBqGhoXB0dNSNDRgwABqNBufOnYO3tzcAICQkBHK5XLeNr68v0tLSmnzuoKAgODk51dunoKBAr3wA0LNnT93f6/L06NGj3lhlZSVUKpXu/bdt2xb+/v66baKionTvycnJCZcuXcIzzzyDZ599VrdNbW0tXFxc6r12Yz93IqqP5YaI6ikrK8Pzzz+PGTNmNHisbdu2ur//uXwAQEJCAiZMmICFCxdi+PDhcHFxwaZNm/Duu+8aJedfT6QVBAEajeae9pHJZBBFsd42jZ3H8+fnqTtXqbGxO+WpU3c+0dq1axEZGVnvsT8XOKDhz52IGmK5IbJiCoUCarW63ljv3r1x+vRpdOjQQa/nOnz4MAIDA/H666/rxjIzM+/4en/VtWtXrF+/HuXl5boP8t9++w0ymQydO3fWK5O+PD09deceAYBKpUJ6erpBnjsrKwtXr16Fn58fAODIkSO69+Tt7Q0/Pz9cvnwZEyZMMMjrEVkznlBMZMWCgoLw66+/IicnB4WFhQC0M54OHz6Ml156CSkpKbhw4QK+//77BifI/lXHjh2RlZWFTZs24dKlS/jggw+wbdu2Bq+Xnp6OlJQUFBYWoqqqqsHzTJgwAXZ2dpg0aRJOnTqF/fv34+WXX8bEiRN1XwEZy9ChQ/HFF1/g4MGDSEtLw6RJkxocOblbde/p5MmTOHjwIGbMmIGxY8fqpsEvXLgQcXFx+OCDD3D+/HmkpaXhs88+w/Llyw3y+kTWhOWGyIq9+eabyMjIQPv27eHp6QlAez7JgQMHcP78eQwaNAi9evXC/PnzdUccbufhhx/G7Nmz8dJLLyEsLAyHDx/WzaKq89hjj2HEiBEYMmQIPD098fXXXzd4HgcHB+zZswdFRUXo06cPHn/8cdx///1YuXKl4d74bcydOxeDBw/GQw89hJEjR2L06NFo3769QZ67Q4cOGDNmDB588EEMGzYMPXv2rDfVe9q0aVi3bh0+++wz9OjRA4MHD8b69esRHBxskNcnsiaC+NcvmImIiIjMGI/cEBERkUVhuSEiIiKLwnJDREREFoXlhoiIiCwKyw0RERFZFJYbIiIisigsN0RERGRRWG6IiIjIorDcEBERkUVhuSEiIiKLwnJDREREFuX/AZSprVBF6y0ZAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "params_best = param_history[-1]\n",
    "ax = plt.plot(objective_history)\n",
    "plt.xlabel(\"iteration number\")\n",
    "plt.ylabel(\"objective function\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "df084b0b-4d5c-4b76-bf04-486ebe4af6f6",
   "metadata": {},
   "source": [
    "We observe that the objective function decreases, indicating that adjoint optimization improves the MMI performance over successive iterations. The device is also more compact than the one reported in the reference, underscoring the power of inverse design."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "53a439fa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnUAAAEvCAYAAAAjCjdYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy89olMNAAAACXBIWXMAAA9hAAAPYQGoP6dpAABpW0lEQVR4nO3deXwTdf4/8NccuZo0aWlLSznLJXIJclnURaW7XWVFVkXkJ4eKFwsqsoriAd54rKKuIg93VXZdEGS/igqIYrmlwnKpyCFyW2hLS5u0SXPMzOf3R8ikaZM26ZEm7fv5eOTRdPKZmU/mPZ/Ou5+Z+QzHGGMghBBCCCFxjW/pChBCCCGEkMajpI4QQgghpBWgpI4QQgghpBWgpI4QQgghpBWgpI4QQgghpBWgpI4QQgghpBWgpI4QQgghpBWgpI4QQgghpBWgpI4QQgghpBWgpI4QEnc2bdoEjuOwadOmlq4KaWI7d+6EVqvFyZMno77u0tJSGI1GrF27NurrJqQpUFJHCIlZixYtwpIlS1q6Gg2ybNkyvPHGGy1dDQCAoih45ZVXkJWVBb1ej4EDB+Ljjz8Oe/7y8nLcc889SEtLg9FoxNVXX409e/bUKrdixQpMmjQJvXr1AsdxuOqqqyKu6xNPPIGJEyeia9euEc/bWCkpKbjrrrvw1FNPRX3dhDQFjp79SgiJVf3790dqamqtHjlFUeB2u6HVasHzsfm/6Z/+9Cfs378fJ06caOmqYO7cuXjppZdw9913Y9iwYfj888+xZs0afPzxx7j11lvrnFdRFFx55ZX44Ycf8MgjjyA1NRWLFi3C6dOnsXv3bvTq1Uste9VVV2H37t0YNmwY9u3bh4EDB0bUm7pv3z4MHjwY27dvR3Z2dkO/bqMcPHgQffv2RV5eHq655poWqQMhDUVJHSExzm63w2g0tnQ1WkSopC4exEpSV1BQgKysLNxzzz14++23AQCMMYwaNQrHjx/HiRMnIAhCyPk/+eQTTJgwAStXrsTNN98MADh37hx69+6Na6+9FsuWLVPLnj59Gh07dgTP8w2K3YMPPohVq1bhxIkT4DiuYV+4CQwYMACDBw/Gv//97xarAyENEZv/4hLSShUUFGDatGnIzMyETqdDVlYWpk+fDrfbDQBYsmQJOI7D5s2b8Ze//AXt27dHp06d1PkXLVqEfv36QafTITMzEzNmzEB5eXnAOo4cOYKbbroJGRkZ0Ov16NSpE2699VZYrVa1zPr163HFFVcgKSkJJpMJF110ER5//PF66x/OfC6XC/Pnz0fPnj2h0+nQuXNnzJkzBy6Xq9by/vOf/2D48OFISEhAcnIyfve73+Gbb74BAHTr1g0///wzNm/eDI7jAk7nhbqmbuXKlRgyZAgMBgNSU1MxadIkFBQUBJS5/fbbYTKZUFBQgHHjxsFkMiEtLQ0PP/wwZFmudxt8/vnnGDNmjBrDHj164LnnnguY96qrrsKaNWtw8uRJte7dunULuczbb79dLVfz9fTTT9dbp/rq6/F48Je//EWdxnEcpk+fjt9++w35+fl1zv/f//4X6enpuPHGG9VpaWlpuOWWW/D5558HxLVz586N6jldtWoVrrnmmloJXajt0K1bN9x+++3q7772s23bNjzwwANIS0tDUlIS7r33XrjdbpSXl2PKlClITk5GcnIy5syZg2D9Gr///e/x5ZdfBv2MkFgmtnQFCGkrzpw5g+HDh6vXJ/Xp0wcFBQX473//C4fDAa1Wq5b9y1/+grS0NMybNw92ux0A8PTTT+OZZ55BTk4Opk+fjsOHD+Pdd9/F//73P3z33XfQaDRwu93Izc2Fy+XC/fffj4yMDBQUFGD16tUoLy+HxWLBzz//jD/96U8YOHAgnn32Weh0Ovz666/47rvv6qx/OPMpioKxY8di27ZtuOeee3DxxRfjp59+wsKFC/HLL79g1apVatlnnnkGTz/9NEaOHIlnn30WWq0WO3bswIYNG/CHP/wBb7zxBu6//36YTCY88cQTAID09PSQ9VuyZAnuuOMODBs2DAsWLEBRURHefPNNfPfdd9i7dy+SkpLUsrIsIzc3FyNGjMDf/vY3fPvtt3jttdfQo0cPTJ8+vc7tsGTJEphMJsyePRsmkwkbNmzAvHnzYLPZ8OqrrwLwXhdmtVrx22+/YeHChQAAk8kUcpn33nsvcnJyAqatW7cOS5cuRfv27dVpJSUlddbNJzExETqdDgCwd+9eGI1GXHzxxQFlhg8frn5+xRVXhFzW3r17cemll9ZK1oYPH4733nsPv/zyCwYMGBBWvepSUFCAU6dO4dJLL230snz7/jPPPIPvv/8e7733HpKSkrB9+3Z06dIFL774ItauXYtXX30V/fv3x5QpUwLmHzJkCBYuXIiff/4Z/fv3b3R9CIkaRgiJiilTpjCe59n//ve/Wp8pisIYY+zDDz9kANgVV1zBJElSPy8uLmZarZb94Q9/YLIsq9PffvttBoB98MEHjDHG9u7dywCwlStXhqzHwoULGQB27ty5iOofznwfffQR43mebd26NWD64sWLGQD23XffMcYYO3LkCON5nv35z38O+D6M+bcFY4z169ePjRo1qtZ6Nm7cyACwjRs3MsYYc7vdrH379qx///6sqqpKLbd69WoGgM2bN0+dNnXqVAaAPfvsswHLHDx4MBsyZEjdG4Ex5nA4ak279957WUJCAnM6neq0MWPGsK5du9a7vGCOHDnCLBYL+/3vfx+wHwAI6/Xhhx8G1KN79+611mG32xkA9thjj9VZF6PRyO68885a09esWcMAsHXr1gWdL1TsQvn2228ZAPbll1/W+gwAmz9/fq3pXbt2ZVOnTlV/97Wf3NzcgP0oOzubcRzH7rvvPnWaJEmsU6dOQeu4fft2BoCtWLEi7PoTEgvo9CshUaAoClatWoXrr78eQ4cOrfV5zdNNd999d8B1Tt9++y3cbjdmzZoV0GNy9913w2w2Y82aNQAAi8UCAPj666/hcDiC1sXXY/X5559DUZSwv0M4861cuRIXX3wx+vTpg5KSEvXlu+B848aNALyn2RRFwbx582r1ADXkWqpdu3ahuLgYf/nLX6DX69XpY8aMQZ8+fdTtU919990X8PuVV16JY8eO1bsug8Ggvq+oqEBJSQmuvPJKOBwOHDp0KOK612S32/HnP/8ZycnJ+PjjjwP2g/Xr14f1ys3NVeepqqpSe+2q822nqqqqOuvT2PnDVVpaCgBITk5u9LKmTZsWsB+NGDECjDFMmzZNnSYIAoYOHRo05r46hNszSkisoNOvhETBuXPnYLPZwj6Vk5WVFfC7b8yuiy66KGC6VqtF9+7d1c+zsrIwe/ZsvP7661i6dCmuvPJKjB07FpMmTVITvgkTJuCf//wn7rrrLjz22GMYPXo0brzxRtx88811Xg8VznxHjhzBwYMHkZaWFnQZxcXFAICjR4+C53n07ds3rO1Rn1DbBwD69OmDbdu2BUzT6/W16picnIyysrJ61/Xzzz/jySefxIYNG2Cz2QI+q37dYkPdfffdOHr0KLZv346UlJSAz2qeog2HwWAIej2j0+lUP2/O+SPFmuA6ti5dugT87tv3O3fuXGt6sJj76tCSN2sQ0hCU1BESgxpzoHzttddw++234/PPP8c333yDBx54AAsWLMD333+PTp06wWAwYMuWLdi4cSPWrFmDdevWYcWKFbjmmmvwzTffhLwTMpz5FEXBgAED8PrrrwddRs2Dakup627PupSXl2PUqFEwm8149tln0aNHD+j1euzZswePPvpoRD2fwbz55pv4+OOP8Z///AeDBg2q9XlhYWFYy7FYLOo+1KFDB2zcuBGMsYAk5ezZswCAzMzMOpfVoUMHtWx14c4fLl8CG05i7RMqAQwV32DTgy3DV4fU1NSw60JILKDTr4REQVpaGsxmM/bv39+g+X0DsR4+fDhgutvtxvHjx2sN1DpgwAA8+eST2LJlC7Zu3YqCggIsXrxY/ZzneYwePRqvv/46Dhw4gBdeeAEbNmxQT4+GUt98PXr0wPnz5zF69Gjk5OTUevl60nr06AFFUXDgwIE61xduT0mo7eOb1lQD2W7atAmlpaVYsmQJHnzwQfzpT39CTk5O0FOGkfbybN26FQ8//DBmzZqF2267LWiZDh06hPVasWKFOs+gQYPgcDhw8ODBgGXt2LFD/bwugwYNwp49e2olrDt27EBCQgJ69+4d0fcMpU+fPgCA48ePB/28oqKi1jRfz29T89Wh5s0lhMQ6SuoIiQKe5zFu3Dh8+eWX2LVrV63P6zvllJOTA61Wi7feeiug7Pvvvw+r1YoxY8YAAGw2GyRJCph3wIAB4HlePYV2/vz5Wsv3HdiDnWbzCWe+W265BQUFBfjHP/5Rq2xVVZV6J++4cePA8zyeffbZWslC9e9nNBprDdkSzNChQ9G+fXssXrw44Dt89dVXOHjwoLp9GsvX01O9jm63G4sWLapV1mg0hn069uzZs7jllltwxRVXqHfQBtOQa+puuOEGaDSagDoyxrB48WJ07NgRI0eODKjHoUOH4PF41Gk333wzioqK8Omnn6rTSkpKsHLlSlx//fVBr7driI4dO6Jz585B2weAWsPXfPXVV3A6nc0y7Mju3bthsVjQr1+/Jl82Ic2JTr8SEiUvvvgivvnmG4waNUod7uPs2bNYuXIltm3bFjDkRk1paWmYO3cunnnmGfzxj3/E2LFjcfjwYSxatAjDhg3DpEmTAAAbNmzAzJkzMX78ePTu3RuSJOGjjz6CIAi46aabAADPPvsstmzZgjFjxqBr164oLi7GokWL0KlTpzqHtghnvsmTJ+OTTz7Bfffdh40bN+Lyyy+HLMs4dOgQPvnkE3z99dcYOnQoevbsiSeeeALPPfccrrzyStx4443Q6XT43//+h8zMTCxYsACAd2iJd999F88//zx69uyJ9u3bBx3lX6PR4OWXX8Ydd9yBUaNGYeLEieqQJt26dcNDDz3U0LAFGDlyJJKTkzF16lQ88MAD4DgOH330UdDEYsiQIVixYgVmz56NYcOGwWQy4frrrw+63AceeADnzp3DnDlzsHz58oDPBg4ciIEDBwJo2DV1nTp1wqxZs/Dqq6/C4/Fg2LBhWLVqFbZu3YqlS5cGnJKcO3cu/vWvf+H48ePquHo333wzLrvsMtxxxx04cOCA+kQJWZbxzDPPBKxry5Yt2LJlCwDvdaR2ux3PP/88AOB3v/sdfve739VZ1xtuuAGfffZZrVPFgPdJD9dddx3Gjh2LM2fO4M0334TFYsH27dvx8ccfY+LEiRFvm1DWr1+P66+/nq6pI/GnJW65JaStOnnyJJsyZQpLS0tjOp2Ode/enc2YMYO5XC7GmH9IhmDDnjDmHcKkT58+TKPRsPT0dDZ9+nRWVlamfn7s2DF25513sh49ejC9Xs/atWvHrr76avbtt9+qZfLy8tgNN9zAMjMzmVarZZmZmWzixInsl19+qbPu4c7ndrvZyy+/zPr168d0Oh1LTk5mQ4YMYc888wyzWq0BZT/44AM2ePBgtdyoUaPY+vXr1c8LCwvZmDFjWGJiIgOgDj9Rc0gTnxUrVqjLa9euHbvtttvYb7/9FlBm6tSpzGg01vp+8+fPZ+H8Sfzuu+/YZZddxgwGA8vMzGRz5sxhX3/9da36VFZWsv/3//4fS0pKYgDqHN5k1KhRIYcnCTaUR6RkWWYvvvgi69q1K9Nqtaxfv37sP//5T61yvuFejh8/HjD9/PnzbNq0aSwlJYUlJCSwUaNGBd1Hfduwod9jz549DECtIXEAsNmzZ7Px48czg8HAOnTowN5++222ePFilpCQwO666y7GWOj246tXzeF4gu0LBw8eZAAC2gwh8YIeE0YIISRmjB49GpmZmfjoo4/UaRzHYf78+Y1+ukY4Zs2ahS1btmD37t3UU0fiDl1TRwghJGa8+OKLWLFihTpMTTSVlpbin//8J55//nlK6EhcomvqCCGExIwRI0aoz0KOtpSUFFRWVrbIuglpCtRTRwghhBDSClBPHSGEkJhGl34TEh7qqSOEEEIIaQWopy5MiqLgzJkzSExMpAtoCSGEEFIvxhgqKiqQmZlZ57O1mwoldWE6c+YM/v73v0MUG7/JGGMoKytTTylotdqAEf91Oh0URYnqxcKiKEIURUiSBEmSAuoUrVMfHMcFfPeadYoWiocXxcOP4uFH8fCiePi1xnhwHIfk5OSIO3F8g3n7npTD8zyee+45nD59Gp06dYq4HpGipC5MiYmJEEURCQkJjc62GWPo1q1bQPBtNpv6aB6NRgOz2RyVrL46h8OhPsaJ53lYLJYmSWIjIUkSrFar2iCMRiMSEhKiWgeKhx/Fw4/i4UXx8KN4+LW2eMiyjJKSkoiTOsYYPB5PwJNaAG8OEQ2U1IXJF1ie56HRaBq8HEVRoCgKdDodtFqtOl2j0aCkpASA97b6pnqeYiT0er36355er4fZbI56HQDA4/HA6XQCANq1axf1P04AxaM6iocXxcOP4uFH8fBqbfFwu93geV59RaJ6z6kvuYvWZVt0o0QMcLvdKC0thUajgUajQWlpadTHaVIUBaWlpeA4Dnq9Hk6nExUVFVGtAwBUVFTA6XRCr9eD4ziUlpbWeuB7c6N4+FE8vCgefhQPP4qHF8XDT5IkuN1ucBwHjuMgy3JU109JXQtzu90oKSmBRqNBamoqUlNT1f+6otUwfQ3S4/EgNTUVKSkpMJvNsNlsUW2YFRUVsNlsMJvNSElJQWpqKjweT1QbJsXDj+LhRfHwo3j4UTy8KB5+1RM6vV4PvV4flfVWR0ldC6reIFNSUtRu3pSUlKg1zJoN0ndKODExMaoNs3qD9F17oNVqo9owKR5+FA8viocfxcOP4uFF8fCrntDpdDo1Ho25XKshKKlrIR6Pp1aD9IlWwwzVIH2i1TCDNUifaDXMYH8gfSgefhQPP4qHF8XDj+Lh15biESyh84n2EGiU1LUARVFQVlYWtEH6NHfDrK9B+jR3w6yrQfo0d8Os6w+kD8XDj+LhR/Hwonj4UTz82kI86kroWkLMJXXvvvsuBg4cCLPZDLPZjOzsbHz11Vd1zrNy5Ur06dMHer0eAwYMwNq1awM+Z4xh3rx56NChAwwGA3JycnDkyJHm/BohybIMSZIgimLIBunTXA0z3Abp01wNM5wG6dNcDTOcP5A+FA8/iocfxcOL4uFH8fBrzfGItYQOiMGkrlOnTnjppZewe/du7Nq1C9dccw1uuOEG/Pzzz0HLb9++HRMnTsS0adOwd+9ejBs3DuPGjcP+/fvVMq+88greeustLF68GDt27IDRaERubq5623O0VN8BkpKSwtoBmrphRtogfZq6YUbSIH2aumFG8gfSh+LhR/Hwo3h4UTz8KB5+rTEesZjQAQDH4uBJye3atcOrr76KadOm1fpswoQJsNvtWL16tTrtsssuw6BBg7B48WIwxpCZmYm//vWvePjhhwEAVqsV6enpWLJkCW699dag63S5XOo4MwBgs9nw3nvvQa/Xh70jV+fbAQDv6NsdO3aMaDkNbUxNvYyGNKamXkZD/rg19TIoHn4UDz+KhxfFw4/i4RdP8XC73Th79mzQceoiSeg8Hg8ef/xxWK3WqIzdFxupZQiyLGP58uWw2+3Izs4OWiY/Px85OTkB03Jzc5Gfnw8AOH78OAoLCwPKWCwWjBgxQi0TzIIFC2CxWNRX586dAXgDFGmG3xQZfWP/42qKBgk0/j+upmjUjf2Pqyn+yFI8/CgefhQPL4qHH8XDrzXEI1Z76HxiqzYX/PTTTzCZTNDpdLjvvvvw2WefoW/fvkHLFhYWIj09PWBaeno6CgsL1c9900KVCWbu3LmwWq3q6/Tp02rwXS5X2DtCzR2gMXfCNLRhNlWD9Glow2yKBunT0IbZFH8gfSgefhQPP4qHF8XDj+LhF8/xiPWEDojRpO6iiy7Cvn37sGPHDkyfPh1Tp07FgQMHoloHnU6n3qzhezHGIIoiGGNhJXbNsQNE2jCbukH6RNowm7JB+kTaMJvyD6QPxcOP4uFH8fCiePhRPPziMR7xkNABMZrUabVa9OzZE0OGDMGCBQtwySWX4M033wxaNiMjA0VFRQHTioqKkJGRoX7umxaqTCR4nodWq603sWvOHSDchtlcDdIn3IbZHA3SJ9yG2Rx/IH0oHn4UDz+KhxfFw4/i4RdP8YiXhA6I0aSuJkVRAm5aqC47Oxt5eXkB09avX69eg5eVlYWMjIyAMjabDTt27Ah5nV59RFGsM7GLxg5QX8Ns7gbpU1/DbM4G6VNfw2zOP5A+FA8/iocfxcOL4uFH8fCLh3jIshw3CR0Qg0nd3LlzsWXLFpw4cQI//fQT5s6di02bNuG2224DAEyZMgVz585Vyz/44INYt24dXnvtNRw6dAhPP/00du3ahZkzZwLwjuY8a9YsPP/88/jiiy/w008/YcqUKcjMzMS4ceMaXM9QiV00M/pQDTNaDdInVMOMRoP0CdUwo/EH0ofi4Ufx8KN4eFE8/CgefrEcD0VR4iqhAwCxpStQU3FxMaZMmYKzZ8/CYrFg4MCB+Prrr/H73/8eAHDq1KmADTty5EgsW7YMTz75JB5//HH06tULq1atQv/+/dUyc+bMgd1uxz333IPy8nJcccUVWLduXaMftiuK3s3ndrvhcrmg0WiivgP4GmZpaSlKSkqQkpICm80WtQbp42t0NptNnRatBunja5glJSUoLS2F2WxGaWlpVP5A+lA8/CgefhQPL4qHH8XDLxbjYTAYIElSXCV0QJyMUxcLbDYbXn75ZZhMploP6JUkST09zHEc9Hp9yB1AURQoioIOHTo0aYNRFAUlJSXweDwAgLS0tKg1yOp8/10BiGqDrM7tduPcuXMAAI1Gg9TU1Kg3SIqHH8XDj+LhRfHwo3j4xVI8fJd9abVaCILQ4OVFe5y6mOupi3WMsVrn3KvnxcE+r05RFDDG1MbTlPWSZVldd1MvP1ySJNU6FR1t1ccSlGUZHo8n6g9Vpnj4UTz8KB5eFA8/iodfLMXDd6xWFKVR8Yh2vxkldRHwBad60qYoCiRJAs/zEAQBkiTB4/FAFMWgO4JvR3G5XJBlucnq5Xa7IQgCDAYDPB4P7HY7tFptVP/j8313o9EIwPsfj28YmGjxXQOh1+vV0+E2mw1arTZqfygpHn4UDz+KhxfFw4/i4Rdr8eA4Dm63W01wo51oNxQldREoLy9H165d1WvxPB4PysrKYDAYkJycDI7j1GmiKKrTqvN4PHC5XLjuuutgsVha4msQQgghpA5WqxWrV6+Gw+GAVqsNejwPR7SfMU9JXQQURVHvenW73bBardDpdAEXtWq1WvVuIpvNFvSCV1mWYbFY0K5du5b4GoQQQgiph1arhcFggNVqDXk8r48kSc1Uu+Di43aOGFPfbeeNfbYcIYQQQlqe7+aVeDmeU1IXIUmSwhpHiBI7QgghJP7F0/GckroIcBwHq9Ua9jhC8bQjEEIIISS4eDmeU1IXAZ1OB0EQIjqvXnNHoGEBCSGEkPgTD4kdJXURUBQFZrM54gslq+8IZWVllNgRQgghcSjWEztK6iLgdrsbPG6Pb0doqQEVCSGEENJ4sZzYUVIXRb6xbqinjhBCCIlfsZrYUVIXZRqNpkWeqUcIIYSQphOLiR0ldS0g2g9rJoQQQkjTi7XEjrILQgghhJAGqiuxi3aSR0kdIYQQQkgjBEvsFEWBzWaLaj3o2a+EEEIIIY3kS+xKSkpQUlICwPus92iinjpCCCGEkCag1WqRkpICj8cDj8eDxMTEqK6fkjpCCCGEkCZQ85Srw+GI6vrp9CshhBBCSCMpioLS0lJ4PB6kpaUBAIqKiqJaB0rqCCGEEEIaoXpCl5qaqo5Ha7FYoloPOv1KCCGEENJAoRI6ABDF6PadxVxSt2DBAgwbNgyJiYlo3749xo0bh8OHD9c738qVK9GnTx/o9XoMGDAAa9euDficMYZ58+ahQ4cOMBgMyMnJwZEjR5rra9SJHhNGCCGExL+6ErqWEHNJ3ebNmzFjxgx8//33WL9+PTweD/7whz/AbreHnGf79u2YOHEipk2bhr1792LcuHEYN24c9u/fr5Z55ZVX8NZbb2Hx4sXYsWMHjEYjcnNz4XQ6o/G1VIwxuN3uqK6TEEIIIU0r1hI6AOBYjHcbnTt3Du3bt8fmzZvxu9/9LmiZCRMmwG63Y/Xq1eq0yy67DIMGDcLixYvBGENmZib++te/4uGHHwYAWK1WpKenY8mSJbj11lvrrYfNZsOcOXMwbNgwJCQkNOi7KIqC4uJi8DyPyZMno127dg1aDiGEEEKaz/nz57Fy5Uro9fqgyVq4CZ3D4cBdd90Fq9UKs9nc3NWOvZ66mqxWKwDUmQDl5+cjJycnYFpubi7y8/MBAMePH0dhYWFAGYvFghEjRqhlanK5XLDZbAGvxpwb9+0AkiTFRDZPCCGEkMjFYg+dT0wndYqiYNasWbj88svRv3//kOUKCwuRnp4eMC09PR2FhYXq575pocrUtGDBAlgsFvXVuXNniKLYoDFnqu8AycnJ4PmY3uyEEEIICSKWEzogxpO6GTNmYP/+/Vi+fHnU1z137lxYrVb1dfr0aUiSBLvdjoqKirCXU3MH0Gg0zVhrQgghhDSHWE/ogBhO6mbOnInVq1dj48aN6NSpU51lMzIyag3wV1RUhIyMDPVz37RQZWrS6XQwm80BL0mSYDQaYbPZwkrs4mEHIIQQQkjd4uV4HnNJHWMMM2fOxGeffYYNGzYgKyur3nmys7ORl5cXMG39+vXIzs4GAGRlZSEjIyOgjM1mw44dO9Qy4UpISIDZbK43sYuXHYAQQgghocXT8TzmnigxY8YMLFu2DJ9//jkSExPVa94sFgsMBgMAYMqUKejYsSMWLFgAAHjwwQcxatQovPbaaxgzZgyWL1+OXbt24b333gMAcByHWbNm4fnnn0evXr2QlZWFp556CpmZmRg3blzEdfQ9oNf3fLeaD+yNpx2AEEIIIcExxuLqeB5zSd27774LALjqqqsCpn/44Ye4/fbbAQCnTp0KuNlg5MiRWLZsGZ588kk8/vjj6NWrF1atWhVwc8WcOXNgt9txzz33oLy8HFdccQXWrVsHvV7foHqGSuwooSOEEELiH2MMZWVlUBQlbo7nMZfUhTNs3qZNm2pNGz9+PMaPHx9yHo7j8Oyzz+LZZ59tTPUC1EzsjEYjJXSEEEJIK+B2uyFJEtq3bx83x/OYS+riTfXEzmazgeM4SugIIYSQOMcYQ3JyclwdzympawK+O2IB712zzbED2CQbvi3/NmBaTlIOzGLzj1BNCCGExAV3GXBqZeC0LuMBbXLEi+J5Pu6GIYu5u1/jje8aOo7joNfr4XQ6IxrHjhBCCCGxR5blOp87H4uop64Rgt0UUVFREfKuWEIIIYTEB41Gg8rKSoiiGDfHc0rqGijUXa71DXdCCCGEkNgniiJMJlNcHc8pqWuA+oYtocSOEEIIiX9GoxGiKMbN8ZySugiFOw4dJXaEEEJI/Iun4zkldRHyBTWcYUviaUcghBBCSHDxcjynpC4CWq0WsiwjPT097GFLau4IOp2u2epHCCGEkOYRD4kdJXUR4HkeFosl4nHoqu8ICQkJEAShOapHCCGEkGYU64kdJXURcLlcEMWGbTJf4MvLy2E0GpuyWoQQQgiJklhO7Cipi0A4z6WtS2JiIiRJgtvtbqIaEUIIISTaYjWxo6QuyoxGY6OTQ0IIIYS0rFhM7CipawENPYVLCCGEkNgRa4kdZReEEEIIIQ0US4kdJXWEEEIIIY0QKrFzOBxRrQcldYQQQgghjVQzsQMAu90e1TrwUV0baRVcHhknS2yQFaWlq0IIISSG2F0enCqx1V+wlUpMTITZbIbNZoPNZov6EGbUUxehXwvLAbHhmTenyOCZjHn/3Q5ZNIQ9nyQ4cD7pYMC0r8o1EOWEBtelsTQCj25pZnRvb1FfJn1kAzMTQgiJTwpjKLY6cKzYqr7OltvRo70FR4utLVKnBFTgUiHwWLlny2Y4ENl1boJUhaTSCiicA4yP7IEBvOyGIHuHLpOrpIjmbSxK6kiDeWQFRwrLcaSwXJ3W3mxA9/ZJGNglFQO7pELgqTOYEEJaC1uVCzt+LcQvZ8tw/JwVdld0k5ZY50voZMHbwSF4nFFdPyV1pEkV26pQbKvC97+ehdmgxchembj8okykJobfK0kIISR2KIzh8JkybDtcgH0nz0GhsVaDqp7QKReSOsjUU0daCVuVG+t+PIGvfzyBPh3b4cqLOlLvHSGExAlblQv5R87iu8NncK6iqqWrE9OCJnQAFF4T3XpEdW1h2LJlC66//npkZmaC4zisWrWq3nk2bdqESy+9FDqdDj179sSSJUtqlXnnnXfQrVs36PV6jBgxAjt37mz6ypOgGICDBefx3oaf8PiK77Bq16/47XwFFIX+2yOEkFji9Ej4+bdS/GPDT5i7/Dus2nWUErp6hEroWkLM9dTZ7XZccskluPPOO3HjjTfWW/748eMYM2YM7rvvPixduhR5eXm466670KFDB+Tm5gIAVqxYgdmzZ2Px4sUYMWIE3njjDeTm5uLw4cNo3759c3+l2ljbvWvUVuXG1z+exNc/noRW5NE5JRFdU83qK81sAM9xLV1NQghp9dySjN/OV+LEORtOldhwstSGonIH6N/t8MVSQgfEYFJ37bXX4tprrw27/OLFi5GVlYXXXnsNAHDxxRdj27ZtWLhwoZrUvf7667j77rtxxx13qPOsWbMGH3zwAR577LGm/xJ14BQPuDac1FXnlhQcLbLiaJH/LimDVkSXlER0TklEmtmA1ETvq51RD1GIuY5lQgiJeVVuCSUVVeqr0OrAqRIbzpTZ6fq4Roi1hA6IwaQuUvn5+cjJyQmYlpubi1mzZgEA3G43du/ejblz56qf8zyPnJwc5Ofnh1yuy+WCy+VSf7fZbOAa2YPk3QE8UITonmOPJ1VuCYfPluHw2bKA6RwHJBv1SE00IC3RgHYmPfQaARqBhygIEAUOGsH3u/d9glaESa9BglYDnqfeP0JI/PLICuxONyqcHrg8MiRFgUf2vqQLL9/vlU73hQTOiZKKKthdnpaufqsTiwkd0AqSusLCQqSnpwdMS09Ph81mQ1VVFcrKyiDLctAyhw4dCrncBQsW4JlnngmY9uCDD4JjMhgiT8r8O4AGHEc9TpFiDDhf6cT5Sid+qZHw1YfjAKNOA5NOA5NeC5Pe+96coEOyUYd2Rj2SjTokm/TQa+K+SRBC4oTCGCqdbpTZXSirdOK83YUyuxMVTjfsTg8qnB5UOt2odHrgkuSWri65IFYTOqAVJHXNZe7cuZg9e7b6u81mwyuvvKImZpEMRlh9B2CcAI5Fr3EeKz2A4+cPoXu7i9E5qSfENthLyBhQ6fSg0ukBrHU/h8+gFdVEL9GghUbgoRW9PYAaUYBW5KEVeGgEAaLAQ2EMjDHICoPCLrwU/0+3rMAtyRdeClySDM+F925ZhlGnQVKCDskXEktLtfdaMbIBLwkh9WOMwe7yoMzuQrndhXKH0/ve4UKZ3QVZUaBV27pw4f2F3y/8LeA4DgLPgee8Z354DuA5zns9MAd4JG+PmVuS1Z9uSYFHluHyyOq6yu1OSHTDWJ2SpAoMqvwVPZwF+CT1alSITf+EBpPkwC0lG3BMn4kfjD1RpjGHLBvLCR3QCpK6jIwMFBUVBUwrKiqC2WyGwWCAIAgQBCFomYyMjJDL1el00Ol0AdPcbjcYx0OUqiCJhrASu5o7AKdE97+tsqpzOFn2Cwqsx5CgTUSPlH7okdIXZn27qNYjXlS5JVS5JZwpi+7z+oJJ0IpIupDoJSXoYDZokZTg/b36NLrWkBBvsub0yLBWuWB1uGB1uFHu8L13XXjvnSbJdF1zLOOYgp7OAlxa8Qv6VJ2CXnFD4gQkyZXNktRZ5Ep0cxaiV1UBRll/wGFDZ+wydEfNc0KxntABrSCpy87Oxtq1awOmrV+/HtnZ2QAArVaLIUOGIC8vD+PGjQMAKIqCvLw8zJw5M+L1ybwWHKSwErtY2QFEXoReTIDTY8ePZ/NxoGg3Opi7oldqf2Sau0Hg4343aJUcbgmOMBJMo04Ds0HrTfYu/DQbtDAnaJGcoEd7SwIS9ZpGXxNKSEuRFQWllU6U2Kq8yVmVG7YqF2wON6wOF2xVblirXHBLlKzFM5PkwCWOoxhScQhpHit4KHBxGlSIBhguPHarOVUIBohMxgDHMXRyFGC10BlOwYBKzghFkWPieF6fmDuaV1ZW4tdff1V/P378OPbt24d27dqhS5cumDt3LgoKCvDvf/8bAHDffffh7bffxpw5c3DnnXdiw4YN+OSTT7BmzRp1GbNnz8bUqVMxdOhQDB8+HG+88Qbsdrt6N2xEOA6SYIAoVdWZ2EUjoTtvPwdrRd3P17M6zwMABF6AgTeCMQaP4sbp8l/xW/lRJOqS0DO1P7qnXAyjNnSXM4lddpcHdpcHZ8tDJ38GrYj25gSkWxLQ3mxAe0sCMixGpJkNdB0hiQmMMdiq3CiyOlBsc6DI6lDfl1RUQabTlK0Sxxi6uApxaeUv6O84Ab3iAgMHB6+DdKHDQbhwydJFjlNId4e+ppqBw/GEVKDaIVmUFVxSeQwepgs5X5JU6Z2f4+DkdXBCB6cCiExGimSFUbLDxukgCTpIMZzQATGY1O3atQtXX321+rvvurapU6diyZIlOHv2LE6dOqV+npWVhTVr1uChhx7Cm2++iU6dOuGf//ynOpwJAEyYMAHnzp3DvHnzUFhYiEGDBmHdunW1bp4IG8dBEkMndtHqofvhtx0oKDtR740XfLXPOY6DVtBBK+ggKxIq3eXYU7AF+wt3oJOlB3qk9kOHxC50M0crU+WWcLLEhpMltlqfmfQadeiYVJMBqWYDUhO9dxonJ+jpzmHSZFweGSWVVSitNryG7w7NkooqeOi0aJuhl10Y4DiGoRWH0MFzHiKT4eZE2AQjWI2zCgo4iEzG1da9dS5TAY/V3HCg2mE33eHAgJKd4OoZfY9nDHb41ytzImQIqAQPFxOQxJxIkOxwyRUoF02oEBIgx+BxkmOMBqkJh81mw5w5c5DcuRcgXrjZgDGIUhU4pqiJXX0JHafI4JmM8tQ+kMXwn4cqCQ6cT/oxYNq+70+g0PobjNrERn03xhjcsgsexQ2eE2DRt0Ov1IHIatcHek1Co5ZN4hvPcbAkaGEx6Lw/q13T5zvVa9RpYNCK0GkEGji6DZIVBVVuGVVuCRVOd8A1bLaq6te1uWlojTaiR3sLjhYHOYvEGDLdJRhceQSX2I/CqFSBgUMVr4WHE71DFTSCRarEl6kjIFpOq9M6VVTikuJylImRnYmqYCLykAonBJggIwESOMYgwPuPhwweNsEIq2iEk6+j80by4KUnH4bVaoXZ3Pxnw2Kupy6u1OixU3gBvCLH/Dn3mjiOg07UQwc9JMWD8qoS7Dydhx/ObEf3lL4Y1vlquh6rjVIY8w63YHfVW5YDoNeKMGhFGDQXfmpF6DUC9Bpv0lf9vc73XvS+14oCdKLvJw/xwl2GpGkpjKl3ZLs83jszXRd+d3pkuDzShZ8ynOp7CS5JVm8kUl8eia5jI2Fp57Hiz6Vb0cVVBA2T4eEE2IQEsBjs7fKRwcMAGQmQAXBgHAcJPAAGgSlIliuQJFfCyWtxVpsCN9fyKVXL1yDeXUjsNB47eEWGwgtxldDVxMF7IGWMQWEyPHL9B3NCAO8zfn0H+6bAcaiW5Hl/ai4MK1F9uAmNyEPkOQg8DyHgp/e9yHPe4WgEPmBoCnV5gqAmny2RRCqKd4gNV7Whb9RhcGTlwhA4Mjwyg6IokBQGWVEgK+zCy/tekpVaQ+h4l+F/7/LIdIqTtAgeDHrFrZ4GVcABiO1/2ngwGBC8vTD4a88xBo6xmPg6lNQ1AV7xVHsvQ1HkiMaxa2m+myfcsgsceJh0ZvRKHYCsdhfDpLO0dPVIG8UY4PR4e4+iQeA5dYBqo070/rwwUHWCTqP2KOqD9DKKPO/v6ZICe7tckrfHy+7yqOMl+t7bXW44XBI9a5O0eiWaJCzq8Gd0c53FpZW/oK/jBMyy3XtThKCDFAO9XDUpADzgIF5ooRwUCBce86mAh1VIgFU0oYrXxUwbjr2tGGcCrqHjNfXeFduUOI6DwhTY3RX1lOORoKk9to/CZLgkJ2QmQ+S16GTpgV6pA9DRkkXDnJA2R1YYrFVuWKuaf+gEQtoixnE4rs/EcX0mvpHsGGg/imGVh5DisYGHEy5O470+rUaPOccYLHIlGOo+VcvAgQXpLpPBwyLVPTQUBwZrjdPBHIBKCNAyCboLPXZuToNy0QibYITExV7nDR25GyHYTRF13RXb1PpnDkXHxB51ljljO4kz1uPq74wxSIoHLtkJDhwSNCZ0T+mH7il9kWRIaba6EkIIIT4VohHfWQYi39wfPasKcGnlYVxUdRpJsh0yeDgEHeQLSRMPBTIE5Jv7wSqaQi5TAYejhnT0gX+EjOIEA9a36wkJoYc0SZTsGGnbDx4MvvMCPGTomAyAhxVaaHkelaIRdsEQM71ywUSc1B0/fhxbt27FyZMn4XA4kJaWhsGDByM7Oxt6vb456hiTQt7lWs9wJ00pLbEDOiTUndRVeew4Yz0OhSlwS05ITILAi8hI7IJeqQPQOaknNHF8DSAhhJD4pXA8fknojF8SOiPZY8OgyiMYYv8FSVIlOMbgFLRqj9hPxu44rat7KLIEBJ65cgsC9pgvggOhR4no6CrGSNt+cGDQKW7oZTfAaaEIPGROCzuvAWOAxGljOqEDIkjqli5dijfffBO7du1Ceno6MjMzYTAYcP78eRw9ehR6vR633XYbHn30UXTt2rU569zi6h2HLoqJXTgkxQOHxw69mIBe7S5Bj5S+aJeQTncWEkIIiRllGjM2Jg/B1qRL0MdxCkMqDyPLeRYJsjMq19wlSg64eC2OJHTCDkNPnHNUQuZE9fGgsXA8r09YW2nw4MHQarW4/fbb8X//93/o3LlzwOculwv5+flYvnw5hg4dikWLFmH8+PHNUuGWxiseCFDqH7YkRhI7sy4ZHczd0COlL7omXwSd2HZ6UwkhhMQfiROx39gd+43d0d59HoMqj6CXswA2oemf+woANsGIQm07HNV3xD5TLxRp20GQqpDkOOQtECPH83CEldS99NJLAU9oqEmn0+Gqq67CVVddhRdeeAEnTpxoqvrFFFEUISgSZI0+vGFLguwI0dYrbSB6pQ2M+noJIYSQxirWtsM37Ubgm2ZcR4VoxKLMG+suFCeJXVhJXV0JXU0pKSlISWmdF9yLogiZFyMbh67mjiCEvliTEEIIITEqDhK7Bp+kLi4uRnFxMRQlcGC+gQNbb6+QJElQeE3kMwbsCM64HpyYEEIIabNiPLGLOKnbvXs3pk6dioMHD8L32FjfEwg4joMsR2eg0JYgSY0YKd+3I3gc4Fjr3UaEEEJIqxbDiV3ESd2dd96J3r174/3330d6Ot1BGRGOgyzqIMj0UGtCCCEkbsVoYhdxUnfs2DH83//9H3r27Nkc9WkDuJgIPCGEEEIaIQYTu7qfuRHE6NGj8cMPPzRHXQghhBBC4seFxM43lh2ntOzlVRH31P3zn//E1KlTsX//fvTv3x8aTeCNA2PHjm2yyhFCCCGExLQ6euyifQ19xEldfn4+vvvuO3z11Ve1PmvtN0oQQgghhNQSYlxaQXZHtRoRJ3X3338/Jk2ahKeeegrp6XU/g6016pmRhISEhAbP73a74XQ6MfvmkWjXrl3Y89kkG74tD7zBIidpFMyiucF1aajSiio8uXJ71NdLCCEkPrx75+iWWXHlceDH/wZMum3gJYApK6LFnD9/HitXFkCv10OrDX8YMkVRUFpaCrfbm8xx2ug+dCDia+pKS0vx0EMPtcmEjhBCCCEkFJ7nYTb7O1sa0wnUoPVHOsONN96IjRs3NkddCCGEEELiltvtRmlpKTQaDTQaDSoqKqK6/ohPv/bu3Rtz587Ftm3bMGDAgFo3SjzwwANNVjlCCCGEkHjgdrtRUlICjUajPi61sLAwqnVo0N2vJpMJmzdvxubNmwM+4ziOkjpCCCGEtCk1Ezqe954IrX4qNhoiPv16/PjxkK9jx441SaXeeecddOvWDXq9HiNGjMDOnTvrLL9y5Ur06dMHer0eAwYMwNq1awM+Z4xh3rx56NChAwwGA3JycnDkyJEmqSshhBBC2q5QCR2AgPfR0GRrO3v2LF555ZVGL2fFihWYPXs25s+fjz179uCSSy5Bbm4uiouLg5bfvn07Jk6ciGnTpmHv3r0YN24cxo0bh/3796tlXnnlFbz11ltYvHgxduzYAaPRiNzcXDidzkbXtyEURWmR9RJCCCGk6dSV0LWEBj37NZiTJ09i586dmDNnTqMq9Prrr+Puu+/GHXfcAQBYvHgx1qxZgw8++ACPPfZYrfJvvvkm/vjHP+KRRx4BADz33HNYv3493n77bSxevBiMMbzxxht48sknccMNNwAA/v3vfyM9PR2rVq3Crbfe2qj6Rsrj8ai3OhNCCCEkPsVaQgc0oKeurKws4FVSUoKdO3di06ZN+Nvf/taoyrjdbuzevRs5OTn+CvI8cnJykJ+fH3Se/Pz8gPIAkJubq5Y/fvw4CgsLA8pYLBaMGDEi5DIBwOVywWazBbway+12o6ysDBzHNXpZhBBCCGkZsZjQAQ3oqfvss8+CTn/hhRewatUq3HvvvQ2uTElJCWRZrjUGXnp6Og4dOhR0nsLCwqDlfXec+H7WVSaYBQsW4JlnngmYdv/99zf41KlvBxBFMaKBDAkhhBASO2I1oQOa8Jq6iRMnYtOmTU21uBY3d+5cWK1W9XX69GnwPA+bzRZxYld9B0hOTqaeOkIIISQOxXJCBzRhUvfDDz9g8ODBjVpGamoqBEFAUVFRwPSioiJkZGQEnScjI6PO8r6fkSwTAHQ6Hcxmc8DL5XJBlmWUlpaGndjV3AEooSOEEELiT6wndEADTr/Onj271rSioiJ8/vnnGDNmTMDnr7/+ekTL1mq1GDJkCPLy8jBu3DgA3jtF8/LyMHPmzKDzZGdnIy8vD7NmzVKnrV+/HtnZ2QCArKwsZGRkIC8vD4MGDQIA2Gw27NixA9OnT4+ofowxWCwWVFZWorS0tN6gxsMOQAghhJC6xcvxPOKkbu/evUGnDxs2DMXFxerQIw3tkZo9ezamTp2KoUOHYvjw4XjjjTdgt9vVu2GnTJmCjh07YsGCBQCABx98EKNGjcJrr72GMWPGYPny5di1axfee+89tR6zZs3C888/j169eiErKwtPPfUUMjMz1cQxEqIoIjU1FSUlJXUmdvGyAxBCCCEktHg6nkec1DX3c18nTJiAc+fOYd68eSgsLMSgQYOwbt069UaHU6dOBWzQkSNHYtmyZXjyySfx+OOPo1evXli1ahX69++vlpkzZw7sdjvuuecelJeX44orrsC6deug1+sbVEetVltnYhdPOwAhhBBCgvN4PLBarXFzPI84qYuGmTNnhjzdGuxmjPHjx2P8+PEhl8dxHJ599lk8++yzTVXFkIkdJXSEEEJI/FMUBTabDTqdLm6O52HV8I9//CO+//77estVVFTg5ZdfxjvvvNPoisUDX2Ln8XhQWloKl8tFCR0hhBDSCrjdboiiGFfH87B66saPH4+bbroJFosF119/PYYOHYrMzEzo9XqUlZXhwIED2LZtG9auXYsxY8bg1Vdfbe56t5hfC8sB0R4wjVN4iI5KlFgrwTgekkfE2arSoPNzigyeyZj33+2QRUOEa7cE/LYe/4twfkIIIaT5Tf8gr0XWm4AKXCqkBUzbc+gHOBDZs+kFqQrJFVWQBS2Kfwt+PA+L5Gn4vA0QVlI3bdo0TJo0CStXrsSKFSvw3nvvwWq1AvCe2uzbty9yc3Pxv//9DxdffHGzVpgQQgghhNQW9jV1Op0OkyZNwqRJkwAAVqsVVVVVSElJgUajabYKxjpOkSFKVWAcD1nQQpScEKUqSKIBoDHpCCGEkLglSC5IGiFujucNPklssViQkZFBCd2FhE4SDWC8CEk0gGMKRKkKYKylq0gIIYSQBmCcEHfH8/i48i8G1UzofFk84wVK7AghhJB4x3GQRH1cHc8pqWuAUAmdDyV2hBBCSCtw4TgfL8dzSuoixLG6EzofSuwIIYSQ+BdPx3NK6iLAcRwE2V1vQucTTzsCIYQQQoKLl+N5xEnd1KlTsWXLluaoS8zT6XRhJ3Q+tXYExOaOQAghhJDQ4iGxizips1qtyMnJQa9evfDiiy+ioKCgOeoVkxRFgcxrI761ufqOIEiuZqodIYQQ0rroFDeGVBzGzec2IkF2Nss6DLITN53bhCEVh6BX6j5Gx3piF3FSt2rVKhQUFGD69OlYsWIFunXrhmuvvRb//e9/4fFEd+TkaHO73Q0eq6b6jsApchPXjBBCCGk9MtyluPb895hdsAI3lW7GQPtRpEjWZllXO8mGSxy/4qbSLXio4BNce/57pLnLQ5aP5cSuQdfUpaWlYfbs2fjhhx+wY8cO9OzZE5MnT0ZmZiYeeughHDlypKnr2Sp4dwQ96BQsIYQQEkhUJAywH8XthWtx39nPcaXtR+gVN+y8Ds0+9C8D7LwOesWNK60/YuK5b5HiscGkOMEHOWbHamIX9hMlgjl79izWr1+P9evXQxAEXHfddfjpp5/Qt29fvPLKK3jooYeaqp6tB8eDcUJL14IQQgiJCSkeKwZVHsGllb/AItvBgcHJa1HOGwGOg8C8Z7e6uIqRIIc+PcrAoVBvAqodYnlFQY+qM3Cz0M9a9/UAKhwPO28AeAaFMWiZG4meKkCywioYYRONcHP+tMmX2IlSVcw8SSripM7j8eCLL77Ahx9+iG+++QYDBw7ErFmz8P/+3/+D2WwGAHz22We48847KakLJU4eN0IIIYQ0B57J6F31Gy6tPIxeVQXQMQ8kjodd0EOu0fGhgIOGSbju/Pd1LlPieKxOGQ5Y/NMyHFXIKd4KoZ6eNIHJcEDv/YXj4IYGMgQoALRMRqpkRTvJBodgQLlghF0wgCH2EruIk7oOHTpAURRMnDgRO3fuxKBBg2qVufrqq5GUlNQE1SOEkOjiOQ5GnQiTXguTXgOjToMErQidRoROI0AvCtBphIDfBYGDW1Lg8shwSTKcHsn73ve7W4Ld7UGl0wO704NKlwdVbqmlvyohUWeRKjHQfhRDKw4hRbKBA4OL16i9csEwjsd5MRFcPZcumWXHhTTMj2cMGiahXDDVOS8DF3T9DNyFJJOBZwpMsgMm2QE3J8IqmmATjPDUldhF+bRsxEndwoULMX78eOj1+pBlkpKScPz48UZVjBBCquM4QCsI0Io8tKJw4cVDIwgQeA4Cz0PgOYgCB4HjL0zzTteKPDTV5tEK3sRMK3inG7QiTHoNTDoNDFoRXBT+05YVBXaXN9GrdHrgkmS4JRluSYFbkuGRZLhlb6LolmRIigJZYRde/ve+6ZKsqPN75GrLkZX6K0NIM0uU7Mgt24m+jpPQMzdkcEF75ULiOG/i1UCMa+ywvBwUzpsycmDQMhlpnnKkeGyoFAw4p0mqndgBEBR3I9cbmYiTusmTJzdHPQghrQjPcTBoBeg1IgzaCz1aGhF6Xw+XKEB/YZpO4022dBoBugtJl04UoFV/975EnotKshUtAs/DbNDBbNA163oU5k34fMmhL3l0STLcHgWuC++9PYvShZ5Gf29j4HsJVW4JTg/dwU8iY5KrkOUqhI65AcbgFrSQ4/T5BwyADA4CY+A5BQbFBYHJ8PDagMTOWzi6/1Q16kYJQkjboBV5WBJ0SErQwWLQwZKghSVBB0uCDsYLvVsGjQCDTgODRoRW5FtVAhbPeI5TE+OmoigMVR4JTrc3yavySHC4JVRUuWGrcqPc4YLV4YLV4YbV4YKtyg0lRu4OJC3jrC4Vb2TejIurTmJoxWF0cRUhSbbDwwuo4nVQGt2TFg0MAlPAgYGBg0PQo1w0oVIwQLnQi+gb5UKUvGPqSYI2qjWkpI4QAp0oIDXRcOGlV9+nmPRIMuqh1wiUpBEVz3Mw6rzXG4ZDURgqnG6U2V0orahCie9V6URJRRXOVzop6WsDPLwGPxp74seEHsjwnMellb9gkP1XJMoOMABVvA4eTqx9bRtjsMj2Bg8GxsDBLFXWWYYDYBOMYLX+zjHvgwMuXKsncwKsfAJsohFOPkjCxhgE2X/KlVeie+0sJXWEtBE6UUB7SwLamw1ItySgvdn7SjMbYNRpKGkjzYbnObVnt1uaudbnsqKg3O5Csa0KxTYHiqwOFNscKLY6UFJZFStDgJGmwnEo1KZgbbtsbEi6FP3txzG08hA6uEthlF1w8yKqeK16HZwABQp4/GDqiUo+9PX8jONxUp+OHjitTisx6PGdpSNkFvofEKPixCWVv4KHAlkdD0WBwBQIF04SV3E6WEUjKsSE0KeNGYMoVYFjiv+aOrc9ok3TWJTUEdIKcBxg1mthTvCeGjUbdLAYtEg26tDekoB0cwIsCTpK3EhMEngeKYkGpCQacHHHdgGfeWQFJRVVKLY6cM7mgLXKf0rXWuU9xUt3EscvJ6/DrsQ+2GW6CF1cxRhc+QsGOI7BLDu8pzh5ndp7tiPxYpzWpde5vARUBC5fFLE9eRAcSAw5T0dXMS6p/BWAdwDkBMUFQATjOdh4I+waIxx8Pde+1kjoGO9NDuW2fPr1008/xeLFi7F7926cP38ee/fuDTpkSk0rV67EU089hRMnTqBXr154+eWXcd1116mfM8Ywf/58/OMf/0B5eTkuv/xyvPvuu+jVq1czfhtCGo/nOJgNvuvXtP7r2hK8SZtvukmnBc9TwkZaH43Ao0OSER2SjCHLeCT5QpLnvnAtn+vCdX3uau9dcFDyF7s4Dqf06TilT8e38lB12JP2nnKITILENX+6YpbskDgRxZpkbE/ohWKnBInXqAlaSCESOgBRf9hATCV1drsdV1xxBW655RbcfffdYc2zfft2TJw4EQsWLMCf/vQnLFu2DOPGjcOePXvQv39/AMArr7yCt956C//617+QlZWFp556Crm5uThw4ECdQ7OQtonnOCQbdTDpteqQGb5hNDQCD82FITEEngNj3rsL1ZfCIDMGduGnR1Lglr13FnrUISf8w04k6DRITtAhyahHUoIOyUb/+ySjDmY9JWuE1EcjCmpPX13ckgyrw4UyuzfRK7e7UOZwotx+4b3dCZmxgKFv1PfV7sLmeQ485/0pcN67soVqd2f7hpfxVPtZ/W9BucOFSmfrflZ6Y9gFA/LN/fF9Yj90dxZgSOUv6O48A0cdp14bw8HrYRf0OK7PxB5TbxzVZ4KXXUhyHap/5joSupbAMRZ7VyucOHECWVlZYfXUTZgwAXa7HatXr1anXXbZZRg0aBAWL14MxhgyMzPx17/+FQ8//DAAwGq1Ij09HUuWLMGtt94adLkulwsul/9xJDabDc8//zySO/cCxPAuDg6GUyQIsgdl7ftBFuv+A0SaFgcgQadRxyOzXEiiko16/0+TnhIpQkiz80gyyhzeRLKs8sLPC4llhdMdMH5hvOnR3oKjxdYmXSbHWJCbGGpLQAUuFTYHTNsjj6rz9Guw5QtSFZJKDkHhhNCJWjgJneTBS08+DKvVqj51qznFVE9dQ+Tn52P27NkB03Jzc7Fq1SoAwPHjx1FYWIicnBz1c4vFghEjRiA/Pz9kUrdgwQI888wzAdPuvffexlWWMQiSix4T1giJeg3SzAlod+GOTFHkvb1nAg9REKDhOYgXBpRNqDagrEmvRYJOhMDHw23zhJDWTiMK6s1KdXFLsvdJJC4PKp1uVDg9as+/pCiQLvQCemRv77+kMFRUuVFa6b3D2C21jsGnw0noorr8GOuh84n7pK6wsBDp6YEXTqanp6OwsFD93DctVJlg5s6dG5As2mw2vPTSSw2vaLUdQAl2GzRRJeo16JySiPbmhGrDbBiQkqiHXhP3uywhhIRNKwpoZxLQzhT5qUfGvEPJlFQ4/cPIVFThbLkdBecr6WkjDRWjCR3Qgknd0qVLA3q+vvrqK1x55ZUtVZ1adDoddLrAu11EUQSveKAgwtOvATuAHnyDR9tpfYw6EV1SzeiaYkbX1ER0TTMjie7SJISQRuM4Tn1qSff2loDPZEXB2TI7TpTYcKqkAidLbCgoq4Ss0PGpTjGc0AEtmNSNHTsWI0aMUH/v2LFjg5aTkZGBoqKigGlFRUXIyMhQP/dN69ChQ0CZcO6srU6SJAiKBMhuKOHephxk3Bqw+LtGoqnwHIcBnVMwpHs6uqVakJqopwSOEEKiTOB5dEpJRKeUROAi7zSPrKDgfCV+LSzD9iNncbY8umOsxbwYT+iAFkzqEhMTkZhY94WL4cjOzkZeXh5mzZqlTlu/fj2ys7MBAFlZWcjIyEBeXp6axNlsNuzYsQPTp0+PaF2SJEHmRXW06HoTuyA7AKe0zYSunVGPyy/KxMheHZBkpDuOCSEk1mgEHt3SzOiWZsbo/l1wrNiKrYcKsPtEMaS2fqo2DhI6IMauqTt//jxOnTqFM2fOAAAOHz4MwNvb5utxmzJlCjp27IgFCxYAAB588EGMGjUKr732GsaMGYPly5dj165deO+99wB4u59nzZqF559/Hr169VKHNMnMzMS4ceMirqPCawCO1Z/YxckO0Jx8vXJXXNQRfTum0B2lhBASJziOQ4/0JPRIT8L4y3pjx69nsfVwAQrLHS1dteiLo+N5TCV1X3zxBe644w71d9+dqfPnz8fTTz8NADh16hT4ancwjhw5EsuWLcOTTz6Jxx9/HL169cKqVavUMeoAYM6cObDb7bjnnntQXl6OK664AuvWrWvwGHW+RC5kYhdHO0BT4zkOnVNMGNA5FZf3zqReOUIIiXNGnQbX9OuCq/t2xtEiK7YfOYPDZ8twvtLZ0lWLgvg6nsfkOHWxyGazYc6cOQHj1PGyG4Lshixo/YldPQkdp8jgmYzy1D6tYpw6k16D7u0t6J5mQfd0C7qmmqEVY3unJ4QQ0njlDheOFVtxrMiK4+esOFVig6SwZhmnLlwNHaeuJt84dZzsAQfW8ISOxqmLH7V67HhNXGX0jTHlyr7o0d6CNLOBbnQghJA2KClBh0u7tcel3doD8A6ofKq0AlaHq8WSuqbEKbL3eK5JiJvjOSV1EeqZkYSEhMDBIisqKmCz2QB4wGk0SE1NhVYb/Fo7t9sNp9OJ2TePRLt27YKWIYQQQuKNRhTQIz0JAPBuVnrdhZuLuww4VRww6bYuowBtckSLOX/+PD766CiMRiOMxtDPHa6PwxHdaxBpeP0mUD3gOp0uZEJHCCGEkPjA8zw0moY/FrQlUFLXSIqioLS0FBzHQa/Xw+l0oqKioqWrRQghhJBGkGUZdnt8jdVHp18bwZfQeTwe9ZSr/1QsmmQcPkIIIYREn0ajQWVlJURRjJvjOSV1DRQsoQP8iRwldoQQQkj8EkURJpMpro7nlNQ1QKiEzocSO0IIIST+GY1GiKIYN8dzSuoiVF9C50OJHSGEEBL/4ul4TkldhHxBrSuh84mnHYEQQgghwcXL8ZySughotVrIsoz09PSwhy2puSPodLpmqx8hhBBCmkc8JHaU1EWA53lYLJaIx6GrviMkJCRAEOJjZGpCCCGE+MV6YkdJXQRcLhdEsWGbzBf48vLyRo1OTQghhJCWE8uJHSV1EWCMNWr+xMRESJIEt9vdRDUihBBCSLTFamJHSV2UGY3GRieHhBBCCGlZsZjYUVLXAhp6CpcQQgghsSPWEjvKLgghhBBCGiiWEjtK6gghhBBCGiFUYudwOKJaD0rqCCGEENI6aJOBnve0yKprJnYAYLfbo1oHSuoIIYQQQppAzcQu2kOY8VFdGyGEEEIIaRbUU0cIIYQQ0gQqKipgs9lgNpsBAOfPn4/q+mOmp87j8eDRRx/FgAEDYDQakZmZiSlTpuDMmTP1zvvOO++gW7du0Ov1GDFiBHbu3BnwudPpxIwZM5CSkgKTyYSbbroJRUVFzfVVCCGEENLGVE/oEhMTkZiY2HZPvzocDuzZswdPPfUU9uzZg08//RSHDx/G2LFj65xvxYoVmD17NubPn489e/bgkksuQW5uLoqLi9UyDz30EL788kusXLkSmzdvxpkzZ3DjjTc291cihBBCSBtQM6HzSUhIiGo9Yub0q8Viwfr16wOmvf322xg+fDhOnTqFLl26BJ3v9ddfx91334077rgDALB48WKsWbMGH3zwAR577DFYrVa8//77WLZsGa655hoAwIcffoiLL74Y33//PS677LLm/WKEEEIIabVCJXQtIWZ66oKxWq3gOA5JSUlBP3e73di9ezdycnLUaTzPIycnB/n5+QCA3bt3w+PxBJTp06cPunTpopYJxuVywWazBbyaiiRJTbYsQgghhLSMWErogBhO6pxOJx599FFMnDhRveCwppKSEsiyjPT09IDp6enpKCwsBAAUFhZCq9XWSgyrlwlmwYIFsFgs6qtz586N+0IX2O12eDyeJlkWIYQQQlpGrCV0QAsmdUuXLoXJZFJfW7duVT/zeDy45ZZbwBjDu+++2yL1mzt3LqxWq/o6ffo0OI5r1DIrKipQWVkJjUbTRLUkhBBCSLTFYkIHtOA1dWPHjsWIESPU3zt27AjAn9CdPHkSGzZsCNlLBwCpqakQBKHWnaxFRUXIyMgAAGRkZMDtdqO8vDygt656mWB0Oh10Ol2taQ09derbAUwmEwRBaNAyCCGEENKyYjWhA1qwpy4xMRE9e/ZUXwaDQU3ojhw5gm+//RYpKSl1LkOr1WLIkCHIy8tTpymKgry8PGRnZwMAhgwZAo1GE1Dm8OHDOHXqlFomXIqiwGq1wu12RzRf9R0g2rc3E0IIIaRpxHJCB8TQ3a8ejwc333wz9uzZg9WrV0OWZfWat3bt2kGr1QIARo8ejT//+c+YOXMmAGD27NmYOnUqhg4diuHDh+ONN96A3W5X74a1WCyYNm0aZs+ejXbt2sFsNuP+++9HdnZ2xHe+ut1uCIKAkpISpKamqnWqS80dINKEkBBCCCEtL9YTOiCGkrqCggJ88cUXAIBBgwYFfLZx40ZcddVVAICjR4+ipKRE/WzChAk4d+4c5s2bh8LCQgwaNAjr1q0LuHli4cKF4HkeN910E1wuF3Jzc7Fo0aIG1dNsNqOqqiqsxC4edgBCCCGE1C1ejucxk9R169YNjLF6y504caLWtJkzZ6o9d8Ho9Xq88847eOeddxpTRQDeIVNSUlJQWlpaZ2IXLzsAIYQQQkKLp+N5zA5pEst8iZ1Go0FJSUmtU6rxtAMQQgghJDi73R5Xx3NK6hooVGJHCR0hhBAS/yRJQmVlZVwdz2Pm9Gs8qnkqVqfTwel0xtUOQAghhJDaPB4PTCZTXB3PqaeukXyJHWMMTqcTer0+rnYAQgghhNQmCELcDUNGSV0TsNvt6nuXy0XDlhBCCCFxTlGUuHusJyV1jVT9GroOHTqEvHmCEEIIIfGD4ziUlZXF1fGckrpGqHlTRH13xRJCCCEkPmi1WoiiGFfHc0rqGijUXa6U2BFCCCHxj+M4JCcnx9XxnJK6Bqhv2BJK7AghhJD4x3FcXB3PKamLkMPhCGscOkrsCCGEkPgXT8dzSuoiIIoi7HZ72OPQxdOOQAghhJDg4uV4TkldBERRhNFojGgcupo7QrzdHk0IIYSQ+EjsKKmLgCRJSEhIiHi+6jtCWVkZFEVphtoRQgghpDnFemJHSV0EJElq8Ly+HUEUxZjbCQghhBASnlhO7CipiyKe55GcnAyO41q6KoQQQghpoFhN7CipizKO46DValu6GoQQQghphFhM7CipawHUU0cIIYTEv1hL7MQWXXuc4XkekiQ1KmgejweSJMFqtTZhzQghhBDSVKxWKyRJCnvECrPZjLKyMhQXF6tPoQAAp9PZnNWshZK6CCQlJaG0tBQ83/AOTkVRwBjD2rVrIYoiGGNwu91gjKmnZd1ut3qaNlq9er6dV6PRQBCEgDo15vtGQlGUgO8uy7JaJ1GMzq5K8fCjePhRPLwoHn4UD7/WGA9JklBeXg6O48L+DowxSJKEM2fOqOuM9jBmlNRFwNdAGruTMsag0+nUTF6v16OsrAwVFRUAAI1G0yI3VNjtdlRWVgIIfOZdNPmGffH9d2MymWA0GqNaB4qHH8XDj+LhRfHwo3j4tbZ4eDwe8DwfUVIHeL+72+1usTFpKamLUKQBDkZRFGg0moAbJpKTk1FSUqK+1+l0jVpHQ4iiCIfDAcD7hyLaf5wAQKvVwul0qo3SYrFE7T+96igeXhQPP4qHH8XDi+Lh1xrj4TveR7IMX1mXywUAEAShwetvCLpRIga43W6UlpZCo9FAo9GgtLQ06hdbKoqC0tJScBwHvV4Pp9Op/ucXTRUVFXA6ndDr9eA4DqWlpVEfrJni4Ufx8KJ4+FE8/CgeXhQPP9919xzHgeM4yLIc1fXHVFL39NNPo0+fPjAajUhOTkZOTg527NhR73zvvPMOunXrBr1ejxEjRmDnzp0BnzudTsyYMQMpKSkwmUy46aabUFRU1FxfIyJutxslJSXQaDRITU1Fampq1O+i8TVIj8eD1NRUpKSkwGw2w2azRbVhVlRUwGazwWw2IyUlBampqfB4PFFtmBQPP4qHF8XDj+LhR/Hwonj4VU/o9Ho99Hp9VNZbXUwldb1798bbb7+Nn376Cdu2bUO3bt3whz/8AefOnQs5z4oVKzB79mzMnz8fe/bswSWXXILc3FwUFxerZR566CF8+eWXWLlyJTZv3owzZ87gxhtvjMZXqlP1BpmSkqJ280bz9uiaDdJ3SjgxMTGqDbN6g/Q9W1er1Ua1YVI8/CgeXhQPP4qHH8XDi+LhVz2h0+l0ajyifV0hxxhjUV1jBGw2GywWC7799luMHj06aJkRI0Zg2LBhePvttwF4d7LOnTvj/vvvx2OPPQar1Yq0tDQsW7YMN998MwDg0KFDuPjii5Gfn4/LLrss7Lq8/PLLMJlMjQqSoihQFAWpqamwWq0BDbJmuWCNpSmFs45gjaWp1beOYH+8mlp966B4+FE8/CgeXhQPP4qHXzzHw+124+zZs2FdUxcsofPxeDx4/PHHYbVaYTabI/tyDRBTPXXVud1uvPfee7BYLLjkkktCltm9ezdycnLUaTzPIycnB/n5+QCA3bt3w+PxBJTp06cPunTpopYJxuVywWazBbyaiqIoKCsrq3Mna+7/uMJt9M39H1c4jb65/+MKp9FTPPwoHn4UDy+Khx/Fw68txKOuhK4lxFxSt3r1aphMJuj1eixcuBDr169Hampq0LIlJSWQZRnp6ekB09PT01FYWAgAKCwshFarRVJSUsgywSxYsAAWi0V9de7cuXFf7AJZliFJEkRRrPe/huZqmJH+F9dcDTOS/+Kaq2FG8l8cxcOP4uFH8fCiePhRPPxaczxiLaEDWjCpW7p0KUwmk/raunUrAODqq6/Gvn37sH37dvzxj3/ELbfcEnB9XLTMnTsXVqtVfZ0+fbrRy6y+AyQlJYW1AzR1w2xot3xTN8yGdMs3dcNsSLc8xcOP4uFH8fCiePhRPPxaYzxiMaEDWjCpGzt2LPbt26e+hg4dCgAwGo3o2bMnLrvsMrz//vsQRRHvv/9+0GWkpqZCEIRad7IWFRUhIyMDAJCRkQG3243y8vKQZYLR6XQwm80BL0EQ0NBLEKvvAIIgRDzuTVM0zMZeZ9FUDbMx11k0VcNszHUvFA8/iocfxcOL4uFH8fBrTfGI1YQOaMGkLjExET179lRfBoMhaDlFUdRB/GrSarUYMmQI8vLyAsrn5eUhOzsbADBkyBBoNJqAMocPH8apU6fUMpHweDwR7whNsQM0tmE21YWzjW2YTXHhbGMbZlNcyEzx8KN4+FE8vCgefhQPv9YQj1hO6IAYuqbObrfj8ccfx/fff4+TJ09i9+7duPPOO1FQUIDx48er5UaPHq3e6QoAs2fPxj/+8Q/861//wsGDBzF9+nTY7XbccccdALwjSk+bNg2zZ8/Gxo0bsXv3btxxxx3Izs4O+85XH1/wXS5X2DtCzR2gMY9uaWjDbOo7oRraMJvyTqiGNsymvDON4uFH8fCjeHhRPPwoHn7xHI9YT+iAGErqBEHAoUOHcNNNN6F37964/vrrUVpaiq1bt6Jfv35quaNHj6qPQwGACRMm4G9/+xvmzZuHQYMGYd++fVi3bl3AzRMLFy7En/70J9x000343e9+h4yMDHz66acR15ExBlEUwRgLK7Frjh0g0obZXLe2R9owm+PW9kgbZnMMNUDx8KN4+FE8vCgefhQPv3iMRzwkdECMj1MXS6qPU+d7YG9dwQ21A/jGqevQoUOjGkg4jS0aYxWF09iae6yicP74NffYURQPP4qHH8XDi+LhR/Hwi+V4VB+nTlGUBid0NE5dHBBFEVqtNmSPXTQy+vr+44pGgwTq/48rGoNP1vcfVzQGA6V4+FE8/CgeXhQPP4qHXzzEQ5bluOih84nt2sWwUIldNLtoQzXMaDVIn1ANMxoN0idUw4zGH0gfiocfxcOP4uFF8fCjePjFcjwa00PXUmK/hjGsZmLXEufcazZMl8sV1QbpU7NhRrNB+tRsmC6XK2p/IH0oHn4UDz+KhxfFw4/i4ReL8XC73ZAkKa4SOgAQW7oC8cJ36aGiKPB4PAGfCYIASZLUoVdEUYQsy5BlOeRyfElgUzEYDPB4POpTMpKTkyFJUpOuoz6CIECn0+H8+fMAvGMOCoIAh8MRtToAgMlkQllZGRwOBzQaDQwGA5xOZ1TrQPHwo3h4UTz8KB5+FA+vWIuH3W5Xb44MdTwPh6/XL1q3L9CNEmH67bffmuxRYYQQQghpO06fPo1OnTo1+3ooqQuToig4fPgw+vbti9OnT0flLpZYZbPZ0Llz5za9HWgbeNF2oG3gQ9uBtoEPbQf/Njh16hQ4jkNmZmZUTuHS6dcw8TyPjh07AoD62LC2jrYDbQMf2g60DXxoO9A28KHt4H0AQjS3QXxc+UcIIYQQQupESR0hhBBCSCtASV0EdDod5s+fD51O19JVaVG0HWgb+NB2oG3gQ9uBtoEPbYeW2wZ0owQhhBBCSCtAPXWEEEIIIa0AJXWEEEIIIa0AJXWEEEIIIa0AJXWEEEIIIa1Am07qPB4PHn30UQwYMABGoxGZmZmYMmUKzpw5U++877zzDrp16wa9Xo8RI0Zg586dAZ87nU7MmDEDKSkpMJlMuOmmm1BUVNRcX6VR6vsuNa1cuRJ9+vSBXq/HgAEDsHbt2oDPGWOYN28eOnToAIPBgJycHBw5cqQ5v0KjLFiwAMOGDUNiYiLat2+PcePG4fDhw/XO19q2Q3UvvfQSOI7DrFmz6izXGrdBQUEBJk2ahJSUFBgMBgwYMAC7du2qc55Nmzbh0ksvhU6nQ8+ePbFkyZJaZSJtZy1FlmU89dRTyMrKgsFgQI8ePfDcc8/V++zKeN8GW7ZswfXXX4/MzExwHIdVq1YFfN7QfTnejhV1bYe2csysb1+o7r777gPHcXjjjTfqXW5UtgFrw8rLy1lOTg5bsWIFO3ToEMvPz2fDhw9nQ4YMqXO+5cuXM61Wyz744AP2888/s7vvvpslJSWxoqIitcx9993HOnfuzPLy8tiuXbvYZZddxkaOHNncXyli4XyX6r777jsmCAJ75ZVX2IEDB9iTTz7JNBoN++mnn9QyL730ErNYLGzVqlXshx9+YGPHjmVZWVmsqqoqWl8rIrm5uezDDz9k+/fvZ/v27WPXXXcd69KlC6usrAw5T2vcDj47d+5k3bp1YwMHDmQPPvhgyHKtcRucP3+ede3ald1+++1sx44d7NixY+zrr79mv/76a8h5jh07xhISEtjs2bPZgQMH2N///ncmCAJbt26dWibSdtaSXnjhBZaSksJWr17Njh8/zlauXMlMJhN78803Q87TGrbB2rVr2RNPPME+/fRTBoB99tlnAZ83ZF+Ox2NFXduhrRwz69sXfD799FN2ySWXsMzMTLZw4cI6lxmtbdCmk7pgdu7cyQCwkydPhiwzfPhwNmPGDPV3WZZZZmYmW7BgAWPMu+NrNBq2cuVKtczBgwcZAJafn998lW+A+r5LTbfccgsbM2ZMwLQRI0awe++9lzHGmKIoLCMjg7366qvq5+Xl5Uyn07GPP/64Gb5B0ysuLmYA2ObNm0OWaa3boaKigvXq1YutX7+ejRo1qs6krjVug0cffZRdccUVEc0zZ84c1q9fv4BpEyZMYLm5uervkbazljRmzBh25513Bky78cYb2W233RZynta2DWoeyBu6L8f7saKuhMantR8zQ22D3377jXXs2JHt37+fde3atd6kLlrboE2ffg3GarWC4zgkJSUF/dztdmP37t3IyclRp/E8j5ycHOTn5wMAdu/eDY/HE1CmT58+6NKli1omFoTzXWrKz88PKA8Aubm5avnjx4+jsLAwoIzFYsGIESNi6rvXxWq1AgDatWsXskxr3Q4zZszAmDFjan23YFrjNvjiiy8wdOhQjB8/Hu3bt8fgwYPxj3/8o8556tsODWlnLWnkyJHIy8vDL7/8AgD44YcfsG3bNlx77bUh52lt26CmhuzLrelYUZe2dMz0URQFkydPxiOPPIJ+/frVWz6a24CSumqcTiceffRRTJw4MeQDeEtKSiDLMtLT0wOmp6eno7CwEABQWFgIrVZbayevXiYWhPNdaiosLKz3u/umhbvMWKIoCmbNmoXLL78c/fv3D1muNW6H5cuXY8+ePViwYEFY5VvjNjh27Bjeffdd9OrVC19//TWmT5+OBx54AP/6179CzhNqO9hsNlRVVTWonbWkxx57DLfeeiv69OkDjUaDwYMHY9asWbjttttCztPatkFNDdmXW9OxIpS2dsz0efnllyGKIh544IGwykdzG4hhl2wFli5dinvvvVf9/auvvsKVV14JwHsB6C233ALGGN59992WqiJpYTNmzMD+/fuxbdu2lq5KVJ0+fRoPPvgg1q9fD71e39LVaTGKomDo0KF48cUXAQCDBw/G/v37sXjxYkydOrWFaxcdn3zyCZYuXYply5ahX79+2LdvH2bNmoXMzMw2sw1I/drqMXP37t148803sWfPHnAc19LVqaVN9dSNHTsW+/btU19Dhw4F4N85T548ifXr14f8jwMAUlNTIQhCrTtSioqKkJGRAQDIyMiA2+1GeXl5yDKxIJzvUlNGRka93903LdxlxoqZM2di9erV2LhxIzp16lRn2da2HXbv3o3i4mJceumlEEURoihi8+bNeOuttyCKImRZrjVPa9sGANChQwf07ds3YNrFF1+MU6dOhZwn1HYwm80wGAwNamct6ZFHHlF76wYMGIDJkyfjoYceqrMHt7Vtg5oasi+3pmNFTW31mAkAW7duRXFxMbp06aL+rTx58iT++te/olu3bkHnieY2aFNJXWJi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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sim_best = make_sim_params(param_history[-1])\n",
    "ax = sim_best.plot(z=0.01)\n",
    "\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "applications": [
   "Passive photonic integrated circuit components"
  ],
  "description": "This notebook demonstrates how to perform inverse design of a 3D 2x2 multimode interference coupler using Tidy3D.",
  "feature_image": "./img/autogradMMI.png",
  "features": [
   "Adjoint inverse design"
  ],
  "kernelspec": {
   "display_name": "develop",
   "language": "python",
   "name": "python3"
  },
  "keywords": "inverse design, multimode interference coupler, shape optimization, Tidy3D, FDTD",
  "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.11.14"
  },
  "title": "How to do 3d mmi shape optimization using tidy3d | flexcompute"
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
