"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# get permittivity at yee cell centers in a volume defined by a box.\n",
"sim.epsilon(td.Box(size=(1, 0, 1)), \"centers\")\n",
"\n",
"# get a `td.Grid` containing all information about spatial locations in the FDTD / yee grid\n",
"print(sim.grid.centers)\n",
"\n",
"# plot the simulation cross section\n",
"f, (ax1, ax2) = plt.subplots(1, 2, tight_layout=True, figsize=(10, 4))\n",
"\n",
"# plot the structures, PML, sources, mediums\n",
"ax1 = sim.plot(x=0, ax=ax1)\n",
"\n",
"# same thing but plot structure in grayscale using permittivity value\n",
"ax1 = sim.plot_eps(x=0, ax=ax2)\n",
"\n",
"# add the FDTD grid boundaries\n",
"ax2 = sim.plot_grid(x=0, ax=ax2)\n"
]
},
{
"cell_type": "markdown",
"id": "c67fdc68",
"metadata": {},
"source": [
"## Changes to Simulation Submission\n",
"\n",
"Here we will discuss changes made to the process for submitting, managing, monitoring, and loading simulations from our server.\n",
"\n",
"Topics covered will include:\n",
"* [tidy3d.web](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/api.html#submitting-simulations) functions.\n",
"* working with [tidy3d.web.Job](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.web.container.Job.html) and [tidy3d.web.Batch](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.web.container.Batch.html) convenience containers."
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "9f16e7e9",
"metadata": {
"execution": {
"iopub.execute_input": "2023-02-03T01:46:34.750212Z",
"iopub.status.busy": "2023-02-03T01:46:34.749906Z",
"iopub.status.idle": "2023-02-03T01:46:34.879503Z",
"shell.execute_reply": "2023-02-03T01:46:34.879060Z"
}
},
"outputs": [],
"source": [
"import tidy3d.web as web\n"
]
},
{
"cell_type": "markdown",
"id": "b388e315",
"metadata": {},
"source": [
"### Web interface\n",
"\n",
"The new web interface provides the same functions as the original version with a few major changes.\n",
"\n",
"- [task_id = web.upload(sim, task_name)](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.web.webapi.upload.html) accepts the original [Simulation](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.Simulation.html) object, whereas in the old version one had to convert it to a dictionary using `sim.export()` first. \n",
"\n",
"- [web.upload()](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.web.webapi.upload.html) returns the task_id directly, rather than the task info dictionary. To get the detailed task info run [web.get_info(task_id)](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.web.webapi.get_info.html)\n",
"\n",
"- [task_id = web.upload(sim, task_name)](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.web.webapi.upload.html) uploads the simulation as a `draft=True`, meaning it will not start running automatically unless explicitly told to with [web.start(task_id)](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.web.webapi.start.html).\n",
"\n",
"Usually, the most convenient way to run a single simulation in one line is with [web.run()](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.web.webapi.run.html#tidy3d.web.webapi.run), which simply performs all of the necessary steps one by one.\n",
"\n",
"Note, in the new version, the output of the simultion is a separate data object called a [SimulationData](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.SimulationData.html). Whereas before it was a [Simulation](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.Simulation.html) object with the data loaded inside of it. We will discuss this is more detail in the following section."
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "1f75f482",
"metadata": {
"execution": {
"iopub.execute_input": "2023-02-03T01:46:34.881740Z",
"iopub.status.busy": "2023-02-03T01:46:34.881584Z",
"iopub.status.idle": "2023-02-03T01:47:00.589503Z",
"shell.execute_reply": "2023-02-03T01:47:00.588916Z"
}
},
"outputs": [
{
"data": {
"text/html": [
"[19:46:35] INFO Created task 'web_demo' with task_id '159e3c1a-9b6f-4a35-9aba-68c5701e96b4' . webapi.py : 120 \n",
" \n"
],
"text/plain": [
"\u001b[2;36m[19:46:35]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Created task \u001b[32m'web_demo'\u001b[0m with task_id \u001b[32m'159e3c1a-9b6f-4a35-9aba-68c5701e96b4'\u001b[0m. \u001b]8;id=511914;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=727092;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#120\u001b\\\u001b[2m120\u001b[0m\u001b]8;;\u001b\\\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
" \n"
],
"text/plain": [
"\u001b[?25l"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "7856a453c9c7479b9e1f8576dd830fbb",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Output()"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" \n"
],
"text/plain": [
"\n",
"\u001b[?25h"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"[19:46:38] INFO Maximum FlexUnit cost: 0.025 webapi.py : 253 \n",
" \n"
],
"text/plain": [
"\u001b[2;36m[19:46:38]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Maximum FlexUnit cost: \u001b[1;36m0.025\u001b[0m \u001b]8;id=198963;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=783953;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#253\u001b\\\u001b[2m253\u001b[0m\u001b]8;;\u001b\\\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
" INFO status = queued webapi.py : 262 \n",
" \n"
],
"text/plain": [
"\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m status = queued \u001b]8;id=377297;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=702574;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#262\u001b\\\u001b[2m262\u001b[0m\u001b]8;;\u001b\\\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
" \n"
],
"text/plain": [
"\u001b[?25l"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "f797d34ab1924227bb51905a386de9a0",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Output()"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"[19:46:41] INFO status = preprocess webapi.py : 274 \n",
" \n"
],
"text/plain": [
"\u001b[2;36m[19:46:41]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m status = preprocess \u001b]8;id=434047;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=723453;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#274\u001b\\\u001b[2m274\u001b[0m\u001b]8;;\u001b\\\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" \n"
],
"text/plain": [
"\n",
"\u001b[?25h\r",
"\u001b[1A\u001b[2K"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"[19:46:47] INFO starting up solver webapi.py : 278 \n",
" \n"
],
"text/plain": [
"\u001b[2;36m[19:46:47]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m starting up solver \u001b]8;id=725436;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=833814;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#278\u001b\\\u001b[2m278\u001b[0m\u001b]8;;\u001b\\\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"[19:46:54] INFO running solver webapi.py : 284 \n",
" \n"
],
"text/plain": [
"\u001b[2;36m[19:46:54]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m running solver \u001b]8;id=25596;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=951478;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#284\u001b\\\u001b[2m284\u001b[0m\u001b]8;;\u001b\\\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
" \n"
],
"text/plain": [
"\u001b[?25l"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "4a523d76cb9a427eb67c384634955626",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Output()"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" \n"
],
"text/plain": [
"\n",
"\u001b[?25h"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
" \n"
],
"text/plain": [
"\u001b[?25l"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "030d60b6a91f45a8ba9160159b620f5b",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Output()"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"[19:46:55] INFO status = postprocess webapi.py : 307 \n",
" \n"
],
"text/plain": [
"\u001b[2;36m[19:46:55]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m status = postprocess \u001b]8;id=641664;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=175282;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#307\u001b\\\u001b[2m307\u001b[0m\u001b]8;;\u001b\\\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"[19:46:58] INFO status = success webapi.py : 307 \n",
" \n"
],
"text/plain": [
"\u001b[2;36m[19:46:58]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m status = success \u001b]8;id=71409;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=599410;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#307\u001b\\\u001b[2m307\u001b[0m\u001b]8;;\u001b\\\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" \n"
],
"text/plain": [
"\n",
"\u001b[?25h\r",
"\u001b[1A\u001b[2K"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
" INFO Billed FlexUnit cost: 0.025 webapi.py : 311 \n",
" \n"
],
"text/plain": [
"\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m Billed FlexUnit cost: \u001b[1;36m0.025\u001b[0m \u001b]8;id=339804;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=652297;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#311\u001b\\\u001b[2m311\u001b[0m\u001b]8;;\u001b\\\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"[19:46:59] INFO downloading file \"output/monitor_data.hdf5\" to \"data/data.hdf5\" webapi.py : 593 \n",
" \n"
],
"text/plain": [
"\u001b[2;36m[19:46:59]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m downloading file \u001b[32m\"output/monitor_data.hdf5\"\u001b[0m to \u001b[32m\"data/data.hdf5\"\u001b[0m \u001b]8;id=674561;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=168511;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#593\u001b\\\u001b[2m593\u001b[0m\u001b]8;;\u001b\\\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
" \n"
],
"text/plain": [
"\u001b[?25l"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "a7140b61369b4307a4a22cb453199da6",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Output()"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" \n"
],
"text/plain": [
"\n",
"\u001b[?25h"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"[19:47:00] INFO loading SimulationData from data/data.hdf5 webapi.py : 415 \n",
" \n"
],
"text/plain": [
"\u001b[2;36m[19:47:00]\u001b[0m\u001b[2;36m \u001b[0m\u001b[34mINFO \u001b[0m loading SimulationData from data/data.hdf5 \u001b]8;id=143469;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=381355;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#415\u001b\\\u001b[2m415\u001b[0m\u001b]8;;\u001b\\\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
" WARNING Simulation final field decay value of 0.00486 is greater than the simulation webapi.py : 421 \n",
" shutoff threshold of 1e-05 . Consider simulation again with large run_time \n",
" duration for more accurate results. \n",
" \n"
],
"text/plain": [
"\u001b[2;36m \u001b[0m\u001b[2;36m \u001b[0m\u001b[31mWARNING \u001b[0m Simulation final field decay value of \u001b[1;36m0.00486\u001b[0m is greater than the simulation \u001b]8;id=921535;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py\u001b\\\u001b[2mwebapi.py\u001b[0m\u001b]8;;\u001b\\\u001b[2m:\u001b[0m\u001b]8;id=809500;file:///Users/twhughes/Documents/Flexcompute/tidy3d-docs/tidy3d/tidy3d/web/webapi.py#421\u001b\\\u001b[2m421\u001b[0m\u001b]8;;\u001b\\\n",
"\u001b[2;36m \u001b[0m shutoff threshold of \u001b[1;36m1e-05\u001b[0m. Consider simulation again with large run_time \u001b[2m \u001b[0m\n",
"\u001b[2;36m \u001b[0m duration for more accurate results. \u001b[2m \u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sim_data = web.run(sim, task_name=\"web_demo\", path=\"data/data.hdf5\")\n"
]
},
{
"cell_type": "markdown",
"id": "fc5071ee",
"metadata": {},
"source": [
"### Containers\n",
"\n",
"The new version also contains the convenience containers [Job](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.web.container.Job.html) and [Batch](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.web.container.Batch.html) for managing single and multiple tasks without needing to account for the `task_id` and other metadata.\n",
"\n",
"They follow the same basic API as the `web.` functions, except [Batch](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.web.container.Batch.html) objects return generators that can be iterated through to give [SimulationData](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.SimulationData.html) for each task, rather than returning it one by one. This cuts down on memory for several large jobs. \n",
"\n",
"While we wont cover all of the details here, for more information, see the [tutorial on the Web API](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/notebooks/WebAPI.html) or look at the examples in the other notebooks."
]
},
{
"cell_type": "markdown",
"id": "b6045533",
"metadata": {},
"source": [
"## Changes to Output Data\n",
"\n",
"Here we will discuss changes made to the output data from a simulation.\n",
"\n",
"Topics covered will include:\n",
"\n",
"- [SimulationData](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.SimulationData.html) objects.\n",
"\n",
"- Obtaining information about a completed FDTD simulation.\n",
"\n",
"- Selecting data by monitor or field value.\n",
"\n",
"- Post-processing and visualizing data.\n",
"\n",
"### Simulation Data\n",
"\n",
"As mentioned, tidy3d data is now separated from the [Simulation](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.Simulation.html) object that led to its creation.\n",
"\n",
"We call the data container for a single task a [SimulationData](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.SimulationData.html) object.\n",
"\n",
"In addition to storing the data for each of the individual monitors in the simulation, it has it's own useful functionality."
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "b4632332",
"metadata": {
"execution": {
"iopub.execute_input": "2023-02-03T01:47:00.983725Z",
"iopub.status.busy": "2023-02-03T01:47:00.983606Z",
"iopub.status.idle": "2023-02-03T01:47:01.104192Z",
"shell.execute_reply": "2023-02-03T01:47:01.103776Z"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Simulation domain Nx, Ny, Nz: [20, 44, 20]\n",
"Applied symmetries: (0, 0, 0)\n",
"Number of computational grid points: 1.8400e+04.\n",
"Using subpixel averaging: True\n",
"Number of time steps: 2.6240e+03\n",
"Automatic shutoff factor: 1.00e-05\n",
"Time step (s): 3.8131e-16\n",
"\n",
"\n",
"Compute source modes time (s): 0.0158\n",
"Compute monitor modes time (s): 0.0020\n",
"Rest of setup time (s): 3.0944\n",
"\n",
"Running solver for 2624 time steps...\n",
"- Time step 104 / time 3.97e-14s ( 4 % done), field decay: 1.00e+00\n",
"- Time step 209 / time 7.97e-14s ( 8 % done), field decay: 1.00e+00\n",
"- Time step 314 / time 1.20e-13s ( 12 % done), field decay: 5.47e-01\n",
"- Time step 419 / time 1.60e-13s ( 16 % done), field decay: 4.20e-01\n",
"- Time step 524 / time 2.00e-13s ( 20 % done), field decay: 3.28e-01\n",
"- Time step 629 / time 2.40e-13s ( 24 % done), field decay: 1.27e-01\n",
"- Time step 734 / time 2.80e-13s ( 28 % done), field decay: 1.24e-02\n",
"- Time step 839 / time 3.20e-13s ( 32 % done), field decay: 4.07e-02\n",
"- Time step 944 / time 3.60e-13s ( 36 % done), field decay: 1.23e-01\n",
"- Time step 1049 / time 4.00e-13s ( 40 % done), field decay: 1.46e-01\n",
"- Time step 1154 / time 4.40e-13s ( 44 % done), field decay: 1.00e-01\n",
"- Time step 1259 / time 4.80e-13s ( 48 % done), field decay: 3.70e-02\n",
"- Time step 1364 / time 5.20e-13s ( 52 % done), field decay: 6.51e-03\n",
"- Time step 1469 / time 5.60e-13s ( 56 % done), field decay: 2.47e-02\n",
"- Time step 1574 / time 6.00e-13s ( 60 % done), field decay: 5.65e-02\n",
"- Time step 1679 / time 6.40e-13s ( 64 % done), field decay: 6.46e-02\n",
"- Time step 1784 / time 6.80e-13s ( 68 % done), field decay: 4.11e-02\n",
"- Time step 1889 / time 7.20e-13s ( 72 % done), field decay: 1.43e-02\n",
"- Time step 1994 / time 7.60e-13s ( 76 % done), field decay: 3.80e-03\n",
"- Time step 2099 / time 8.00e-13s ( 80 % done), field decay: 1.31e-02\n",
"- Time step 2204 / time 8.40e-13s ( 84 % done), field decay: 2.64e-02\n",
"- Time step 2309 / time 8.80e-13s ( 88 % done), field decay: 2.97e-02\n",
"- Time step 2414 / time 9.20e-13s ( 92 % done), field decay: 1.90e-02\n",
"- Time step 2519 / time 9.61e-13s ( 96 % done), field decay: 5.62e-03\n",
"- Time step 2623 / time 1.00e-12s (100 % done), field decay: 4.86e-03\n",
"\n",
"Solver time (s): 0.4162\n",
"\n"
]
},
{
"data": {
"text/html": [
"╭─────────────────────────────── < class 'tidy3d.components.simulation.Simulation' > ───────────────────────────────╮ \n",
"│ Contains all information about Tidy3d simulation. │ \n",
"│ │ \n",
"│ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ \n",
"│ │ Simulation ( │ │ \n",
"│ │ │ type ='Simulation' , │ │ \n",
"│ │ │ center =( 0.0 , 0.0 , 0.0 ) , │ │ \n",
"│ │ │ size =( 4.0 , 4.0 , 4.0 ) , │ │ \n",
"│ │ │ run_time =1e-12 , │ │ \n",
"│ │ │ medium =Medium ( name =None , frequency_range =None , type ='Medium' , permittivity =1.0 , conductivity =0.0 ) , │ │ \n",
"│ │ │ symmetry =( 0 , 0 , 0 ) , │ │ \n",
"│ │ │ structures =( │ │ \n",
"│ │ │ │ Structure ( │ │ \n",
"│ │ │ │ │ geometry =Box ( type ='Box' , center =( 0.0 , 0.0 , 0.0 ) , size =( 1.0 , 1.0 , 1.0 )) , │ │ \n",
"│ │ │ │ │ name =None , │ │ \n",
"│ │ │ │ │ type ='Structure' , │ │ \n",
"│ │ │ │ │ medium =Medium ( │ │ \n",
"│ │ │ │ │ │ name =None , │ │ \n",
"│ │ │ │ │ │ frequency_range =None , │ │ \n",
"│ │ │ │ │ │ type ='Medium' , │ │ \n",
"│ │ │ │ │ │ permittivity =2.0 , │ │ \n",
"│ │ │ │ │ │ conductivity =0.0 │ │ \n",
"│ │ │ │ │ ) │ │ \n",
"│ │ │ │ ) , │ │ \n",
"│ │ │ ) , │ │ \n",
"│ │ │ sources =( │ │ \n",
"│ │ │ │ UniformCurrentSource ( │ │ \n",
"│ │ │ │ │ type ='UniformCurrentSource' , │ │ \n",
"│ │ │ │ │ center =( 0.0 , 0.0 , 0.0 ) , │ │ \n",
"│ │ │ │ │ size =( 0.0 , 0.0 , 0.0 ) , │ │ \n",
"│ │ │ │ │ source_time =GaussianPulse ( │ │ \n",
"│ │ │ │ │ │ amplitude =1.0 , │ │ \n",
"│ │ │ │ │ │ phase =0.0 , │ │ \n",
"│ │ │ │ │ │ type ='GaussianPulse' , │ │ \n",
"│ │ │ │ │ │ freq0 =150000000000000.0 , │ │ \n",
"│ │ │ │ │ │ fwidth =10000000000000.0 , │ │ \n",
"│ │ │ │ │ │ offset =5.0 │ │ \n",
"│ │ │ │ │ ) , │ │ \n",
"│ │ │ │ │ name =None , │ │ \n",
"│ │ │ │ │ polarization ='Ez' │ │ \n",
"│ │ │ │ ) , │ │ \n",
"│ │ │ ) , │ │ \n",
"│ │ │ boundary_spec =BoundarySpec ( │ │ \n",
"│ │ │ │ x =Boundary ( │ │ \n",
"│ │ │ │ │ plus =Periodic ( name =None , type ='Periodic' ) , │ │ \n",
"│ │ │ │ │ minus =Periodic ( name =None , type ='Periodic' ) , │ │ \n",
"│ │ │ │ │ type ='Boundary' │ │ \n",
"│ │ │ │ ) , │ │ \n",
"│ │ │ │ y =Boundary ( │ │ \n",
"│ │ │ │ │ plus =PML ( │ │ \n",
"│ │ │ │ │ │ name =None , │ │ \n",
"│ │ │ │ │ │ type ='PML' , │ │ \n",
"│ │ │ │ │ │ num_layers =12 , │ │ \n",
"│ │ │ │ │ │ parameters =PMLParams ( │ │ \n",
"│ │ │ │ │ │ │ sigma_order =3 , │ │ \n",
"│ │ │ │ │ │ │ sigma_min =0.0 , │ │ \n",
"│ │ │ │ │ │ │ sigma_max =1.5 , │ │ \n",
"│ │ │ │ │ │ │ type ='PMLParams' , │ │ \n",
"│ │ │ │ │ │ │ kappa_order =3 , │ │ \n",
"│ │ │ │ │ │ │ kappa_min =1.0 , │ │ \n",
"│ │ │ │ │ │ │ kappa_max =3.0 , │ │ \n",
"│ │ │ │ │ │ │ alpha_order =1 , │ │ \n",
"│ │ │ │ │ │ │ alpha_min =0.0 , │ │ \n",
"│ │ │ │ │ │ │ alpha_max =0.0 │ │ \n",
"│ │ │ │ │ │ ) │ │ \n",
"│ │ │ │ │ ) , │ │ \n",
"│ │ │ │ │ minus =PML ( │ │ \n",
"│ │ │ │ │ │ name =None , │ │ \n",
"│ │ │ │ │ │ type ='PML' , │ │ \n",
"│ │ │ │ │ │ num_layers =12 , │ │ \n",
"│ │ │ │ │ │ parameters =PMLParams ( │ │ \n",
"│ │ │ │ │ │ │ sigma_order =3 , │ │ \n",
"│ │ │ │ │ │ │ sigma_min =0.0 , │ │ \n",
"│ │ │ │ │ │ │ sigma_max =1.5 , │ │ \n",
"│ │ │ │ │ │ │ type ='PMLParams' , │ │ \n",
"│ │ │ │ │ │ │ kappa_order =3 , │ │ \n",
"│ │ │ │ │ │ │ kappa_min =1.0 , │ │ \n",
"│ │ │ │ │ │ │ kappa_max =3.0 , │ │ \n",
"│ │ │ │ │ │ │ alpha_order =1 , │ │ \n",
"│ │ │ │ │ │ │ alpha_min =0.0 , │ │ \n",
"│ │ │ │ │ │ │ alpha_max =0.0 │ │ \n",
"│ │ │ │ │ │ ) │ │ \n",
"│ │ │ │ │ ) , │ │ \n",
"│ │ │ │ │ type ='Boundary' │ │ \n",
"│ │ │ │ ) , │ │ \n",
"│ │ │ │ z =Boundary ( │ │ \n",
"│ │ │ │ │ plus =Periodic ( name =None , type ='Periodic' ) , │ │ \n",
"│ │ │ │ │ minus =Periodic ( name =None , type ='Periodic' ) , │ │ \n",
"│ │ │ │ │ type ='Boundary' │ │ \n",
"│ │ │ │ ) , │ │ \n",
"│ │ │ │ type ='BoundarySpec' │ │ \n",
"│ │ │ ) , │ │ \n",
"│ │ │ monitors =( │ │ \n",
"│ │ │ │ FieldMonitor ( │ │ \n",
"│ │ │ │ │ type ='FieldMonitor' , │ │ \n",
"│ │ │ │ │ center =( 1.0 , 0.0 , 0.0 ) , │ │ \n",
"│ │ │ │ │ size =( inf, inf, 0.0 ) , │ │ \n",
"│ │ │ │ │ name ='fields_at_150THz' , │ │ \n",
"│ │ │ │ │ freqs =( 150000000000000.0 ,) , │ │ \n",
"│ │ │ │ │ apodization =ApodizationSpec ( start =None , end =None , width =None , type ='ApodizationSpec' ) , │ │ \n",
"│ │ │ │ │ fields =( 'Ex' , 'Ey' , 'Hz' ) , │ │ \n",
"│ │ │ │ │ interval_space =( 1 , 1 , 1 ) , │ │ \n",
"│ │ │ │ │ colocate =False │ │ \n",
"│ │ │ │ ) , │ │ \n",
"│ │ │ │ FluxTimeMonitor ( │ │ \n",
"│ │ │ │ │ type ='FluxTimeMonitor' , │ │ \n",
"│ │ │ │ │ center =( 1.0 , 0.0 , 0.0 ) , │ │ \n",
"│ │ │ │ │ size =( inf, inf, 0.0 ) , │ │ \n",
"│ │ │ │ │ name ='flux_over_time' , │ │ \n",
"│ │ │ │ │ start =1e-13 , │ │ \n",
"│ │ │ │ │ stop =3e-13 , │ │ \n",
"│ │ │ │ │ interval =5 , │ │ \n",
"│ │ │ │ │ normal_dir ='+' , │ │ \n",
"│ │ │ │ │ exclude_surfaces =None │ │ \n",
"│ │ │ │ ) │ │ \n",
"│ │ │ ) , │ │ \n",
"│ │ │ grid_spec =GridSpec ( │ │ \n",
"│ │ │ │ grid_x =UniformGrid ( type ='UniformGrid' , dl =0.2 ) , │ │ \n",
"│ │ │ │ grid_y =UniformGrid ( type ='UniformGrid' , dl =0.2 ) , │ │ \n",
"│ │ │ │ grid_z =UniformGrid ( type ='UniformGrid' , dl =0.2 ) , │ │ \n",
"│ │ │ │ wavelength =None , │ │ \n",
"│ │ │ │ override_structures =() , │ │ \n",
"│ │ │ │ type ='GridSpec' │ │ \n",
"│ │ │ ) , │ │ \n",
"│ │ │ shutoff =1e-05 , │ │ \n",
"│ │ │ subpixel =True , │ │ \n",
"│ │ │ normalize_index =0 , │ │ \n",
"│ │ │ courant =0.99 , │ │ \n",
"│ │ │ version ='1.9.0rc1' │ │ \n",
"│ │ ) │ │ \n",
"│ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ │ \n",
"│ │ \n",
"│ background_structure = Structure ( │ \n",
"│ geometry =Box ( type ='Box' , center =( 0.0 , 0.0 , 0.0 ) , size =( inf, inf, inf)) , │ \n",
"│ name =None , │ \n",
"│ type ='Structure' , │ \n",
"│ medium =Medium ( │ \n",
"│ name =None , │ \n",
"│ frequency_range =None , │ \n",
"│ type ='Medium' , │ \n",
"│ permittivity =1.0 , │ \n",
"│ conductivity =0.0 │ \n",
"│ ) │ \n",
"│ ) │ \n",
"│ boundary_spec = BoundarySpec ( │ \n",
"│ x =Boundary ( │ \n",
"│ plus =Periodic ( name =None , type ='Periodic' ) , │ \n",
"│ minus =Periodic ( name =None , type ='Periodic' ) , │ \n",
"│ type ='Boundary' │ \n",
"│ ) , │ \n",
"│ y =Boundary ( │ \n",
"│ plus =PML ( │ \n",
"│ name =None , │ \n",
"│ type ='PML' , │ \n",
"│ num_layers =12 , │ \n",
"│ parameters =PMLParams ( │ \n",
"│ sigma_order =3 , │ \n",
"│ sigma_min =0.0 , │ \n",
"│ sigma_max =1.5 , │ \n",
"│ type ='PMLParams' , │ \n",
"│ kappa_order =3 , │ \n",
"│ kappa_min =1.0 , │ \n",
"│ kappa_max =3.0 , │ \n",
"│ alpha_order =1 , │ \n",
"│ alpha_min =0.0 , │ \n",
"│ alpha_max =0.0 │ \n",
"│ ) │ \n",
"│ ) , │ \n",
"│ minus =PML ( │ \n",
"│ name =None , │ \n",
"│ type ='PML' , │ \n",
"│ num_layers =12 , │ \n",
"│ parameters =PMLParams ( │ \n",
"│ sigma_order =3 , │ \n",
"│ sigma_min =0.0 , │ \n",
"│ sigma_max =1.5 , │ \n",
"│ type ='PMLParams' , │ \n",
"│ kappa_order =3 , │ \n",
"│ kappa_min =1.0 , │ \n",
"│ kappa_max =3.0 , │ \n",
"│ alpha_order =1 , │ \n",
"│ alpha_min =0.0 , │ \n",
"│ alpha_max =0.0 │ \n",
"│ ) │ \n",
"│ ) , │ \n",
"│ type ='Boundary' │ \n",
"│ ) , │ \n",
"│ z =Boundary ( │ \n",
"│ plus =Periodic ( name =None , type ='Periodic' ) , │ \n",
"│ minus =Periodic ( name =None , type ='Periodic' ) , │ \n",
"│ type ='Boundary' │ \n",
"│ ) , │ \n",
"│ type ='BoundarySpec' │ \n",
"│ ) │ \n",
"│ bounding_box = Box ( type ='Box' , center =( 0.0 , 0.0 , 0.0 ) , size =( 4.0 , 4.0 , 4.0 )) │ \n",
"│ bounds = (( -2.0 , -2.0 , -2.0 ) , ( 2.0 , 2.0 , 2.0 )) │ \n",
"│ bounds_pml = (( -2.0 , -4.3999999999999995 , -2.0 ) , ( 2.0 , 4.399999999999997 , 2.0 )) │ \n",
"│ center = ( 0.0 , 0.0 , 0.0 ) │ \n",
"│ complex_fields = False │ \n",
"│ courant = 0.99 │ \n",
"│ custom_datasets = [] │ \n",
"│ dt = 3.8131497373958257e-16 │ \n",
"│ frequency_range = ( 110000000000000.0 , 190000000000000.0 ) │ \n",
"│ geometry = Box ( type ='Box' , center =( 0.0 , 0.0 , 0.0 ) , size =( 4.0 , 4.0 , 4.0 )) │ \n",
"│ grid = Grid ( │ \n",
"│ boundaries =Coords ( │ \n",
"│ x =( │ \n",
"│ -2.0 , │ \n",
"│ -1.8 , │ \n",
"│ -1.6 , │ \n",
"│ -1.4 , │ \n",
"│ -1.2 , │ \n",
"│ -1.0 , │ \n",
"│ -0.7999999999999998 , │ \n",
"│ -0.5999999999999999 , │ \n",
"│ -0.3999999999999999 , │ \n",
"│ -0.19999999999999996 , │ \n",
"│ 0.0 , │ \n",
"│ 0.20000000000000018 , │ \n",
"│ 0.40000000000000036 , │ \n",
"│ 0.6000000000000001 , │ \n",
"│ 0.8000000000000003 , │ \n",
"│ 1.0 , │ \n",
"│ 1.2000000000000002 , │ \n",
"│ 1.4000000000000004 , │ \n",
"│ 1.6 , │ \n",
"│ 1.8000000000000003 , │ \n",
"│ 2.0 │ \n",
"│ ) , │ \n",
"│ y =( │ \n",
"│ -4.3999999999999995 , │ \n",
"│ -4.199999999999999 , │ \n",
"│ -3.9999999999999996 , │ \n",
"│ -3.8 , │ \n",
"│ -3.5999999999999996 , │ \n",
"│ -3.3999999999999995 , │ \n",
"│ -3.1999999999999997 , │ \n",
"│ -3.0 , │ \n",
"│ -2.8 , │ \n",
"│ -2.5999999999999996 , │ \n",
"│ -2.4 , │ \n",
"│ -2.2 , │ \n",
"│ -2.0 , │ \n",
"│ -1.8 , │ \n",
"│ -1.6 , │ \n",
"│ -1.4 , │ \n",
"│ -1.2 , │ \n",
"│ -1.0 , │ \n",
"│ -0.7999999999999998 , │ \n",
"│ -0.5999999999999999 , │ \n",
"│ -0.3999999999999999 , │ \n",
"│ -0.19999999999999996 , │ \n",
"│ 0.0 , │ \n",
"│ 0.20000000000000018 , │ \n",
"│ 0.40000000000000036 , │ \n",
"│ 0.6000000000000001 , │ \n",
"│ 0.8000000000000003 , │ \n",
"│ 1.0 , │ \n",
"│ 1.2000000000000002 , │ \n",
"│ 1.4000000000000004 , │ \n",
"│ 1.6 , │ \n",
"│ 1.8000000000000003 , │ \n",
"│ 2.0 , │ \n",
"│ 2.1999999999999997 , │ \n",
"│ 2.3999999999999995 , │ \n",
"│ 2.599999999999999 , │ \n",
"│ 2.799999999999999 , │ \n",
"│ 2.9999999999999987 , │ \n",
"│ 3.1999999999999984 , │ \n",
"│ 3.399999999999998 , │ \n",
"│ 3.599999999999998 , │ \n",
"│ 3.7999999999999976 , │ \n",
"│ 3.9999999999999973 , │ \n",
"│ 4.1999999999999975 , │ \n",
"│ 4.399999999999997 │ \n",
"│ ) , │ \n",
"│ z =( │ \n",
"│ -2.0 , │ \n",
"│ -1.8 , │ \n",
"│ -1.6 , │ \n",
"│ -1.4 , │ \n",
"│ -1.2 , │ \n",
"│ -1.0 , │ \n",
"│ -0.7999999999999998 , │ \n",
"│ -0.5999999999999999 , │ \n",
"│ -0.3999999999999999 , │ \n",
"│ -0.19999999999999996 , │ \n",
"│ 0.0 , │ \n",
"│ 0.20000000000000018 , │ \n",
"│ 0.40000000000000036 , │ \n",
"│ 0.6000000000000001 , │ \n",
"│ 0.8000000000000003 , │ \n",
"│ 1.0 , │ \n",
"│ 1.2000000000000002 , │ \n",
"│ 1.4000000000000004 , │ \n",
"│ 1.6 , │ \n",
"│ 1.8000000000000003 , │ \n",
"│ 2.0 │ \n",
"│ ) , │ \n",
"│ type ='Coords' │ \n",
"│ ) , │ \n",
"│ type ='Grid' │ \n",
"│ ) │ \n",
"│ grid_spec = GridSpec ( │ \n",
"│ grid_x =UniformGrid ( type ='UniformGrid' , dl =0.2 ) , │ \n",
"│ grid_y =UniformGrid ( type ='UniformGrid' , dl =0.2 ) , │ \n",
"│ grid_z =UniformGrid ( type ='UniformGrid' , dl =0.2 ) , │ \n",
"│ wavelength =None , │ \n",
"│ override_structures =() , │ \n",
"│ type ='GridSpec' │ \n",
"│ ) │ \n",
"│ medium = Medium ( │ \n",
"│ name =None , │ \n",
"│ frequency_range =None , │ \n",
"│ type ='Medium' , │ \n",
"│ permittivity =1.0 , │ \n",
"│ conductivity =0.0 │ \n",
"│ ) │ \n",
"│ medium_map = { │ \n",
"│ Medium ( name =None , frequency_range =None , type ='Medium' , permittivity =1.0 , │ \n",
"│ conductivity =0.0 ) : 0 , │ \n",
"│ Medium ( name =None , frequency_range =None , type ='Medium' , permittivity =2.0 , │ \n",
"│ conductivity =0.0 ) : 1 │ \n",
"│ } │ \n",
"│ mediums = [ │ \n",
"│ Medium ( │ \n",
"│ name =None , │ \n",
"│ frequency_range =None , │ \n",
"│ type ='Medium' , │ \n",
"│ permittivity =1.0 , │ \n",
"│ conductivity =0.0 │ \n",
"│ ) , │ \n",
"│ Medium ( │ \n",
"│ name =None , │ \n",
"│ frequency_range =None , │ \n",
"│ type ='Medium' , │ \n",
"│ permittivity =2.0 , │ \n",
"│ conductivity =0.0 │ \n",
"│ ) │ \n",
"│ ] │ \n",
"│ monitors = ( │ \n",
"│ FieldMonitor ( │ \n",
"│ type ='FieldMonitor' , │ \n",
"│ center =( 1.0 , 0.0 , 0.0 ) , │ \n",
"│ size =( inf, inf, 0.0 ) , │ \n",
"│ name ='fields_at_150THz' , │ \n",
"│ freqs =( 150000000000000.0 ,) , │ \n",
"│ apodization =ApodizationSpec ( │ \n",
"│ start =None , │ \n",
"│ end =None , │ \n",
"│ width =None , │ \n",
"│ type ='ApodizationSpec' │ \n",
"│ ) , │ \n",
"│ fields =( 'Ex' , 'Ey' , 'Hz' ) , │ \n",
"│ interval_space =( 1 , 1 , 1 ) , │ \n",
"│ colocate =False │ \n",
"│ ) , │ \n",
"│ FluxTimeMonitor ( │ \n",
"│ type ='FluxTimeMonitor' , │ \n",
"│ center =( 1.0 , 0.0 , 0.0 ) , │ \n",
"│ size =( inf, inf, 0.0 ) , │ \n",
"│ name ='flux_over_time' , │ \n",
"│ start =1e-13 , │ \n",
"│ stop =3e-13 , │ \n",
"│ interval =5 , │ \n",
"│ normal_dir ='+' , │ \n",
"│ exclude_surfaces =None │ \n",
"│ ) │ \n",
"│ ) │ \n",
"│ normalize_index = 0 │ \n",
"│ num_cells = 17600 │ \n",
"│ num_pml_layers = [[ 0 , 0 ] , [ 12 , 12 ] , [ 0 , 0 ]] │ \n",
"│ num_time_steps = 2624 │ \n",
"│ nyquist_step = 5 │ \n",
"│ plot_params = PlotParams ( │ \n",
"│ alpha =1.0 , │ \n",
"│ edgecolor =None , │ \n",
"│ facecolor =None , │ \n",
"│ fill =True , │ \n",
"│ hatch =None , │ \n",
"│ linewidth =1.0 , │ \n",
"│ type ='PlotParams' │ \n",
"│ ) │ \n",
"│ pml_thicknesses = [( 0.0 , 0.0 ) , ( 2.3999999999999995 , 2.399999999999997 ) , ( 0.0 , 0.0 )] │ \n",
"│ run_time = 1e-12 │ \n",
"│ shutoff = 1e-05 │ \n",
"│ simulation_geometry = Box ( │ \n",
"│ type ='Box' , │ \n",
"│ center =( 0.0 , -1.3322676295501878e-15 , 0.0 ) , │ \n",
"│ size =( 4.0 , 8.799999999999997 , 4.0 ) │ \n",
"│ ) │ \n",
"│ size = ( 4.0 , 4.0 , 4.0 ) │ \n",
"│ sources = ( │ \n",
"│ UniformCurrentSource ( │ \n",
"│ type ='UniformCurrentSource' , │ \n",
"│ center =( 0.0 , 0.0 , 0.0 ) , │ \n",
"│ size =( 0.0 , 0.0 , 0.0 ) , │ \n",
"│ source_time =GaussianPulse ( │ \n",
"│ amplitude =1.0 , │ \n",
"│ phase =0.0 , │ \n",
"│ type ='GaussianPulse' , │ \n",
"│ freq0 =150000000000000.0 , │ \n",
"│ fwidth =10000000000000.0 , │ \n",
"│ offset =5.0 │ \n",
"│ ) , │ \n",
"│ name =None , │ \n",
"│ polarization ='Ez' │ \n",
"│ ) , │ \n",
"│ ) │ \n",
"│ structures = ( │ \n",
"│ Structure ( │ \n",
"│ geometry =Box ( type ='Box' , center =( 0.0 , 0.0 , 0.0 ) , size =( 1.0 , 1.0 , 1.0 )) , │ \n",
"│ name =None , │ \n",
"│ type ='Structure' , │ \n",
"│ medium =Medium ( │ \n",
"│ name =None , │ \n",
"│ frequency_range =None , │ \n",
"│ type ='Medium' , │ \n",
"│ permittivity =2.0 , │ \n",
"│ conductivity =0.0 │ \n",
"│ ) │ \n",
"│ ) , │ \n",
"│ ) │ \n",
"│ subpixel = True │ \n",
"│ symmetry = ( 0 , 0 , 0 ) │ \n",
"│ tmesh = array ([ 0.00000000e+00 , 3.81314974e-16 , 7.62629947e-16 , ... , │ \n",
"│ 9.99426546e-13 , 9.99807861e-13 , 1.00018918e-12 ]) │ \n",
"│ type = 'Simulation' │ \n",
"│ version = '1.9.0rc1' │ \n",
"│ wvl_mat_min = 1.413235200620076 │ \n",
"│ zero_dims = [] │ \n",
"╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ \n",
" \n"
],
"text/plain": [
"\u001b[34m╭─\u001b[0m\u001b[34m──────────────────────────────\u001b[0m\u001b[34m \u001b[0m\u001b[1;34m<\u001b[0m\u001b[1;95mclass\u001b[0m\u001b[39m \u001b[0m\u001b[32m'tidy3d.components.simulation.Simulation'\u001b[0m\u001b[1;34m>\u001b[0m\u001b[34m \u001b[0m\u001b[34m──────────────────────────────\u001b[0m\u001b[34m─╮\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[36mContains all information about Tidy3d simulation.\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────╮\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[1;35mSimulation\u001b[0m\u001b[1m(\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'Simulation'\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[33msize\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m4.0\u001b[0m, \u001b[1;36m4.0\u001b[0m, \u001b[1;36m4.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[33mrun_time\u001b[0m=\u001b[1;36m1e\u001b[0m\u001b[1;36m-12\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[33mmedium\u001b[0m=\u001b[1;35mMedium\u001b[0m\u001b[1m(\u001b[0m\u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mfrequency_range\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mtype\u001b[0m=\u001b[32m'Medium'\u001b[0m, \u001b[33mpermittivity\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[33mconductivity\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[33msymmetry\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[33mstructures\u001b[0m=\u001b[1m(\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[1;35mStructure\u001b[0m\u001b[1m(\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mgeometry\u001b[0m=\u001b[1;35mBox\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'Box'\u001b[0m, \u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[33msize\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m1.0\u001b[0m, \u001b[1;36m1.0\u001b[0m, \u001b[1;36m1.0\u001b[0m\u001b[1m)\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'Structure'\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mmedium\u001b[0m=\u001b[1;35mMedium\u001b[0m\u001b[1m(\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[33mfrequency_range\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'Medium'\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[33mpermittivity\u001b[0m=\u001b[1;36m2\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[33mconductivity\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[1m)\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[33msources\u001b[0m=\u001b[1m(\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[1;35mUniformCurrentSource\u001b[0m\u001b[1m(\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'UniformCurrentSource'\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33msize\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33msource_time\u001b[0m=\u001b[1;35mGaussianPulse\u001b[0m\u001b[1m(\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[33mamplitude\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[33mphase\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'GaussianPulse'\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[33mfreq0\u001b[0m=\u001b[1;36m150000000000000\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[33mfwidth\u001b[0m=\u001b[1;36m10000000000000\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[33moffset\u001b[0m=\u001b[1;36m5\u001b[0m\u001b[1;36m.0\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mpolarization\u001b[0m=\u001b[32m'Ez'\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[33mboundary_spec\u001b[0m=\u001b[1;35mBoundarySpec\u001b[0m\u001b[1m(\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[33mx\u001b[0m=\u001b[1;35mBoundary\u001b[0m\u001b[1m(\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mplus\u001b[0m=\u001b[1;35mPeriodic\u001b[0m\u001b[1m(\u001b[0m\u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mtype\u001b[0m=\u001b[32m'Periodic'\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mminus\u001b[0m=\u001b[1;35mPeriodic\u001b[0m\u001b[1m(\u001b[0m\u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mtype\u001b[0m=\u001b[32m'Periodic'\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'Boundary'\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[33my\u001b[0m=\u001b[1;35mBoundary\u001b[0m\u001b[1m(\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mplus\u001b[0m=\u001b[1;35mPML\u001b[0m\u001b[1m(\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'PML'\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[33mnum_layers\u001b[0m=\u001b[1;36m12\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[33mparameters\u001b[0m=\u001b[1;35mPMLParams\u001b[0m\u001b[1m(\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[33msigma_order\u001b[0m=\u001b[1;36m3\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[33msigma_min\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[33msigma_max\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1;36m.5\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'PMLParams'\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[33mkappa_order\u001b[0m=\u001b[1;36m3\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[33mkappa_min\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[33mkappa_max\u001b[0m=\u001b[1;36m3\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[33malpha_order\u001b[0m=\u001b[1;36m1\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[33malpha_min\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[33malpha_max\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[1m)\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mminus\u001b[0m=\u001b[1;35mPML\u001b[0m\u001b[1m(\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'PML'\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[33mnum_layers\u001b[0m=\u001b[1;36m12\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[33mparameters\u001b[0m=\u001b[1;35mPMLParams\u001b[0m\u001b[1m(\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[33msigma_order\u001b[0m=\u001b[1;36m3\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[33msigma_min\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[33msigma_max\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1;36m.5\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'PMLParams'\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[33mkappa_order\u001b[0m=\u001b[1;36m3\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[33mkappa_min\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[33mkappa_max\u001b[0m=\u001b[1;36m3\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[33malpha_order\u001b[0m=\u001b[1;36m1\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[33malpha_min\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ │ \u001b[0m\u001b[33malpha_max\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ │ \u001b[0m\u001b[1m)\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'Boundary'\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[33mz\u001b[0m=\u001b[1;35mBoundary\u001b[0m\u001b[1m(\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mplus\u001b[0m=\u001b[1;35mPeriodic\u001b[0m\u001b[1m(\u001b[0m\u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mtype\u001b[0m=\u001b[32m'Periodic'\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mminus\u001b[0m=\u001b[1;35mPeriodic\u001b[0m\u001b[1m(\u001b[0m\u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mtype\u001b[0m=\u001b[32m'Periodic'\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'Boundary'\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'BoundarySpec'\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[33mmonitors\u001b[0m=\u001b[1m(\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[1;35mFieldMonitor\u001b[0m\u001b[1m(\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'FieldMonitor'\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m1.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33msize\u001b[0m=\u001b[1m(\u001b[0minf, inf, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mname\u001b[0m=\u001b[32m'fields_at_150THz'\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mfreqs\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m150000000000000.0\u001b[0m,\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mapodization\u001b[0m=\u001b[1;35mApodizationSpec\u001b[0m\u001b[1m(\u001b[0m\u001b[33mstart\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mend\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mwidth\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mtype\u001b[0m=\u001b[32m'ApodizationSpec'\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mfields\u001b[0m=\u001b[1m(\u001b[0m\u001b[32m'Ex'\u001b[0m, \u001b[32m'Ey'\u001b[0m, \u001b[32m'Hz'\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33minterval_space\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m1\u001b[0m, \u001b[1;36m1\u001b[0m, \u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mcolocate\u001b[0m=\u001b[3;91mFalse\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[1;35mFluxTimeMonitor\u001b[0m\u001b[1m(\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'FluxTimeMonitor'\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m1.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33msize\u001b[0m=\u001b[1m(\u001b[0minf, inf, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mname\u001b[0m=\u001b[32m'flux_over_time'\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mstart\u001b[0m=\u001b[1;36m1e\u001b[0m\u001b[1;36m-13\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mstop\u001b[0m=\u001b[1;36m3e\u001b[0m\u001b[1;36m-13\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33minterval\u001b[0m=\u001b[1;36m5\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mnormal_dir\u001b[0m=\u001b[32m'+'\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ │ \u001b[0m\u001b[33mexclude_surfaces\u001b[0m=\u001b[3;35mNone\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[1m)\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[33mgrid_spec\u001b[0m=\u001b[1;35mGridSpec\u001b[0m\u001b[1m(\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[33mgrid_x\u001b[0m=\u001b[1;35mUniformGrid\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'UniformGrid'\u001b[0m, \u001b[33mdl\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.2\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[33mgrid_y\u001b[0m=\u001b[1;35mUniformGrid\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'UniformGrid'\u001b[0m, \u001b[33mdl\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.2\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[33mgrid_z\u001b[0m=\u001b[1;35mUniformGrid\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'UniformGrid'\u001b[0m, \u001b[33mdl\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.2\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[33mwavelength\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[33moverride_structures\u001b[0m=\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ │ \u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'GridSpec'\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[1m)\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[33mshutoff\u001b[0m=\u001b[1;36m1e\u001b[0m\u001b[1;36m-05\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[33msubpixel\u001b[0m=\u001b[3;92mTrue\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[33mnormalize_index\u001b[0m=\u001b[1;36m0\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[33mcourant\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.99\u001b[0m, \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[2;32m│ \u001b[0m\u001b[33mversion\u001b[0m=\u001b[32m'1.9.0rc1'\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m│\u001b[0m \u001b[1m)\u001b[0m \u001b[32m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[32m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mbackground_structure\u001b[0m = \u001b[1;35mStructure\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mgeometry\u001b[0m=\u001b[1;35mBox\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'Box'\u001b[0m, \u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[33msize\u001b[0m=\u001b[1m(\u001b[0minf, inf, inf\u001b[1m)\u001b[0m\u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'Structure'\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mmedium\u001b[0m=\u001b[1;35mMedium\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mfrequency_range\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'Medium'\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mpermittivity\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mconductivity\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mboundary_spec\u001b[0m = \u001b[1;35mBoundarySpec\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mx\u001b[0m=\u001b[1;35mBoundary\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mplus\u001b[0m=\u001b[1;35mPeriodic\u001b[0m\u001b[1m(\u001b[0m\u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mtype\u001b[0m=\u001b[32m'Periodic'\u001b[0m\u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mminus\u001b[0m=\u001b[1;35mPeriodic\u001b[0m\u001b[1m(\u001b[0m\u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mtype\u001b[0m=\u001b[32m'Periodic'\u001b[0m\u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'Boundary'\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33my\u001b[0m=\u001b[1;35mBoundary\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mplus\u001b[0m=\u001b[1;35mPML\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'PML'\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mnum_layers\u001b[0m=\u001b[1;36m12\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mparameters\u001b[0m=\u001b[1;35mPMLParams\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33msigma_order\u001b[0m=\u001b[1;36m3\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33msigma_min\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33msigma_max\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1;36m.5\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'PMLParams'\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mkappa_order\u001b[0m=\u001b[1;36m3\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mkappa_min\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mkappa_max\u001b[0m=\u001b[1;36m3\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33malpha_order\u001b[0m=\u001b[1;36m1\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33malpha_min\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33malpha_max\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mminus\u001b[0m=\u001b[1;35mPML\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'PML'\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mnum_layers\u001b[0m=\u001b[1;36m12\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mparameters\u001b[0m=\u001b[1;35mPMLParams\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33msigma_order\u001b[0m=\u001b[1;36m3\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33msigma_min\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33msigma_max\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1;36m.5\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'PMLParams'\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mkappa_order\u001b[0m=\u001b[1;36m3\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mkappa_min\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mkappa_max\u001b[0m=\u001b[1;36m3\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33malpha_order\u001b[0m=\u001b[1;36m1\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33malpha_min\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33malpha_max\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'Boundary'\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mz\u001b[0m=\u001b[1;35mBoundary\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mplus\u001b[0m=\u001b[1;35mPeriodic\u001b[0m\u001b[1m(\u001b[0m\u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mtype\u001b[0m=\u001b[32m'Periodic'\u001b[0m\u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mminus\u001b[0m=\u001b[1;35mPeriodic\u001b[0m\u001b[1m(\u001b[0m\u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mtype\u001b[0m=\u001b[32m'Periodic'\u001b[0m\u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'Boundary'\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'BoundarySpec'\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mbounding_box\u001b[0m = \u001b[1;35mBox\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'Box'\u001b[0m, \u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[33msize\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m4.0\u001b[0m, \u001b[1;36m4.0\u001b[0m, \u001b[1;36m4.0\u001b[0m\u001b[1m)\u001b[0m\u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mbounds\u001b[0m = \u001b[1m(\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m-2.0\u001b[0m, \u001b[1;36m-2.0\u001b[0m, \u001b[1;36m-2.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[1m(\u001b[0m\u001b[1;36m2.0\u001b[0m, \u001b[1;36m2.0\u001b[0m, \u001b[1;36m2.0\u001b[0m\u001b[1m)\u001b[0m\u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mbounds_pml\u001b[0m = \u001b[1m(\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m-2.0\u001b[0m, \u001b[1;36m-4.3999999999999995\u001b[0m, \u001b[1;36m-2.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[1m(\u001b[0m\u001b[1;36m2.0\u001b[0m, \u001b[1;36m4.399999999999997\u001b[0m, \u001b[1;36m2.0\u001b[0m\u001b[1m)\u001b[0m\u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mcenter\u001b[0m = \u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mcomplex_fields\u001b[0m = \u001b[3;91mFalse\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mcourant\u001b[0m = \u001b[1;36m0.99\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mcustom_datasets\u001b[0m = \u001b[1m[\u001b[0m\u001b[1m]\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mdt\u001b[0m = \u001b[1;36m3.8131497373958257e-16\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mfrequency_range\u001b[0m = \u001b[1m(\u001b[0m\u001b[1;36m110000000000000.0\u001b[0m, \u001b[1;36m190000000000000.0\u001b[0m\u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mgeometry\u001b[0m = \u001b[1;35mBox\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'Box'\u001b[0m, \u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[33msize\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m4.0\u001b[0m, \u001b[1;36m4.0\u001b[0m, \u001b[1;36m4.0\u001b[0m\u001b[1m)\u001b[0m\u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mgrid\u001b[0m = \u001b[1;35mGrid\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mboundaries\u001b[0m=\u001b[1;35mCoords\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mx\u001b[0m=\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-2.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-1.8\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-1.6\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-1.4\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-1.2\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-1.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-0.7999999999999998\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-0.5999999999999999\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-0.3999999999999999\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-0.19999999999999996\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m0.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m0.20000000000000018\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m0.40000000000000036\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m0.6000000000000001\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m0.8000000000000003\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m1.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m1.2000000000000002\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m1.4000000000000004\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m1.6\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m1.8000000000000003\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m2.0\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33my\u001b[0m=\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-4.3999999999999995\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-4.199999999999999\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-3.9999999999999996\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-3.8\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-3.5999999999999996\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-3.3999999999999995\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-3.1999999999999997\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-3.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-2.8\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-2.5999999999999996\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-2.4\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-2.2\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-2.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-1.8\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-1.6\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-1.4\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-1.2\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-1.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-0.7999999999999998\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-0.5999999999999999\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-0.3999999999999999\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-0.19999999999999996\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m0.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m0.20000000000000018\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m0.40000000000000036\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m0.6000000000000001\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m0.8000000000000003\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m1.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m1.2000000000000002\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m1.4000000000000004\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m1.6\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m1.8000000000000003\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m2.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m2.1999999999999997\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m2.3999999999999995\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m2.599999999999999\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m2.799999999999999\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m2.9999999999999987\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m3.1999999999999984\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m3.399999999999998\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m3.599999999999998\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m3.7999999999999976\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m3.9999999999999973\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m4.1999999999999975\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m4.399999999999997\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mz\u001b[0m=\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-2.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-1.8\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-1.6\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-1.4\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-1.2\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-1.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-0.7999999999999998\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-0.5999999999999999\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-0.3999999999999999\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m-0.19999999999999996\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m0.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m0.20000000000000018\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m0.40000000000000036\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m0.6000000000000001\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m0.8000000000000003\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m1.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m1.2000000000000002\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m1.4000000000000004\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m1.6\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m1.8000000000000003\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m2.0\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'Coords'\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'Grid'\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mgrid_spec\u001b[0m = \u001b[1;35mGridSpec\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mgrid_x\u001b[0m=\u001b[1;35mUniformGrid\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'UniformGrid'\u001b[0m, \u001b[33mdl\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.2\u001b[0m\u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mgrid_y\u001b[0m=\u001b[1;35mUniformGrid\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'UniformGrid'\u001b[0m, \u001b[33mdl\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.2\u001b[0m\u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mgrid_z\u001b[0m=\u001b[1;35mUniformGrid\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'UniformGrid'\u001b[0m, \u001b[33mdl\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.2\u001b[0m\u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mwavelength\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33moverride_structures\u001b[0m=\u001b[1m(\u001b[0m\u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'GridSpec'\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mmedium\u001b[0m = \u001b[1;35mMedium\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mfrequency_range\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'Medium'\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mpermittivity\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mconductivity\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mmedium_map\u001b[0m = \u001b[1m{\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;35mMedium\u001b[0m\u001b[1m(\u001b[0m\u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mfrequency_range\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mtype\u001b[0m=\u001b[32m'Medium'\u001b[0m, \u001b[33mpermittivity\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mconductivity\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m\u001b[1m)\u001b[0m: \u001b[1;36m0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;35mMedium\u001b[0m\u001b[1m(\u001b[0m\u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mfrequency_range\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[33mtype\u001b[0m=\u001b[32m'Medium'\u001b[0m, \u001b[33mpermittivity\u001b[0m=\u001b[1;36m2\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mconductivity\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m\u001b[1m)\u001b[0m: \u001b[1;36m1\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m}\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mmediums\u001b[0m = \u001b[1m[\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;35mMedium\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mfrequency_range\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'Medium'\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mpermittivity\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mconductivity\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;35mMedium\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mfrequency_range\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'Medium'\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mpermittivity\u001b[0m=\u001b[1;36m2\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mconductivity\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m]\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mmonitors\u001b[0m = \u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;35mFieldMonitor\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'FieldMonitor'\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m1.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33msize\u001b[0m=\u001b[1m(\u001b[0minf, inf, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mname\u001b[0m=\u001b[32m'fields_at_150THz'\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mfreqs\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m150000000000000.0\u001b[0m,\u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mapodization\u001b[0m=\u001b[1;35mApodizationSpec\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mstart\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mend\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mwidth\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'ApodizationSpec'\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mfields\u001b[0m=\u001b[1m(\u001b[0m\u001b[32m'Ex'\u001b[0m, \u001b[32m'Ey'\u001b[0m, \u001b[32m'Hz'\u001b[0m\u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33minterval_space\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m1\u001b[0m, \u001b[1;36m1\u001b[0m, \u001b[1;36m1\u001b[0m\u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mcolocate\u001b[0m=\u001b[3;91mFalse\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;35mFluxTimeMonitor\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'FluxTimeMonitor'\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m1.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33msize\u001b[0m=\u001b[1m(\u001b[0minf, inf, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mname\u001b[0m=\u001b[32m'flux_over_time'\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mstart\u001b[0m=\u001b[1;36m1e\u001b[0m\u001b[1;36m-13\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mstop\u001b[0m=\u001b[1;36m3e\u001b[0m\u001b[1;36m-13\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33minterval\u001b[0m=\u001b[1;36m5\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mnormal_dir\u001b[0m=\u001b[32m'+'\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mexclude_surfaces\u001b[0m=\u001b[3;35mNone\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mnormalize_index\u001b[0m = \u001b[1;36m0\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mnum_cells\u001b[0m = \u001b[1;36m17600\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mnum_pml_layers\u001b[0m = \u001b[1m[\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m\u001b[1m]\u001b[0m, \u001b[1m[\u001b[0m\u001b[1;36m12\u001b[0m, \u001b[1;36m12\u001b[0m\u001b[1m]\u001b[0m, \u001b[1m[\u001b[0m\u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m\u001b[1m]\u001b[0m\u001b[1m]\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mnum_time_steps\u001b[0m = \u001b[1;36m2624\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mnyquist_step\u001b[0m = \u001b[1;36m5\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mplot_params\u001b[0m = \u001b[1;35mPlotParams\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33malpha\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33medgecolor\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mfacecolor\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mfill\u001b[0m=\u001b[3;92mTrue\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mhatch\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mlinewidth\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'PlotParams'\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mpml_thicknesses\u001b[0m = \u001b[1m[\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[1m(\u001b[0m\u001b[1;36m2.3999999999999995\u001b[0m, \u001b[1;36m2.399999999999997\u001b[0m\u001b[1m)\u001b[0m, \u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m\u001b[1m]\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mrun_time\u001b[0m = \u001b[1;36m1e-12\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mshutoff\u001b[0m = \u001b[1;36m1e-05\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33msimulation_geometry\u001b[0m = \u001b[1;35mBox\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'Box'\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m-1.3322676295501878e-15\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33msize\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m4.0\u001b[0m, \u001b[1;36m8.799999999999997\u001b[0m, \u001b[1;36m4.0\u001b[0m\u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33msize\u001b[0m = \u001b[1m(\u001b[0m\u001b[1;36m4.0\u001b[0m, \u001b[1;36m4.0\u001b[0m, \u001b[1;36m4.0\u001b[0m\u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33msources\u001b[0m = \u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;35mUniformCurrentSource\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'UniformCurrentSource'\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33msize\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33msource_time\u001b[0m=\u001b[1;35mGaussianPulse\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mamplitude\u001b[0m=\u001b[1;36m1\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mphase\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'GaussianPulse'\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mfreq0\u001b[0m=\u001b[1;36m150000000000000\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mfwidth\u001b[0m=\u001b[1;36m10000000000000\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33moffset\u001b[0m=\u001b[1;36m5\u001b[0m\u001b[1;36m.0\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mpolarization\u001b[0m=\u001b[32m'Ez'\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mstructures\u001b[0m = \u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;35mStructure\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mgeometry\u001b[0m=\u001b[1;35mBox\u001b[0m\u001b[1m(\u001b[0m\u001b[33mtype\u001b[0m=\u001b[32m'Box'\u001b[0m, \u001b[33mcenter\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m, \u001b[1;36m0.0\u001b[0m\u001b[1m)\u001b[0m, \u001b[33msize\u001b[0m=\u001b[1m(\u001b[0m\u001b[1;36m1.0\u001b[0m, \u001b[1;36m1.0\u001b[0m, \u001b[1;36m1.0\u001b[0m\u001b[1m)\u001b[0m\u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'Structure'\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mmedium\u001b[0m=\u001b[1;35mMedium\u001b[0m\u001b[1m(\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mname\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mfrequency_range\u001b[0m=\u001b[3;35mNone\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mtype\u001b[0m=\u001b[32m'Medium'\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mpermittivity\u001b[0m=\u001b[1;36m2\u001b[0m\u001b[1;36m.0\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[33mconductivity\u001b[0m=\u001b[1;36m0\u001b[0m\u001b[1;36m.0\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33msubpixel\u001b[0m = \u001b[3;92mTrue\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33msymmetry\u001b[0m = \u001b[1m(\u001b[0m\u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m\u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mtmesh\u001b[0m = \u001b[1;35marray\u001b[0m\u001b[1m(\u001b[0m\u001b[1m[\u001b[0m\u001b[1;36m0.00000000e+00\u001b[0m, \u001b[1;36m3.81314974e-16\u001b[0m, \u001b[1;36m7.62629947e-16\u001b[0m, \u001b[33m...\u001b[0m, \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[1;36m9.99426546e-13\u001b[0m, \u001b[1;36m9.99807861e-13\u001b[0m, \u001b[1;36m1.00018918e-12\u001b[0m\u001b[1m]\u001b[0m\u001b[1m)\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mtype\u001b[0m = \u001b[32m'Simulation'\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mversion\u001b[0m = \u001b[32m'1.9.0rc1'\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mwvl_mat_min\u001b[0m = \u001b[1;36m1.413235200620076\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m│\u001b[0m \u001b[3;33mzero_dims\u001b[0m = \u001b[1m[\u001b[0m\u001b[1m]\u001b[0m \u001b[34m│\u001b[0m\n",
"\u001b[34m╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# print the log, which is stored as an attribute rather than as its own file\n",
"print(sim_data.log)\n",
"\n",
"# get a copy of the original Simulation, so it also doesnt need to be stored separately\n",
"sim_data.simulation.help()\n"
]
},
{
"cell_type": "markdown",
"id": "f33815ce",
"metadata": {},
"source": [
"### Monitor Data\n",
"\n",
"Data for each monitor is stored as its own [td.MonitorData](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.components.data.MonitorData.html) instance.\n",
"\n",
"Whereas before we needed to access data using `sim.data(monitor)`, now we can access the data by `monitor.name` from the [SimulationData](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.SimulationData.html) using square brackets.\n",
"\n",
"The data are stored as [xarray](http://xarray.pydata.org/en/stable/) objects, which means they work similar to numpy arrays but provide many additional useful features. For more details refer to the [tutorial on data visualization](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/notebooks/VizData.html)."
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "5a1d45b1",
"metadata": {
"execution": {
"iopub.execute_input": "2023-02-03T01:47:01.109017Z",
"iopub.status.busy": "2023-02-03T01:47:01.108819Z",
"iopub.status.idle": "2023-02-03T01:47:01.225960Z",
"shell.execute_reply": "2023-02-03T01:47:01.225535Z"
},
"tags": []
},
"outputs": [
{
"data": {
"image/png": "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BLNnzzY8nsnH8eqrr8aXX36ZVs9Rb9KTz3ffffdhwYIFWLx4scH8e/7552v/P378eEyYMAEjRozA4sWLcdJJJyV1v7tDop9x6tSphkjCtGnTcOihh+Ivf/kL7rrrrt7ezQOiJ8fxySefxPjx4zF58mTD45l2HMeMGYOVK1eiqakJzz33HC6++GIsWbLEVvykC0Z8UkC/fv2wd+9ew2N79+5FUVERcnNzUVFRAafTablNv379UrmrB8SCBQtw2WWXYeHChVEhTDMlJSUYPXo0NmzYkKK9Sz6TJ0/W9r+vHEMgXEnxt7/9DRdddBE8Hk/MbTPlOF5zzTV45ZVXsGjRIgwcODDmtnbfR3GcxH8z6Vh25/MJHnjgAdx333148803MWHChJjbDh8+HBUVFWk9jj35jAK3242JEydq+5+JxxDo2Wdsa2vDggULErqxSPdx9Hg8GDlyJI488kjce++9OPzww/HII49YbpvO7yGFTwqYOnUq3nnnHcNjb731lnbH4vF4cOSRRxq2CYVCeOedd2zzo5nGM888g0svvRTPPPOModzSjtbWVmzcuBH9+/dPwd71DitXrtT2vy8cQ8GSJUuwYcOGhC606T6OqqrimmuuwYsvvoh3330Xw4YNi/uceN/HYcOGoV+/foZtmpubsXz58pQfy558PiBcDXPXXXfhv//9L4466qi42+/YsQP19fVpOY49/YwywWAQq1ev1vY/k44hcGCf8dlnn4XP58OFF14Yd9t0HkcrQqEQfD6f5e/S+j08IGt0ltLS0qJ+/vnn6ueff64CUB966CH1888/V7du3aqqqqreeuut6kUXXaRtv2nTJjUvL0/9+c9/rn711Vfqo48+qjqdTvW///2vts2CBQtUr9erzp8/X127dq16xRVXqCUlJeqePXsy/vM9/fTTqsvlUh999FF19+7d2r/GxkZtmxtvvFFdvHixunnzZvXDDz9UZ86cqVZUVKi1tbUp/3yq2v3P+PDDD6svvfSSun79enX16tXqz372M9XhcKhvv/22tk0mHUNV7f5nFFx44YXqlClTLF8z047jVVddpRYXF6uLFy82nHvt7e3aNhdddJF66623aj9/+OGHqsvlUh944AH1q6++UufMmaO63W519erV2jb33XefWlJSor788svqqlWr1O9+97vqsGHD1I6Ojoz/fPfdd5/q8XjU5557zvCclpYWVVXD58VNN92kLlu2TN28ebP69ttvq5MmTVJHjRqldnZ2pvTz9fQzzp07V33jjTfUjRs3qitWrFDPP/98NScnR12zZo22TaYcQ1Xt2WcUHHfccep5550X9XimHcdbb71VXbJkibp582Z11apV6q233qoqiqK++eabqqpm1veQwqcHiNJm87+LL75YVdVwieEJJ5wQ9ZwjjjhC9Xg86vDhw9V58+ZFve4f//hHdfDgwarH41EnT56sfvTRR73/YSzo7uc74YQTYm6vquHy/f79+6sej0cdMGCAet5556kbNmxI7QeT6O5nvP/++9URI0aoOTk5allZmTp9+nT13XffjXrdTDmGqtqz87SxsVHNzc1Vn3jiCcvXzLTjaPX5ABi+XyeccILhXFRVVV24cKE6evRo1ePxqOPGjVNfffVVw+9DoZD661//Wq2urla9Xq960kknqevWrUvBJzLSk883ZMgQy+fMmTNHVVVVbW9vV0855RS1srJSdbvd6pAhQ9TLL788bQK9J5/xuuuu075n1dXV6re//W31s88+M7xuphxDVe35efr111+rADTxIJNpx/HHP/6xOmTIENXj8aiVlZXqSSedZNjvTPoeKqqqqgcWMyKEEEIIOTigx4cQQgghWQOFDyGEEEKyBgofQgghhGQNFD6EEEIIyRoofAghhBCSNVD4EEIIISRroPAhhBBCSNZA4UMISRuLFy+GoihobGxM+XsrigJFUVBSUpKS99uyZYv2nkcccURK3pOQnvLee+/hjDPOQE1NDRRFwUsvvZT297vjjjtwyCGHID8/H6WlpZg5cyaWL1/e7fei8CGEpITp06fjuuuuMzw2bdo07N69G8XFxWnZp3nz5uGbb75JyXsNGjQIu3fvxo033piS9yPkQGhra8Phhx+ORx99NGPeb/To0fjTn/6E1atX44MPPsDQoUNxyimnYN++fd16L9eB7iwhhPQUj8eT1mnZJSUlqKqqSsl7OZ1O9OvXDwUFBSl5P0IOhNNOOw2nnXaa7e99Ph9++ctf4plnnkFjYyMOO+ww3H///Zg+fXqvvB8AXHDBBYafH3roITz55JNYtWoVTjrppITfixEfQkivc8kll2DJkiV45JFHtHTPli1bolJd8+fPR0lJCV555RWMGTMGeXl5+P73v4/29nY89dRTGDp0KEpLS3Ht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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"flux_data = sim_data[\"flux_over_time\"].flux\n",
"flux_data.plot()\n",
"plt.title(\"flux over time\")\n",
"plt.show()\n"
]
},
{
"cell_type": "markdown",
"id": "20f259c5",
"metadata": {},
"source": [
"For field data, we can further index by `fields` specified in the monitor, as follows."
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "9bad3d76",
"metadata": {
"execution": {
"iopub.execute_input": "2023-02-03T01:47:01.228565Z",
"iopub.status.busy": "2023-02-03T01:47:01.228379Z",
"iopub.status.idle": "2023-02-03T01:47:01.409749Z",
"shell.execute_reply": "2023-02-03T01:47:01.409330Z"
}
},
"outputs": [
{
"data": {
"image/png": "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u+++Q+vWrW1OhIiIyB0pgZu7mTJlCl577TVs377d4rJjf//737F//36b41o9p+iRRx7Bfffdh+TkZLRs2dK8vHv37nj44YdtToSIiIioLI4fP461a9cWWh4WFobr16/bHNemrhARERGIiIjAxYsXAQC1atUyt9muCPKMCl529vXRazK1uVGoxM81ypy/kJFfIBLnerZBJM7ltFyROOevZ4nEybiZIxLn2mnb/5L5M0NWmkgcV+NZRaZJbJXAv4vEkXr/RAbZfk2mPwv08RSJ4+epF4njoRdqMGT9wYsiSXw/55VToyIFmT5F7iY4OBjJycmIioqyWH706FHUrFnT5rhWvwNNJhNmz56NoKAg1K1bF3Xr1kVwcDDmzJkDk4knFhIREVlDZKK1mxVWjz32GCZPnoyUlBRomgaTyYQ9e/Zg0qRJGDp0qM1xrS7vX331VXz88ceYN28eOnXqBAD46aefMHPmTOTm5uL111+3ORkiIiL3omASqGjcrCbCG2+8gbFjx6J27dowGo1o2rQpjEYjHn/8cUybNs3muFYXRatWrcK///1v/POf/zQva9GiBWrWrIlnn32WRREREZEV3PWUent4eXnho48+wvTp03HixAlkZmaidevWaNiwoV1xrS6Kbt68icaNGxda3rhxY5vbahMRERFZq06dOqhTp45YPKuLopYtW+L999/HokWLLJa///77FmejERERUck40brsJk6ciDlz5qBKlSqYOHFiieu+++67Nu3D6qLorbfeQu/evfH999+bexTt27cPFy5cwNdff21TEkRERG7JjTtSW+vo0aMwGG6f2XzkyJFiLw5b1ovGFsXqoqhLly747bffsGTJEpw+fRoA0K9fPzz77LOoUaOGzYkQERG5I060Lpv33nvPfOWMuLg4h+zDpuYSNWrUqNATqrMNJugM9rUP0NleiFqQGjbNF+pTlJlvFIkj1ePDKPQCeXnI9D/xqSLTH6ZagzYicbKuJonEMebL9F/Se/mKxKkSJjNHQOr/S+r9I/V+lvp8SX3efcReH5EwIt/PWeXUp4jKrnXr1khOTkZYWBiio6Nx6NAhVKtWTXQfNhVFt27dwscff4xTp04BAJo2bYoRI0YgJCRENDkiIqLKTIGHz8oqODgYiYmJCAsLw7lz5xzSG9Hqomj37t146KGHEBQUhHbt2gEAFi1ahNmzZ+M///kPOnfuLJ4kERFRZWWSqIrcoLLq378/unTpgsjISGiahnbt2kGvL7or+x9//GHTPqwuisaOHYtHH30US5cuNSdjNBrx7LPPYuzYsTh+/LhNiRAREbkbBZnDhpW/JAI+/PBD9OvXDwkJCXj++ecxevRoBAQEiO7D6qIoISEBn3/+uUV1ptfrMXHiRHzyySeiyREREZHznDt3DnPmzMEPP/yAlJQU1KhRA0888QReffVVi6vT/1XXrl2xa9cui2VPP/00li1bZlc+vXr1AgDEx8dj/Pjxzi+K2rRpg1OnTqFRo0YWy0+dOsU+RURERNZQQofPHOT06dMwmUz44IMP0KBBA5w4cQKjR49GVlYW5s+fX+K2o0ePxuzZs833/fz8xPJasWKFWKw/s7ooev755zF+/HgkJCTg3nvvBQDs378fS5Yswbx58/DLL7+Y123RooVcpkRERJWMAmAUKIocVVb16tXLPDoDANHR0Thz5gyWLl1aalHk5+eHiIgIB2XmGFYXRYMGDQIAvPzyy0U+pmkalFLQNA1Go8zpnkRERJWV1EiRwWBAenq6xTJvb294e3uLxL8jLS2tTGebr1mzBqtXr0ZERAQeeughTJ8+XXS0yBGsLooSExMdkUe5up5lQI4u364YOjs6Zv6Z2IdBqP9JtkGmkJV6Xv4+NnWNKKRutSoicaT6zPhUKf5YvDVya4eKxCmws2/XHR6eUv2gZF6fkBCZvklS7x+p97PU50vq8349WyQMPIUawEl8P2dlFQhkUr42bNiAvn37WiyLjY3FzJkzxfaRkJCAxYsXlzpK9Pjjj6Nu3bqoUaMGfvnlF0yePBlnzpzBpk2bxHJxBKs/oXXr1nVEHkRERG5J5OwzBQwcOBBLly61WF7cKNGUKVPw5ptvlhjz1KlTFheAv3TpEnr16oUBAwZg9OjRJW771FNPmf/dvHlzREZGonv37jh79izq169f2tNxGpk/W4iIiMhqSimxkT9PT0/zZTBK8+KLL2L48OElrhMdHW3+9+XLl9GtWzd07NgRH374odW5dejQAcDtkSYWRURERFQkiYnW1goNDUVoaNkOv1+6dAndunVD27ZtsWLFCuh01h8mP3bsGAAgMjLS6m3Lk8wEACIiIqp0Ll26hK5du6JOnTqYP38+rl27hpSUFKSkpFis07hxYxw8eBAAcPbsWcyZMwfx8fE4d+4ctm7diqFDh6Jz584uf1Y6R4qIiIicREHmwuCOGmvavn07EhISkJCQgFq1alnu838jXAaDAWfOnEF29u0Z915eXvj++++xcOFCZGVloXbt2ujfvz+mTZvmoCzlWF0UDRs2DKNGjeI1zoiIiASInNXqoENww4cPL3XuUb169cwFEgDUrl27UDfrisLqw2dpaWno0aMHGjZsiDfeeAOXLl1yRF5ERESV3u2RImX3zXV7YlcsVo8UbdmyBdeuXcOnn36KVatWITY2Fj169MCoUaPQp08feHp6OiJPUUlpOfA12nfkUGpinF6o35GrkXp9An1k3k8NI4q+krK1IoN9ROJk5sr0QMnOl+kzI9V/SS/UZ8bPS+b/S6ovkFQcTxsmqBZF6vN1K8fgUnGkSLw+OZlZApmUgQKMrGhchk2f0NDQUEycOBE///wzDhw4gAYNGmDIkCGoUaMGXnjhBfz+++/SeRIRERE5lF1/tiQnJ2P79u3Yvn079Ho9HnzwQRw/fhxNmzbFggULpHIkIiKqlKQOn5EMq8eEDQYDtm7dihUrVuC7775DixYtMGHCBDz++OPmplGbN2/GyJEj8cILL4gnTEREVHkokcPXrItkWF0URUZGwmQyYdCgQTh48CBatWpVaJ1u3bohODhYID0iIqLK685IEbkGq4uiBQsWYMCAAfDxKX7CaXBwcKW4cCwRERG5D6uLoiFDhjgiDyIiIvcjdPYZx5pksKM1ERGRk8gdPmNZJMEti6IjSanw8rOvT4yr9SmS6usS5CfTF0gqToCXzFu0qlD/rDpBviJxdEL/73qhNldS+UjNjZDq2yKVT26BSSROjkGmr1RGvkyfq7Rsmf5CUnHE+m4J/L/nZ2cKZFI2JomJ1gJ5EC8IS0RERATATUeKiIiIXIGC0Mgoh4pEsCgiIiJyFsVT8l0JiyIiIiInUVAic6BYVsngnCIiIiIicKSIiIjIqSTOPiMZLIqIiIiciM0bXYdbFkU/n70BD59cu2IYhfqW6D1kjmD6CPUFCg8u/vIt1qhbrYpInDrV/ETiBHoL9TvykXmdg31l8vESalSkg1CfIqGv5nyhRkWpOTL9fK5n54vEuSHUp+jSzRyROOdvZInEuZJq3/fpHblC/Y4kvp8LcmVem9IoqYnWrIpEcE4REREREdx0pIiIiMhVyJx9xqEiCSyKiIiInEQBMHKitctgUUREROQkCkqkKGL/RxksioiIiJxFcaTIlXCiNRERERE4UkREROQ0UnOKONYkwy2LouQ/rkPnlW1XDFOBTN8SnYeXSBzfAF+ROJlVZeJk5Mr0h5HiLdQPKkCo35HU8X+p/kJ6qTFjk0w+SugFyjPK9BO7lSvTPyfphn3fO3ecuJQmEudqSqZInPRbMn2TcjJk4kh8P5vyZXIpldThM1ZFItyyKCIiInIFciNFrIokcE4REREREThSRERE5FQ8+8x1VIiRonPnzmHUqFGIioqCr68v6tevj9jYWOTny8zrISIicgalbvcpsvfmyD5F9erVg6ZpFrd58+aVuE1ubi7Gjh2LatWqwd/fH/3798eVK1ccl6SQCjFSdPr0aZhMJnzwwQdo0KABTpw4gdGjRyMrKwvz5893dnpEREQ2qSgdrWfPno3Ro0eb7wcEBJS4/gsvvID//ve/2LhxI4KCgjBu3Dj069cPe/bscXSqdqkQRVGvXr3Qq1cv8/3o6GicOXMGS5cuZVFERETkYAEBAYiIiCjTumlpafj444+xdu1a/P3vfwcArFixAk2aNMH+/ftx7733OjJVu1SIw2dFSUtLQ0hISInr5OXlIT093eJGRETkMv53Sr7dh88cnOa8efNQrVo1tG7dGm+//TYKCopvuxIfHw+DwYAePXqYlzVu3Bh16tTBvn37HJypfSrESNFfJSQkYPHixaWOEs2dOxezZs0qtPzWHz9D8/C2KwejUJ8ivVCfIu+g6iJxcsOjROIUGIwicfILZPrMSA1PG4wycbKFXp+qPp4icTz1Mv2FpF4fqb5AyRl5InHOXpXp5/PzhVSRONeTM0Ti3Lwi87wyrySKxMlLuy4SR+L7WRXIvHdK3Q+AApFrnykYDIZCf/x7e3vD29u+37vnn38ebdq0QUhICPbu3YupU6ciOTkZ7777bpHrp6SkwMvLC8HBwRbLw8PDkZKSYlcujubUkaIpU6YUmrz119vp06cttrl06RJ69eqFAQMGWBzfLMrUqVORlpZmvl24cMGRT4eIiMgqd+YU2XsDgA0bNiAoKMjiNnfu3CL3a83v78SJE9G1a1e0aNECzzzzDN555x0sXrwYeXnlUziWJ6eOFL344osYPnx4ietER0eb/3358mV069YNHTt2xIcfflhqfIkKmYiIqCIYOHAgli5darGsuN9Aa39//6xDhw4oKCjAuXPn0KhRo0KPR0REID8/H6mpqRajRVeuXCnzvCRncWpRFBoaitDQ0DKte+nSJXTr1g1t27bFihUroNNV2OlQREREtyklcnhfAfD09ERgYGCZ1rfm9/evjh07Bp1Oh7CwsCIfb9u2LTw9PbFjxw70798fAHDmzBkkJSUhJibGpn2Wlwoxp+jSpUvo2rUr6tati/nz5+PatWvmx1y96iQiIiqOAmCUaDLkoJnW+/btw4EDB9CtWzcEBARg3759eOGFF/DEE0+gatWqAG7/Rnfv3h2ffPIJ2rdvj6CgIIwaNQoTJ05ESEgIAgMD8dxzzyEmJsalzzwDKkhRtH37diQkJCAhIQG1atWyeEzqwpFERETOIDVS5Aje3t5Yt24dZs6ciby8PERFReGFF17AxIkTzesYDAacOXMG2dn/d8HjBQsWQKfToX///sjLy0PPnj3xr3/9y0FZyqkQRdHw4cNLPfZJREREstq0aYP9+/eXuE69evUKDVD4+PhgyZIlWLJkiSPTE1chiiIiIqLKSKmK0dHaXbhlUZSbfh2aXqY/kL1kurEAhhyZfiPGvByZOPlS/Y5k+hTl5si80hdvZZe+UhnUquonEifIT6ZPkZeHzIkLUn2l0rJd6//r0rUskTip12TyuZVyQyROZopMf6GcWzLXtDLmy3z/SFDG8ru2psjhM04lEeGWRREREZErUFAwmmT+mCD7sSgiIiJyEqnDZxwnksFmP0RERETgSBEREZFTiUy05lCRCBZFRERETqKU0AVhBXIhFkVEREROJHWZD5ZFEjiniIiIiAgcKao0pPp75GXeEomDFJkwUn2TMlOricS5eUWmX81vvjIfPU9vmTh6vczfR0ajzKnFhrwCkTh5OTJxstNzReLkpsn0F8q5JfMBk/q8u1J/oYpGgXOKXAmLIiIiIifhKfmuhUURERGRE/EyH66Dc4qIiIiIwJEiIiIip5GaU8RLn8lgUUREROQsClAih89YFUlgUUREROQ0CibOKXIZnFNEREREBDcdKfIJrA7Nw9vZabgkTacXiWPMl+nrknUtSSSOVF+XNE8vkThSr7NUHJ1QHJPJKBJHuVgckyFfJk6BTBxlkukH5eHlKxJH7yHzuXAlqiAPmeW1L4kJQRxsEuGWRREREZErUEJzilgTyWBRRERE5EScU+Q6OKeIiIiICBwpIiIich4FKIkpYhxsEsGiiIiIyIlEJlqTCBZFRERETqKE+hQpDhWJYFFERETkLFIdrVkTiXDLoiisyT3QefnZFUOn00RykTrroMAg04+lIEemM0de5k2ROIasNJE4eZm3ROIY83JE4kj1q6GS6YT65+i9Zfr5ePkFysQJCBGJ4+0vE8fD118mjqdU3y37v5+N+dnI3COQDFUoblkUERERuQqZa5+RBBZFRERETqIAmDjR2mWwKCIiInIidrR2HWzeSERERAQWRURERM6jFJTJ/pujhori4uKgaVqRt0OHDhW7XdeuXQut/8wzzzgmSUE8fEZEROREMmchO6Yq6tixI5KTky2WTZ8+HTt27EC7du1K3Hb06NGYPXu2+b6fn31nfZcHFkVEREROouDaHa29vLwQERFhvm8wGPDll1/iueeeg6aV3PrAz8/PYtuKwC2LouimYfD0rWJXDC8PmSOP+QUSF70BsnMMInGy0mX6qGSmyvQ/ybol06co+8YlkTj5GTL9jvKF+i9V1n5HUv2FvKoEycQJqCoSx69aTZE4VarKPC//YB+ROFUCvUXi+Pl6isSR+H425GThrEAu5clgMCA9Pd1imbe3N7y9Zf5/AGDr1q24ceMGRowYUeq6a9aswerVqxEREYGHHnoI06dPd/nRIs4pIiIicpb/XRDW3hsUsGHDBgQFBVnc5s6dK5ruxx9/jJ49e6JWrVolrvf4449j9erV2LlzJ6ZOnYpPP/0UTzzxhGgujuCWI0VERESuQubaZ8DAgQOxdOlSi+XFjRJNmTIFb775ZokxT506hcaNG5vvX7x4Ed9++y02bNhQaj5PPfWU+d/NmzdHZGQkunfvjrNnz6J+/fqlbu8sLIqIiIicReraZwA8PT0RGFi2KRAvvvgihg8fXuI60dHRFvdXrFiBatWq4Z///KfVuXXo0AEAkJCQwKKIiIiIXEdoaChCQ0PLvL5SCitWrMDQoUPh6Wn93K9jx44BACIjI63etjxxThEREZHTuHafojt++OEHJCYm4sknnyz02KVLl9C4cWMcPHgQAHD27FnMmTMH8fHxOHfuHLZu3YqhQ4eic+fOaNGihWMTtRNHioiIiJykolz77OOPP0bHjh0t5hjdYTAYcObMGWRnZwO4fRr/999/j4ULFyIrKwu1a9dG//79MW3atPJO22os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j/79++PKlSvllDXw+uuvo2PHjvDz80NwcHCZthk+fDg0TbO49erVy7GJ/oUteSulMGPGDERGRsLX1xc9evTA77//7thE/+TmzZsYPHgwAgMDERwcjFGjRiEzM7PEbbp27VrotX7mmWccluOSJUtQr149+Pj4oEOHDjh48GCJ62/cuBGNGzeGj48Pmjdvjq+//tphuRXHmpxXrlxZ6PX08fEpx2yB3bt346GHHkKNGjWgaRq2bNlS6jZxcXFo06YNvL290aBBA6xcudLhef6ZtTnHxcUVep01TUNKSkq55Dt37lzcc889CAgIQFhYGPr27YszZ86Uup0rvJ/J+VgUCTh9+jRMJhM++OADnDx5EgsWLMCyZcvwyiuvlLjdCy+8gP/85z/YuHEjdu3ahcuXL6Nfv37llDWQn5+PAQMGYMyYMVZt16tXLyQnJ5tvn332mYMyLJoteb/11ltYtGgRli1bhgMHDqBKlSro2bMncnNzHZjp/xk8eDBOnjyJ7du346uvvsLu3bvx1FNPlbrd6NGjLV7rt956yyH5rV+/HhMnTkRsbCyOHDmCli1bomfPnrh69WqR6+/duxeDBg3CqFGjcPToUfTt2xd9+/bFiRMnHJKfRM7A7Q7Gf349z58/X275AkBWVhZatmyJJUuWlGn9xMRE9O7dG926dcOxY8cwYcIEPPnkk/j2228dnOn/sTbnO86cOWPxWoeFhTkoQ0u7du3C2LFjsX//fmzfvh0GgwH3338/srKyit3GFd7P5CIUOcRbb72loqKiin08NTVVeXp6qo0bN5qXnTp1SgFQ+/btK48UzVasWKGCgoLKtO6wYcNUnz59HJpPWZU1b5PJpCIiItTbb79tXpaamqq8vb3VZ5995sAMb/v1118VAHXo0CHzsm+++UZpmqYuXbpU7HZdunRR48ePd3h+SinVvn17NXbsWPN9o9GoatSooebOnVvk+gMHDlS9e/e2WNahQwf19NNPOzTPP7M2Z2ve5+UBgNq8eXOJ67z88svq7rvvtlj26KOPqp49ezows+KVJeedO3cqAOrWrVvlklNprl69qgCoXbt2FbuOK7yfyTVwpMhB0tLSEBISUuzj8fHxMBgM6NGjh3lZ48aNUadOHezbt688UrRZXFwcwsLC0KhRI4wZMwY3btxwdkolSkxMREpKisVrHRQUhA4dOpTLa71v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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"Ey = sim_data[\"fields_at_150THz\"].Ey\n",
"\n",
"Ey.real.plot(x=\"x\", y=\"y\", robust=True)\n",
"plt.title(\"real{Ey(x, y)}\")\n",
"plt.show()\n"
]
},
{
"cell_type": "markdown",
"id": "54c1847c",
"metadata": {},
"source": [
"Finally, [SimulationData](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.SimulationData.html) provides a method for potting field data with structure overlay, similar to `sim.viz_fields2D()`."
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "72490bd2",
"metadata": {
"execution": {
"iopub.execute_input": "2023-02-03T01:47:01.412105Z",
"iopub.status.busy": "2023-02-03T01:47:01.411923Z",
"iopub.status.idle": "2023-02-03T01:47:01.625365Z",
"shell.execute_reply": "2023-02-03T01:47:01.624855Z"
}
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"sim_data.plot_field(\"fields_at_150THz\", \"Ey\", val=\"real\")\n",
"plt.show()\n"
]
},
{
"cell_type": "markdown",
"id": "98440f63",
"metadata": {},
"source": [
"## Plugins\n",
"\n",
"Here we will discuss the plugins that support and extend functionalities of Tidy3D, including:\n",
"\n",
"- [Dispersion fitting tool](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/notebooks/Fitting.html).\n",
"\n",
"- [Mode solver](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/notebooks/ModeSolver.html).\n",
"\n",
"- [Near field to far field transformations](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/notebooks/Near2Far.html).\n",
"\n",
"These plugins are designed to import and make use of Tidy3D components described above, but the Tidy3D components have no dependence on the plugins by design. In this sense, they can be considered \"external\" packages that are useful for defining simulation components.\n",
"\n",
"We won't go into the details in this notebook as each of the plugins has its own example tutorial notebook.\n",
"\n",
"### Dispersion Fitting\n",
"\n",
"We provide a [tool for fitting optical data to create dispersive mediums](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.plugins.DispersionFitter.html).\n",
"\n",
"Given a file or arrays containing wavelength, n, and (optionally) k data, this tool will fit the data to a pole-residue model with some constraints and parameters.\n",
"\n",
"After fitting, the user can visualize and inspect the results. \n",
"\n",
"This process can be repeated until the user is satisfied, at which point the tool can return a [dispersive medium](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.PoleResidue.html) for use in the Simulation.\n",
"\n",
"### Mode Solver\n",
"\n",
"The [mode solver](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.plugins.ModeSolver.html) is a similar tool for coming up with [ModeSpec](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.ModeSpec.html) objects for a given source or monitor.\n",
"\n",
"The tool takes a reference simulation containing some waveguide or other structure definitions to feed to the core solver. It also requires a [Box](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.Box.html) specifying the plane on which to solve the modes for.\n",
"\n",
"Then, the user can iteratively send different [ModeSpec](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.ModeSpec.html) objects, solve for the results, visulize, and repeat the process until satisfied.\n",
"\n",
"The resulting [ModeSpec](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.ModeSpec.html) can be saved directly, or used in conjunction with the mode solver settings to return a [ModeSource](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.ModeSource.html) or [ModeMonitor]((https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.ModeMonitor.html).\n",
"\n",
"### Near2Far\n",
"\n",
"Finally, the near field to far field transformation tool is used to transform [FieldMonitor](https://docs.flexcompute.com/projects/tidy3d/en/v1.9.0rc1/_autosummary/tidy3d.FieldMonitor.html) data to far field data or scattering cross section data.\n",
"\n",
"The user specifies a the frequency-domain field data to use as near field source, these fields are converted to equivalent surface currents, and a computation is performed to give the radiation vectors emanating from the monitor location.\n",
"\n",
"Then, the user can obtain the field patterns or scattered power as a function of position or angle using the various projection methods.\n",
"\n",
"## Conclusion\n",
"\n",
"We hope this gives a useful overview of the main changes in the revamped version of Tidy3D.\n",
"\n",
"We highly recommend you check out the various tutorial notebooks if you have more specific questions or want to dive deeper in any of the topics.\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7bf787db",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "581d16bf-9a50-4832-bd87-284b62ebeb14",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.9"
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"state": {
"030d60b6a91f45a8ba9160159b620f5b": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/output",
"_model_module_version": "1.0.0",
"_model_name": "OutputModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/output",
"_view_module_version": "1.0.0",
"_view_name": "OutputView",
"layout": "IPY_MODEL_3a5db699a8e34582a78f2e40ae6367c8",
"msg_id": "",
"outputs": [
{
"data": {
"text/html": "🏃 Finishing 'web_demo'... \n🏃 Finishing 'web_demo'... \n",
"text/plain": "\r\u001b[2K\u001b[32m🏃 \u001b[0m \u001b[1;32mFinishing 'web_demo'...\u001b[0m\n\u001b[32m🏃 \u001b[0m \u001b[1;32mFinishing 'web_demo'...\u001b[0m"
},
"metadata": {},
"output_type": "display_data"
}
],
"tabbable": null,
"tooltip": null
}
},
"3a5db699a8e34582a78f2e40ae6367c8": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "2.0.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "2.0.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border_bottom": null,
"border_left": null,
"border_right": null,
"border_top": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"446bca374dde4128be1d9eaa8f06a332": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "2.0.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "2.0.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border_bottom": null,
"border_left": null,
"border_right": null,
"border_top": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"44c3e067eb0c475caf8d5286c4120b0e": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "2.0.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "2.0.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border_bottom": null,
"border_left": null,
"border_right": null,
"border_top": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"4a523d76cb9a427eb67c384634955626": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/output",
"_model_module_version": "1.0.0",
"_model_name": "OutputModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/output",
"_view_module_version": "1.0.0",
"_view_name": "OutputView",
"layout": "IPY_MODEL_446bca374dde4128be1d9eaa8f06a332",
"msg_id": "",
"outputs": [
{
"data": {
"text/html": "% done ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0% -:--:-- \n% done ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0% -:--:-- \n",
"text/plain": "\r\u001b[2K% done \u001b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m 0%\u001b[0m \u001b[36m-:--:--\u001b[0m\n% done \u001b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m 0%\u001b[0m \u001b[36m-:--:--\u001b[0m"
},
"metadata": {},
"output_type": "display_data"
}
],
"tabbable": null,
"tooltip": null
}
},
"7856a453c9c7479b9e1f8576dd830fbb": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/output",
"_model_module_version": "1.0.0",
"_model_name": "OutputModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/output",
"_view_module_version": "1.0.0",
"_view_name": "OutputView",
"layout": "IPY_MODEL_f40d889926664c0b827dbe7101e7980b",
"msg_id": "",
"outputs": [
{
"data": {
"text/html": "↑ simulation.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0% • 0.0/2.4 kB • ? • -:--:-- \n↑ simulation.json ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0% • 0.0/2.4 kB • ? • -:--:-- \n",
"text/plain": "\r\u001b[2K\u001b[1;31m↑\u001b[0m \u001b[1;34msimulation.json\u001b[0m \u001b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m0.0%\u001b[0m • \u001b[32m0.0/2.4 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m-:--:--\u001b[0m\n\u001b[1;31m↑\u001b[0m \u001b[1;34msimulation.json\u001b[0m \u001b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m0.0%\u001b[0m • \u001b[32m0.0/2.4 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m-:--:--\u001b[0m"
},
"metadata": {},
"output_type": "display_data"
}
],
"tabbable": null,
"tooltip": null
}
},
"8195b626663e48d387544601c2c4891f": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "2.0.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "2.0.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border_bottom": null,
"border_left": null,
"border_right": null,
"border_top": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"a7140b61369b4307a4a22cb453199da6": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/output",
"_model_module_version": "1.0.0",
"_model_name": "OutputModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/output",
"_view_module_version": "1.0.0",
"_view_name": "OutputView",
"layout": "IPY_MODEL_44c3e067eb0c475caf8d5286c4120b0e",
"msg_id": "",
"outputs": [
{
"data": {
"text/html": "↓ monitor_data.hdf5 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0% • 0.0/48.7 kB • ? • -:--:-- \n↓ monitor_data.hdf5 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0% • 0.0/48.7 kB • ? • -:--:-- \n",
"text/plain": "\r\u001b[2K\u001b[1;32m↓\u001b[0m \u001b[1;34mmonitor_data.hdf5\u001b[0m \u001b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m0.0%\u001b[0m • \u001b[32m0.0/48.7 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m-:--:--\u001b[0m\n\u001b[1;32m↓\u001b[0m \u001b[1;34mmonitor_data.hdf5\u001b[0m \u001b[38;5;237m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[35m0.0%\u001b[0m • \u001b[32m0.0/48.7 kB\u001b[0m • \u001b[31m?\u001b[0m • \u001b[36m-:--:--\u001b[0m"
},
"metadata": {},
"output_type": "display_data"
}
],
"tabbable": null,
"tooltip": null
}
},
"f40d889926664c0b827dbe7101e7980b": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "2.0.0",
"model_name": "LayoutModel",
"state": {
"_model_module": "@jupyter-widgets/base",
"_model_module_version": "2.0.0",
"_model_name": "LayoutModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/base",
"_view_module_version": "2.0.0",
"_view_name": "LayoutView",
"align_content": null,
"align_items": null,
"align_self": null,
"border_bottom": null,
"border_left": null,
"border_right": null,
"border_top": null,
"bottom": null,
"display": null,
"flex": null,
"flex_flow": null,
"grid_area": null,
"grid_auto_columns": null,
"grid_auto_flow": null,
"grid_auto_rows": null,
"grid_column": null,
"grid_gap": null,
"grid_row": null,
"grid_template_areas": null,
"grid_template_columns": null,
"grid_template_rows": null,
"height": null,
"justify_content": null,
"justify_items": null,
"left": null,
"margin": null,
"max_height": null,
"max_width": null,
"min_height": null,
"min_width": null,
"object_fit": null,
"object_position": null,
"order": null,
"overflow": null,
"padding": null,
"right": null,
"top": null,
"visibility": null,
"width": null
}
},
"f797d34ab1924227bb51905a386de9a0": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"_dom_classes": [],
"_model_module": "@jupyter-widgets/output",
"_model_module_version": "1.0.0",
"_model_name": "OutputModel",
"_view_count": null,
"_view_module": "@jupyter-widgets/output",
"_view_module_version": "1.0.0",
"_view_name": "OutputView",
"layout": "IPY_MODEL_8195b626663e48d387544601c2c4891f",
"msg_id": "",
"outputs": [
{
"data": {
"text/html": "🏃 Starting 'web_demo'... \n🏃 Starting 'web_demo'... \n",
"text/plain": "\r\u001b[2K\u001b[32m🏃 \u001b[0m \u001b[1;32mStarting 'web_demo'...\u001b[0m\n\u001b[32m🏃 \u001b[0m \u001b[1;32mStarting 'web_demo'...\u001b[0m"
},
"metadata": {},
"output_type": "display_data"
}
],
"tabbable": null,
"tooltip": null
}
}
},
"version_major": 2,
"version_minor": 0
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}