diff --git a/_images/53579cfbce97dff92e8655f428a25885f458eb7131ed783ee0c90c708a3e218d.png b/_images/53579cfbce97dff92e8655f428a25885f458eb7131ed783ee0c90c708a3e218d.png
new file mode 100644
index 0000000..bb1fd09
Binary files /dev/null and b/_images/53579cfbce97dff92e8655f428a25885f458eb7131ed783ee0c90c708a3e218d.png differ
diff --git a/_images/5bd0fbe20a6b31b7cccb02b191c9e663f21cd22721364d0c126027609c24afcc.png b/_images/5bd0fbe20a6b31b7cccb02b191c9e663f21cd22721364d0c126027609c24afcc.png
deleted file mode 100644
index 3b4cd42..0000000
Binary files a/_images/5bd0fbe20a6b31b7cccb02b191c9e663f21cd22721364d0c126027609c24afcc.png and /dev/null differ
diff --git a/_images/62fa2a534bc712557bf1c70de7b7345c1a2db001d5ff2d61cfc69cd9dbccc0cf.png b/_images/62fa2a534bc712557bf1c70de7b7345c1a2db001d5ff2d61cfc69cd9dbccc0cf.png
new file mode 100644
index 0000000..ff34b03
Binary files /dev/null and b/_images/62fa2a534bc712557bf1c70de7b7345c1a2db001d5ff2d61cfc69cd9dbccc0cf.png differ
diff --git a/_images/ceef6e8f28233ab9522122a4f4571bbb52466070e4f18e6cfca9bcd2fb1f9c1a.png b/_images/ceef6e8f28233ab9522122a4f4571bbb52466070e4f18e6cfca9bcd2fb1f9c1a.png
new file mode 100644
index 0000000..984532a
Binary files /dev/null and b/_images/ceef6e8f28233ab9522122a4f4571bbb52466070e4f18e6cfca9bcd2fb1f9c1a.png differ
diff --git a/_images/d1a7e1df664b1e3e5992fa8e01f6c15ac021cc6a21fcf72f064132afdadd001c.png b/_images/d1a7e1df664b1e3e5992fa8e01f6c15ac021cc6a21fcf72f064132afdadd001c.png
new file mode 100644
index 0000000..d899e07
Binary files /dev/null and b/_images/d1a7e1df664b1e3e5992fa8e01f6c15ac021cc6a21fcf72f064132afdadd001c.png differ
diff --git a/_images/efbbb472dff7ad7c42e717dba2e137bbf0c821309c1986cea80ced3ebea94445.png b/_images/efbbb472dff7ad7c42e717dba2e137bbf0c821309c1986cea80ced3ebea94445.png
deleted file mode 100644
index 810e63c..0000000
Binary files a/_images/efbbb472dff7ad7c42e717dba2e137bbf0c821309c1986cea80ced3ebea94445.png and /dev/null differ
diff --git a/_sources/pages/mzi_layout.ipynb b/_sources/pages/mzi_layout.ipynb
index fc254aa..ec76b8f 100644
--- a/_sources/pages/mzi_layout.ipynb
+++ b/_sources/pages/mzi_layout.ipynb
@@ -25,10 +25,10 @@
"name": "stderr",
"output_type": "stream",
"text": [
- "\u001b[32m2024-01-26 14:59:56.805\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mgdsfactory.technology.layer_views\u001b[0m:\u001b[36m__init__\u001b[0m:\u001b[36m790\u001b[0m - \u001b[1mImporting LayerViews from YAML file: '/home/parkeraa/miniconda3/envs/mp/lib/python3.11/site-packages/ubcpdk/layers.yaml'.\u001b[0m\n",
- "\u001b[32m2024-01-26 14:59:57.403\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mubcpdk\u001b[0m:\u001b[36m
This cross-over length \(L\), that gives 100% power transfer is found with:
-This is found from determining what length when multiplied by the propagation constants makes the phase difference \(\pi\):
diff --git a/pages/mzi_layout.html b/pages/mzi_layout.html index 0023939..11adab5 100644 --- a/pages/mzi_layout.html +++ b/pages/mzi_layout.html @@ -324,10 +324,10 @@2024-01-26 14:59:56.805 | INFO | gdsfactory.technology.layer_views:__init__:790 - Importing LayerViews from YAML file: '/home/parkeraa/miniconda3/envs/mp/lib/python3.11/site-packages/ubcpdk/layers.yaml'.
-2024-01-26 14:59:57.403 | INFO | ubcpdk:<module>:30 - Found UBCpdk '2.3.4' installed at PosixPath('/home/parkeraa/miniconda3/envs/mp/lib/python3.11/site-packages/ubcpdk')
-2024-01-26 14:59:57.478 | INFO | gdsfactory.technology.layer_views:__init__:790 - Importing LayerViews from YAML file: '/home/parkeraa/miniconda3/envs/mp/lib/python3.11/site-packages/gdsfactory/generic_tech/layer_views.yaml'.
-2024-01-26 14:59:57.482 | INFO | gdsfactory.pdk:activate:307 - 'ubcpdk' PDK is now active
+2024-01-29 08:27:51.562 | INFO | gdsfactory.technology.layer_views:__init__:790 - Importing LayerViews from YAML file: '/home/parkeraa/miniconda3/envs/mp/lib/python3.11/site-packages/ubcpdk/layers.yaml'.
+2024-01-29 08:27:52.715 | INFO | ubcpdk:<module>:30 - Found UBCpdk '2.3.4' installed at PosixPath('/home/parkeraa/miniconda3/envs/mp/lib/python3.11/site-packages/ubcpdk')
+2024-01-29 08:27:52.806 | INFO | gdsfactory.technology.layer_views:__init__:790 - Importing LayerViews from YAML file: '/home/parkeraa/miniconda3/envs/mp/lib/python3.11/site-packages/gdsfactory/generic_tech/layer_views.yaml'.
+2024-01-29 08:27:52.813 | INFO | gdsfactory.pdk:activate:307 - 'ubcpdk' PDK is now active
mzi = uc.mzi(delta_length=10, length_x=1, length_y=20)
+mzi = uc.mzi(delta_length=100, length_x=1, length_y=20)
mzi.plot()
Finally, we can easily add a grating array to any component. Note that the component we want to add gratings to will be rotated so that its ports are oriented vertically. Also, though we can’t see it in the plot, adding the grating couplers also adds a label to one of the gratings, marking it as the input.
@@ -396,13 +396,46 @@component_fiber_array = uc.add_fiber_array(component=mzi, component_name='MyCoolMZI1')
-component_fiber_array.plot()
+TE_MZI = uc.add_fiber_array(component=mzi, component_name='MyCoolMZI1')
+TE_MZI.plot()
We can also change the grating coupler to a TM coupler by passing in a TM coupler. We also can flip the direction of the mzi. This isn’t really useful for the MZI but can help us make sure the right port is the input in other cases.
+TM_MZI = uc.add_fiber_array(component=mzi.rotate(180), grating_coupler=uc.gc_tm1550, component_name='MyCoolMZITM')
+TM_MZI.plot()
+
Now we should put them together to make our ‘final’ design. We can use the distribute and align functions.
+mzi_together = gf.Component()
+mzi_together.add_ref(TE_MZI)
+mzi_together.add_ref(TM_MZI)
+
+mzi_together.distribute(direction='x', spacing=10)
+mzu_together = mzi_together.align(alignment='ymax')
+mzi_together.plot()
+
/home/parkeraa/miniconda3/envs/mp/lib/python3.11/site-packages/gdsfactory/component.py:1569: UserWarning: Unnamed cells, 1 in 'Unnamed_b83043de'
+ gdspath = component.write_gds(logging=False)
+
We can export our design using the write_gds function. If you zoom in on where the lower coupler meets the waveguide, you can see the text label. It should say:
@@ -411,12 +444,14 @@component_fiber_array.write_gds("mzi.gds")
+mzi_together.write_gds("mzi.gds")
2024-01-26 16:12:00.066 | INFO | gdsfactory.component:_write_library:1913 - Wrote to 'mzi.gds'
+/tmp/ipykernel_305404/1677396279.py:1: UserWarning: Unnamed cells, 1 in 'Unnamed_b83043de'
+ mzi_together.write_gds("mzi.gds")
+2024-01-29 08:37:46.359 | INFO | gdsfactory.component:_write_library:1913 - Wrote to 'mzi.gds'
PosixPath('mzi.gds')
diff --git a/searchindex.js b/searchindex.js
index 351c9d9..2a3b4dd 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["index", "pages/adjoint_optimization", "pages/advanced_components", "pages/analyzing_circuits", "pages/compact_models", "pages/component_convenience", "pages/components", "pages/credits", "pages/directional_couplers", "pages/drc", "pages/edge_couplers", "pages/gds_to_meep", "pages/git_and_github", "pages/glossary", "pages/grating_couplers", "pages/introduction", "pages/klayout", "pages/laboratory_tools", "pages/layer_stack", "pages/meep_to_gds", "pages/mmis", "pages/mzi", "pages/mzi_layout", "pages/open_source", "pages/optical_io", "pages/optimization", "pages/passive_components", "pages/pdks", "pages/phase_shifters", "pages/phase_shifters_heaters", "pages/phase_shifters_pn", "pages/photonic_devices", "pages/python", "pages/ray_optic_model", "pages/ring_resonators", "pages/scattering_parameters", "pages/shape_optimization", "pages/software", "pages/vscode", "pages/waveguides", "pages/waveguides_mode_solvers", "pages/waveguides_modelling", "pages/waveguides_polarization", "pages/waveguides_tir", "pages/wsl", "pages/y_branch"], "filenames": ["index.md", "pages/adjoint_optimization.ipynb", "pages/advanced_components.ipynb", "pages/analyzing_circuits.ipynb", "pages/compact_models.ipynb", "pages/component_convenience.ipynb", "pages/components.ipynb", "pages/credits.md", "pages/directional_couplers.ipynb", "pages/drc.ipynb", "pages/edge_couplers.ipynb", "pages/gds_to_meep.ipynb", "pages/git_and_github.md", "pages/glossary.md", "pages/grating_couplers.ipynb", "pages/introduction.md", "pages/klayout.md", "pages/laboratory_tools.ipynb", "pages/layer_stack.ipynb", "pages/meep_to_gds.ipynb", "pages/mmis.ipynb", "pages/mzi.ipynb", "pages/mzi_layout.ipynb", "pages/open_source.md", "pages/optical_io.md", "pages/optimization.ipynb", "pages/passive_components.md", "pages/pdks.ipynb", "pages/phase_shifters.ipynb", "pages/phase_shifters_heaters.ipynb", "pages/phase_shifters_pn.ipynb", "pages/photonic_devices.ipynb", "pages/python.md", "pages/ray_optic_model.ipynb", "pages/ring_resonators.ipynb", "pages/scattering_parameters.ipynb", "pages/shape_optimization.ipynb", "pages/software.md", "pages/vscode.md", "pages/waveguides.ipynb", "pages/waveguides_mode_solvers.ipynb", "pages/waveguides_modelling.ipynb", "pages/waveguides_polarization.ipynb", "pages/waveguides_tir.ipynb", "pages/wsl.md", "pages/y_branch.ipynb"], "titles": ["CamachoLab Photonics Bootcamp", "Adjoint optimization", "Advanced Components", "Analyzing circuits", "Compact models", "<no title>", "Components", "Credits", "Directional couplers", "Design rule checks", "Edge couplers", "GDS to Meep", "Git (and GitHub)", "Glossary", "Grating couplers", "Introduction", "KLayout", "Laboratory Tools", "Defining the layer stack", "Meep to GDS", "Multimode Interferometers (MMIs)", "Mach-Zehnder interferometers", "Laying out a Mach-Zehnder Interferometer", "Open source software", "Optical I/O", "Optimization and inverse design", "Passive Components", "Process design kits", "Phase Shifters", "Heaters", "PN and PIN Junctions", "What are photonic devices?", "Python", "Improving the Ray-optic Model", "Ring Resonators", "Scattering parameters", "Shape optimization", "Software", "Visual Studio Code", "Waveguides", "Waveguide modes", "Modelling Wavegudies", "Polarization", "Total Internal Reflection", "WSL (Windows-only)", "Y-Branches"], "terms": {"sponsor": 0, "googl": [0, 7, 15, 23], "thi": [0, 3, 6, 8, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 40, 41, 42, 43, 44, 45], "intend": [0, 11, 23], "those": [0, 6, 21, 23, 45], "experi": [0, 21, 30, 37, 43], "electr": [0, 6, 8, 13, 14, 15, 18, 20, 21, 26, 28, 29, 30, 31, 33, 34, 39, 40, 42, 43], "engin": [0, 15, 21, 23, 31], "ar": [0, 3, 6, 8, 9, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 23, 26, 27, 28, 29, 30, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 44, 45], "interest": [0, 15, 21], "learn": [0, 3, 6, 22, 27, 32], "about": [0, 6, 8, 17, 21, 23, 32, 33, 34, 35, 37, 38, 41, 42], "integr": [0, 13, 15, 16, 18, 27, 31, 38], "applic": [0, 8, 13, 21, 23, 29, 30, 32, 35], "cours": [0, 8, 12, 13, 15, 23, 26, 32, 37, 38, 43], "wa": [0, 21, 35, 44], "creat": [0, 6, 8, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 31, 32, 33, 34, 35, 37, 40, 43, 44, 45], "collabor": [0, 12, 15, 23], "between": [0, 11, 13, 15, 20, 21, 28, 29, 30, 31, 33, 34, 35, 41, 43, 45], "brigham": 0, "young": 0, "univers": [0, 18], "s": [0, 3, 6, 12, 13, 14, 15, 16, 18, 22, 23, 28, 29, 30, 31, 32, 34, 38, 40, 41, 42, 43, 44, 45], "skywat": 0, "project": [0, 12, 23], "introduct": [0, 21], "credit": 0, "open": [0, 6, 8, 12, 13, 14, 15, 16, 17, 20, 27, 32, 34, 37, 38, 41, 44], "sourc": [0, 6, 11, 12, 13, 15, 16, 17, 18, 19, 20, 31, 32, 34, 37, 38], "softwar": [0, 6, 12, 13, 15, 16, 17, 18, 27, 32, 35], "what": [0, 6, 8, 11, 12, 21, 22, 23, 42, 43], "defin": [0, 3, 6, 8, 9, 11, 14, 20, 21, 34, 35, 40, 41, 43], "layer": [0, 6, 8, 13, 20, 22, 27, 35, 39, 45], "stack": [0, 13, 27, 32], "compon": [0, 8, 11, 13, 14, 15, 18, 19, 20, 22, 23, 24, 31, 33, 35, 40, 42, 45], "waveguid": [0, 6, 13, 14, 18, 20, 21, 22, 26, 28, 29, 30, 31, 33, 34, 35, 42, 45], "optic": [0, 6, 14, 18, 20, 26, 29, 30, 31, 34, 42, 43, 45], "i": [0, 6, 8, 11, 14, 20, 21, 28, 32, 34, 35, 37, 43], "o": [0, 6], "optim": [0, 3, 14, 21, 31, 32, 35, 45], "invers": [0, 31, 43], "compact": [0, 13, 15, 27, 45], "model": [0, 3, 13, 15, 18, 27, 35, 40, 43], "rule": [0, 13, 27, 32], "check": [0, 11, 12, 13, 18, 31, 35], "process": [0, 6, 8, 11, 13, 18, 29, 32, 35, 41], "kit": [0, 13], "mach": [0, 20, 31], "zehnder": [0, 20, 31], "interferomet": [0, 6, 13, 26, 31], "lai": [0, 6, 16], "out": [0, 6, 8, 11, 13, 14, 16, 20, 21, 32, 33, 34, 35, 40, 42, 45], "advanc": 0, "phase": [0, 8, 20, 21, 31, 33, 35, 45], "shifter": [0, 21, 31], "analyz": [0, 15, 34], "glossari": 0, "repositori": [0, 12, 37], "pdk": [0, 6, 9, 13, 18, 21, 22, 27, 31], "document": [0, 15, 17, 21, 34, 35], "In": [3, 6, 8, 11, 12, 14, 15, 18, 20, 21, 22, 23, 26, 28, 29, 30, 31, 32, 34, 35, 37, 38, 40, 45], "section": [3, 6, 14, 16, 18, 24, 26, 31, 32, 33, 35, 37, 41, 42, 44], "we": [3, 6, 8, 12, 13, 14, 15, 17, 18, 21, 22, 23, 24, 26, 27, 28, 31, 32, 33, 34, 35, 37, 38, 40, 41, 42, 43, 44, 45], "how": [3, 6, 8, 11, 13, 15, 18, 20, 21, 22, 26, 32, 33, 34, 37, 40, 41, 42, 43, 44], "interpret": [3, 32], "data": [3, 13, 18, 22, 35, 42], "collect": [3, 21, 22], "from": [3, 8, 11, 12, 13, 14, 15, 16, 18, 19, 20, 22, 28, 29, 30, 31, 32, 33, 34, 35, 38, 40, 42, 44, 45], "our": [3, 6, 17, 21, 22, 27, 30, 33, 34, 35, 37, 40], "whenev": 3, "obtain": [3, 29], "import": [3, 8, 11, 14, 18, 19, 20, 21, 22, 23, 32, 33, 34, 40, 42, 43, 45], "rememb": [3, 34], "renspons": 3, "chang": [3, 6, 8, 12, 13, 14, 20, 21, 22, 23, 28, 29, 30, 31, 32, 33, 34, 35, 40, 41, 43, 45], "wavelength": [3, 8, 14, 18, 20, 21, 31, 33, 34, 35, 40, 41], "well": [3, 6, 11, 12, 16, 30, 31, 32, 33, 42], "being": [3, 8, 16, 20, 21, 23, 31, 33, 45], "test": [3, 11, 12, 15, 17, 18, 22, 32, 35, 42], "order": [3, 6, 13, 14, 26, 29, 31, 33, 35, 37, 40, 45], "properli": 3, "must": [3, 6, 8, 11, 13, 18, 21, 22, 23, 29, 34, 45], "first": [3, 8, 11, 12, 14, 21, 22, 26, 28, 34, 35, 40, 42, 43, 44], "deemb": 3, "depend": [3, 8, 18, 21, 23, 28, 29, 32, 40, 41, 42, 43], "can": [3, 6, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45], "done": [3, 6, 19, 31, 32, 35, 38], "varieti": [3, 6, 14, 20], "wai": [3, 6, 15, 20, 21, 23, 28, 29, 31, 32, 33, 34, 35, 37, 38, 41, 43], "includ": [3, 6, 11, 12, 13, 15, 16, 17, 18, 20, 21, 23, 27, 28, 29, 30, 31, 32, 38, 40, 41, 44], "consid": [3, 8, 14, 20, 21, 30, 33, 41, 42, 45], "follow": [3, 6, 13, 14, 19, 21, 22, 26, 30, 32, 33, 34, 37, 41, 43, 44], "via": [3, 12, 17, 18, 32, 34, 39, 44], "sweep": [3, 27], "numpi": [3, 6, 8, 12, 14, 21, 32, 34, 35, 40, 43], "np": [3, 6, 8, 14, 18, 34, 40, 43], "matplotlib": [3, 6, 12, 14, 18, 21, 32, 34, 35, 40, 43, 45], "pyplot": [3, 14, 21, 34, 35, 40, 43, 45], "plt": [3, 14, 21, 34, 35, 40, 43, 45], "poly_ord": 3, "4": [3, 6, 8, 20, 21, 22, 32, 34, 35, 40], "load": [3, 11, 16, 34], "file": [3, 8, 11, 12, 13, 14, 15, 16, 18, 19, 20, 22, 23, 31, 32, 34, 35, 37, 38, 44], "oscope_data": 3, "npz": 3, "power": [3, 8, 13, 16, 20, 21, 29, 31, 34, 35], "here": [3, 6, 8, 14, 16, 18, 23, 24, 26, 32, 34, 35, 37, 38, 41, 44, 45], "raw": 3, "oscilloscop": 3, "plot": [3, 6, 8, 11, 18, 21, 22, 32, 35, 40, 43, 45], "titl": 3, "xlabel": [3, 8], "nm": [3, 14, 18, 21], "ylabel": [3, 8], "dbm": 3, "show": [3, 6, 11, 18, 20, 21, 27, 34, 35, 40, 43, 45], "The": [3, 6, 8, 11, 13, 14, 15, 18, 19, 20, 22, 23, 26, 28, 29, 30, 32, 33, 34, 35, 37, 40, 41, 42, 43, 44, 45], "parabol": 3, "shape": [3, 13, 24, 31, 35, 40, 41, 45], "graph": [3, 34, 42], "due": [3, 21, 26, 33, 45], "respons": [3, 21, 45], "which": [3, 6, 8, 11, 12, 13, 14, 20, 21, 22, 23, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 42, 43, 44, 45], "obfusc": 3, "try": [3, 22], "remov": [3, 8, 14, 20, 29, 30, 31, 32, 34], "effect": [3, 8, 14, 29, 30, 40], "parabola": 3, "subtract": [3, 6], "function": [3, 6, 8, 11, 14, 19, 20, 21, 22, 27, 32, 34, 35, 40, 41, 43], "want": [3, 6, 11, 12, 19, 20, 21, 22, 23, 32, 34, 35, 41, 44, 45], "case": [3, 8, 14, 16, 18, 21, 22, 28, 32, 43, 45], "def": [3, 6, 43, 45], "model_parabola": 3, "x": [3, 6, 8, 11, 20, 35, 40, 42, 43, 45], "b": [3, 6, 8, 43], "c": [3, 6, 8, 11, 21, 22, 32], "d": [3, 7, 15, 32, 35, 41, 42, 43, 44], "e": [3, 6, 8, 11, 12, 18, 21, 28, 31, 34, 35, 37, 40, 41, 45], "return": [3, 6, 11, 19, 21, 35, 40, 43, 45], "3": [3, 8, 11, 14, 15, 18, 19, 20, 21, 22, 23, 27, 32, 34, 39, 40, 43, 45], "2": [3, 6, 8, 11, 14, 15, 18, 19, 20, 21, 22, 27, 32, 33, 34, 40, 43, 45], "now": [3, 6, 21, 22, 24, 32, 33, 34, 35, 38, 40, 45], "just": [3, 6, 8, 11, 13, 14, 15, 17, 21, 22, 28, 32, 35, 40, 45], "need": [3, 6, 11, 12, 21, 22, 23, 32, 35, 37, 41, 42, 44, 45], "paramet": [3, 6, 8, 20, 21, 22, 31, 34], "do": [3, 6, 15, 18, 19, 22, 23, 35, 37, 38, 42], "curve_fit": 3, "scipi": [3, 12, 32], "take": [3, 6, 8, 11, 13, 19, 21, 22, 29, 31, 34, 35, 42, 43, 44], "y": [3, 6, 8, 11, 20, 21, 22, 26, 28, 35, 40, 42, 43], "an": [3, 6, 8, 9, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 23, 29, 30, 31, 32, 33, 34, 40, 41, 42, 43, 45], "initi": [3, 6, 8, 21], "guess": 3, "It": [3, 6, 8, 11, 13, 14, 15, 16, 18, 19, 21, 22, 23, 30, 32, 33, 34, 35, 38, 40, 41, 42, 44], "covari": 3, "matrix": [3, 21, 35], "start": [3, 6, 21, 32, 33, 34, 35, 44], "end": [3, 8, 13, 14, 21, 23, 32, 35, 41, 43, 45], "argmax": 3, "1560": 3, "1580": 3, "help": [3, 6, 9, 12, 13, 16, 18, 21, 22, 27, 30, 33], "term": [3, 8, 13, 21, 35], "speed": [3, 8, 29, 30, 31, 41], "accuraci": 3, "add": [3, 6, 8, 18, 19, 20, 22, 32, 35, 41, 43], "especi": [3, 11, 23, 29, 30, 32], "true": [3, 8, 11, 14, 18, 20, 21, 34, 35, 40, 41, 43, 45], "more": [3, 6, 8, 11, 15, 16, 17, 18, 20, 21, 23, 28, 30, 31, 32, 33, 34, 35, 38, 40, 41, 42, 45], "complic": [3, 6, 33, 34, 41, 45], "initial_guess": 3, "1": [3, 6, 8, 11, 14, 15, 18, 19, 20, 21, 22, 23, 27, 32, 33, 34, 39, 40, 41, 43, 45], "optimal_paramet": 3, "covariance_matrix": 3, "label": [3, 11, 18, 21, 22, 43], "legend": [3, 43], "simpli": [3, 6, 14, 21, 32, 33, 34, 35], "offset": [3, 30], "make": [3, 6, 8, 13, 19, 20, 21, 22, 23, 24, 27, 30, 31, 32, 35, 38, 45], "easier": [3, 6, 38, 45], "see": [3, 8, 11, 13, 14, 18, 20, 21, 22, 23, 27, 28, 30, 34, 35, 40, 42, 45], "power_correct": 3, "max": [3, 35], "correct": [3, 11], "ones": [3, 6, 32], "len": [3, 40], "averag": [3, 14, 41], "gdsfactori": [6, 8, 11, 13, 15, 19, 20, 21, 22, 32, 34, 35, 40, 45], "them": [6, 8, 11, 15, 20, 21, 22, 23, 26, 30, 31, 32, 35, 37], "togeth": [6, 8, 12, 18, 31, 32, 33], "larger": [6, 8, 13, 15, 21, 31, 45], "design": [6, 13, 14, 15, 16, 18, 19, 20, 22, 23, 24, 26, 34, 35], "simpl": [6, 15, 18, 21, 22, 29, 31, 32, 39, 41, 43], "complex": [6, 30, 31, 32, 35], "construct": [6, 13, 14, 20, 21, 28, 31, 33, 34, 35, 45], "exampl": [6, 11, 12, 13, 15, 18, 19, 20, 21, 23, 26, 27, 28, 31, 32, 35, 40, 41], "contain": [6, 11, 13, 18, 19, 21, 22, 31, 32, 33, 40], "other": [6, 11, 12, 13, 17, 18, 20, 21, 23, 28, 29, 30, 31, 32, 33, 34, 38, 40, 41, 42, 45], "thei": [6, 9, 11, 12, 13, 15, 18, 20, 21, 23, 31, 32, 33, 35, 41, 44, 45], "usual": [6, 9, 13, 15, 18, 31], "have": [6, 8, 11, 12, 13, 14, 15, 18, 20, 21, 22, 23, 27, 28, 30, 31, 32, 33, 34, 35, 37, 38, 40, 41, 42, 44, 45], "allow": [6, 8, 11, 12, 13, 15, 16, 21, 23, 31, 35, 38], "you": [6, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 27, 31, 32, 34, 35, 37, 38, 40, 43, 44, 45], "factori": [6, 27], "when": [6, 8, 11, 14, 16, 18, 21, 23, 28, 30, 31, 32, 34, 35, 40, 41, 42, 43, 45], "align": [6, 8], "each": [6, 8, 11, 13, 14, 16, 17, 18, 20, 21, 29, 31, 32, 34, 40, 41, 43, 45], "taken": [6, 18, 35], "care": [6, 35, 41, 42], "automat": [6, 16, 17, 18], "made": [6, 13, 23, 24, 39, 40, 41], "up": [6, 8, 11, 12, 13, 14, 18, 20, 21, 23, 29, 31, 32, 34, 35, 38, 41, 44, 45], "option": [6, 11, 15, 38], "most": [6, 8, 11, 12, 14, 16, 18, 19, 23, 29, 32, 33, 34, 35, 37, 39, 41, 42, 45], "basic": [6, 14, 16, 20, 21, 22, 32, 35, 43], "build": [6, 13, 21, 26, 31, 33, 34, 44], "object": [6, 8, 18, 19, 21, 33, 35, 40], "gf": [6, 11, 20, 21, 22, 45], "seri": [6, 15, 32], "conveni": [6, 21, 27], "visual": [6, 13, 14, 18, 19, 21, 33, 37, 40], "jupyt": [6, 15, 35, 38], "notebook": [6, 11, 15, 34], "For": [6, 11, 13, 17, 18, 20, 21, 22, 27, 28, 29, 30, 31, 32, 34, 35, 37, 41, 43], "plot_holoview": 6, "plot_jupyt": 6, "plot_klayout": 6, "plot_matplotlib": 6, "plot_netlist": 6, "plot_netlist_flat": 6, "plot_widget": 6, "some": [6, 8, 11, 13, 14, 16, 17, 18, 21, 23, 26, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 40, 42, 45], "alias": 6, "default": [6, 21, 22, 35, 37, 38, 44, 45], "could": [6, 11, 13, 18, 20, 21, 33, 35, 42], "keyword": [6, 11, 21], "argument": [6, 11, 21, 22, 43], "below": [6, 8, 11, 14, 18, 19, 20, 21, 22, 23, 28, 33, 34, 35, 40, 42, 43], "format": [6, 8, 14, 15, 16, 17, 20, 21, 34, 35], "ll": [6, 12, 15, 21, 22, 23, 32, 34, 35, 37, 40, 41, 42, 44], "explicit": [6, 21, 23], "But": [6, 23, 35], "recommend": [6, 8, 12, 17, 32, 37, 38, 44], "displai": [6, 16, 34, 43], "interact": [6, 8, 14, 26, 32, 33, 35, 37, 41], "klayout": [6, 18, 22, 27, 31, 35, 37, 44], "widget": 6, "lowest": [6, 13], "block": [6, 8, 13, 14, 19, 21, 26, 31, 34, 35, 44, 45], "list": [6, 11, 13, 19, 21, 22, 31, 32, 35, 41], "vertic": [6, 19, 22, 31, 40, 43], "adjac": 6, "pair": [6, 18], "line": [6, 8, 12, 13, 14, 17, 20, 22, 31, 32, 33, 34, 35, 40, 42, 43, 44], "doe": [6, 8, 21, 23, 33, 42], "cross": [6, 8, 14, 15, 16, 18, 40, 41], "ani": [6, 8, 11, 13, 14, 18, 22, 23, 27, 30, 32, 33, 35, 37, 38, 40, 43, 45], "within": [6, 11, 13, 16, 20, 21, 28, 29, 30, 31, 33, 34, 35, 40, 41], "although": [6, 13, 18, 31, 37], "overlap": [6, 8, 34], "parallel": [6, 8, 11, 40, 42], "lie": 6, "upon": [6, 33, 43], "point": [6, 13, 33, 40], "exist": [6, 8, 13, 18, 23, 31, 32, 35, 40], "geometri": [6, 8, 11, 13, 14, 18, 19, 20, 22, 33, 34, 40, 41, 45], "instead": [6, 11, 13, 14, 20, 21, 23, 30, 31, 32, 35, 41], "new": [6, 13, 15, 16, 18, 22, 28, 31, 32, 44], "one": [6, 8, 11, 13, 14, 15, 18, 20, 21, 22, 23, 28, 29, 30, 31, 32, 34, 37, 40, 41, 42, 45], "That": [6, 23, 42], "parameter": [6, 21, 31, 41], "call": [6, 8, 18, 20, 21, 29, 30, 31, 32, 33, 34, 35, 40, 42, 43], "even": [6, 8, 31, 32, 41], "hierarch": [6, 13], "nest": 6, "save": [6, 8, 11, 13, 14, 19, 20, 32, 34], "memori": [6, 13, 31], "becaus": [6, 8, 12, 14, 18, 20, 21, 23, 29, 30, 31, 34, 35, 41, 42, 43, 45], "core": [6, 8, 11, 18, 33, 39, 40, 41, 43], "onli": [6, 11, 12, 13, 15, 17, 20, 21, 22, 23, 26, 32, 33, 34, 35, 37, 41, 42, 45], "onc": [6, 16, 31, 32, 35, 42], "referenc": 6, "mani": [6, 8, 11, 12, 13, 15, 17, 21, 22, 23, 27, 29, 31, 32, 34, 41, 45], "time": [6, 8, 11, 12, 13, 14, 16, 20, 21, 23, 28, 29, 30, 31, 32, 33, 34, 35, 41, 43, 44, 45], "These": [6, 8, 11, 12, 13, 18, 21, 23, 31, 33, 35, 42, 43], "place": [6, 8, 13, 20, 22, 29, 31, 37], "anywher": [6, 32], "independ": [6, 29], "all": [6, 8, 12, 13, 14, 15, 17, 18, 20, 21, 22, 23, 27, 31, 32, 33, 34, 35, 37, 38, 41, 42, 43, 45], "appli": [6, 16, 18, 30, 35], "base": [6, 8, 12, 17, 20, 23, 29, 30, 31, 32, 35, 43, 45], "instanc": [6, 11, 18, 21, 31, 32], "had": [6, 11, 21, 31], "same": [6, 8, 11, 14, 15, 17, 18, 20, 21, 22, 23, 29, 30, 31, 32, 34, 45], "taper": [6, 14, 20, 33], "its": [6, 8, 11, 17, 18, 21, 22, 23, 29, 31, 32, 34, 35, 41, 42], "input": [6, 8, 13, 20, 21, 22, 31, 34, 35, 45], "output": [6, 8, 11, 13, 14, 20, 21, 31, 34, 35, 43, 45], "repeatedli": 6, "would": [6, 11, 13, 14, 18, 20, 21, 23, 31, 33, 35, 44], "good": [6, 21, 35], "requir": [6, 8, 18, 21, 23, 27, 29, 30, 31, 32], "higher": [6, 18, 28, 29, 30, 33, 34, 35, 40, 41, 45], "level": [6, 14, 21, 32], "By": [6, 11, 14, 21, 30], "draw": [6, 22], "bank": 6, "without": [6, 13, 21, 23, 27, 29, 30, 31, 32, 33], "much": [6, 8, 11, 21, 33, 34, 35, 38], "pattern": [6, 14, 18, 21, 31, 33], "where": [6, 8, 11, 14, 20, 21, 22, 23, 29, 32, 34, 35, 42, 45], "across": [6, 13, 21], "compos": [6, 31], "interconnect": [6, 13], "compound": 6, "intermedi": 6, "specifi": [6, 8, 11, 13, 14, 19, 32, 35, 41], "direct": [6, 13, 14, 19, 20, 26, 31, 33, 34, 35, 40, 42, 43, 45], "face": [6, 13], "either": [6, 11, 13, 31, 42, 45], "also": [6, 8, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 28, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 42, 43, 44, 45], "width": [6, 8, 13, 14, 18, 19, 20, 21, 30, 31, 34, 40, 41], "attach": [6, 11, 13], "your": [6, 8, 9, 11, 12, 13, 14, 16, 18, 19, 21, 22, 23, 27, 31, 32, 34, 35, 37, 38, 42, 44], "convei": 6, "inform": [6, 13, 15, 17, 18, 21, 23, 27, 28, 30, 31, 35, 38], "otherwis": [6, 21, 34], "seen": [6, 8, 11, 23, 34], "A": [6, 8, 13, 14, 18, 20, 21, 23, 27, 29, 30, 31, 32, 34, 37, 38, 39, 40, 41, 42, 45], "add_label": 6, "pass": [6, 11, 21, 28, 31, 32, 35], "text": [6, 8, 18, 21, 22, 23, 27, 32, 34, 38], "locat": [6, 14, 19, 44], "should": [6, 8, 11, 15, 18, 21, 22, 27, 35, 38, 45], "shown": [6, 8, 19, 34, 35], "posit": [6, 18, 21, 31, 34, 35, 40, 42], "center": [6, 8, 14, 19, 20, 21, 30, 34, 35, 45], "passiv": [6, 24], "sever": [6, 8, 11, 16, 28, 29, 30, 32, 38, 41], "than": [6, 8, 14, 18, 20, 23, 28, 30, 31, 33, 43, 45], "mai": [6, 8, 11, 12, 13, 18, 20, 21, 22, 23, 28, 29, 30, 31, 35], "part": [6, 8, 9, 11, 21, 22, 23, 27, 35, 39, 40, 42, 45], "track": [6, 12, 32, 35], "number": [6, 8, 11, 13, 18, 20, 23, 32, 34, 35, 40], "As": [6, 8, 11, 14, 15, 18, 21, 23, 29, 30, 35, 42], "let": [6, 13, 21, 22, 28, 33, 34, 35, 40, 41, 42, 43], "tupl": [6, 18, 21], "coordin": 6, "circular": 6, "fashion": [6, 13], "repeat": 6, "last": [6, 22], "infer": 6, "close": [6, 8, 34], "script": [6, 8, 18, 20, 31, 32, 34, 44], "complet": [6, 8, 12, 13, 15, 18, 29, 34, 35, 37, 45], "run": [6, 8, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 27, 29, 32, 34, 40, 44, 45], "final": [6, 21, 22, 35], "t_length": 6, "10": [6, 8, 18, 19, 21, 22, 32, 34, 35, 40, 43, 45], "t_width_in": 6, "0": [6, 8, 11, 14, 18, 19, 20, 21, 22, 32, 33, 34, 35, 40, 42, 43, 45], "5": [6, 8, 11, 14, 19, 20, 21, 22, 34, 35, 40, 43, 45], "t_width_out": 6, "add_polygon": 6, "int": [6, 40], "assum": [6, 8, 14, 20, 21, 34, 37, 44, 45], "ve": [6, 15, 31, 32, 35], "provid": [6, 12, 21, 23, 32, 37, 38], "datatyp": [6, 18], "poli": 6, "45": [6, 8, 14, 18, 19, 20, 34, 45], "move": [6, 12, 34, 35, 44], "come": [6, 8, 11, 23, 30, 33, 35, 41, 45], "manipul": [6, 19, 31], "easili": [6, 11, 22, 32, 44, 45], "differ": [6, 8, 11, 13, 14, 15, 19, 20, 21, 22, 23, 24, 28, 31, 32, 34, 39, 40, 41, 42, 43, 44, 45], "combin": [6, 8, 13, 20, 21, 28, 34], "mean": [6, 8, 11, 21, 22, 23, 26, 31, 32, 34, 35, 42, 45], "merg": [6, 12], "xor": 6, "To": [6, 8, 11, 12, 14, 15, 20, 22, 24, 29, 32, 34, 35, 38, 42, 44], "two": [6, 8, 11, 13, 18, 20, 21, 23, 28, 29, 30, 31, 33, 34, 39, 42, 43, 45], "group": [6, 18, 40], "piec": [6, 13], "involv": [6, 31], "itself": [6, 21, 23, 29, 32, 34, 35, 40, 41], "target": [6, 21], "result": [6, 8, 11, 13, 14, 15, 20, 21, 30, 31, 34, 43], "components_a": 6, "components_b": 6, "accept": 6, "equival": [6, 8], "t": [6, 8, 14, 15, 17, 18, 20, 21, 22, 29, 31, 32, 34, 35, 37, 38, 40, 41, 42, 43, 44, 45], "linspac": [6, 21], "pi": [6, 8, 20, 21, 34], "100": [6, 8, 35], "co": [6, 21, 43], "sin": [6, 8, 14, 43], "circl": [6, 34], "triangl": 6, "pacman": 6, "precis": [6, 13, 20, 21, 29], "1e": 6, "6": [6, 8, 21, 35], "origin": [6, 23, 32, 34], "boolean_subtract": 6, "add_ref": [6, 21, 45], "talk": [6, 34, 41], "later": [6, 21, 33], "dimens": [6, 13, 42], "redefin": 6, "everi": [6, 11, 21, 35, 45], "write": [6, 11, 23, 32, 38], "addit": [6, 11, 28], "calcul": [6, 21, 34, 35, 40, 41, 43], "cach": 6, "correspond": [6, 11, 18, 21, 29, 31, 33, 41, 43], "so": [6, 8, 11, 13, 18, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 41, 43, 45], "subsequ": 6, "rebuild": 6, "enabl": [6, 8, 17, 23, 28, 35], "decor": 6, "If": [6, 8, 12, 14, 19, 20, 21, 22, 23, 27, 31, 32, 34, 35, 37, 38, 42, 43, 44, 45], "re": [6, 13, 15, 18, 21, 23, 32, 35, 37, 38], "develop": [6, 12, 13, 23, 31, 38], "modifi": [6, 11, 21, 23, 31, 35], "content": [6, 23], "again": [6, 30, 32, 35], "code": [6, 11, 12, 13, 15, 16, 18, 19, 21, 22, 23, 32, 34, 35, 37, 43, 44], "won": [6, 15, 18, 21, 32, 35], "clear": [6, 33], "clear_cach": 6, "librari": [6, 21, 23, 27, 32, 41, 45], "reusabl": 6, "circuit": [6, 8, 13, 14, 15, 16, 17, 19, 20, 21, 26, 27, 34, 37, 39, 41, 45], "anoth": [6, 8, 11, 18, 20, 21, 23, 28, 30, 35, 42], "fantast": 6, "benefit": [6, 37], "type": [6, 18, 29, 30, 32, 35, 45], "hint": 6, "valid": [6, 9, 13, 35], "name": [6, 11, 18, 19, 21, 22, 23, 30, 32, 35, 43], "abl": [6, 8, 12, 20, 31, 32], "taper_compon": 6, "length": [6, 13, 14, 20, 21, 22, 28, 29, 31, 34, 45], "float": [6, 21], "width_in": 6, "width_out": 6, "like": [6, 8, 11, 13, 14, 15, 17, 18, 19, 21, 23, 28, 29, 30, 32, 35, 37, 38, 39, 40, 41, 43, 45], "quickli": 6, "rectangl": [6, 40], "ellips": [6, 14], "ring": [6, 13, 22, 26, 27], "bend_circular": 6, "bend_eul": 6, "know": [6, 15, 34, 35, 37, 42], "outward": 6, "awai": [6, 8, 29], "match": [6, 8, 11, 20, 34, 35], "respect": [6, 8, 34, 41, 42, 43], "expand": [6, 28, 29], "earlier": 6, "note": [6, 8, 14, 20, 21, 22, 23, 34, 35, 44], "common": [6, 13, 16, 18, 20, 21, 26, 29, 30, 32, 41, 45], "toward": [6, 35], "o1": [6, 11, 20, 21, 45], "orient": [6, 22, 42], "180": [6, 8], "port_typ": 6, "o2": [6, 11, 20, 21, 45], "add_port": [6, 19], "And": [6, 15, 21], "convent": [6, 13, 21, 30, 31, 42], "clock": 6, "wise": 6, "bottom": [6, 38], "left": [6, 8, 14, 18, 34, 35, 38, 43, 45], "corner": [6, 38], "prefix": 6, "index": [6, 8, 14, 18, 19, 20, 21, 26, 28, 29, 30, 32, 33, 34, 35, 37, 39, 40, 43, 45], "previous": [6, 18], "essenti": [6, 9, 16, 22], "pointer": [6, 32], "There": [6, 8, 11, 13, 18, 21, 22, 29, 32, 34, 35, 38, 41, 45], "limit": [6, 20], "gdsii": [6, 35], "specif": [6, 8, 11, 14, 17, 18, 23, 32, 35, 38, 43], "built": [6, 23, 27, 32, 33, 40], "around": [6, 12, 22, 32, 34, 35], "previou": [6, 21, 32], "2x2": [6, 11, 20, 35], "multimod": [6, 26, 45], "mmi": [6, 11, 13, 19, 26, 35], "wide": [6, 13], "therefor": [6, 21, 23, 29, 31, 32, 37, 45], "side": [6, 30, 34, 41, 45], "four": [6, 34, 35], "redraw": 6, "individu": [6, 44], "right": [6, 8, 14, 23, 34, 35, 43, 44, 45], "off": [6, 20, 31, 32, 35, 43, 45], "bat": 6, "mmi2x2": [6, 11, 20, 35], "gap": [6, 22, 34, 45], "125": 6, "determin": [6, 8, 14, 20, 40, 41, 43, 45], "taper_length": [6, 19], "taper_width_in": 6, "taper_width_out": 6, "taper_c": 6, "bodi": [6, 20], "rect": 6, "size": [6, 8, 13, 14, 19, 20, 23, 31, 33, 34, 35, 45], "none": [6, 40, 43, 45], "port_width": 6, "port_cent": 6, "o3": [6, 11, 20, 45], "o4": [6, 11, 20], "mmi_ref": 6, "shift": [6, 21, 29], "shorthand": [6, 21], "taper_ref": 6, "_": 6, "rang": [6, 13, 14, 18, 29, 35], "enumer": [6, 43], "destin": [6, 45], "alon": [6, 21, 40], "expos": [6, 21, 31], "ref": 6, "f": [6, 8, 15, 35, 40, 43], "auto_rename_port": 6, "consist": [6, 18, 21, 34, 39], "simpler": 6, "find": [6, 8, 13, 20, 22, 27, 34, 38], "math": [6, 35], "fit": [6, 31], "yourself": 6, "often": [6, 11, 23, 31, 32, 34, 35, 41, 45], "swap": [6, 21, 33], "redo": 6, "inlin": [6, 15], "rect_ref": 6, "figur": [6, 28, 30, 35, 39, 43, 45], "put": [6, 8, 15, 19, 20, 33], "manufactur": [6, 9, 11, 13, 15, 20, 21, 29, 35, 39, 41, 45], "share": [6, 8, 14, 34], "tool": [6, 12, 13, 15, 16, 18, 27, 31, 32, 35, 37, 40, 44], "potenti": [6, 23, 31], "lumer": 6, "fix": [6, 22, 23, 32], "write_gd": [6, 19, 22], "suppli": [6, 29], "path": [6, 8, 12, 14, 16, 18, 21, 31, 34, 44], "current": [6, 29, 33], "directori": [6, 8, 14, 20, 22, 34], "sometim": [6, 8, 11, 14, 32], "necessari": [6, 11, 13, 32, 33, 35, 40], "perhap": [6, 23], "meep": [6, 8, 13, 14, 15, 20, 32, 34, 40, 45], "Or": [6, 34], "were": [6, 11, 14, 31, 32, 33, 34, 42], "given": [6, 8, 11, 14, 21, 32, 35, 41, 43], "fab": [6, 18, 31, 45], "while": [6, 8, 12, 16, 18, 21, 23, 26, 30, 31, 32, 33, 34, 35, 37, 38, 42, 43, 45], "ha": [6, 8, 11, 14, 16, 18, 21, 22, 23, 31, 32, 33, 34, 35, 39, 40, 42], "convert": [6, 11, 13, 31, 43], "step": [6, 8, 11, 15, 18, 22, 24, 27, 31, 34, 44], "after": [6, 19, 21, 22, 32, 35], "convers": 6, "get": [6, 8, 11, 12, 18, 19, 20, 21, 22, 31, 34, 35, 43, 44, 45], "branch": [6, 21, 26], "siepic": [6, 21, 22, 27], "ebeam": [6, 21, 27], "ebeam_y_1550": [6, 22], "github": [6, 15, 17, 21, 34], "import_gd": 6, "filenam": [6, 45], "splitter": [6, 11, 21, 22, 31, 45], "read": [6, 8, 16, 18, 21, 23, 31, 32, 35], "manual": [6, 31, 41, 44], "hover": 6, "mous": 6, "examin": [6, 34], "themselv": 6, "midpoint": 6, "7": [6, 8, 32, 35], "75": [6, 8, 21, 40], "separ": [6, 21], "straight": [6, 33, 35, 42, 45], "bend": [6, 22, 31], "radiu": [6, 22, 34], "recal": [6, 21], "canva": 6, "straight_ref": 6, "bend_ref": 6, "pick": 6, "recreat": [6, 32], "racetrack": [6, 34], "coupler": [6, 11, 13, 18, 20, 21, 22, 24, 26, 31, 33, 34, 45], "camacholab": [7, 15], "sequoia": [7, 15, 18], "ploeg": [7, 15], "ph": 7, "candid": 7, "ryan": [7, 15], "camacho": [7, 15], "associ": [7, 13], "professor": 7, "elis": 7, "bangert": 7, "undergradu": 7, "research": 7, "joel": 7, "kartchner": 7, "chandler": 7, "parkin": 7, "noah": 7, "bailei": 7, "kevin": 7, "richin": 7, "small": [8, 13, 16, 29, 30, 38], "transfer": [8, 29, 31, 34], "light": [8, 11, 13, 14, 20, 21, 26, 28, 29, 31, 33, 34, 35, 39, 40, 41, 42], "multipl": [8, 11, 13, 15, 18, 34, 42], "eigenmod": [8, 20, 34], "mode": [8, 13, 20, 21, 31, 34, 35, 41, 42, 45], "field": [8, 11, 14, 20, 21, 31, 33, 35, 40, 42, 44, 45], "outsid": [8, 23, 26, 35, 40, 43], "evanesc": [8, 33, 40], "second": [8, 11, 14, 21, 28, 29, 32, 40, 43, 45], "propag": [8, 21, 28, 33, 34, 35, 40, 42], "us": [8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 44, 45], "photon": [8, 11, 13, 14, 15, 16, 17, 18, 20, 21, 26, 27, 30, 32, 33, 34, 35, 39, 41, 42, 44, 45], "amount": [8, 14, 21, 29, 32, 35], "thing": [8, 15, 18, 32, 35, 37, 38, 40, 45], "region": [8, 18, 20, 28, 30, 31, 35, 45], "enough": [8, 31, 37, 43], "incid": [8, 11, 43], "distanc": [8, 20, 34, 39], "materi": [8, 14, 15, 18, 19, 20, 23, 26, 28, 29, 30, 31, 33, 34, 35, 39, 40, 41, 43, 45], "layout": [8, 11, 15, 16, 21, 31, 32, 34, 37], "produc": [8, 21], "g": [8, 12, 15, 18, 31, 41, 43, 45], "50": [8, 13, 21, 45], "25": [8, 14, 18, 19, 21, 35, 43], "fraction": [8, 20, 45], "geometr": [8, 13, 14, 20, 27, 31, 34], "describ": [8, 14, 21, 28, 30, 31, 33, 34, 35, 37, 42], "kappa": [8, 34], "frac": [8, 14, 21, 34, 41, 43], "p_": 8, "p_0": 8, "cl": 8, "coeffici": [8, 21, 43], "l": [8, 21, 34], "found": [8, 22, 38, 40, 41], "analysi": [8, 13, 14], "system": [8, 12, 13, 14, 15, 18, 20, 27, 32, 34, 37, 38], "odd": 8, "antisymmetr": 8, "occur": [8, 20, 21, 34, 43], "circ": 8, "similarli": 8, "symmetr": [8, 11, 35, 45], "user": [8, 12, 23, 32, 44], "permitt": [8, 26], "clad": [8, 14, 18, 31, 33, 35, 39, 40, 41, 43, 45], "refract": [8, 14, 18, 21, 26, 28, 29, 30, 33, 39, 40, 41], "indic": [8, 14, 28, 34, 35, 41, 43], "valu": [8, 11, 18, 21, 22, 32, 33, 35, 40, 43], "rel": [8, 19, 21, 27, 28, 29, 31, 32, 45], "increas": [8, 14, 29, 30, 41], "decreas": [8, 14, 41], "notic": [8, 21, 23, 28, 33, 40, 41, 43], "intens": [8, 14, 20, 21, 34, 35, 45], "insid": [8, 34, 40], "gplugin": [8, 32, 40], "gm": [8, 11, 40], "find_modes_coupl": 8, "core_width": [8, 40], "core_materi": [8, 40], "clad_materi": [8, 40], "core_thick": [8, 40], "22": [8, 35, 44], "resolut": [8, 11, 14, 19, 20, 34, 35, 40, 45], "40": [8, 18, 35, 40, 45], "sz": [8, 40], "nmode": [8, 40], "m1": [8, 18, 40], "m2": [8, 34, 40], "look": [8, 11, 22, 23, 26, 32, 35, 38, 42, 45], "big": 8, "print": [8, 11, 13, 21, 35, 40], "neff": [8, 40], "dielectr": [8, 40, 45], "sidebar": 8, "plot_ep": 8, "plot_ei": [8, 40], "abov": [8, 11, 14, 18, 21, 29, 31, 34, 35, 40, 42, 43, 45], "happen": 8, "desir": [8, 12, 14, 28, 31, 35], "delta": [8, 21], "n": [8, 17, 18, 20, 21, 30, 31, 32, 34, 35, 43], "lambda": [8, 14, 21, 34, 41], "n_": [8, 14, 34, 41, 43], "eff": [8, 14, 34, 41], "find_coupling_vs_gap": 8, "crossov": 8, "tabl": 8, "detail": [8, 14, 21, 35, 38], "ne": 8, "unit": [8, 28, 29, 35], "mu": [8, 21], "m": [8, 15, 20, 21, 32, 34], "lc": 8, "dn": 8, "exponenti": [8, 40], "relationship": [8, 11, 21, 29, 30, 35], "cdot": 8, "variou": [8, 21, 22, 31, 35, 37], "oper": [8, 18, 20, 21, 29, 30, 31, 32, 33, 34, 35, 37], "mp": [8, 11, 14, 19, 20, 22, 34, 35, 40, 45], "gap1": 8, "gap2": 8, "11": [8, 18, 21, 22, 32, 40], "55": [8, 14, 19, 20, 21, 34, 35, 45], "pariti": [8, 40], "even_i": [8, 35], "463631": 8, "409798": 8, "14": [8, 22], "396530": 8, "053832": 8, "460647": 8, "410682": 8, "15": [8, 11, 21, 34, 43], "510925": 8, "049965": 8, "12": [8, 14, 18, 22, 35], "459734": 8, "411797": 8, "16": [8, 18, 22, 40], "166968": 8, "047937": 8, "13": [8, 35], "452682": 8, "411449": 8, "18": [8, 18], "795515": 8, "041233": 8, "448745": 8, "412270": 8, "21": [8, 43], "247526": 8, "036475": 8, "447691": 8, "414688": 8, "23": [8, 15], "482841": 8, "033003": 8, "447658": 8, "416929": 8, "220085": 8, "030729": 8, "17": [8, 43], "447685": 8, "418000": 8, "26": [8, 22, 43], "107513": 8, "029685": 8, "8": [8, 11, 21, 35, 45], "442283": 8, "416295": 8, "29": 8, "821729": 8, "025988": 8, "9": [8, 35, 43, 45], "19": [8, 18], "439496": 8, "416231": 8, "33": 8, "311196": 8, "023265": 8, "20": [8, 11, 19, 20, 21, 22, 34, 43], "438256": 8, "417123": 8, "36": 8, "672851": 8, "021133": 8, "own": [8, 15, 17, 18, 21, 23, 31, 32, 37], "normal": [8, 14, 35, 44], "constant": [8, 21, 30, 34], "beta": [8, 20, 21, 34, 45], "travel": [8, 14, 21, 28, 30, 34, 40, 41, 43], "down": [8, 21, 32, 35, 40], "oscil": [8, 28, 42], "beat": [8, 20], "One": [8, 23, 27, 31, 33, 39], "over": [8, 12, 14, 20, 31, 34, 39], "smaller": [8, 33], "faster": [8, 30], "sinc": [8, 11, 13, 21, 32, 34, 35, 37, 38, 40, 45], "shorter": [8, 21, 29, 41], "give": [8, 11, 14, 15, 21, 22, 32, 35, 37], "begin": [8, 20, 21, 41, 43], "l_": [8, 20, 21], "nonumb": 8, "multipli": 8, "_1": [8, 20], "l_x": 8, "_2": 8, "n_1": 8, "n_2": 8, "Of": [8, 23, 43], "don": [8, 17, 21, 29, 32, 37, 41, 44, 45], "oftentim": 8, "60": 8, "receiv": 8, "equat": [8, 13, 14, 20, 21, 29, 31, 34, 40, 41], "further": [8, 11, 21, 33, 35], "explor": [8, 33, 42, 44], "send": [8, 16, 33], "affect": [8, 14, 20, 21, 29, 34, 41, 42, 45], "minut": 8, "setup": [8, 13, 31, 32, 37, 38, 44], "gif": [8, 14, 20, 34], "typic": [8, 13, 14, 23, 27, 29, 30, 31, 39, 41], "practic": [8, 15, 21, 32], "si": [8, 14, 19, 20, 34, 40], "medium": [8, 14, 19, 20, 34, 35, 45], "sio2": [8, 14, 18, 19, 20, 34, 35, 40], "um": [8, 14, 20, 21, 35], "wvl": [8, 14, 19, 20, 34], "cell": [8, 14, 20, 31, 34, 35], "wg_width": [8, 34], "dpml": [8, 20, 35], "pad": [8, 20, 34], "07": 8, "lx": 8, "30": [8, 14, 43, 45], "sx": [8, 19, 20, 34, 45], "sy": [8, 19, 20, 34, 40, 45], "wg_center_i": 8, "pml": [8, 14, 19, 20, 34, 35, 45], "perfectli": [8, 20, 21, 34, 35], "infinit": 8, "long": [8, 21, 32, 34, 35, 39, 44], "vector3": [8, 14, 19, 20, 34, 35, 45], "puls": [8, 14, 20, 34], "fcen": [8, 14, 19, 20, 34, 35], "fwidth": [8, 14, 19, 20, 34, 35], "src": [8, 19, 20, 34, 35], "gaussiansourc": [8, 14, 19, 20, 34, 35], "frequenc": [8, 11, 13, 14, 19, 20, 21, 28, 29, 30, 33, 34, 43, 45], "eigenmodesourc": [8, 19, 20, 34, 35, 45], "eig_band": [8, 19, 20, 34, 35, 45], "eig_kpoint": [8, 19, 20, 34, 35], "sim": [8, 11, 14, 19, 20, 34, 35, 45], "cell_siz": [8, 11, 14, 19, 20, 34, 35, 45], "boundary_lay": [8, 14, 19, 34, 35, 45], "default_materi": [8, 19, 34, 45], "set": [8, 11, 13, 14, 15, 18, 20, 21, 22, 31, 32, 34, 35, 38, 40, 43, 44], "plot2d": [8, 11, 14, 19, 20, 34, 35, 45], "warn": [8, 43], "grid": 8, "volum": [8, 35, 41, 45], "integ": [8, 18, 34], "pixel": [8, 35], "round": [8, 31, 34], "nearest": 8, "ax": [8, 21, 40, 43], "pil": [8, 14, 20, 34], "imag": [8, 14, 21, 34, 35, 45], "glob": [8, 14, 20, 34], "os": [8, 14, 20, 34, 37], "reset_meep": [8, 35], "captur": [8, 14, 20, 34], "at_begin": [8, 14, 20, 34], "output_epsilon": [8, 14, 20, 34], "to_append": [8, 14, 20, 34], "ez": [8, 14, 20, 34, 45], "at_everi": [8, 14, 20, 34], "output_efield_z": [8, 14, 20, 34], "until": [8, 11, 14, 20, 34, 35, 45], "200": [8, 11, 14, 20, 35], "gener": [8, 11, 13, 14, 18, 20, 21, 23, 28, 29, 31, 32, 34, 40, 42], "png": [8, 14, 20, 21, 34], "colormap": [8, 14, 20, 34], "work": [8, 20, 22, 23, 32, 34, 35, 42], "h5py": [8, 14, 20, 34], "instal": [8, 12, 13, 14, 16, 20, 22, 27, 32, 34, 37, 38, 40, 44], "problem": [8, 14, 15, 20, 29, 34], "h5util": [8, 14, 20, 34], "h5topng": [8, 14, 20, 34], "99": [8, 14], "r": [8, 14, 20, 32, 34, 43], "zc": [8, 14, 20, 34], "rdbu": [8, 14, 20, 34, 35, 45], "ep": [8, 14, 20, 34], "000000": [8, 14, 20, 34], "00": [8, 14, 20, 22, 34, 43], "h5": [8, 14, 20, 34], "grai": [8, 14, 20, 34, 40], "frame": [8, 14, 20, 34], "img": [8, 14, 20, 34], "sort": [8, 14, 20, 31, 34], "new_fram": [8, 14, 20, 34], "append": [8, 14, 20, 34, 35], "loop": [8, 14, 20, 34, 35], "forev": [8, 14, 20, 34], "append_imag": [8, 14, 20, 34], "save_al": [8, 14, 20, 34], "clean": [8, 14, 20, 34], "workspac": [8, 14, 20, 34], "delet": [8, 14, 20, 32, 34], "invalid": [8, 14, 43], "circumv": [8, 14], "issu": [8, 14], "chosen": [8, 14, 41, 43], "sensit": [8, 14, 20, 31], "fabric": [8, 9, 13, 15, 18, 22, 27, 29, 31, 35], "variat": [8, 20, 34], "robust": [8, 20, 32], "element": [8, 13, 21, 29, 35, 41], "principl": [8, 13, 14, 15, 18, 20, 35, 43], "behind": [8, 21, 31], "interfer": [8, 13, 14, 20, 21, 28, 33, 34, 45], "nearbi": 8, "chip": [8, 13, 14, 16, 17, 18, 21, 26, 31, 32], "parasit": 8, "too": [8, 13, 18, 21, 32, 34, 37, 42], "lead": [8, 33, 34, 41], "leak": [8, 45], "far": [8, 11, 33, 34], "apart": 8, "silicon": [8, 13, 14, 21, 30, 31, 35, 39, 40, 43, 45], "answer": [8, 21, 32, 43], "approxim": [8, 13, 18, 29], "135": 8, "micron": [8, 14, 18, 21, 40], "luka": [8, 14, 45], "chrostowski": [8, 14, 45], "stefan": 8, "prebl": 8, "facil": [9, 15, 31], "simul": [11, 13, 14, 15, 18, 19, 22, 24, 27, 31, 40, 43, 45], "devic": [11, 13, 15, 16, 18, 20, 21, 22, 26, 27, 28, 30, 34, 45], "befor": [11, 21, 23, 27, 31, 32, 35], "idea": [11, 22, 32], "perform": [11, 13, 15, 31, 32, 35], "plugin": 11, "finit": [11, 13, 31, 32, 40], "domain": [11, 13, 32, 43], "algorithm": [11, 32], "fdtd": [11, 13, 15, 32], "turn": [11, 21, 29, 35, 40], "component_from_gd": 11, "py": [11, 21, 43], "func": 11, "get_simul": [11, 20], "get_meep_geometry_from_compon": [11, 20], "grate": [11, 13, 18, 21, 22, 24, 31], "fiber": [11, 13, 14, 18, 21, 31, 33], "connect": [11, 15, 18, 21, 31, 45], "howev": [11, 15, 21, 22, 23, 27, 33, 34, 35, 37, 45], "suffic": 11, "tutori": [11, 21, 22, 35], "tidy3d": [11, 20, 41], "implement": [11, 29, 34], "tpml": [11, 20], "port_source_offset": [11, 20], "port_monitor_offset": [11, 20], "distance_source_to_monitor": [11, 20], "32": 11, "scatter": [11, 21, 42], "tell": [11, 13, 22, 32, 34, 35, 42], "port": [11, 13, 18, 19, 20, 21, 22, 34, 45], "purpos": [11, 17, 23, 28, 41], "write_sparameters_meep": 11, "3d": [11, 18, 33, 35], "margin": 11, "account": [11, 12, 34, 44], "kwarg": 11, "fals": [11, 18, 35, 40, 43], "wast": 11, "incorrectli": 11, "2d": [11, 14, 19, 33, 35], "comprehens": [11, 35, 42], "dictionari": [11, 18, 20, 21], "kei": [11, 14, 21, 33], "form": [11, 21, 29], "refer": [11, 13, 15, 31, 34, 41, 42], "go": [11, 15, 16, 20, 22, 23, 24, 27, 28, 34, 35, 37, 44, 45], "symmetri": 11, "port_symmetri": 11, "assign": [11, 31], "1x2": [11, 13, 20], "comput": [11, 13, 15, 21, 32, 34, 35, 38, 44], "written": [11, 15], "thu": [11, 34, 45], "write_sparamters_meep_mpi": 11, "write_sparameters_meep_batch": 11, "per": [11, 13, 28], "total": [11, 18, 33, 35, 40], "write_sparameters_gr": 11, "batch": 11, "write_sparameters_grating_mpi": 11, "write_sparameters_grating_batch": 11, "adequ": 11, "xmargin_left": 11, "xmargin_right": 11, "sp": 11, "plot_sparamet": 11, "reflect": [11, 14, 18, 20, 26, 33, 35, 40, 45], "wave": [11, 13, 14, 20, 21, 28, 34, 35, 40, 41, 42, 43], "why": [11, 33, 42], "program": [12, 13, 16, 32, 38], "environ": [12, 15, 17, 22, 23, 37, 38], "uncommon": 12, "roll": [12, 23], "back": [12, 14, 31, 34, 43, 45], "break": [12, 32], "someth": [12, 32], "product": [12, 43], "version": [12, 21, 23, 44], "control": [12, 17, 21, 23], "vc": 12, "extrem": [12, 23], "who": [12, 23], "simultan": [12, 42], "edit": [12, 31, 44], "rather": [12, 31, 34], "painlessli": 12, "predomin": 12, "programm": [12, 23], "todai": 12, "command": [12, 13, 17, 21, 32, 35, 40, 44], "entir": [12, 13, 15, 33, 35], "ecosystem": 12, "host": [12, 15, 32], "servic": 12, "gui": [12, 35, 37], "id": [12, 38], "sprung": 12, "alreadi": [12, 21, 27, 31, 34, 35], "linux": [12, 13, 16, 32, 37, 38, 44], "temin": 12, "enter": [12, 21, 34, 35], "machin": [12, 13, 32, 37, 44], "window": [12, 13, 16, 27, 32, 37, 43], "packag": [12, 15, 16, 17, 18, 21, 22, 27, 37, 40], "mac": [12, 16, 32, 37], "forc": [12, 23], "wsl": [12, 13, 32, 37], "still": [12, 30, 32, 33, 35, 45], "download": [12, 15, 16, 32, 38, 44], "link": [12, 30, 32], "maco": [12, 13, 32, 37, 38], "xcode": 12, "termin": [12, 32, 37, 38, 44], "select": [12, 16, 18, 44], "through": [12, 15, 21, 22, 24, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38, 40, 41, 42, 44], "debian": 12, "distribut": [12, 13, 23, 32, 40], "ubuntu": [12, 32, 37, 44], "sudo": 12, "apt": 12, "rpm": 12, "fedora": 12, "rhel": 12, "cento": 12, "dnf": 12, "known": [12, 14, 21, 23, 32, 38, 39, 40, 42, 43], "free": [12, 13, 14, 15, 16, 23, 29, 31, 32, 41], "privat": 12, "bootcamp": [12, 15, 18, 34, 35], "along": [12, 14, 34, 40, 42, 43], "popular": [12, 23, 32, 38, 39], "python": [12, 13, 15, 16, 18, 31, 35, 37, 38, 43], "keep": [12, 15, 32, 35], "definit": [13, 23], "throughout": [13, 21], "mathemat": [13, 21, 31, 34], "descript": 13, "behavior": [13, 21, 31, 33, 34, 42, 43, 45], "cutback": 13, "techniqu": 13, "measur": [13, 14, 20, 21, 29, 34, 41], "attenu": [13, 31, 34], "transmiss": [13, 21, 28, 34, 35, 43], "delai": [13, 31], "count": 13, "etc": [13, 18, 31, 32, 41], "drc": [13, 16, 18, 31], "verifi": [13, 32, 35], "ensur": [13, 21, 31, 32, 35, 45], "error": [13, 18, 20, 27, 40], "caus": [13, 21, 30], "fail": [13, 35], "short": [13, 14, 16, 21, 23, 30], "featur": [13, 16, 22, 31, 32, 38, 40, 41], "resolv": [13, 43], "drastic": 13, "foundri": 13, "minimum": [13, 20, 31], "space": [13, 14, 29, 31, 34, 41], "numer": [13, 40], "electrodynam": 13, "solut": 13, "differenti": [13, 29, 40], "method": [13, 15, 17, 19, 21, 23, 31, 32, 35, 37], "cover": [13, 15], "singl": [13, 15, 20, 21, 22, 31, 34, 37, 45], "primari": 13, "avail": [13, 15, 16, 18, 22, 23, 31, 32, 37], "platform": [13, 15, 32], "yaml": [13, 22], "flow": [13, 27], "gd": [13, 14, 15, 16, 18, 22, 27, 31, 32, 35, 37, 45], "graphic": 13, "coupl": [13, 14, 21, 22, 23, 31, 45], "reson": [13, 26, 27], "instrument": [13, 17, 20], "util": [13, 14, 18, 20, 21, 23], "beam": [13, 14, 20, 21, 33], "multi": 13, "split": [13, 20, 21, 35], "ideal": [13, 14, 21, 33], "nearli": 13, "imposs": 13, "polygon": [13, 31], "electron": [13, 27, 33, 35], "digit": [13, 27], "dry": 13, "modif": 13, "replic": 13, "insul": [13, 39], "soi": [13, 18, 31, 39, 43], "technolog": [13, 22, 31], "substrat": [13, 14, 18, 31, 39, 40], "semiconductor": 13, "wafer": [13, 31, 39], "vscode": [13, 32], "studio": [13, 37], "commonli": [13, 23, 32, 41], "vs": [13, 38], "editor": [13, 15, 37, 38], "microsoft": [13, 37, 38], "support": [13, 15, 17, 18, 20, 30, 41, 42], "debug": [13, 32], "syntax": [13, 17, 32, 40], "highlight": 13, "intellig": 13, "snippet": 13, "refactor": [13, 32], "embed": [13, 15], "git": [13, 18], "wikipedia": 13, "subsystem": [13, 37], "bash": [13, 32, 44], "directli": [13, 15, 18, 19, 35], "unmodifi": 13, "overhead": 13, "tradit": [13, 39], "virtual": [13, 17, 37], "dual": 13, "boot": 13, "diffract": 14, "cabl": [14, 31], "edg": [14, 24], "teeth": 14, "drawn": [14, 33], "onto": [14, 24, 31, 39, 44], "altern": [14, 44], "structur": 14, "propog": [14, 21, 31], "hyugen": 14, "fresnel": [14, 43], "bragg": 14, "law": [14, 40, 43], "depict": [14, 33, 41], "orthogon": [14, 33, 42], "arrai": [14, 21, 22, 35, 43], "might": [14, 18, 21, 32, 45], "imagin": [14, 21], "hold": [14, 23, 35], "catch": 14, "cell_x": 14, "cell_i": 14, "x_offset": 14, "nanomet": 14, "num_teeth": 14, "waveguide_depth": 14, "220": [14, 18, 21], "etch_depth": 14, "068": 14, "grating_period": 14, "659": 14, "fill_factor": 14, "524": 14, "verbos": [14, 45], "inf": [14, 19], "epsilon": [14, 35], "cladding_depth": 14, "box_depth": 14, "box": [14, 18, 27, 35, 38, 43], "substrate_depth": 14, "700": 14, "df": [14, 35], "pml_layer": [14, 19], "500": [14, 21], "savefig": 14, "grating_coupler_plot": 14, "encount": [14, 23, 43], "recogn": 14, "discuss": [14, 33], "page": [14, 18, 22, 32, 33, 34, 35, 40, 44, 45], "demonstr": [14, 43], "been": [14, 31, 32, 33, 35], "1550": 14, "appropri": [14, 21, 32, 33], "three": [14, 18, 20, 21, 35, 42], "understand": [14, 22, 34, 35, 42, 43], "simplifi": [14, 21, 33], "view": [14, 16, 18, 35, 37], "denot": [14, 20], "effici": [14, 21], "relat": [14, 18, 33, 40], "angl": [14, 21, 33], "condit": [14, 21, 23, 40], "theta_": 14, "air": [14, 43], "compar": [14, 30, 41], "surfac": 14, "choos": [14, 19, 33, 40], "exactli": [14, 21, 35], "90": [14, 21, 45], "degre": [14, 21, 29, 43], "byproduct": [14, 30], "larg": [14, 32, 45], "indcu": 14, "twice": 14, "avoid": [14, 32], "slightli": [14, 20, 21, 30, 35, 41, 45], "less": [14, 23, 31, 33, 34, 45], "area": [14, 31, 32, 43], "overal": 14, "weight": [14, 45], "unetch": 14, "ratio": [14, 20, 34, 35, 43, 45], "ff": 14, "w": 14, "welcom": 15, "present": [15, 18, 20, 33], "onlin": [15, 23], "freeli": [15, 23, 32], "resourc": [15, 30], "teach": 15, "student": 15, "curriculum": 15, "background": [15, 16, 21, 23], "motiv": 15, "full": [15, 23, 31, 32, 33, 34, 40], "learner": 15, "guid": [15, 31, 37, 39, 41, 43], "submit": [15, 23, 27], "wish": [15, 23], "simphoni": [15, 21, 22, 27, 32], "submiss": [15, 31], "pic": 15, "post": 15, "instruct": [15, 22, 27, 32, 37, 38, 44], "contribut": [15, 23], "subject": 15, "matter": [15, 35], "expert": 15, "futur": [15, 32], "expans": 15, "fork": 15, "parti": 15, "custom": [15, 23], "train": 15, "websit": [15, 23], "explanatori": 15, "webpag": 15, "launch": [15, 35], "colab": 15, "local": [15, 17, 37], "immedi": [15, 32], "alwai": [15, 21, 22, 32, 45], "workflow": 15, "approach": 15, "introduc": [15, 21, 23, 29, 32, 34, 45], "bother": 15, "mention": [15, 18, 23], "possibl": [15, 42], "configur": [15, 18, 22, 37], "ahead": 15, "standard": [15, 37, 45], "ardavan": 15, "oskooi": 15, "david": 15, "roundi": 15, "mihai": 15, "ibanescu": 15, "peter": 15, "bermel": 15, "john": 15, "joannopoulo": 15, "steven": 15, "johnson": 15, "flexibl": [15, 31], "electromagnet": [15, 40, 42, 45], "physic": [15, 24, 30, 41], "commun": [15, 23, 32], "181": 15, "687": 15, "702": 15, "2010": 15, "hyrum": 15, "gunther": 15, "framework": [15, 17], "scienc": 15, "65": 15, "74": 15, "2020": 15, "joaquin": 15, "matr": 15, "2023": 15, "url": [15, 23], "http": [15, 21, 23, 33, 44], "io": 15, "verif": [16, 27], "viewer": [16, 37], "trace": [16, 39], "net": 16, "detect": [16, 31], "scriptabl": 16, "languag": [16, 32], "rubi": 16, "extens": [16, 38], "extern": [16, 21], "json": 16, "request": 16, "server": [16, 17], "hot": 16, "reload": 16, "rerun": 16, "manag": [16, 37], "Then": [16, 22, 35, 44, 45], "search": 16, "doubl": [16, 21, 27, 34], "click": [16, 24, 27, 38, 44], "pyro5": 17, "remot": 17, "access": [17, 18, 23, 32, 34], "equip": 17, "lab": 17, "favor": [17, 39], "usb": 17, "proprietari": [17, 23], "brand": 17, "unifi": 17, "intrument": 17, "easi": [17, 21, 27, 29, 32, 35], "pip": [17, 22, 32, 37], "conda": [17, 22, 37, 44], "environment_nam": 17, "activ": [17, 22, 23, 26, 28, 32, 44], "updat": [17, 21], "pypi": [17, 32, 37], "upgrad": [17, 22, 32], "visit": 17, "interrog": 17, "station": 17, "interfac": [17, 32, 37, 40, 42], "fore": 17, "whether": [18, 23, 31], "etch": [18, 31, 39, 41], "deposit": [18, 31, 39], "dope": [18, 30, 31], "metal": [18, 29, 31], "p": [18, 30, 31], "translat": [18, 31], "mask": [18, 31], "formal": 18, "state": [18, 23, 35], "255": 18, "modern": [18, 32, 37], "almost": [18, 35, 45], "dedic": [18, 23], "nitrid": 18, "lithium": [18, 43], "niobat": [18, 43], "whichev": 18, "decid": 18, "thin": 18, "top": [18, 21], "dioxid": [18, 39, 43], "thick": [18, 21, 34, 35, 40], "buri": 18, "oxid": [18, 35], "main": [18, 26, 31, 32], "intern": [18, 33, 40], "48": [18, 21], "excel": [18, 30, 32], "refractiveindex": 18, "info": [18, 21], "color": [18, 38, 41, 43], "fill": 18, "map": [18, 21], "human": [18, 21], "readabl": [18, 21, 35], "properti": [18, 28, 30, 31, 40, 41, 44], "lyp": 18, "migrat": 18, "few": [18, 22, 23, 32, 37, 38, 41], "devrec": 18, "recognit": 18, "show_port": 18, "marker": 18, "label_inst": 18, "netlist": 18, "te": [18, 21, 33, 35, 40, 42, 43], "polar": [18, 20, 21, 22, 28, 31, 33, 40], "tm": [18, 21, 42, 43], "pydant": 18, "class": [18, 23, 27], "partial": [18, 30, 33, 42], "germanium": 18, "photodiod": 18, "vari": [18, 21], "concentr": 18, "pn": 18, "junction": 18, "capacitor": [18, 31, 41], "depth": 18, "exclud": 18, "dice": 18, "lane": 18, "reserv": 18, "violat": 18, "reader": 18, "basemodel": 18, "wg": 18, "slab150": 18, "68": 18, "201": 18, "206": 18, "203": 18, "204": 18, "66": 18, "41": 18, "43": 18, "config": [18, 21, 22, 32], "frozen": 18, "extra": [18, 32, 41], "forbid": 18, "32m2023": 18, "06": 18, "227": 18, "0m": [18, 21, 22, 40], "1minfo": [18, 22, 40], "36mgdsfactori": [18, 22], "36m__init__": [18, 22], "36m204": 18, "1mloglevel": 18, "visibl": 18, "export": [18, 19, 22], "hatch_pattern": 18, "dot": 18, "ff9d9d": 18, "layer_in_nam": 18, "coars": 18, "transpar": 18, "cyan": 18, "01ff6b": 18, "bright": 18, "hollow": 18, "cc4c00": 18, "label_optical_io": 18, "blue": [18, 33, 35, 40, 42, 43], "label_set": 18, "202": 18, "magenta": 18, "red": [18, 33, 35, 42, 43], "lightli": 18, "hatch": 18, "004080": 18, "pinrec": 18, "404040": 18, "xsection": 18, "group_memb": 18, "xs_box": 18, "300": [18, 35], "f3ff80": 18, "solid": 18, "xs_si": 18, "301": 18, "black": [18, 35, 43], "xs_si_slab": 18, "313": 18, "80a8ff": 18, "xs_overlai": 18, "311": 18, "xs_ox_si": 18, "302": 18, "xs_via": 18, "303": 18, "grei": 18, "xs_m1": 18, "304": 18, "green": [18, 43], "xs_oxide_m1": 18, "305": 18, "308": 18, "ff80a8": 18, "wg_pin": 18, "klayout_lyp": 18, "posixpath": [18, 22], "home": [18, 22, 34, 35, 40], "env": [18, 21, 22, 32, 34, 40], "lib": [18, 21, 22, 40], "python3": [18, 21, 22, 40], "site": [18, 21, 22, 23, 40], "generic_tech": [18, 22], "tech": 18, "npp": 18, "pp": 18, "ppp": 18, "Be": [18, 21], "sure": [18, 19, 23, 27, 35], "gmeep": [19, 20, 40], "meep_adjoint_optim": 19, "straightforward": 19, "get_component_from_sim": 19, "continu": [19, 32, 35, 40], "variabl": [19, 21, 30, 31, 35, 45], "waveguide_width": 19, "arm_separ": 19, "mmi_length": 19, "mmi_width": 19, "taper_width": 19, "pml_size": 19, "taper_x1": 19, "taper_x2": 19, "taper_y1": 19, "taper_y2": 19, "taper_y3": 19, "taper_y4": 19, "prism": 19, "height": [19, 21, 41], "source_center_x": 19, "source_s": 19, "kpoint": 19, "no_direct": [19, 35], "geometry_cent": 19, "gdspath": 19, "2x2mmi": 19, "predict": [20, 21, 31, 42], "certain": [20, 23, 33, 34, 42], "k": [20, 26, 43], "wider": 20, "gradual": 20, "widen": 20, "nxm": 20, "replica": 20, "period": [20, 21, 29], "_0": 20, "wall": [20, 32], "interf": 20, "destruct": [20, 21, 28, 33, 45], "forward": [20, 23, 30, 35], "backward": [20, 32, 35], "word": [20, 23, 28, 33, 45], "excit": 20, "goe": [20, 34, 35, 43, 45], "THE": 20, "TO": 20, "length_mmi": 20, "extend": [20, 23], "extend_port": 20, "port_nam": [20, 21], "299": [20, 34], "evenli": [20, 45], "advantag": [20, 23, 31], "veri": [20, 21, 23, 30, 32, 35, 37, 39, 45], "suscept": [20, 31], "fact": [20, 23, 35], "optimum": 20, "contrast": 20, "mimic": 20, "disadvantag": 20, "switch": [20, 21, 34, 35], "wdm": 20, "divis": 20, "multiplex": 20, "hybrid": 20, "divers": 20, "photodetector": [20, 26, 31], "extract": [21, 40], "doc": [21, 22, 38, 40], "zender": 21, "concept": [21, 31, 32, 33, 34], "recombin": [21, 45], "accumul": 21, "quantum": 21, "piezo": 21, "transduc": 21, "sax": 21, "jax": 21, "nice": [21, 32, 37], "speedup": 21, "gpu": 21, "fine": 21, "cpu": 21, "awar": 21, "jax_enable_x64": 21, "drop": 21, "replac": 21, "jnp": 21, "broken": 21, "constitu": 21, "diagram": [21, 34, 42], "carri": [21, 23], "identifi": 21, "explain": [21, 30, 34, 35, 44], "formul": 21, "s_": 21, "ij": 21, "repres": [21, 33, 35, 41, 42, 43], "j": [21, 34, 35], "stimuli": 21, "signatur": 21, "grating_coupl": 21, "31msignatur": 21, "0msiepic": 21, "34m": 21, "0mgrating_coupl": 21, "0mwl": 21, "0munion": 21, "0mfloat": 21, "0mjax": 21, "0marrai": 21, "36m1": 21, "0mpol": 21, "0mliter": 21, "0mthick": 21, "36m220": 21, "0mdwidth": 21, "36m0": 21, "0mdict": 21, "0mtupl": 21, "0mstr": 21, "0mjaxtyp": 21, "0mcomplex": 21, "31mdocstr": 21, "1550nm": 21, "citat": 21, "_static": 21, "ebeam_gc_te1550": 21, "alt": 21, "ebeam_bdc_te1550": 21, "wl": 21, "evalu": 21, "pol": 21, "210": 21, "230": 21, "dwidth": 21, "nomin": 21, "rais": 21, "valueerror": 21, "com": [21, 23, 33], "siepic_ebeam_pdk": 21, "blob": 21, "master": 21, "20compon": 21, "20with": 21, "20model": 21, "docx": 21, "31mfile": 21, "miniconda3": [21, 22, 34, 40], "31mtype": 21, "inspect": [21, 23], "o0": 21, "0307378": 21, "00345908j": 21, "dtype": 21, "complex128": 21, "75686856": 21, "02082852j": 21, "74360676": 21, "09760613j": 21, "0750638": 21, "02585451j": 21, "get_port": 21, "y_branch": 21, "strictli": 21, "enforc": 21, "rewrit": 21, "string": [21, 40], "instance_nam": 21, "whitespac": 21, "delimit": 21, "comma": 21, "composit": 21, "gc_in": 21, "gc": 21, "ybranch": [21, 45], "long_wg": 21, "short_wg": 21, "gc_out": 21, "act": 21, "whatev": 21, "invok": [21, 32], "gave": 21, "becom": [21, 23, 32, 35, 42], "instanti": 21, "unsur": 21, "get_set": 21, "loss": [21, 29, 30, 34, 35, 45], "overkil": 21, "everyth": [21, 35, 44], "els": [21, 32, 35], "stai": 21, "global": 21, "toplevel": 21, "trickl": 21, "1000": 21, "150": 21, "transmit": [21, 34, 39, 42, 43], "magnitud": [21, 35, 40, 43], "squar": [21, 34], "renam": 21, "unconnect": 21, "realli": [21, 23, 35, 43], "meaning": 21, "both": [21, 29, 30, 32, 34, 35, 40, 45], "linear": [21, 29, 35, 45], "log": [21, 35], "scale": [21, 31, 45], "mag": 21, "ab": [21, 35], "fig": [21, 40, 43], "subplot": [21, 40, 43], "sharex": [21, 40], "set_ylabel": 21, "log10": [21, 35], "db": [21, 35], "set_xlabel": [21, 43], "suptitl": 21, "dip": 21, "opposit": 21, "peak": [21, 33, 34], "maximum": [21, 34], "better": [21, 41, 42], "think": [21, 31, 32], "equal": [21, 28, 34, 41, 43, 45], "my_compon": 21, "delta_length": [21, 22], "relev": 21, "amplitud": [21, 28, 29, 30, 31, 33, 45], "i_": 21, "e_": [21, 34], "sqrt": 21, "hspace": 21, "2mm": 21, "whose": 21, "undergon": 21, "mw": [21, 29], "lossless": 21, "plane": [21, 42], "e_0": 21, "omega": 21, "z": [21, 35, 40, 42], "beta_": 21, "alpha_": 21, "\u03b1": 21, "appear": 21, "expon": 21, "zero": [21, 40], "lvert": 21, "express": [21, 29], "1450": 21, "longer": [21, 29, 41], "102": 21, "491": 21, "phasa": 21, "heat": [21, 26, 29], "static": 21, "\u03b2": 21, "100\u00b5m": 21, "1500nm": 21, "ouptput": 21, "9mw": 21, "heater": 21, "walk": [22, 24, 40], "mzi": 22, "prepar": 22, "ubcpdk": 22, "forg": [22, 32], "gdstk": 22, "plai": 22, "uc": 22, "conf": 22, "display_typ": 22, "32m2024": [22, 40], "01": [22, 40, 45], "59": 22, "56": 22, "805": 22, "layer_view": 22, "36m790": 22, "1mimport": 22, "layerview": 22, "parkeraa": [22, 40], "57": 22, "403": 22, "36mubcpdk": 22, "36m": [22, 40], "modul": [22, 26, 28, 29, 30, 31, 40], "36m30": 22, "1mfound": 22, "478": 22, "482": 22, "36mactiv": 22, "36m307": 22, "1m": 22, "pretti": [22, 32], "doesn": [22, 38, 40, 42], "adjust": [22, 28, 29, 43, 45], "length_x": 22, "length_i": 22, "ring_singl": 22, "littl": 22, "bit": [22, 42], "ascii": 22, "rotat": 22, "though": [22, 32], "ad": [22, 30, 35], "mark": 22, "autom": [22, 31], "openebl": [22, 27], "tester": 22, "usig": 22, "component_nam": 22, "usernam": [22, 44], "yml": 22, "yournam": 22, "restart": [22, 44], "kernel": [22, 35], "component_fiber_arrai": 22, "add_fiber_arrai": 22, "mycoolmzi1": 22, "zoom": 22, "lower": [22, 28, 33, 35, 40, 41, 45], "meet": [22, 27, 31], "sai": [22, 27, 28, 34, 38, 42], "opt_in_te_1550_device_yourname_mycoolmzi1": 22, "066": 22, "36m_write_librari": 22, "36m1913": 22, "1mwrote": 22, "constitut": [23, 30], "legal": 23, "advic": 23, "date": 23, "corpor": 23, "contact": 23, "attornei": 23, "absolut": 23, "implic": 23, "organ": [23, 35, 40], "particularli": 23, "question": 23, "compani": 23, "incorpor": 23, "inherit": 23, "foss": 23, "availbl": 23, "portion": [23, 33, 43], "anyon": [23, 32], "enhanc": 23, "methodolog": 23, "creation": 23, "peopl": 23, "skill": 23, "context": [23, 33], "monetarili": 23, "under": 23, "restrict": [23, 31], "freedom": 23, "copi": [23, 43, 44], "studi": 23, "improv": 23, "hood": 23, "actual": [23, 35, 45], "strong": 23, "focus": 23, "downsid": 23, "thanklessli": 23, "maintain": [23, 28], "spend": 23, "driven": 23, "psiquantum": 23, "natur": [23, 42], "mainten": 23, "bug": [23, 32], "slower": 23, "commerci": 23, "On": [23, 26, 42, 44], "hand": [23, 34, 38, 42], "garner": 23, "friendli": 23, "copor": 23, "scheme": 23, "confirm": 23, "team": 23, "abil": 23, "plan": 23, "releas": [23, 32], "permiss": 23, "162": 23, "copyright": 23, "remain": [23, 34], "stricter": 23, "deriv": [23, 41, 43], "warranti": 23, "world": [23, 32, 41], "statement": 23, "signific": [23, 45], "attribut": 23, "similar": [23, 34, 40], "rereleas": 23, "grant": 23, "patent": 23, "contributor": 23, "claim": 23, "codebas": 23, "cannot": [23, 43], "liabl": 23, "reason": [23, 33], "trademark": 23, "licensor": 23, "belong": 23, "copyleft": 23, "mandat": 23, "gpl": 23, "v3": 23, "unpopular": 23, "prohibit": 23, "inclus": 23, "prevent": 23, "contamin": 23, "witih": 23, "technic": 23, "offend": 23, "liabil": 23, "binari": [23, 31, 35, 45], "attempt": 23, "pai": [23, 33], "attitud": 23, "necessarili": [23, 32], "impress": 23, "gnu": 23, "notepad": 23, "wordpress": 23, "mysql": 23, "unabl": 23, "sale": 23, "fossa": 23, "editori": 23, "101": 23, "jan": 23, "2021": 23, "blog": 23, "feb": 23, "mar": 23, "skip": [24, 27, 44], "explan": 24, "tune": [26, 28, 34], "scope": [26, 30], "thermo": [26, 29], "slow": 26, "stabl": 26, "electro": [26, 31], "fast": [26, 30], "laser": [26, 31], "buit": 27, "readi": [27, 35, 44], "button": 27, "bu": [27, 34], "signal": [28, 29, 30, 31, 32, 35, 39, 41, 42], "characterist": [28, 35, 41], "ac": 28, "encod": [28, 31], "categor": 28, "tuner": [28, 30], "dure": 28, "bridg": 28, "todo": [28, 30, 41], "insert": [28, 29, 30, 34, 35], "illustr": [28, 41], "compress": 28, "accord": [28, 35], "fewer": 28, "temperatur": [29, 41], "molecul": [29, 42], "At": 29, "low": [29, 30, 31, 34, 39], "proport": 29, "compris": 29, "proxim": [29, 34], "resistor": [29, 31, 41], "dissip": 29, "besid": 29, "govern": [29, 40], "mostli": [29, 33, 40, 42], "unlik": [29, 30], "pin": [29, 32], "eas": [29, 39], "offer": [29, 30, 41], "tradeoff": [29, 30], "capac": 29, "applciat": 29, "constantli": 29, "360": 29, "fsr": 29, "spectral": 29, "maxima": 29, "achiev": [29, 33, 43], "consum": 29, "closer": 29, "rate": 29, "plasma": 30, "dispers": 30, "charg": 30, "carrier": 30, "inject": [30, 35], "refrac": 30, "voltag": 30, "revers": [30, 45], "bias": 30, "respond": 30, "induc": 30, "mechan": [30, 32], "quit": 30, "beyond": [30, 41], "resist": [30, 41], "capacit": [30, 41], "intrins": 30, "high": [30, 32, 33, 39], "cutoff": 30, "ten": 30, "ghz": 30, "suit": 30, "neglig": 30, "clariti": 30, "thermal": 30, "undop": 30, "copmris": 30, "experienc": [30, 37, 41], "cost": [30, 31, 32], "qualiti": 30, "deplet": 30, "moder": 30, "bia": 30, "analog": 31, "macro": 31, "lens": 31, "mirror": 31, "beamsplitt": 31, "analogu": 31, "micro": 31, "nano": 31, "discret": [31, 33], "inductor": 31, "cmo": 31, "classifi": 31, "mismatch": 31, "anisotropi": 31, "voa": 31, "photolithographi": 31, "photomask": 31, "photosensit": 31, "chemic": 31, "photoresist": 31, "lamp": 31, "ultraviolet": 31, "regim": 31, "stencil": 31, "alter": 31, "leav": 31, "underli": 31, "constraint": 31, "densiti": 31, "pcb": 31, "familiar": [31, 32, 34], "reject": 31, "didn": 31, "undergo": 31, "compat": [31, 32, 37], "hous": 31, "matur": 31, "store": [31, 35, 37, 44], "concret": 31, "conta": 31, "latter": 31, "regener": 31, "regress": 31, "mzm": 31, "least": 31, "arm": [31, 45], "rout": 31, "briefli": [31, 35], "touch": 31, "solv": [31, 34, 40, 41], "maxwel": [31, 40], "computation": [31, 35], "expens": 31, "volumetr": 31, "mesh": 31, "voxel": 31, "magnet": [31, 33, 40, 42, 43], "lot": [31, 42], "hour": 31, "pertin": 31, "abstract": [31, 33], "sequenc": 31, "yet": 31, "embrac": 32, "scientif": 32, "session": 32, "recompil": 32, "prototyp": 32, "rapidli": 32, "miniconda": [32, 37, 44], "bundl": 32, "frill": 32, "strip": 32, "anaconda": 32, "tend": 32, "latest": 32, "execut": 32, "easiest": [32, 38], "quick": 32, "best": [32, 34], "isol": [32, 34], "sandbox": 32, "destroi": 32, "mess": 32, "never": [32, 35], "worri": 32, "someon": 32, "venv": 32, "older": 32, "intel_env": 32, "subdir": 32, "osx": 32, "64": 32, "establish": 32, "hasn": 32, "promin": 32, "fundament": [32, 33, 35, 40, 45], "counterpart": 32, "matlab": 32, "defacto": 32, "databas": 32, "solver": [32, 40, 41], "pymeep": 32, "grab": 32, "nlopt": 32, "aren": 32, "increment": 32, "api": 32, "contract": 32, "task": 32, "evolv": 32, "accomplish": 32, "old": 32, "immatur": 32, "frequent": 32, "guarante": 32, "reproduc": 32, "semant": 32, "major": 32, "minor": 32, "patch": [32, 40], "incompat": 32, "manner": 32, "txt": 32, "24": [32, 43], "great": 33, "intuit": [33, 34, 43, 45], "surround": [33, 39, 40], "flaw": 33, "assumpt": 33, "misconcept": 33, "compen": 33, "challeng": 33, "slab": [33, 41], "implicit": 33, "fulli": [33, 34], "crucial": 33, "addition": 33, "impli": 33, "greater": [33, 43], "critic": 33, "except": 33, "anim": 33, "white": 33, "sent": 33, "orthogan": 33, "wavefront": 33, "interv": 33, "trough": 33, "special": [33, 38], "attent": 33, "clarifi": 33, "incremental": 33, "With": [33, 34], "backdrop": 33, "consider": [33, 41], "lost": [33, 35, 43, 45], "interferr": 33, "minim": 33, "emerg": 33, "obvious": 33, "mit": 33, "s3": 33, "amazonaw": 33, "fip": 33, "html": [33, 44], "theori": 34, "trip": 34, "particular": 34, "Such": 34, "circumfer": 34, "alpha": [34, 35, 43, 45], "cm": 34, "plug": 34, "b1": 34, "te_": 34, "a1": 34, "a2": 34, "b2": 34, "quantiti": 34, "opd": 34, "roundtrip": 34, "imped": [34, 35], "approx": 34, "half": [34, 40], "fwhm": 34, "aka": 34, "bandwidth": 34, "finess": 34, "narrow": 34, "sharp": 34, "q": 34, "sharper": 34, "filter": [34, 42], "whisper": 34, "galleri": 34, "feel": 34, "ipython": 34, "video": 34, "10um": 34, "d_pml": 34, "d_pad": 34, "r_in": 34, "r_out": 34, "wg_length": 34, "cylind": 34, "600": 34, "ebang4": 34, "book": [34, 35], "decai": [34, 40], "despit": 34, "wg_center": 34, "radio": 35, "rf": 35, "exit": 35, "nxn": 35, "ofen": 35, "notat": 35, "character": 35, "bechavior": 35, "metric": 35, "param": 35, "mind": 35, "accur": [35, 41], "life": 35, "detector": 35, "adapt": [35, 37], "pictur": [35, 43], "purpl": 35, "my": 35, "next": [35, 37, 40, 42, 44], "whole": 35, "bunch": 35, "three_d": 35, "reduc": 35, "gds_file": 35, "jkart": 35, "geometry_l": 35, "cell_l": 35, "port1_l": 35, "port2_l": 35, "port3_l": 35, "port4_l": 35, "source1_l": 35, "source2_l": 35, "source3_l": 35, "source4_l": 35, "lcen": 35, "diamet": 35, "t_oxid": 35, "t_si": 35, "t_air": 35, "78": 35, "cell_thick": 35, "min": 35, "cell_zmax": 35, "cell_zmin": 35, "si_zmax": 35, "si_zmin": 35, "numport": 35, "s_param": 35, "input_param": 35, "usabl": 35, "tab": 35, "href": 35, "viewoutput": 35, "gdsii_prism": 35, "zmax": 35, "zmin": 35, "gdsii_vol": 35, "fname": 35, "gdsii_prim": 35, "port1": 35, "port2": 35, "port3": 35, "port4": 35, "source1": 35, "source2": 35, "source3": 35, "source4": 35, "Not": 35, "oxide_cent": 35, "oxide_s": 35, "oxide_lay": 35, "eig_par": 35, "eig_match_freq": 35, "contructor": 35, "no_par": [35, 40], "odd_z": 35, "monitor": 35, "energi": 35, "modemonitor": 35, "add_mode_monitor": 35, "moderegion": 35, "No": 35, "correctli": [35, 44], "until_after_sourc": 35, "get_eigenmode_coeffici": 35, "nfreq": 35, "neg": [35, 40], "third": [35, 40], "spot": 35, "sour": 35, "5th": 35, "input_coeff": 35, "port1_coeff": 35, "port2_coeff": 35, "port3_coeff": 35, "port4_coeff": 35, "s11": 35, "6f": 35, "upper": [35, 40, 45], "s12": 35, "s13": 35, "s14": 35, "fun": 35, "transmitt": 35, "exercis": 35, "terribl": 35, "isn": [35, 43], "fortun": 35, "meant": 35, "port1_tran": 35, "port2_tran": 35, "port3_tran": 35, "port4_tran": 35, "percent": 35, "insertionloss": 35, "insertionloss_db": 35, "steadi": 35, "reset": 35, "visula": 35, "continuoussourc": [35, 45], "reach": 35, "eps_data": [35, 45], "get_epsilon": 35, "ez_data": 35, "real": 35, "get_efield_z": 35, "screen": 35, "dpi": 35, "imshow": [35, 45], "transpos": [35, 45], "interpol": [35, 45], "spline36": [35, 45], "cmap": [35, 40, 45], "flipud": 35, "axi": [35, 40, 42, 43, 45], "hopefulli": 35, "sens": 35, "sake": 35, "rest": [35, 43], "devi": 35, "ts": 35, "s1": 35, "ts2": 35, "ts3": 35, "ts4": 35, "input_pow": 35, "trans1": 35, "trans2": 35, "trans3": 35, "trans4": 35, "expect": [35, 45], "entri": 35, "breviti": 35, "paramt": 35, "mathwork": 35, "luceda": 35, "microwaves101": 35, "youtub": 35, "opinion": 37, "newcom": 37, "troubleshoot": 37, "disagre": 37, "primarili": 37, "nervou": 37, "navig": 37, "precompil": 37, "desig": 38, "boast": 38, "healthi": 38, "capabl": 38, "lighter": 38, "pylanc": 38, "tree": 38, "icon": 38, "ey": [38, 40], "candi": 38, "theme": 38, "menu": [38, 44], "pop": 38, "conduct": 39, "copper": 39, "47": [39, 40, 43], "44": [39, 40, 43], "confin": [40, 41], "newton": 40, "motion": [40, 42], "vibrat": 40, "violin": 40, "pipe": 40, "stationari": 40, "mpb": 40, "05": 40, "51": 40, "512": 40, "36mgplugin": 40, "36m39": 40, "1mmeep": 40, "28": 40, "glass": 40, "find_modes_waveguid": 40, "core_w": 40, "core_t": 40, "m3": 40, "m4": 40, "elecgtr": 40, "wg1": 40, "linewidth": 40, "edgecolor": 40, "facecolor": 40, "wg4": 40, "ax1": 40, "ax2": 40, "islic": 40, "add_patch": 40, "tight_layout": 40, "0th": [40, 45], "1st": [40, 45], "spatial": 40, "sinusoid": 40, "non": [40, 41, 42], "slice": [40, 42], "discontinu": 40, "boundari": [40, 43], "perpindicular": 40, "discontin": 40, "contin": 40, "horizont": 40, "domin": 40, "transvers": [40, 42, 43], "wg2": 40, "wg3": 40, "plot_ez": 40, "slight": 40, "aris": 40, "mm": 40, "find_mode_dispers": 40, "mode_numb": 40, "ng": 40, "3f": 40, "106": 40, "892": 40, "ignor": [41, 45], "mass": 41, "induct": 41, "exhaust": 41, "400nm": 41, "950nm": 41, "220nm": 41, "rib": 41, "rectangular": 41, "resembl": 41, "ridg": 41, "difficult": 41, "veloc": 41, "somewhat": 41, "tediou": 41, "streamlin": 41, "wavelegnth": 41, "atom": 41, "gather": [41, 43], "n_g": 41, "dn_": 41, "lambda_0": 41, "minu": 41, "band": 41, "behav": 42, "vector": [42, 43], "pure": 42, "perpendicular": 42, "tricki": 42, "dimension": 42, "arrow": 42, "bield": 42, "sun": 42, "unpolar": 42, "atmospher": 42, "sunlight": 42, "uniform": 42, "permit": 42, "unpredict": 42, "strike": 43, "snell": 43, "theta_i": 43, "theta_r": 43, "n_1sin": 43, "n_2sin": 43, "theta_t": 43, "gamma_": 43, "n_1co": 43, "n_2co": 43, "tau_": 43, "2n_1co": 43, "obliqu": 43, "observ": 43, "n1": 43, "n2": 43, "transmission_angl": 43, "arcsin": 43, "theta_i_deg": 43, "deg2rad": 43, "set_aspect": 43, "zip": 43, "p0": 43, "i1": 43, "rad2deg": 43, "0f": 43, "r1": 43, "t1": 43, "xlim": 43, "ylim": 43, "axvlin": 43, "axhlin": 43, "linestyl": 43, "xtick": 43, "ytick": 43, "tmp": 43, "ipykernel_19546": 43, "1351043342": 43, "runtimewarn": 43, "AND": 43, "simulate_reflect": 43, "radian": 43, "incident_angle_radian": 43, "reflected_angl": 43, "transmitted_angl": 43, "incident_wav": 43, "tan": 43, "reflected_wav": 43, "transmitted_wav": 43, "display_transmit": 43, "barrier": 43, "set_xlim": 43, "set_ylim": 43, "str": 43, "set_titl": 43, "var": 43, "folder": [43, 44], "9n": 43, "_g8r69x957zb59c09f92zznh0000gn": 43, "ipykernel_69883": 43, "921879874": 43, "runtim": 43, "sine": 43, "theta_c": 43, "critical_angl": 43, "crit_angl": 43, "51840906945382": 43, "progag": 43, "profit": 43, "understood": 43, "prompt": 44, "administr": 44, "password": 44, "sh": 44, "git_and_github": 44, "wslpath": 44, "04": 44, "www": 44, "de": 44, "chapter": 44, "what_is_a_photonic_devic": 44, "arbitrari": 45, "focu": 45, "i_i": 45, "i_1": 45, "i_2": 45, "perfect": 45, "70": 45, "media": 45, "vice": 45, "versa": 45, "exact": 45, "perspect": 45, "inwg": 45, "outwg": 45, "mmi1x2_with_sbend": 45, "inwg_ref": 45, "splitter_ref": 45, "outwg_top_ref": 45, "outwg_bot_ref": 45, "make_geometry_from_gds_compon": 45, "core_mat": 45, "cladding_mat": 45, "component_point": 45, "to_np": 45, "1e3": 45, "pad_width": 45, "nx": 45, "ny": 45, "matgrid": 45, "materialgrid": 45, "do_averag": 45, "damp": 45, "dft": 45, "add_dft_field": 45, "get_arrai": 45, "e_data": 45, "choic": 45, "significantli": 45, "varianc": 45}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"camacholab": 0, "photon": [0, 28, 31], "bootcamp": 0, "tabl": 0, "content": 0, "front": 0, "matter": 0, "develop": 0, "environ": [0, 32], "passiv": [0, 26, 31], "devic": [0, 31, 35], "design": [0, 8, 9, 25, 27, 31, 45], "simul": [0, 8, 20, 21, 34, 35], "circuit": [0, 3, 28, 31, 35], "activ": [0, 31], "test": 0, "refer": [0, 3, 6, 23, 35], "adjoint": 1, "optim": [1, 25, 36], "advanc": 2, "compon": [2, 6, 21, 26], "cross": 2, "section": 2, "creat": 2, "us": [2, 3, 6, 21, 35], "componentspec": 2, "analyz": 3, "account": 3, "grate": [3, 14], "coupler": [3, 8, 10, 14], "curv": 3, "fit": 3, "extract": 3, "index": [3, 41], "refract": [3, 43], "compact": [4, 31], "model": [4, 21, 31, 33, 41], "element": 6, "polygon": 6, "port": [6, 35], "label": 6, "from": [6, 21], "translat": 6, "rotat": 6, "boolean": 6, "oper": 6, "parametr": 6, "cell": 6, "shape": [6, 36], "gener": 6, "ad": 6, "export": 6, "gd": [6, 11, 19], "file": 6, "import": [6, 35], "connect": [6, 38], "exercis": [6, 8, 18], "credit": 7, "sponsor": 7, "contributor": 7, "direct": 8, "supermod": 8, "visual": [8, 38], "coupl": [8, 34], "length": 8, "gap": 8, "between": 8, "waveguid": [8, 39, 40, 41, 43], "other": [8, 35], "split": [8, 45], "ratio": 8, "show": 8, "across": [8, 35], "dc": 8, "consider": [8, 42, 45], "sourc": [8, 14, 23, 35, 45], "rule": [9, 31], "check": [9, 21, 43], "edg": 10, "meep": [11, 19, 35], "find": [11, 35], "s": [11, 21, 35], "paramet": [11, 14, 35, 41], "through": [11, 43], "gmeep": 11, "git": 12, "github": 12, "glossari": 13, "how": [14, 28, 35], "doe": [14, 28], "work": [14, 28], "essenti": 14, "period": 14, "etch": 14, "depth": 14, "fill": 14, "factor": [14, 34], "introduct": 15, "klayout": 16, "klive": 16, "laboratori": 17, "tool": 17, "pyrolab": 17, "instal": 17, "autog": 17, "defin": [18, 31], "layer": [18, 31], "stack": [18, 31], "silicon": 18, "insul": 18, "gdsfactori": 18, "layermap": 18, "layerview": 18, "layerstack": 18, "multimod": 20, "interferomet": [20, 21, 22], "mmi": 20, "self": 20, "imag": 20, "applic": [20, 28, 34], "mach": [21, 22], "zehnder": [21, 22], "The": [21, 31], "mzi": 21, "write": 21, "netlist": 21, "callabl": 21, "analysi": 21, "balanc": 21, "quick": [21, 43], "definit": 21, "imblanc": 21, "thermo": 21, "optic": [21, 24, 33], "effect": [21, 41], "lai": 22, "out": 22, "open": 23, "softwar": [23, 37], "common": 23, "licens": 23, "mit": 23, "apach": 23, "2": [23, 35], "0": 23, "gplv3": 23, "agpl": 23, "i": 24, "o": 24, "invers": 25, "process": [27, 31], "kit": 27, "phase": [28, 29, 30], "shifter": [28, 29, 30], "what": [28, 31, 35, 39], "shift": 28, "A": 28, "simpl": 28, "heater": 29, "advantag": [29, 30], "thermal": 29, "disadvantag": [29, 30], "tune": 29, "effici": 29, "pn": 30, "pin": 30, "junction": 30, "ar": [31, 35], "compar": 31, "electron": 31, "vs": 31, "manufactur": 31, "geometri": [31, 35], "digit": 31, "python": 32, "conda": 32, "virtual": 32, "packag": 32, "manag": 32, "version": 32, "improv": 33, "rai": 33, "support": 33, "mode": [33, 40], "ring": 34, "reson": 34, "critic": [34, 43], "fsr": 34, "free": 34, "spectral": 34, "rang": 34, "qualiti": 34, "field": 34, "scatter": 35, "todo": 35, "why": 35, "demonstr": 35, "simphoni": 35, "quickli": 35, "an": 35, "arbitrari": 35, "step": 35, "1": 35, "run": 35, "singl": 35, "3": 35, "same": 35, "each": 35, "differ": 35, "frequenc": 35, "studio": 38, "code": 38, "configur": 38, "vscode": 38, "wsl": [38, 44], "window": [38, 44], "machin": 38, "wavegudi": 41, "spatial": 41, "dimens": 41, "group": 41, "polar": 42, "total": 43, "intern": 43, "reflect": 43, "kei": 43, "equat": 43, "demo": 43, "angl": 43, "propag": 43, "light": [43, 45], "onli": 44, "y": 45, "branch": 45, "combin": 45}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinxcontrib.bibtex": 9, "sphinx": 56}})
\ No newline at end of file
+Search.setIndex({"docnames": ["index", "pages/adjoint_optimization", "pages/advanced_components", "pages/analyzing_circuits", "pages/compact_models", "pages/component_convenience", "pages/components", "pages/credits", "pages/directional_couplers", "pages/drc", "pages/edge_couplers", "pages/gds_to_meep", "pages/git_and_github", "pages/glossary", "pages/grating_couplers", "pages/introduction", "pages/klayout", "pages/laboratory_tools", "pages/layer_stack", "pages/meep_to_gds", "pages/mmis", "pages/mzi", "pages/mzi_layout", "pages/open_source", "pages/optical_io", "pages/optimization", "pages/passive_components", "pages/pdks", "pages/phase_shifters", "pages/phase_shifters_heaters", "pages/phase_shifters_pn", "pages/photonic_devices", "pages/python", "pages/ray_optic_model", "pages/ring_resonators", "pages/scattering_parameters", "pages/shape_optimization", "pages/software", "pages/vscode", "pages/waveguides", "pages/waveguides_mode_solvers", "pages/waveguides_modelling", "pages/waveguides_polarization", "pages/waveguides_tir", "pages/wsl", "pages/y_branch"], "filenames": ["index.md", "pages/adjoint_optimization.ipynb", "pages/advanced_components.ipynb", "pages/analyzing_circuits.ipynb", "pages/compact_models.ipynb", "pages/component_convenience.ipynb", "pages/components.ipynb", "pages/credits.md", "pages/directional_couplers.ipynb", "pages/drc.ipynb", "pages/edge_couplers.ipynb", "pages/gds_to_meep.ipynb", "pages/git_and_github.md", "pages/glossary.md", "pages/grating_couplers.ipynb", "pages/introduction.md", "pages/klayout.md", "pages/laboratory_tools.ipynb", "pages/layer_stack.ipynb", "pages/meep_to_gds.ipynb", "pages/mmis.ipynb", "pages/mzi.ipynb", "pages/mzi_layout.ipynb", "pages/open_source.md", "pages/optical_io.md", "pages/optimization.ipynb", "pages/passive_components.md", "pages/pdks.ipynb", "pages/phase_shifters.ipynb", "pages/phase_shifters_heaters.ipynb", "pages/phase_shifters_pn.ipynb", "pages/photonic_devices.ipynb", "pages/python.md", "pages/ray_optic_model.ipynb", "pages/ring_resonators.ipynb", "pages/scattering_parameters.ipynb", "pages/shape_optimization.ipynb", "pages/software.md", "pages/vscode.md", "pages/waveguides.ipynb", "pages/waveguides_mode_solvers.ipynb", "pages/waveguides_modelling.ipynb", "pages/waveguides_polarization.ipynb", "pages/waveguides_tir.ipynb", "pages/wsl.md", "pages/y_branch.ipynb"], "titles": ["CamachoLab Photonics Bootcamp", "Adjoint optimization", "Advanced Components", "Analyzing circuits", "Compact models", "<no title>", "Components", "Credits", "Directional couplers", "Design rule checks", "Edge couplers", "GDS to Meep", "Git (and GitHub)", "Glossary", "Grating couplers", "Introduction", "KLayout", "Laboratory Tools", "Defining the layer stack", "Meep to GDS", "Multimode Interferometers (MMIs)", "Mach-Zehnder interferometers", "Laying out a Mach-Zehnder Interferometer", "Open source software", "Optical I/O", "Optimization and inverse design", "Passive Components", "Process design kits", "Phase Shifters", "Heaters", "PN and PIN Junctions", "What are photonic devices?", "Python", "Improving the Ray-optic Model", "Ring Resonators", "Scattering parameters", "Shape optimization", "Software", "Visual Studio Code", "Waveguides", "Waveguide modes", "Modelling Wavegudies", "Polarization", "Total Internal Reflection", "WSL (Windows-only)", "Y-Branches"], "terms": {"sponsor": 0, "googl": [0, 7, 15, 23], "thi": [0, 3, 6, 8, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 40, 41, 42, 43, 44, 45], "intend": [0, 11, 23], "those": [0, 6, 21, 23, 45], "experi": [0, 21, 30, 37, 43], "electr": [0, 6, 8, 13, 14, 15, 18, 20, 21, 26, 28, 29, 30, 31, 33, 34, 39, 40, 42, 43], "engin": [0, 15, 21, 23, 31], "ar": [0, 3, 6, 8, 9, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 23, 26, 27, 28, 29, 30, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 44, 45], "interest": [0, 15, 21], "learn": [0, 3, 6, 22, 27, 32], "about": [0, 6, 8, 17, 21, 23, 32, 33, 34, 35, 37, 38, 41, 42], "integr": [0, 13, 15, 16, 18, 27, 31, 38], "applic": [0, 8, 13, 21, 23, 29, 30, 32, 35], "cours": [0, 8, 12, 13, 15, 23, 26, 32, 37, 38, 43], "wa": [0, 21, 35, 44], "creat": [0, 6, 8, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 31, 32, 33, 34, 35, 37, 40, 43, 44, 45], "collabor": [0, 12, 15, 23], "between": [0, 11, 13, 15, 20, 21, 28, 29, 30, 31, 33, 34, 35, 41, 43, 45], "brigham": 0, "young": 0, "univers": [0, 18], "s": [0, 3, 6, 12, 13, 14, 15, 16, 18, 22, 23, 28, 29, 30, 31, 32, 34, 38, 40, 41, 42, 43, 44, 45], "skywat": 0, "project": [0, 12, 23], "introduct": [0, 21], "credit": 0, "open": [0, 6, 8, 12, 13, 14, 15, 16, 17, 20, 27, 32, 34, 37, 38, 41, 44], "sourc": [0, 6, 11, 12, 13, 15, 16, 17, 18, 19, 20, 31, 32, 34, 37, 38], "softwar": [0, 6, 12, 13, 15, 16, 17, 18, 27, 32, 35], "what": [0, 6, 8, 11, 12, 21, 22, 23, 42, 43], "defin": [0, 3, 6, 8, 9, 11, 14, 20, 21, 34, 35, 40, 41, 43], "layer": [0, 6, 8, 13, 20, 22, 27, 35, 39, 45], "stack": [0, 13, 27, 32], "compon": [0, 8, 11, 13, 14, 15, 18, 19, 20, 22, 23, 24, 31, 33, 35, 40, 42, 45], "waveguid": [0, 6, 13, 14, 18, 20, 21, 22, 26, 28, 29, 30, 31, 33, 34, 35, 42, 45], "optic": [0, 6, 14, 18, 20, 26, 29, 30, 31, 34, 42, 43, 45], "i": [0, 6, 8, 11, 14, 20, 21, 28, 32, 34, 35, 37, 43], "o": [0, 6], "optim": [0, 3, 14, 21, 31, 32, 35, 45], "invers": [0, 31, 43], "compact": [0, 13, 15, 27, 45], "model": [0, 3, 13, 15, 18, 27, 35, 40, 43], "rule": [0, 13, 27, 32], "check": [0, 11, 12, 13, 18, 31, 35], "process": [0, 6, 8, 11, 13, 18, 29, 32, 35, 41], "kit": [0, 13], "mach": [0, 20, 31], "zehnder": [0, 20, 31], "interferomet": [0, 6, 13, 26, 31], "lai": [0, 6, 16], "out": [0, 6, 8, 11, 13, 14, 16, 20, 21, 32, 33, 34, 35, 40, 42, 45], "advanc": 0, "phase": [0, 8, 20, 21, 31, 33, 35, 45], "shifter": [0, 21, 31], "analyz": [0, 15, 34], "glossari": 0, "repositori": [0, 12, 37], "pdk": [0, 6, 9, 13, 18, 21, 22, 27, 31], "document": [0, 15, 17, 21, 34, 35], "In": [3, 6, 8, 11, 12, 14, 15, 18, 20, 21, 22, 23, 26, 28, 29, 30, 31, 32, 34, 35, 37, 38, 40, 45], "section": [3, 6, 14, 16, 18, 24, 26, 31, 32, 33, 35, 37, 41, 42, 44], "we": [3, 6, 8, 12, 13, 14, 15, 17, 18, 21, 22, 23, 24, 26, 27, 28, 31, 32, 33, 34, 35, 37, 38, 40, 41, 42, 43, 44, 45], "how": [3, 6, 8, 11, 13, 15, 18, 20, 21, 22, 26, 32, 33, 34, 37, 40, 41, 42, 43, 44], "interpret": [3, 32], "data": [3, 13, 18, 22, 35, 42], "collect": [3, 21, 22], "from": [3, 8, 11, 12, 13, 14, 15, 16, 18, 19, 20, 22, 28, 29, 30, 31, 32, 33, 34, 35, 38, 40, 42, 44, 45], "our": [3, 6, 17, 21, 22, 27, 30, 33, 34, 35, 37, 40], "whenev": 3, "obtain": [3, 29], "import": [3, 8, 11, 14, 18, 19, 20, 21, 22, 23, 32, 33, 34, 40, 42, 43, 45], "rememb": [3, 34], "renspons": 3, "chang": [3, 6, 8, 12, 13, 14, 20, 21, 22, 23, 28, 29, 30, 31, 32, 33, 34, 35, 40, 41, 43, 45], "wavelength": [3, 8, 14, 18, 20, 21, 31, 33, 34, 35, 40, 41], "well": [3, 6, 11, 12, 16, 30, 31, 32, 33, 42], "being": [3, 8, 16, 20, 21, 23, 31, 33, 45], "test": [3, 11, 12, 15, 17, 18, 22, 32, 35, 42], "order": [3, 6, 13, 14, 26, 29, 31, 33, 35, 37, 40, 45], "properli": 3, "must": [3, 6, 8, 11, 13, 18, 21, 22, 23, 29, 34, 45], "first": [3, 8, 11, 12, 14, 21, 22, 26, 28, 34, 35, 40, 42, 43, 44], "deemb": 3, "depend": [3, 8, 18, 21, 23, 28, 29, 32, 40, 41, 42, 43], "can": [3, 6, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45], "done": [3, 6, 19, 31, 32, 35, 38], "varieti": [3, 6, 14, 20], "wai": [3, 6, 15, 20, 21, 23, 28, 29, 31, 32, 33, 34, 35, 37, 38, 41, 43], "includ": [3, 6, 11, 12, 13, 15, 16, 17, 18, 20, 21, 23, 27, 28, 29, 30, 31, 32, 38, 40, 41, 44], "consid": [3, 8, 14, 20, 21, 30, 33, 41, 42, 45], "follow": [3, 6, 13, 14, 19, 21, 22, 26, 30, 32, 33, 34, 37, 41, 43, 44], "via": [3, 12, 17, 18, 32, 34, 39, 44], "sweep": [3, 27], "numpi": [3, 6, 8, 12, 14, 21, 32, 34, 35, 40, 43], "np": [3, 6, 8, 14, 18, 34, 40, 43], "matplotlib": [3, 6, 12, 14, 18, 21, 32, 34, 35, 40, 43, 45], "pyplot": [3, 14, 21, 34, 35, 40, 43, 45], "plt": [3, 14, 21, 34, 35, 40, 43, 45], "poly_ord": 3, "4": [3, 6, 8, 20, 21, 22, 32, 34, 35, 40], "load": [3, 11, 16, 34], "file": [3, 8, 11, 12, 13, 14, 15, 16, 18, 19, 20, 22, 23, 31, 32, 34, 35, 37, 38, 44], "oscope_data": 3, "npz": 3, "power": [3, 8, 13, 16, 20, 21, 29, 31, 34, 35], "here": [3, 6, 8, 14, 16, 18, 23, 24, 26, 32, 34, 35, 37, 38, 41, 44, 45], "raw": 3, "oscilloscop": 3, "plot": [3, 6, 8, 11, 18, 21, 22, 32, 35, 40, 43, 45], "titl": 3, "xlabel": [3, 8], "nm": [3, 14, 18, 21], "ylabel": [3, 8], "dbm": 3, "show": [3, 6, 11, 18, 20, 21, 27, 34, 35, 40, 43, 45], "The": [3, 6, 8, 11, 13, 14, 15, 18, 19, 20, 22, 23, 26, 28, 29, 30, 32, 33, 34, 35, 37, 40, 41, 42, 43, 44, 45], "parabol": 3, "shape": [3, 13, 24, 31, 35, 40, 41, 45], "graph": [3, 34, 42], "due": [3, 21, 26, 33, 45], "respons": [3, 21, 45], "which": [3, 6, 8, 11, 12, 13, 14, 20, 21, 22, 23, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 42, 43, 44, 45], "obfusc": 3, "try": [3, 22], "remov": [3, 8, 14, 20, 29, 30, 31, 32, 34], "effect": [3, 8, 14, 29, 30, 40], "parabola": 3, "subtract": [3, 6], "function": [3, 6, 8, 11, 14, 19, 20, 21, 22, 27, 32, 34, 35, 40, 41, 43], "want": [3, 6, 11, 12, 19, 20, 21, 22, 23, 32, 34, 35, 41, 44, 45], "case": [3, 8, 14, 16, 18, 21, 22, 28, 32, 43, 45], "def": [3, 6, 43, 45], "model_parabola": 3, "x": [3, 6, 8, 11, 20, 22, 35, 40, 42, 43, 45], "b": [3, 6, 8, 43], "c": [3, 6, 8, 11, 21, 22, 32], "d": [3, 7, 15, 32, 35, 41, 42, 43, 44], "e": [3, 6, 8, 11, 12, 18, 21, 28, 31, 34, 35, 37, 40, 41, 45], "return": [3, 6, 11, 19, 21, 35, 40, 43, 45], "3": [3, 8, 11, 14, 15, 18, 19, 20, 21, 22, 23, 27, 32, 34, 39, 40, 43, 45], "2": [3, 6, 8, 11, 14, 15, 18, 19, 20, 21, 22, 27, 32, 33, 34, 40, 43, 45], "now": [3, 6, 21, 22, 24, 32, 33, 34, 35, 38, 40, 45], "just": [3, 6, 8, 11, 13, 14, 15, 17, 21, 22, 28, 32, 35, 40, 45], "need": [3, 6, 11, 12, 21, 22, 23, 32, 35, 37, 41, 42, 44, 45], "paramet": [3, 6, 8, 20, 21, 22, 31, 34], "do": [3, 6, 15, 18, 19, 22, 23, 35, 37, 38, 42], "curve_fit": 3, "scipi": [3, 12, 32], "take": [3, 6, 8, 11, 13, 19, 21, 22, 29, 31, 34, 35, 42, 43, 44], "y": [3, 6, 8, 11, 20, 21, 22, 26, 28, 35, 40, 42, 43], "an": [3, 6, 8, 9, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 23, 29, 30, 31, 32, 33, 34, 40, 41, 42, 43, 45], "initi": [3, 6, 8, 21], "guess": 3, "It": [3, 6, 8, 11, 13, 14, 15, 16, 18, 19, 21, 22, 23, 30, 32, 33, 34, 35, 38, 40, 41, 42, 44], "covari": 3, "matrix": [3, 21, 35], "start": [3, 6, 21, 32, 33, 34, 35, 44], "end": [3, 8, 13, 14, 21, 23, 32, 35, 41, 43, 45], "argmax": 3, "1560": 3, "1580": 3, "help": [3, 6, 9, 12, 13, 16, 18, 21, 22, 27, 30, 33], "term": [3, 8, 13, 21, 35], "speed": [3, 8, 29, 30, 31, 41], "accuraci": 3, "add": [3, 6, 8, 18, 19, 20, 22, 32, 35, 41, 43], "especi": [3, 11, 23, 29, 30, 32], "true": [3, 8, 11, 14, 18, 20, 21, 34, 35, 40, 41, 43, 45], "more": [3, 6, 8, 11, 15, 16, 17, 18, 20, 21, 23, 28, 30, 31, 32, 33, 34, 35, 38, 40, 41, 42, 45], "complic": [3, 6, 33, 34, 41, 45], "initial_guess": 3, "1": [3, 6, 8, 11, 14, 15, 18, 19, 20, 21, 22, 23, 27, 32, 33, 34, 39, 40, 41, 43, 45], "optimal_paramet": 3, "covariance_matrix": 3, "label": [3, 11, 18, 21, 22, 43], "legend": [3, 43], "simpli": [3, 6, 14, 21, 32, 33, 34, 35], "offset": [3, 30], "make": [3, 6, 8, 13, 19, 20, 21, 22, 23, 24, 27, 30, 31, 32, 35, 38, 45], "easier": [3, 6, 38, 45], "see": [3, 8, 11, 13, 14, 18, 20, 21, 22, 23, 27, 28, 30, 34, 35, 40, 42, 45], "power_correct": 3, "max": [3, 35], "correct": [3, 11], "ones": [3, 6, 32], "len": [3, 40], "averag": [3, 14, 41], "gdsfactori": [6, 8, 11, 13, 15, 19, 20, 21, 22, 32, 34, 35, 40, 45], "them": [6, 8, 11, 15, 20, 21, 22, 23, 26, 30, 31, 32, 35, 37], "togeth": [6, 8, 12, 18, 22, 31, 32, 33], "larger": [6, 8, 13, 15, 21, 31, 45], "design": [6, 13, 14, 15, 16, 18, 19, 20, 22, 23, 24, 26, 34, 35], "simpl": [6, 15, 18, 21, 22, 29, 31, 32, 39, 41, 43], "complex": [6, 30, 31, 32, 35], "construct": [6, 13, 14, 20, 21, 28, 31, 33, 34, 35, 45], "exampl": [6, 11, 12, 13, 15, 18, 19, 20, 21, 23, 26, 27, 28, 31, 32, 35, 40, 41], "contain": [6, 11, 13, 18, 19, 21, 22, 31, 32, 33, 40], "other": [6, 11, 12, 13, 17, 18, 20, 21, 22, 23, 28, 29, 30, 31, 32, 33, 34, 38, 40, 41, 42, 45], "thei": [6, 9, 11, 12, 13, 15, 18, 20, 21, 23, 31, 32, 33, 35, 41, 44, 45], "usual": [6, 9, 13, 15, 18, 31], "have": [6, 8, 11, 12, 13, 14, 15, 18, 20, 21, 22, 23, 27, 28, 30, 31, 32, 33, 34, 35, 37, 38, 40, 41, 42, 44, 45], "allow": [6, 8, 11, 12, 13, 15, 16, 21, 23, 31, 35, 38], "you": [6, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 27, 31, 32, 34, 35, 37, 38, 40, 43, 44, 45], "factori": [6, 27], "when": [6, 8, 11, 14, 16, 18, 21, 23, 28, 30, 31, 32, 34, 35, 40, 41, 42, 43, 45], "align": [6, 8, 22], "each": [6, 8, 11, 13, 14, 16, 17, 18, 20, 21, 29, 31, 32, 34, 40, 41, 43, 45], "taken": [6, 18, 35], "care": [6, 35, 41, 42], "automat": [6, 16, 17, 18], "made": [6, 13, 23, 24, 39, 40, 41], "up": [6, 8, 11, 12, 13, 14, 18, 20, 21, 23, 29, 31, 32, 34, 35, 38, 41, 44, 45], "option": [6, 11, 15, 38], "most": [6, 8, 11, 12, 14, 16, 18, 19, 23, 29, 32, 33, 34, 35, 37, 39, 41, 42, 45], "basic": [6, 14, 16, 20, 21, 22, 32, 35, 43], "build": [6, 13, 21, 26, 31, 33, 34, 44], "object": [6, 8, 18, 19, 21, 33, 35, 40], "gf": [6, 11, 20, 21, 22, 45], "seri": [6, 15, 32], "conveni": [6, 21, 27], "visual": [6, 13, 14, 18, 19, 21, 33, 37, 40], "jupyt": [6, 15, 35, 38], "notebook": [6, 11, 15, 34], "For": [6, 11, 13, 17, 18, 20, 21, 22, 27, 28, 29, 30, 31, 32, 34, 35, 37, 41, 43], "plot_holoview": 6, "plot_jupyt": 6, "plot_klayout": 6, "plot_matplotlib": 6, "plot_netlist": 6, "plot_netlist_flat": 6, "plot_widget": 6, "some": [6, 8, 11, 13, 14, 16, 17, 18, 21, 23, 26, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 40, 42, 45], "alias": 6, "default": [6, 21, 22, 35, 37, 38, 44, 45], "could": [6, 11, 13, 18, 20, 21, 33, 35, 42], "keyword": [6, 11, 21], "argument": [6, 11, 21, 22, 43], "below": [6, 8, 11, 14, 18, 19, 20, 21, 22, 23, 28, 33, 34, 35, 40, 42, 43], "format": [6, 8, 14, 15, 16, 17, 20, 21, 34, 35], "ll": [6, 12, 15, 21, 22, 23, 32, 34, 35, 37, 40, 41, 42, 44], "explicit": [6, 21, 23], "But": [6, 23, 35], "recommend": [6, 8, 12, 17, 32, 37, 38, 44], "displai": [6, 16, 34, 43], "interact": [6, 8, 14, 26, 32, 33, 35, 37, 41], "klayout": [6, 18, 22, 27, 31, 35, 37, 44], "widget": 6, "lowest": [6, 13], "block": [6, 8, 13, 14, 19, 21, 26, 31, 34, 35, 44, 45], "list": [6, 11, 13, 19, 21, 22, 31, 32, 35, 41], "vertic": [6, 19, 22, 31, 40, 43], "adjac": 6, "pair": [6, 18], "line": [6, 8, 12, 13, 14, 17, 20, 22, 31, 32, 33, 34, 35, 40, 42, 43, 44], "doe": [6, 8, 21, 23, 33, 42], "cross": [6, 8, 14, 15, 16, 18, 40, 41], "ani": [6, 8, 11, 13, 14, 18, 22, 23, 27, 30, 32, 33, 35, 37, 38, 40, 43, 45], "within": [6, 11, 13, 16, 20, 21, 28, 29, 30, 31, 33, 34, 35, 40, 41], "although": [6, 13, 18, 31, 37], "overlap": [6, 8, 34], "parallel": [6, 8, 11, 40, 42], "lie": 6, "upon": [6, 33, 43], "point": [6, 13, 33, 40], "exist": [6, 8, 13, 18, 23, 31, 32, 35, 40], "geometri": [6, 8, 11, 13, 14, 18, 19, 20, 22, 33, 34, 40, 41, 45], "instead": [6, 11, 13, 14, 20, 21, 23, 30, 31, 32, 35, 41], "new": [6, 13, 15, 16, 18, 22, 28, 31, 32, 44], "one": [6, 8, 11, 13, 14, 15, 18, 20, 21, 22, 23, 28, 29, 30, 31, 32, 34, 37, 40, 41, 42, 45], "That": [6, 23, 42], "parameter": [6, 21, 31, 41], "call": [6, 8, 18, 20, 21, 29, 30, 31, 32, 33, 34, 35, 40, 42, 43], "even": [6, 8, 31, 32, 41], "hierarch": [6, 13], "nest": 6, "save": [6, 8, 11, 13, 14, 19, 20, 32, 34], "memori": [6, 13, 31], "becaus": [6, 8, 12, 14, 18, 20, 21, 23, 29, 30, 31, 34, 35, 41, 42, 43, 45], "core": [6, 8, 11, 18, 33, 39, 40, 41, 43], "onli": [6, 11, 12, 13, 15, 17, 20, 21, 22, 23, 26, 32, 33, 34, 35, 37, 41, 42, 45], "onc": [6, 16, 31, 32, 35, 42], "referenc": 6, "mani": [6, 8, 11, 12, 13, 15, 17, 21, 22, 23, 27, 29, 31, 32, 34, 41, 45], "time": [6, 8, 11, 12, 13, 14, 16, 20, 21, 23, 28, 29, 30, 31, 32, 33, 34, 35, 41, 43, 44, 45], "These": [6, 8, 11, 12, 13, 18, 21, 23, 31, 33, 35, 42, 43], "place": [6, 8, 13, 20, 22, 29, 31, 37], "anywher": [6, 32], "independ": [6, 29], "all": [6, 8, 12, 13, 14, 15, 17, 18, 20, 21, 22, 23, 27, 31, 32, 33, 34, 35, 37, 38, 41, 42, 43, 45], "appli": [6, 16, 18, 30, 35], "base": [6, 8, 12, 17, 20, 23, 29, 30, 31, 32, 35, 43, 45], "instanc": [6, 11, 18, 21, 31, 32], "had": [6, 11, 21, 31], "same": [6, 8, 11, 14, 15, 17, 18, 20, 21, 22, 23, 29, 30, 31, 32, 34, 45], "taper": [6, 14, 20, 33], "its": [6, 8, 11, 17, 18, 21, 22, 23, 29, 31, 32, 34, 35, 41, 42], "input": [6, 8, 13, 20, 21, 22, 31, 34, 35, 45], "output": [6, 8, 11, 13, 14, 20, 21, 31, 34, 35, 43, 45], "repeatedli": 6, "would": [6, 11, 13, 14, 18, 20, 21, 23, 31, 33, 35, 44], "good": [6, 21, 35], "requir": [6, 8, 18, 21, 23, 27, 29, 30, 31, 32], "higher": [6, 18, 28, 29, 30, 33, 34, 35, 40, 41, 45], "level": [6, 14, 21, 32], "By": [6, 11, 14, 21, 30], "draw": [6, 22], "bank": 6, "without": [6, 13, 21, 23, 27, 29, 30, 31, 32, 33], "much": [6, 8, 11, 21, 33, 34, 35, 38], "pattern": [6, 14, 18, 21, 31, 33], "where": [6, 8, 11, 14, 20, 21, 22, 23, 29, 32, 34, 35, 42, 45], "across": [6, 13, 21], "compos": [6, 31], "interconnect": [6, 13], "compound": 6, "intermedi": 6, "specifi": [6, 8, 11, 13, 14, 19, 32, 35, 41], "direct": [6, 13, 14, 19, 20, 22, 26, 31, 33, 34, 35, 40, 42, 43, 45], "face": [6, 13], "either": [6, 11, 13, 31, 42, 45], "also": [6, 8, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 28, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 42, 43, 44, 45], "width": [6, 8, 13, 14, 18, 19, 20, 21, 30, 31, 34, 40, 41], "attach": [6, 11, 13], "your": [6, 8, 9, 11, 12, 13, 14, 16, 18, 19, 21, 22, 23, 27, 31, 32, 34, 35, 37, 38, 42, 44], "convei": 6, "inform": [6, 13, 15, 17, 18, 21, 23, 27, 28, 30, 31, 35, 38], "otherwis": [6, 21, 34], "seen": [6, 8, 11, 23, 34], "A": [6, 8, 13, 14, 18, 20, 21, 23, 27, 29, 30, 31, 32, 34, 37, 38, 39, 40, 41, 42, 45], "add_label": 6, "pass": [6, 11, 21, 22, 28, 31, 32, 35], "text": [6, 8, 18, 21, 22, 23, 27, 32, 34, 38], "locat": [6, 14, 19, 44], "should": [6, 8, 11, 15, 18, 21, 22, 27, 35, 38, 45], "shown": [6, 8, 19, 34, 35], "posit": [6, 18, 21, 31, 34, 35, 40, 42], "center": [6, 8, 14, 19, 20, 21, 30, 34, 35, 45], "passiv": [6, 24], "sever": [6, 8, 11, 16, 28, 29, 30, 32, 38, 41], "than": [6, 8, 14, 18, 20, 23, 28, 30, 31, 33, 43, 45], "mai": [6, 8, 11, 12, 13, 18, 20, 21, 22, 23, 28, 29, 30, 31, 35], "part": [6, 8, 9, 11, 21, 22, 23, 27, 35, 39, 40, 42, 45], "track": [6, 12, 32, 35], "number": [6, 8, 11, 13, 18, 20, 23, 32, 34, 35, 40], "As": [6, 8, 11, 14, 15, 18, 21, 23, 29, 30, 35, 42], "let": [6, 13, 21, 22, 28, 33, 34, 35, 40, 41, 42, 43], "tupl": [6, 18, 21], "coordin": 6, "circular": 6, "fashion": [6, 13], "repeat": 6, "last": [6, 22], "infer": 6, "close": [6, 8, 34], "script": [6, 8, 18, 20, 31, 32, 34, 44], "complet": [6, 8, 12, 13, 15, 18, 29, 34, 35, 37, 45], "run": [6, 8, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 27, 29, 32, 34, 40, 44, 45], "final": [6, 21, 22, 35], "t_length": 6, "10": [6, 8, 18, 19, 21, 22, 32, 34, 35, 40, 43, 45], "t_width_in": 6, "0": [6, 8, 11, 14, 18, 19, 20, 21, 22, 32, 33, 34, 35, 40, 42, 43, 45], "5": [6, 8, 11, 14, 19, 20, 21, 22, 34, 35, 40, 43, 45], "t_width_out": 6, "add_polygon": 6, "int": [6, 40], "assum": [6, 8, 14, 20, 21, 34, 37, 44, 45], "ve": [6, 15, 31, 32, 35], "provid": [6, 12, 21, 23, 32, 37, 38], "datatyp": [6, 18], "poli": 6, "45": [6, 8, 14, 18, 19, 20, 34, 45], "move": [6, 12, 34, 35, 44], "come": [6, 8, 11, 23, 30, 33, 35, 41, 45], "manipul": [6, 19, 31], "easili": [6, 11, 22, 32, 44, 45], "differ": [6, 8, 11, 13, 14, 15, 19, 20, 21, 22, 23, 24, 28, 31, 32, 34, 39, 40, 41, 42, 43, 44, 45], "combin": [6, 8, 13, 20, 21, 28, 34], "mean": [6, 8, 11, 21, 22, 23, 26, 31, 32, 34, 35, 42, 45], "merg": [6, 12], "xor": 6, "To": [6, 8, 11, 12, 14, 15, 20, 22, 24, 29, 32, 34, 35, 38, 42, 44], "two": [6, 8, 11, 13, 18, 20, 21, 23, 28, 29, 30, 31, 33, 34, 39, 42, 43, 45], "group": [6, 18, 40], "piec": [6, 13], "involv": [6, 31], "itself": [6, 21, 23, 29, 32, 34, 35, 40, 41], "target": [6, 21], "result": [6, 8, 11, 13, 14, 15, 20, 21, 30, 31, 34, 43], "components_a": 6, "components_b": 6, "accept": 6, "equival": [6, 8], "t": [6, 8, 14, 15, 17, 18, 20, 21, 22, 29, 31, 32, 34, 35, 37, 38, 40, 41, 42, 43, 44, 45], "linspac": [6, 21], "pi": [6, 8, 20, 21, 34], "100": [6, 8, 22, 35], "co": [6, 21, 43], "sin": [6, 8, 14, 43], "circl": [6, 34], "triangl": 6, "pacman": 6, "precis": [6, 13, 20, 21, 29], "1e": 6, "6": [6, 8, 21, 35], "origin": [6, 23, 32, 34], "boolean_subtract": 6, "add_ref": [6, 21, 22, 45], "talk": [6, 34, 41], "later": [6, 21, 33], "dimens": [6, 13, 42], "redefin": 6, "everi": [6, 11, 21, 35, 45], "write": [6, 11, 23, 32, 38], "addit": [6, 11, 28], "calcul": [6, 21, 34, 35, 40, 41, 43], "cach": 6, "correspond": [6, 11, 18, 21, 29, 31, 33, 41, 43], "so": [6, 8, 11, 13, 18, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 41, 43, 45], "subsequ": 6, "rebuild": 6, "enabl": [6, 8, 17, 23, 28, 35], "decor": 6, "If": [6, 8, 12, 14, 19, 20, 21, 22, 23, 27, 31, 32, 34, 35, 37, 38, 42, 43, 44, 45], "re": [6, 13, 15, 18, 21, 23, 32, 35, 37, 38], "develop": [6, 12, 13, 23, 31, 38], "modifi": [6, 11, 21, 23, 31, 35], "content": [6, 23], "again": [6, 30, 32, 35], "code": [6, 11, 12, 13, 15, 16, 18, 19, 21, 22, 23, 32, 34, 35, 37, 43, 44], "won": [6, 15, 18, 21, 32, 35], "clear": [6, 33], "clear_cach": 6, "librari": [6, 21, 23, 27, 32, 41, 45], "reusabl": 6, "circuit": [6, 8, 13, 14, 15, 16, 17, 19, 20, 21, 26, 27, 34, 37, 39, 41, 45], "anoth": [6, 8, 11, 18, 20, 21, 23, 28, 30, 35, 42], "fantast": 6, "benefit": [6, 37], "type": [6, 18, 29, 30, 32, 35, 45], "hint": 6, "valid": [6, 9, 13, 35], "name": [6, 11, 18, 19, 21, 22, 23, 30, 32, 35, 43], "abl": [6, 8, 12, 20, 31, 32], "taper_compon": 6, "length": [6, 13, 14, 20, 21, 22, 28, 29, 31, 34, 45], "float": [6, 21], "width_in": 6, "width_out": 6, "like": [6, 8, 11, 13, 14, 15, 17, 18, 19, 21, 23, 28, 29, 30, 32, 35, 37, 38, 39, 40, 41, 43, 45], "quickli": 6, "rectangl": [6, 40], "ellips": [6, 14], "ring": [6, 13, 22, 26, 27], "bend_circular": 6, "bend_eul": 6, "know": [6, 15, 34, 35, 37, 42], "outward": 6, "awai": [6, 8, 29], "match": [6, 8, 11, 20, 34, 35], "respect": [6, 8, 34, 41, 42, 43], "expand": [6, 28, 29], "earlier": 6, "note": [6, 8, 14, 20, 21, 22, 23, 34, 35, 44], "common": [6, 13, 16, 18, 20, 21, 26, 29, 30, 32, 41, 45], "toward": [6, 35], "o1": [6, 11, 20, 21, 45], "orient": [6, 22, 42], "180": [6, 8, 22], "port_typ": 6, "o2": [6, 11, 20, 21, 45], "add_port": [6, 19], "And": [6, 15, 21], "convent": [6, 13, 21, 30, 31, 42], "clock": 6, "wise": 6, "bottom": [6, 38], "left": [6, 8, 14, 18, 34, 35, 38, 43, 45], "corner": [6, 38], "prefix": 6, "index": [6, 8, 14, 18, 19, 20, 21, 26, 28, 29, 30, 32, 33, 34, 35, 37, 39, 40, 43, 45], "previous": [6, 18], "essenti": [6, 9, 16, 22], "pointer": [6, 32], "There": [6, 8, 11, 13, 18, 21, 22, 29, 32, 34, 35, 38, 41, 45], "limit": [6, 20], "gdsii": [6, 35], "specif": [6, 8, 11, 14, 17, 18, 23, 32, 35, 38, 43], "built": [6, 23, 27, 32, 33, 40], "around": [6, 12, 22, 32, 34, 35], "previou": [6, 21, 32], "2x2": [6, 11, 20, 35], "multimod": [6, 26, 45], "mmi": [6, 11, 13, 19, 26, 35], "wide": [6, 13], "therefor": [6, 21, 23, 29, 31, 32, 37, 45], "side": [6, 30, 34, 41, 45], "four": [6, 34, 35], "redraw": 6, "individu": [6, 44], "right": [6, 8, 14, 22, 23, 34, 35, 43, 44, 45], "off": [6, 20, 31, 32, 35, 43, 45], "bat": 6, "mmi2x2": [6, 11, 20, 35], "gap": [6, 22, 34, 45], "125": 6, "determin": [6, 8, 14, 20, 40, 41, 43, 45], "taper_length": [6, 19], "taper_width_in": 6, "taper_width_out": 6, "taper_c": 6, "bodi": [6, 20], "rect": 6, "size": [6, 8, 13, 14, 19, 20, 23, 31, 33, 34, 35, 45], "none": [6, 40, 43, 45], "port_width": 6, "port_cent": 6, "o3": [6, 11, 20, 45], "o4": [6, 11, 20], "mmi_ref": 6, "shift": [6, 21, 29], "shorthand": [6, 21], "taper_ref": 6, "_": 6, "rang": [6, 13, 14, 18, 29, 35], "enumer": [6, 43], "destin": [6, 45], "alon": [6, 21, 40], "expos": [6, 21, 31], "ref": 6, "f": [6, 8, 15, 35, 40, 43], "auto_rename_port": 6, "consist": [6, 18, 21, 34, 39], "simpler": 6, "find": [6, 8, 13, 20, 22, 27, 34, 38], "math": [6, 35], "fit": [6, 31], "yourself": 6, "often": [6, 11, 23, 31, 32, 34, 35, 41, 45], "swap": [6, 21, 33], "redo": 6, "inlin": [6, 15], "rect_ref": 6, "figur": [6, 28, 30, 35, 39, 43, 45], "put": [6, 8, 15, 19, 20, 22, 33], "manufactur": [6, 9, 11, 13, 15, 20, 21, 29, 35, 39, 41, 45], "share": [6, 8, 14, 34], "tool": [6, 12, 13, 15, 16, 18, 27, 31, 32, 35, 37, 40, 44], "potenti": [6, 23, 31], "lumer": 6, "fix": [6, 22, 23, 32], "write_gd": [6, 19, 22], "suppli": [6, 29], "path": [6, 8, 12, 14, 16, 18, 21, 31, 34, 44], "current": [6, 29, 33], "directori": [6, 8, 14, 20, 22, 34], "sometim": [6, 8, 11, 14, 32], "necessari": [6, 11, 13, 32, 33, 35, 40], "perhap": [6, 23], "meep": [6, 8, 13, 14, 15, 20, 32, 34, 40, 45], "Or": [6, 34], "were": [6, 11, 14, 31, 32, 33, 34, 42], "given": [6, 8, 11, 14, 21, 32, 35, 41, 43], "fab": [6, 18, 31, 45], "while": [6, 8, 12, 16, 18, 21, 23, 26, 30, 31, 32, 33, 34, 35, 37, 38, 42, 43, 45], "ha": [6, 8, 11, 14, 16, 18, 21, 22, 23, 31, 32, 33, 34, 35, 39, 40, 42], "convert": [6, 11, 13, 31, 43], "step": [6, 8, 11, 15, 18, 22, 24, 27, 31, 34, 44], "after": [6, 19, 21, 22, 32, 35], "convers": 6, "get": [6, 8, 11, 12, 18, 19, 20, 21, 22, 31, 34, 35, 43, 44, 45], "branch": [6, 21, 26], "siepic": [6, 21, 22, 27], "ebeam": [6, 21, 27], "ebeam_y_1550": [6, 22], "github": [6, 15, 17, 21, 34], "import_gd": 6, "filenam": [6, 45], "splitter": [6, 11, 21, 22, 31, 45], "read": [6, 8, 16, 18, 21, 23, 31, 32, 35], "manual": [6, 31, 41, 44], "hover": 6, "mous": 6, "examin": [6, 34], "themselv": 6, "midpoint": 6, "7": [6, 8, 32, 35], "75": [6, 8, 21, 40], "separ": [6, 21], "straight": [6, 33, 35, 42, 45], "bend": [6, 22, 31], "radiu": [6, 22, 34], "recal": [6, 21], "canva": 6, "straight_ref": 6, "bend_ref": 6, "pick": 6, "recreat": [6, 32], "racetrack": [6, 34], "coupler": [6, 11, 13, 18, 20, 21, 22, 24, 26, 31, 33, 34, 45], "camacholab": [7, 15], "sequoia": [7, 15, 18], "ploeg": [7, 15], "ph": 7, "candid": 7, "ryan": [7, 15], "camacho": [7, 15], "associ": [7, 13], "professor": 7, "elis": 7, "bangert": 7, "undergradu": 7, "research": 7, "joel": 7, "kartchner": 7, "chandler": 7, "parkin": 7, "noah": 7, "bailei": 7, "kevin": 7, "richin": 7, "small": [8, 13, 16, 29, 30, 38], "transfer": [8, 29, 31, 34], "light": [8, 11, 13, 14, 20, 21, 26, 28, 29, 31, 33, 34, 35, 39, 40, 41, 42], "multipl": [8, 11, 13, 15, 18, 34, 42], "eigenmod": [8, 20, 34], "mode": [8, 13, 20, 21, 31, 34, 35, 41, 42, 45], "field": [8, 11, 14, 20, 21, 31, 33, 35, 40, 42, 44, 45], "outsid": [8, 23, 26, 35, 40, 43], "evanesc": [8, 33, 40], "second": [8, 11, 14, 21, 28, 29, 32, 40, 43, 45], "propag": [8, 21, 28, 33, 34, 35, 40, 42], "us": [8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 42, 43, 44, 45], "photon": [8, 11, 13, 14, 15, 16, 17, 18, 20, 21, 26, 27, 30, 32, 33, 34, 35, 39, 41, 42, 44, 45], "amount": [8, 14, 21, 29, 32, 35], "thing": [8, 15, 18, 32, 35, 37, 38, 40, 45], "region": [8, 18, 20, 28, 30, 31, 35, 45], "enough": [8, 31, 37, 43], "incid": [8, 11, 43], "distanc": [8, 20, 34, 39], "materi": [8, 14, 15, 18, 19, 20, 23, 26, 28, 29, 30, 31, 33, 34, 35, 39, 40, 41, 43, 45], "layout": [8, 11, 15, 16, 21, 31, 32, 34, 37], "produc": [8, 21], "g": [8, 12, 15, 18, 31, 41, 43, 45], "50": [8, 13, 21, 45], "25": [8, 14, 18, 19, 21, 35, 43], "fraction": [8, 20, 45], "geometr": [8, 13, 14, 20, 27, 31, 34], "describ": [8, 14, 21, 28, 30, 31, 33, 34, 35, 37, 42], "kappa": [8, 34], "frac": [8, 14, 21, 34, 41, 43], "p_": 8, "p_0": 8, "cl": 8, "coeffici": [8, 21, 43], "l": [8, 21, 34], "found": [8, 22, 38, 40, 41], "analysi": [8, 13, 14], "system": [8, 12, 13, 14, 15, 18, 20, 27, 32, 34, 37, 38], "odd": 8, "antisymmetr": 8, "occur": [8, 20, 21, 34, 43], "circ": 8, "similarli": 8, "symmetr": [8, 11, 35, 45], "user": [8, 12, 23, 32, 44], "permitt": [8, 26], "clad": [8, 14, 18, 31, 33, 35, 39, 40, 41, 43, 45], "refract": [8, 14, 18, 21, 26, 28, 29, 30, 33, 39, 40, 41], "indic": [8, 14, 28, 34, 35, 41, 43], "valu": [8, 11, 18, 21, 22, 32, 33, 35, 40, 43], "rel": [8, 19, 21, 27, 28, 29, 31, 32, 45], "increas": [8, 14, 29, 30, 41], "decreas": [8, 14, 41], "notic": [8, 21, 23, 28, 33, 40, 41, 43], "intens": [8, 14, 20, 21, 34, 35, 45], "insid": [8, 34, 40], "gplugin": [8, 32, 40], "gm": [8, 11, 40], "find_modes_coupl": 8, "core_width": [8, 40], "core_materi": [8, 40], "clad_materi": [8, 40], "core_thick": [8, 40], "22": [8, 35, 44], "resolut": [8, 11, 14, 19, 20, 34, 35, 40, 45], "40": [8, 18, 35, 40, 45], "sz": [8, 40], "nmode": [8, 40], "m1": [8, 18, 40], "m2": [8, 34, 40], "look": [8, 11, 22, 23, 26, 32, 35, 38, 42, 45], "big": 8, "print": [8, 11, 13, 21, 35, 40], "neff": [8, 40], "dielectr": [8, 40, 45], "sidebar": 8, "plot_ep": 8, "plot_ei": [8, 40], "abov": [8, 11, 14, 18, 21, 29, 31, 34, 35, 40, 42, 43, 45], "happen": 8, "desir": [8, 12, 14, 28, 31, 35], "delta": [8, 21], "n": [8, 17, 18, 20, 21, 30, 31, 32, 34, 35, 43], "lambda": [8, 14, 21, 34, 41], "n_": [8, 14, 34, 41, 43], "eff": [8, 14, 34, 41], "find_coupling_vs_gap": 8, "crossov": 8, "tabl": 8, "detail": [8, 14, 21, 35, 38], "ne": 8, "unit": [8, 28, 29, 35], "mu": [8, 21], "m": [8, 15, 20, 21, 32, 34], "lc": 8, "dn": 8, "exponenti": [8, 40], "relationship": [8, 11, 21, 29, 30, 35], "cdot": 8, "variou": [8, 21, 22, 31, 35, 37], "oper": [8, 18, 20, 21, 29, 30, 31, 32, 33, 34, 35, 37], "mp": [8, 11, 14, 19, 20, 22, 34, 35, 40, 45], "gap1": 8, "gap2": 8, "11": [8, 18, 21, 22, 32, 40], "55": [8, 14, 19, 20, 21, 34, 35, 45], "pariti": [8, 40], "even_i": [8, 35], "463631": 8, "409798": 8, "14": 8, "396530": 8, "053832": 8, "460647": 8, "410682": 8, "15": [8, 11, 21, 34, 43], "510925": 8, "049965": 8, "12": [8, 14, 18, 35], "459734": 8, "411797": 8, "16": [8, 18, 40], "166968": 8, "047937": 8, "13": [8, 35], "452682": 8, "411449": 8, "18": [8, 18], "795515": 8, "041233": 8, "448745": 8, "412270": 8, "21": [8, 43], "247526": 8, "036475": 8, "447691": 8, "414688": 8, "23": [8, 15], "482841": 8, "033003": 8, "447658": 8, "416929": 8, "220085": 8, "030729": 8, "17": [8, 43], "447685": 8, "418000": 8, "26": [8, 43], "107513": 8, "029685": 8, "8": [8, 11, 21, 35, 45], "442283": 8, "416295": 8, "29": [8, 22], "821729": 8, "025988": 8, "9": [8, 35, 43, 45], "19": [8, 18], "439496": 8, "416231": 8, "33": 8, "311196": 8, "023265": 8, "20": [8, 11, 19, 20, 21, 22, 34, 43], "438256": 8, "417123": 8, "36": 8, "672851": 8, "021133": 8, "own": [8, 15, 17, 18, 21, 23, 31, 32, 37], "normal": [8, 14, 35, 44], "constant": [8, 21, 30, 34], "beta": [8, 20, 21, 34, 45], "travel": [8, 14, 21, 28, 30, 34, 40, 41, 43], "down": [8, 21, 32, 35, 40], "oscil": [8, 28, 42], "beat": [8, 20], "One": [8, 23, 27, 31, 33, 39], "over": [8, 12, 14, 20, 31, 34, 39], "smaller": [8, 33], "faster": [8, 30], "sinc": [8, 11, 13, 21, 32, 34, 35, 37, 38, 40, 45], "shorter": [8, 21, 29, 41], "give": [8, 11, 14, 15, 21, 22, 32, 35, 37], "begin": [8, 20, 21, 41, 43], "l_": [8, 20, 21], "nonumb": 8, "multipli": 8, "_1": [8, 20], "l_x": 8, "_2": 8, "n_1": 8, "n_2": 8, "Of": [8, 23, 43], "don": [8, 17, 21, 29, 32, 37, 41, 44, 45], "oftentim": 8, "60": 8, "receiv": 8, "equat": [8, 13, 14, 20, 21, 29, 31, 34, 40, 41], "further": [8, 11, 21, 33, 35], "explor": [8, 33, 42, 44], "send": [8, 16, 33], "affect": [8, 14, 20, 21, 29, 34, 41, 42, 45], "minut": 8, "setup": [8, 13, 31, 32, 37, 38, 44], "gif": [8, 14, 20, 34], "typic": [8, 13, 14, 23, 27, 29, 30, 31, 39, 41], "practic": [8, 15, 21, 32], "si": [8, 14, 19, 20, 34, 40], "medium": [8, 14, 19, 20, 34, 35, 45], "sio2": [8, 14, 18, 19, 20, 34, 35, 40], "um": [8, 14, 20, 21, 35], "wvl": [8, 14, 19, 20, 34], "cell": [8, 14, 20, 22, 31, 34, 35], "wg_width": [8, 34], "dpml": [8, 20, 35], "pad": [8, 20, 34], "07": 8, "lx": 8, "30": [8, 14, 43, 45], "sx": [8, 19, 20, 34, 45], "sy": [8, 19, 20, 34, 40, 45], "wg_center_i": 8, "pml": [8, 14, 19, 20, 34, 35, 45], "perfectli": [8, 20, 21, 34, 35], "infinit": 8, "long": [8, 21, 32, 34, 35, 39, 44], "vector3": [8, 14, 19, 20, 34, 35, 45], "puls": [8, 14, 20, 34], "fcen": [8, 14, 19, 20, 34, 35], "fwidth": [8, 14, 19, 20, 34, 35], "src": [8, 19, 20, 34, 35], "gaussiansourc": [8, 14, 19, 20, 34, 35], "frequenc": [8, 11, 13, 14, 19, 20, 21, 28, 29, 30, 33, 34, 43, 45], "eigenmodesourc": [8, 19, 20, 34, 35, 45], "eig_band": [8, 19, 20, 34, 35, 45], "eig_kpoint": [8, 19, 20, 34, 35], "sim": [8, 11, 14, 19, 20, 34, 35, 45], "cell_siz": [8, 11, 14, 19, 20, 34, 35, 45], "boundary_lay": [8, 14, 19, 34, 35, 45], "default_materi": [8, 19, 34, 45], "set": [8, 11, 13, 14, 15, 18, 20, 21, 22, 31, 32, 34, 35, 38, 40, 43, 44], "plot2d": [8, 11, 14, 19, 20, 34, 35, 45], "warn": [8, 43], "grid": 8, "volum": [8, 35, 41, 45], "integ": [8, 18, 34], "pixel": [8, 35], "round": [8, 31, 34], "nearest": 8, "ax": [8, 21, 40, 43], "pil": [8, 14, 20, 34], "imag": [8, 14, 21, 34, 35, 45], "glob": [8, 14, 20, 34], "os": [8, 14, 20, 34, 37], "reset_meep": [8, 35], "captur": [8, 14, 20, 34], "at_begin": [8, 14, 20, 34], "output_epsilon": [8, 14, 20, 34], "to_append": [8, 14, 20, 34], "ez": [8, 14, 20, 34, 45], "at_everi": [8, 14, 20, 34], "output_efield_z": [8, 14, 20, 34], "until": [8, 11, 14, 20, 34, 35, 45], "200": [8, 11, 14, 20, 35], "gener": [8, 11, 13, 14, 18, 20, 21, 23, 28, 29, 31, 32, 34, 40, 42], "png": [8, 14, 20, 21, 34], "colormap": [8, 14, 20, 34], "work": [8, 20, 22, 23, 32, 34, 35, 42], "h5py": [8, 14, 20, 34], "instal": [8, 12, 13, 14, 16, 20, 22, 27, 32, 34, 37, 38, 40, 44], "problem": [8, 14, 15, 20, 29, 34], "h5util": [8, 14, 20, 34], "h5topng": [8, 14, 20, 34], "99": [8, 14], "r": [8, 14, 20, 32, 34, 43], "zc": [8, 14, 20, 34], "rdbu": [8, 14, 20, 34, 35, 45], "ep": [8, 14, 20, 34], "000000": [8, 14, 20, 34], "00": [8, 14, 20, 34, 43], "h5": [8, 14, 20, 34], "grai": [8, 14, 20, 34, 40], "frame": [8, 14, 20, 34], "img": [8, 14, 20, 34], "sort": [8, 14, 20, 31, 34], "new_fram": [8, 14, 20, 34], "append": [8, 14, 20, 34, 35], "loop": [8, 14, 20, 34, 35], "forev": [8, 14, 20, 34], "append_imag": [8, 14, 20, 34], "save_al": [8, 14, 20, 34], "clean": [8, 14, 20, 34], "workspac": [8, 14, 20, 34], "delet": [8, 14, 20, 32, 34], "invalid": [8, 14, 43], "circumv": [8, 14], "issu": [8, 14], "chosen": [8, 14, 41, 43], "sensit": [8, 14, 20, 31], "fabric": [8, 9, 13, 15, 18, 22, 27, 29, 31, 35], "variat": [8, 20, 34], "robust": [8, 20, 32], "element": [8, 13, 21, 29, 35, 41], "principl": [8, 13, 14, 15, 18, 20, 35, 43], "behind": [8, 21, 31], "interfer": [8, 13, 14, 20, 21, 28, 33, 34, 45], "nearbi": 8, "chip": [8, 13, 14, 16, 17, 18, 21, 26, 31, 32], "parasit": 8, "too": [8, 13, 18, 21, 32, 34, 37, 42], "lead": [8, 33, 34, 41], "leak": [8, 45], "far": [8, 11, 33, 34], "apart": 8, "silicon": [8, 13, 14, 21, 30, 31, 35, 39, 40, 43, 45], "answer": [8, 21, 32, 43], "approxim": [8, 13, 18, 29], "135": 8, "micron": [8, 14, 18, 21, 40], "luka": [8, 14, 45], "chrostowski": [8, 14, 45], "stefan": 8, "prebl": 8, "facil": [9, 15, 31], "simul": [11, 13, 14, 15, 18, 19, 22, 24, 27, 31, 40, 43, 45], "devic": [11, 13, 15, 16, 18, 20, 21, 22, 26, 27, 28, 30, 34, 45], "befor": [11, 21, 23, 27, 31, 32, 35], "idea": [11, 22, 32], "perform": [11, 13, 15, 31, 32, 35], "plugin": 11, "finit": [11, 13, 31, 32, 40], "domain": [11, 13, 32, 43], "algorithm": [11, 32], "fdtd": [11, 13, 15, 32], "turn": [11, 21, 29, 35, 40], "component_from_gd": 11, "py": [11, 21, 22, 43], "func": 11, "get_simul": [11, 20], "get_meep_geometry_from_compon": [11, 20], "grate": [11, 13, 18, 21, 22, 24, 31], "fiber": [11, 13, 14, 18, 21, 31, 33], "connect": [11, 15, 18, 21, 31, 45], "howev": [11, 15, 21, 22, 23, 27, 33, 34, 35, 37, 45], "suffic": 11, "tutori": [11, 21, 22, 35], "tidy3d": [11, 20, 41], "implement": [11, 29, 34], "tpml": [11, 20], "port_source_offset": [11, 20], "port_monitor_offset": [11, 20], "distance_source_to_monitor": [11, 20], "32": 11, "scatter": [11, 21, 42], "tell": [11, 13, 22, 32, 34, 35, 42], "port": [11, 13, 18, 19, 20, 21, 22, 34, 45], "purpos": [11, 17, 23, 28, 41], "write_sparameters_meep": 11, "3d": [11, 18, 33, 35], "margin": 11, "account": [11, 12, 34, 44], "kwarg": 11, "fals": [11, 18, 22, 35, 40, 43], "wast": 11, "incorrectli": 11, "2d": [11, 14, 19, 33, 35], "comprehens": [11, 35, 42], "dictionari": [11, 18, 20, 21], "kei": [11, 14, 21, 33], "form": [11, 21, 29], "refer": [11, 13, 15, 31, 34, 41, 42], "go": [11, 15, 16, 20, 22, 23, 24, 27, 28, 34, 35, 37, 44, 45], "symmetri": 11, "port_symmetri": 11, "assign": [11, 31], "1x2": [11, 13, 20], "comput": [11, 13, 15, 21, 32, 34, 35, 38, 44], "written": [11, 15], "thu": [11, 34, 45], "write_sparamters_meep_mpi": 11, "write_sparameters_meep_batch": 11, "per": [11, 13, 28], "total": [11, 18, 33, 35, 40], "write_sparameters_gr": 11, "batch": 11, "write_sparameters_grating_mpi": 11, "write_sparameters_grating_batch": 11, "adequ": 11, "xmargin_left": 11, "xmargin_right": 11, "sp": 11, "plot_sparamet": 11, "reflect": [11, 14, 18, 20, 26, 33, 35, 40, 45], "wave": [11, 13, 14, 20, 21, 28, 34, 35, 40, 41, 42, 43], "why": [11, 33, 42], "program": [12, 13, 16, 32, 38], "environ": [12, 15, 17, 22, 23, 37, 38], "uncommon": 12, "roll": [12, 23], "back": [12, 14, 31, 34, 43, 45], "break": [12, 32], "someth": [12, 32], "product": [12, 43], "version": [12, 21, 23, 44], "control": [12, 17, 21, 23], "vc": 12, "extrem": [12, 23], "who": [12, 23], "simultan": [12, 42], "edit": [12, 31, 44], "rather": [12, 31, 34], "painlessli": 12, "predomin": 12, "programm": [12, 23], "todai": 12, "command": [12, 13, 17, 21, 32, 35, 40, 44], "entir": [12, 13, 15, 33, 35], "ecosystem": 12, "host": [12, 15, 32], "servic": 12, "gui": [12, 35, 37], "id": [12, 38], "sprung": 12, "alreadi": [12, 21, 27, 31, 34, 35], "linux": [12, 13, 16, 32, 37, 38, 44], "temin": 12, "enter": [12, 21, 34, 35], "machin": [12, 13, 32, 37, 44], "window": [12, 13, 16, 27, 32, 37, 43], "packag": [12, 15, 16, 17, 18, 21, 22, 27, 37, 40], "mac": [12, 16, 32, 37], "forc": [12, 23], "wsl": [12, 13, 32, 37], "still": [12, 30, 32, 33, 35, 45], "download": [12, 15, 16, 32, 38, 44], "link": [12, 30, 32], "maco": [12, 13, 32, 37, 38], "xcode": 12, "termin": [12, 32, 37, 38, 44], "select": [12, 16, 18, 44], "through": [12, 15, 21, 22, 24, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38, 40, 41, 42, 44], "debian": 12, "distribut": [12, 13, 22, 23, 32, 40], "ubuntu": [12, 32, 37, 44], "sudo": 12, "apt": 12, "rpm": 12, "fedora": 12, "rhel": 12, "cento": 12, "dnf": 12, "known": [12, 14, 21, 23, 32, 38, 39, 40, 42, 43], "free": [12, 13, 14, 15, 16, 23, 29, 31, 32, 41], "privat": 12, "bootcamp": [12, 15, 18, 34, 35], "along": [12, 14, 34, 40, 42, 43], "popular": [12, 23, 32, 38, 39], "python": [12, 13, 15, 16, 18, 31, 35, 37, 38, 43], "keep": [12, 15, 32, 35], "definit": [13, 23], "throughout": [13, 21], "mathemat": [13, 21, 31, 34], "descript": 13, "behavior": [13, 21, 31, 33, 34, 42, 43, 45], "cutback": 13, "techniqu": 13, "measur": [13, 14, 20, 21, 29, 34, 41], "attenu": [13, 31, 34], "transmiss": [13, 21, 28, 34, 35, 43], "delai": [13, 31], "count": 13, "etc": [13, 18, 31, 32, 41], "drc": [13, 16, 18, 31], "verifi": [13, 32, 35], "ensur": [13, 21, 31, 32, 35, 45], "error": [13, 18, 20, 27, 40], "caus": [13, 21, 30], "fail": [13, 35], "short": [13, 14, 16, 21, 23, 30], "featur": [13, 16, 22, 31, 32, 38, 40, 41], "resolv": [13, 43], "drastic": 13, "foundri": 13, "minimum": [13, 20, 31], "space": [13, 14, 22, 29, 31, 34, 41], "numer": [13, 40], "electrodynam": 13, "solut": 13, "differenti": [13, 29, 40], "method": [13, 15, 17, 19, 21, 23, 31, 32, 35, 37], "cover": [13, 15], "singl": [13, 15, 20, 21, 22, 31, 34, 37, 45], "primari": 13, "avail": [13, 15, 16, 18, 22, 23, 31, 32, 37], "platform": [13, 15, 32], "yaml": [13, 22], "flow": [13, 27], "gd": [13, 14, 15, 16, 18, 22, 27, 31, 32, 35, 37, 45], "graphic": 13, "coupl": [13, 14, 21, 22, 23, 31, 45], "reson": [13, 26, 27], "instrument": [13, 17, 20], "util": [13, 14, 18, 20, 21, 23], "beam": [13, 14, 20, 21, 33], "multi": 13, "split": [13, 20, 21, 35], "ideal": [13, 14, 21, 33], "nearli": 13, "imposs": 13, "polygon": [13, 31], "electron": [13, 27, 33, 35], "digit": [13, 27], "dry": 13, "modif": 13, "replic": 13, "insul": [13, 39], "soi": [13, 18, 31, 39, 43], "technolog": [13, 22, 31], "substrat": [13, 14, 18, 31, 39, 40], "semiconductor": 13, "wafer": [13, 31, 39], "vscode": [13, 32], "studio": [13, 37], "commonli": [13, 23, 32, 41], "vs": [13, 38], "editor": [13, 15, 37, 38], "microsoft": [13, 37, 38], "support": [13, 15, 17, 18, 20, 30, 41, 42], "debug": [13, 32], "syntax": [13, 17, 32, 40], "highlight": 13, "intellig": 13, "snippet": 13, "refactor": [13, 32], "embed": [13, 15], "git": [13, 18], "wikipedia": 13, "subsystem": [13, 37], "bash": [13, 32, 44], "directli": [13, 15, 18, 19, 35], "unmodifi": 13, "overhead": 13, "tradit": [13, 39], "virtual": [13, 17, 37], "dual": 13, "boot": 13, "diffract": 14, "cabl": [14, 31], "edg": [14, 24], "teeth": 14, "drawn": [14, 33], "onto": [14, 24, 31, 39, 44], "altern": [14, 44], "structur": 14, "propog": [14, 21, 31], "hyugen": 14, "fresnel": [14, 43], "bragg": 14, "law": [14, 40, 43], "depict": [14, 33, 41], "orthogon": [14, 33, 42], "arrai": [14, 21, 22, 35, 43], "might": [14, 18, 21, 32, 45], "imagin": [14, 21], "hold": [14, 23, 35], "catch": 14, "cell_x": 14, "cell_i": 14, "x_offset": 14, "nanomet": 14, "num_teeth": 14, "waveguide_depth": 14, "220": [14, 18, 21], "etch_depth": 14, "068": 14, "grating_period": 14, "659": 14, "fill_factor": 14, "524": 14, "verbos": [14, 45], "inf": [14, 19], "epsilon": [14, 35], "cladding_depth": 14, "box_depth": 14, "box": [14, 18, 27, 35, 38, 43], "substrate_depth": 14, "700": 14, "df": [14, 35], "pml_layer": [14, 19], "500": [14, 21], "savefig": 14, "grating_coupler_plot": 14, "encount": [14, 23, 43], "recogn": 14, "discuss": [14, 33], "page": [14, 18, 22, 32, 33, 34, 35, 40, 44, 45], "demonstr": [14, 43], "been": [14, 31, 32, 33, 35], "1550": 14, "appropri": [14, 21, 32, 33], "three": [14, 18, 20, 21, 35, 42], "understand": [14, 22, 34, 35, 42, 43], "simplifi": [14, 21, 33], "view": [14, 16, 18, 35, 37], "denot": [14, 20], "effici": [14, 21], "relat": [14, 18, 33, 40], "angl": [14, 21, 33], "condit": [14, 21, 23, 40], "theta_": 14, "air": [14, 43], "compar": [14, 30, 41], "surfac": 14, "choos": [14, 19, 33, 40], "exactli": [14, 21, 35], "90": [14, 21, 45], "degre": [14, 21, 29, 43], "byproduct": [14, 30], "larg": [14, 32, 45], "indcu": 14, "twice": 14, "avoid": [14, 32], "slightli": [14, 20, 21, 30, 35, 41, 45], "less": [14, 23, 31, 33, 34, 45], "area": [14, 31, 32, 43], "overal": 14, "weight": [14, 45], "unetch": 14, "ratio": [14, 20, 34, 35, 43, 45], "ff": 14, "w": 14, "welcom": 15, "present": [15, 18, 20, 33], "onlin": [15, 23], "freeli": [15, 23, 32], "resourc": [15, 30], "teach": 15, "student": 15, "curriculum": 15, "background": [15, 16, 21, 23], "motiv": 15, "full": [15, 23, 31, 32, 33, 34, 40], "learner": 15, "guid": [15, 31, 37, 39, 41, 43], "submit": [15, 23, 27], "wish": [15, 23], "simphoni": [15, 21, 22, 27, 32], "submiss": [15, 31], "pic": 15, "post": 15, "instruct": [15, 22, 27, 32, 37, 38, 44], "contribut": [15, 23], "subject": 15, "matter": [15, 35], "expert": 15, "futur": [15, 32], "expans": 15, "fork": 15, "parti": 15, "custom": [15, 23], "train": 15, "websit": [15, 23], "explanatori": 15, "webpag": 15, "launch": [15, 35], "colab": 15, "local": [15, 17, 37], "immedi": [15, 32], "alwai": [15, 21, 22, 32, 45], "workflow": 15, "approach": 15, "introduc": [15, 21, 23, 29, 32, 34, 45], "bother": 15, "mention": [15, 18, 23], "possibl": [15, 42], "configur": [15, 18, 22, 37], "ahead": 15, "standard": [15, 37, 45], "ardavan": 15, "oskooi": 15, "david": 15, "roundi": 15, "mihai": 15, "ibanescu": 15, "peter": 15, "bermel": 15, "john": 15, "joannopoulo": 15, "steven": 15, "johnson": 15, "flexibl": [15, 31], "electromagnet": [15, 40, 42, 45], "physic": [15, 24, 30, 41], "commun": [15, 23, 32], "181": 15, "687": 15, "702": 15, "2010": 15, "hyrum": 15, "gunther": 15, "framework": [15, 17], "scienc": 15, "65": 15, "74": 15, "2020": 15, "joaquin": 15, "matr": 15, "2023": 15, "url": [15, 23], "http": [15, 21, 23, 33, 44], "io": 15, "verif": [16, 27], "viewer": [16, 37], "trace": [16, 39], "net": 16, "detect": [16, 31], "scriptabl": 16, "languag": [16, 32], "rubi": 16, "extens": [16, 38], "extern": [16, 21], "json": 16, "request": 16, "server": [16, 17], "hot": 16, "reload": 16, "rerun": 16, "manag": [16, 37], "Then": [16, 22, 35, 44, 45], "search": 16, "doubl": [16, 21, 27, 34], "click": [16, 24, 27, 38, 44], "pyro5": 17, "remot": 17, "access": [17, 18, 23, 32, 34], "equip": 17, "lab": 17, "favor": [17, 39], "usb": 17, "proprietari": [17, 23], "brand": 17, "unifi": 17, "intrument": 17, "easi": [17, 21, 27, 29, 32, 35], "pip": [17, 22, 32, 37], "conda": [17, 22, 37, 44], "environment_nam": 17, "activ": [17, 22, 23, 26, 28, 32, 44], "updat": [17, 21], "pypi": [17, 32, 37], "upgrad": [17, 22, 32], "visit": 17, "interrog": 17, "station": 17, "interfac": [17, 32, 37, 40, 42], "fore": 17, "whether": [18, 23, 31], "etch": [18, 31, 39, 41], "deposit": [18, 31, 39], "dope": [18, 30, 31], "metal": [18, 29, 31], "p": [18, 30, 31], "translat": [18, 31], "mask": [18, 31], "formal": 18, "state": [18, 23, 35], "255": 18, "modern": [18, 32, 37], "almost": [18, 35, 45], "dedic": [18, 23], "nitrid": 18, "lithium": [18, 43], "niobat": [18, 43], "whichev": 18, "decid": 18, "thin": 18, "top": [18, 21], "dioxid": [18, 39, 43], "thick": [18, 21, 34, 35, 40], "buri": 18, "oxid": [18, 35], "main": [18, 26, 31, 32], "intern": [18, 33, 40], "48": [18, 21], "excel": [18, 30, 32], "refractiveindex": 18, "info": [18, 21], "color": [18, 38, 41, 43], "fill": 18, "map": [18, 21], "human": [18, 21], "readabl": [18, 21, 35], "properti": [18, 28, 30, 31, 40, 41, 44], "lyp": 18, "migrat": 18, "few": [18, 22, 23, 32, 37, 38, 41], "devrec": 18, "recognit": 18, "show_port": 18, "marker": 18, "label_inst": 18, "netlist": 18, "te": [18, 21, 33, 35, 40, 42, 43], "polar": [18, 20, 21, 22, 28, 31, 33, 40], "tm": [18, 21, 22, 42, 43], "pydant": 18, "class": [18, 23, 27], "partial": [18, 30, 33, 42], "germanium": 18, "photodiod": 18, "vari": [18, 21], "concentr": 18, "pn": 18, "junction": 18, "capacitor": [18, 31, 41], "depth": 18, "exclud": 18, "dice": 18, "lane": 18, "reserv": 18, "violat": 18, "reader": 18, "basemodel": 18, "wg": 18, "slab150": 18, "68": 18, "201": 18, "206": 18, "203": 18, "204": 18, "66": 18, "41": 18, "43": 18, "config": [18, 21, 22, 32], "frozen": 18, "extra": [18, 32, 41], "forbid": 18, "32m2023": 18, "06": 18, "227": 18, "0m": [18, 21, 22, 40], "1minfo": [18, 22, 40], "36mgdsfactori": [18, 22], "36m__init__": [18, 22], "36m204": 18, "1mloglevel": 18, "visibl": 18, "export": [18, 19, 22], "hatch_pattern": 18, "dot": 18, "ff9d9d": 18, "layer_in_nam": 18, "coars": 18, "transpar": 18, "cyan": 18, "01ff6b": 18, "bright": 18, "hollow": 18, "cc4c00": 18, "label_optical_io": 18, "blue": [18, 33, 35, 40, 42, 43], "label_set": 18, "202": 18, "magenta": 18, "red": [18, 33, 35, 42, 43], "lightli": 18, "hatch": 18, "004080": 18, "pinrec": 18, "404040": 18, "xsection": 18, "group_memb": 18, "xs_box": 18, "300": [18, 35], "f3ff80": 18, "solid": 18, "xs_si": 18, "301": 18, "black": [18, 35, 43], "xs_si_slab": 18, "313": 18, "80a8ff": 18, "xs_overlai": 18, "311": 18, "xs_ox_si": 18, "302": 18, "xs_via": 18, "303": 18, "grei": 18, "xs_m1": 18, "304": 18, "green": [18, 43], "xs_oxide_m1": 18, "305": 18, "308": 18, "ff80a8": 18, "wg_pin": 18, "klayout_lyp": 18, "posixpath": [18, 22], "home": [18, 22, 34, 35, 40], "env": [18, 21, 22, 32, 34, 40], "lib": [18, 21, 22, 40], "python3": [18, 21, 22, 40], "site": [18, 21, 22, 23, 40], "generic_tech": [18, 22], "tech": 18, "npp": 18, "pp": 18, "ppp": 18, "Be": [18, 21], "sure": [18, 19, 22, 23, 27, 35], "gmeep": [19, 20, 40], "meep_adjoint_optim": 19, "straightforward": 19, "get_component_from_sim": 19, "continu": [19, 32, 35, 40], "variabl": [19, 21, 30, 31, 35, 45], "waveguide_width": 19, "arm_separ": 19, "mmi_length": 19, "mmi_width": 19, "taper_width": 19, "pml_size": 19, "taper_x1": 19, "taper_x2": 19, "taper_y1": 19, "taper_y2": 19, "taper_y3": 19, "taper_y4": 19, "prism": 19, "height": [19, 21, 41], "source_center_x": 19, "source_s": 19, "kpoint": 19, "no_direct": [19, 35], "geometry_cent": 19, "gdspath": [19, 22], "2x2mmi": 19, "predict": [20, 21, 31, 42], "certain": [20, 23, 33, 34, 42], "k": [20, 26, 43], "wider": 20, "gradual": 20, "widen": 20, "nxm": 20, "replica": 20, "period": [20, 21, 29], "_0": 20, "wall": [20, 32], "interf": 20, "destruct": [20, 21, 28, 33, 45], "forward": [20, 23, 30, 35], "backward": [20, 32, 35], "word": [20, 23, 28, 33, 45], "excit": 20, "goe": [20, 34, 35, 43, 45], "THE": 20, "TO": 20, "length_mmi": 20, "extend": [20, 23], "extend_port": 20, "port_nam": [20, 21], "299": [20, 34], "evenli": [20, 45], "advantag": [20, 23, 31], "veri": [20, 21, 23, 30, 32, 35, 37, 39, 45], "suscept": [20, 31], "fact": [20, 23, 35], "optimum": 20, "contrast": 20, "mimic": 20, "disadvantag": 20, "switch": [20, 21, 34, 35], "wdm": 20, "divis": 20, "multiplex": 20, "hybrid": 20, "divers": 20, "photodetector": [20, 26, 31], "extract": [21, 40], "doc": [21, 22, 38, 40], "zender": 21, "concept": [21, 31, 32, 33, 34], "recombin": [21, 45], "accumul": 21, "quantum": 21, "piezo": 21, "transduc": 21, "sax": 21, "jax": 21, "nice": [21, 32, 37], "speedup": 21, "gpu": 21, "fine": 21, "cpu": 21, "awar": 21, "jax_enable_x64": 21, "drop": 21, "replac": 21, "jnp": 21, "broken": 21, "constitu": 21, "diagram": [21, 34, 42], "carri": [21, 23], "identifi": 21, "explain": [21, 30, 34, 35, 44], "formul": 21, "s_": 21, "ij": 21, "repres": [21, 33, 35, 41, 42, 43], "j": [21, 34, 35], "stimuli": 21, "signatur": 21, "grating_coupl": [21, 22], "31msignatur": 21, "0msiepic": 21, "34m": 21, "0mgrating_coupl": 21, "0mwl": 21, "0munion": 21, "0mfloat": 21, "0mjax": 21, "0marrai": 21, "36m1": 21, "0mpol": 21, "0mliter": 21, "0mthick": 21, "36m220": 21, "0mdwidth": 21, "36m0": 21, "0mdict": 21, "0mtupl": 21, "0mstr": 21, "0mjaxtyp": 21, "0mcomplex": 21, "31mdocstr": 21, "1550nm": 21, "citat": 21, "_static": 21, "ebeam_gc_te1550": 21, "alt": 21, "ebeam_bdc_te1550": 21, "wl": 21, "evalu": 21, "pol": 21, "210": 21, "230": 21, "dwidth": 21, "nomin": 21, "rais": 21, "valueerror": 21, "com": [21, 23, 33], "siepic_ebeam_pdk": 21, "blob": 21, "master": 21, "20compon": 21, "20with": 21, "20model": 21, "docx": 21, "31mfile": 21, "miniconda3": [21, 22, 34, 40], "31mtype": 21, "inspect": [21, 23], "o0": 21, "0307378": 21, "00345908j": 21, "dtype": 21, "complex128": 21, "75686856": 21, "02082852j": 21, "74360676": 21, "09760613j": 21, "0750638": 21, "02585451j": 21, "get_port": 21, "y_branch": 21, "strictli": 21, "enforc": 21, "rewrit": 21, "string": [21, 40], "instance_nam": 21, "whitespac": 21, "delimit": 21, "comma": 21, "composit": 21, "gc_in": 21, "gc": 21, "ybranch": [21, 45], "long_wg": 21, "short_wg": 21, "gc_out": 21, "act": 21, "whatev": 21, "invok": [21, 32], "gave": 21, "becom": [21, 23, 32, 35, 42], "instanti": 21, "unsur": 21, "get_set": 21, "loss": [21, 29, 30, 34, 35, 45], "overkil": 21, "everyth": [21, 35, 44], "els": [21, 32, 35], "stai": 21, "global": 21, "toplevel": 21, "trickl": 21, "1000": 21, "150": 21, "transmit": [21, 34, 39, 42, 43], "magnitud": [21, 35, 40, 43], "squar": [21, 34], "renam": 21, "unconnect": 21, "realli": [21, 22, 23, 35, 43], "meaning": 21, "both": [21, 29, 30, 32, 34, 35, 40, 45], "linear": [21, 29, 35, 45], "log": [21, 22, 35], "scale": [21, 31, 45], "mag": 21, "ab": [21, 35], "fig": [21, 40, 43], "subplot": [21, 40, 43], "sharex": [21, 40], "set_ylabel": 21, "log10": [21, 35], "db": [21, 35], "set_xlabel": [21, 43], "suptitl": 21, "dip": 21, "opposit": 21, "peak": [21, 33, 34], "maximum": [21, 34], "better": [21, 41, 42], "think": [21, 31, 32], "equal": [21, 28, 34, 41, 43, 45], "my_compon": 21, "delta_length": [21, 22], "relev": 21, "amplitud": [21, 28, 29, 30, 31, 33, 45], "i_": 21, "e_": [21, 34], "sqrt": 21, "hspace": 21, "2mm": 21, "whose": 21, "undergon": 21, "mw": [21, 29], "lossless": 21, "plane": [21, 42], "e_0": 21, "omega": 21, "z": [21, 35, 40, 42], "beta_": 21, "alpha_": 21, "\u03b1": 21, "appear": 21, "expon": 21, "zero": [21, 40], "lvert": 21, "express": [21, 29], "1450": 21, "longer": [21, 29, 41], "102": 21, "491": 21, "phasa": 21, "heat": [21, 26, 29], "static": 21, "\u03b2": 21, "100\u00b5m": 21, "1500nm": 21, "ouptput": 21, "9mw": 21, "heater": 21, "walk": [22, 24, 40], "mzi": 22, "prepar": 22, "ubcpdk": 22, "forg": [22, 32], "gdstk": 22, "plai": 22, "uc": 22, "conf": 22, "display_typ": 22, "32m2024": [22, 40], "01": [22, 40, 45], "08": 22, "27": 22, "51": [22, 40], "562": 22, "layer_view": 22, "36m790": 22, "1mimport": 22, "layerview": 22, "parkeraa": [22, 40], "52": 22, "715": 22, "36mubcpdk": 22, "36m": [22, 40], "modul": [22, 26, 28, 29, 30, 31, 40], "36m30": 22, "1mfound": 22, "806": 22, "813": 22, "36mactiv": 22, "36m307": 22, "1m": 22, "pretti": [22, 32], "doesn": [22, 38, 40, 42], "adjust": [22, 28, 29, 43, 45], "length_x": 22, "length_i": 22, "ring_singl": 22, "littl": 22, "bit": [22, 42], "ascii": 22, "rotat": 22, "though": [22, 32], "ad": [22, 30, 35], "mark": 22, "autom": [22, 31], "openebl": [22, 27], "tester": 22, "usig": 22, "component_nam": 22, "usernam": [22, 44], "yml": 22, "yournam": 22, "restart": [22, 44], "kernel": [22, 35], "te_mzi": 22, "add_fiber_arrai": 22, "mycoolmzi1": 22, "flip": 22, "isn": [22, 35, 43], "tm_mzi": 22, "gc_tm1550": 22, "mycoolmzitm": 22, "mzi_togeth": 22, "mzu_togeth": 22, "ymax": 22, "1569": 22, "userwarn": 22, "unnam": 22, "unnamed_b83043d": 22, "zoom": 22, "lower": [22, 28, 33, 35, 40, 41, 45], "meet": [22, 27, 31], "sai": [22, 27, 28, 34, 38, 42], "opt_in_te_1550_device_yourname_mycoolmzi1": 22, "tmp": [22, 43], "ipykernel_305404": 22, "1677396279": 22, "37": 22, "46": 22, "359": 22, "36m_write_librari": 22, "36m1913": 22, "1mwrote": 22, "constitut": [23, 30], "legal": 23, "advic": 23, "date": 23, "corpor": 23, "contact": 23, "attornei": 23, "absolut": 23, "implic": 23, "organ": [23, 35, 40], "particularli": 23, "question": 23, "compani": 23, "incorpor": 23, "inherit": 23, "foss": 23, "availbl": 23, "portion": [23, 33, 43], "anyon": [23, 32], "enhanc": 23, "methodolog": 23, "creation": 23, "peopl": 23, "skill": 23, "context": [23, 33], "monetarili": 23, "under": 23, "restrict": [23, 31], "freedom": 23, "copi": [23, 43, 44], "studi": 23, "improv": 23, "hood": 23, "actual": [23, 35, 45], "strong": 23, "focus": 23, "downsid": 23, "thanklessli": 23, "maintain": [23, 28], "spend": 23, "driven": 23, "psiquantum": 23, "natur": [23, 42], "mainten": 23, "bug": [23, 32], "slower": 23, "commerci": 23, "On": [23, 26, 42, 44], "hand": [23, 34, 38, 42], "garner": 23, "friendli": 23, "copor": 23, "scheme": 23, "confirm": 23, "team": 23, "abil": 23, "plan": 23, "releas": [23, 32], "permiss": 23, "162": 23, "copyright": 23, "remain": [23, 34], "stricter": 23, "deriv": [23, 41, 43], "warranti": 23, "world": [23, 32, 41], "statement": 23, "signific": [23, 45], "attribut": 23, "similar": [23, 34, 40], "rereleas": 23, "grant": 23, "patent": 23, "contributor": 23, "claim": 23, "codebas": 23, "cannot": [23, 43], "liabl": 23, "reason": [23, 33], "trademark": 23, "licensor": 23, "belong": 23, "copyleft": 23, "mandat": 23, "gpl": 23, "v3": 23, "unpopular": 23, "prohibit": 23, "inclus": 23, "prevent": 23, "contamin": 23, "witih": 23, "technic": 23, "offend": 23, "liabil": 23, "binari": [23, 31, 35, 45], "attempt": 23, "pai": [23, 33], "attitud": 23, "necessarili": [23, 32], "impress": 23, "gnu": 23, "notepad": 23, "wordpress": 23, "mysql": 23, "unabl": 23, "sale": 23, "fossa": 23, "editori": 23, "101": 23, "jan": 23, "2021": 23, "blog": 23, "feb": 23, "mar": 23, "skip": [24, 27, 44], "explan": 24, "tune": [26, 28, 34], "scope": [26, 30], "thermo": [26, 29], "slow": 26, "stabl": 26, "electro": [26, 31], "fast": [26, 30], "laser": [26, 31], "buit": 27, "readi": [27, 35, 44], "button": 27, "bu": [27, 34], "signal": [28, 29, 30, 31, 32, 35, 39, 41, 42], "characterist": [28, 35, 41], "ac": 28, "encod": [28, 31], "categor": 28, "tuner": [28, 30], "dure": 28, "bridg": 28, "todo": [28, 30, 41], "insert": [28, 29, 30, 34, 35], "illustr": [28, 41], "compress": 28, "accord": [28, 35], "fewer": 28, "temperatur": [29, 41], "molecul": [29, 42], "At": 29, "low": [29, 30, 31, 34, 39], "proport": 29, "compris": 29, "proxim": [29, 34], "resistor": [29, 31, 41], "dissip": 29, "besid": 29, "govern": [29, 40], "mostli": [29, 33, 40, 42], "unlik": [29, 30], "pin": [29, 32], "eas": [29, 39], "offer": [29, 30, 41], "tradeoff": [29, 30], "capac": 29, "applciat": 29, "constantli": 29, "360": 29, "fsr": 29, "spectral": 29, "maxima": 29, "achiev": [29, 33, 43], "consum": 29, "closer": 29, "rate": 29, "plasma": 30, "dispers": 30, "charg": 30, "carrier": 30, "inject": [30, 35], "refrac": 30, "voltag": 30, "revers": [30, 45], "bias": 30, "respond": 30, "induc": 30, "mechan": [30, 32], "quit": 30, "beyond": [30, 41], "resist": [30, 41], "capacit": [30, 41], "intrins": 30, "high": [30, 32, 33, 39], "cutoff": 30, "ten": 30, "ghz": 30, "suit": 30, "neglig": 30, "clariti": 30, "thermal": 30, "undop": 30, "copmris": 30, "experienc": [30, 37, 41], "cost": [30, 31, 32], "qualiti": 30, "deplet": 30, "moder": 30, "bia": 30, "analog": 31, "macro": 31, "lens": 31, "mirror": 31, "beamsplitt": 31, "analogu": 31, "micro": 31, "nano": 31, "discret": [31, 33], "inductor": 31, "cmo": 31, "classifi": 31, "mismatch": 31, "anisotropi": 31, "voa": 31, "photolithographi": 31, "photomask": 31, "photosensit": 31, "chemic": 31, "photoresist": 31, "lamp": 31, "ultraviolet": 31, "regim": 31, "stencil": 31, "alter": 31, "leav": 31, "underli": 31, "constraint": 31, "densiti": 31, "pcb": 31, "familiar": [31, 32, 34], "reject": 31, "didn": 31, "undergo": 31, "compat": [31, 32, 37], "hous": 31, "matur": 31, "store": [31, 35, 37, 44], "concret": 31, "conta": 31, "latter": 31, "regener": 31, "regress": 31, "mzm": 31, "least": 31, "arm": [31, 45], "rout": 31, "briefli": [31, 35], "touch": 31, "solv": [31, 34, 40, 41], "maxwel": [31, 40], "computation": [31, 35], "expens": 31, "volumetr": 31, "mesh": 31, "voxel": 31, "magnet": [31, 33, 40, 42, 43], "lot": [31, 42], "hour": 31, "pertin": 31, "abstract": [31, 33], "sequenc": 31, "yet": 31, "embrac": 32, "scientif": 32, "session": 32, "recompil": 32, "prototyp": 32, "rapidli": 32, "miniconda": [32, 37, 44], "bundl": 32, "frill": 32, "strip": 32, "anaconda": 32, "tend": 32, "latest": 32, "execut": 32, "easiest": [32, 38], "quick": 32, "best": [32, 34], "isol": [32, 34], "sandbox": 32, "destroi": 32, "mess": 32, "never": [32, 35], "worri": 32, "someon": 32, "venv": 32, "older": 32, "intel_env": 32, "subdir": 32, "osx": 32, "64": 32, "establish": 32, "hasn": 32, "promin": 32, "fundament": [32, 33, 35, 40, 45], "counterpart": 32, "matlab": 32, "defacto": 32, "databas": 32, "solver": [32, 40, 41], "pymeep": 32, "grab": 32, "nlopt": 32, "aren": 32, "increment": 32, "api": 32, "contract": 32, "task": 32, "evolv": 32, "accomplish": 32, "old": 32, "immatur": 32, "frequent": 32, "guarante": 32, "reproduc": 32, "semant": 32, "major": 32, "minor": 32, "patch": [32, 40], "incompat": 32, "manner": 32, "txt": 32, "24": [32, 43], "great": 33, "intuit": [33, 34, 43, 45], "surround": [33, 39, 40], "flaw": 33, "assumpt": 33, "misconcept": 33, "compen": 33, "challeng": 33, "slab": [33, 41], "implicit": 33, "fulli": [33, 34], "crucial": 33, "addition": 33, "impli": 33, "greater": [33, 43], "critic": 33, "except": 33, "anim": 33, "white": 33, "sent": 33, "orthogan": 33, "wavefront": 33, "interv": 33, "trough": 33, "special": [33, 38], "attent": 33, "clarifi": 33, "incremental": 33, "With": [33, 34], "backdrop": 33, "consider": [33, 41], "lost": [33, 35, 43, 45], "interferr": 33, "minim": 33, "emerg": 33, "obvious": 33, "mit": 33, "s3": 33, "amazonaw": 33, "fip": 33, "html": [33, 44], "theori": 34, "trip": 34, "particular": 34, "Such": 34, "circumfer": 34, "alpha": [34, 35, 43, 45], "cm": 34, "plug": 34, "b1": 34, "te_": 34, "a1": 34, "a2": 34, "b2": 34, "quantiti": 34, "opd": 34, "roundtrip": 34, "imped": [34, 35], "approx": 34, "half": [34, 40], "fwhm": 34, "aka": 34, "bandwidth": 34, "finess": 34, "narrow": 34, "sharp": 34, "q": 34, "sharper": 34, "filter": [34, 42], "whisper": 34, "galleri": 34, "feel": 34, "ipython": 34, "video": 34, "10um": 34, "d_pml": 34, "d_pad": 34, "r_in": 34, "r_out": 34, "wg_length": 34, "cylind": 34, "600": 34, "ebang4": 34, "book": [34, 35], "decai": [34, 40], "despit": 34, "wg_center": 34, "radio": 35, "rf": 35, "exit": 35, "nxn": 35, "ofen": 35, "notat": 35, "character": 35, "bechavior": 35, "metric": 35, "param": 35, "mind": 35, "accur": [35, 41], "life": 35, "detector": 35, "adapt": [35, 37], "pictur": [35, 43], "purpl": 35, "my": 35, "next": [35, 37, 40, 42, 44], "whole": 35, "bunch": 35, "three_d": 35, "reduc": 35, "gds_file": 35, "jkart": 35, "geometry_l": 35, "cell_l": 35, "port1_l": 35, "port2_l": 35, "port3_l": 35, "port4_l": 35, "source1_l": 35, "source2_l": 35, "source3_l": 35, "source4_l": 35, "lcen": 35, "diamet": 35, "t_oxid": 35, "t_si": 35, "t_air": 35, "78": 35, "cell_thick": 35, "min": 35, "cell_zmax": 35, "cell_zmin": 35, "si_zmax": 35, "si_zmin": 35, "numport": 35, "s_param": 35, "input_param": 35, "usabl": 35, "tab": 35, "href": 35, "viewoutput": 35, "gdsii_prism": 35, "zmax": 35, "zmin": 35, "gdsii_vol": 35, "fname": 35, "gdsii_prim": 35, "port1": 35, "port2": 35, "port3": 35, "port4": 35, "source1": 35, "source2": 35, "source3": 35, "source4": 35, "Not": 35, "oxide_cent": 35, "oxide_s": 35, "oxide_lay": 35, "eig_par": 35, "eig_match_freq": 35, "contructor": 35, "no_par": [35, 40], "odd_z": 35, "monitor": 35, "energi": 35, "modemonitor": 35, "add_mode_monitor": 35, "moderegion": 35, "No": 35, "correctli": [35, 44], "until_after_sourc": 35, "get_eigenmode_coeffici": 35, "nfreq": 35, "neg": [35, 40], "third": [35, 40], "spot": 35, "sour": 35, "5th": 35, "input_coeff": 35, "port1_coeff": 35, "port2_coeff": 35, "port3_coeff": 35, "port4_coeff": 35, "s11": 35, "6f": 35, "upper": [35, 40, 45], "s12": 35, "s13": 35, "s14": 35, "fun": 35, "transmitt": 35, "exercis": 35, "terribl": 35, "fortun": 35, "meant": 35, "port1_tran": 35, "port2_tran": 35, "port3_tran": 35, "port4_tran": 35, "percent": 35, "insertionloss": 35, "insertionloss_db": 35, "steadi": 35, "reset": 35, "visula": 35, "continuoussourc": [35, 45], "reach": 35, "eps_data": [35, 45], "get_epsilon": 35, "ez_data": 35, "real": 35, "get_efield_z": 35, "screen": 35, "dpi": 35, "imshow": [35, 45], "transpos": [35, 45], "interpol": [35, 45], "spline36": [35, 45], "cmap": [35, 40, 45], "flipud": 35, "axi": [35, 40, 42, 43, 45], "hopefulli": 35, "sens": 35, "sake": 35, "rest": [35, 43], "devi": 35, "ts": 35, "s1": 35, "ts2": 35, "ts3": 35, "ts4": 35, "input_pow": 35, "trans1": 35, "trans2": 35, "trans3": 35, "trans4": 35, "expect": [35, 45], "entri": 35, "breviti": 35, "paramt": 35, "mathwork": 35, "luceda": 35, "microwaves101": 35, "youtub": 35, "opinion": 37, "newcom": 37, "troubleshoot": 37, "disagre": 37, "primarili": 37, "nervou": 37, "navig": 37, "precompil": 37, "desig": 38, "boast": 38, "healthi": 38, "capabl": 38, "lighter": 38, "pylanc": 38, "tree": 38, "icon": 38, "ey": [38, 40], "candi": 38, "theme": 38, "menu": [38, 44], "pop": 38, "conduct": 39, "copper": 39, "47": [39, 40, 43], "44": [39, 40, 43], "confin": [40, 41], "newton": 40, "motion": [40, 42], "vibrat": 40, "violin": 40, "pipe": 40, "stationari": 40, "mpb": 40, "05": 40, "512": 40, "36mgplugin": 40, "36m39": 40, "1mmeep": 40, "28": 40, "glass": 40, "find_modes_waveguid": 40, "core_w": 40, "core_t": 40, "m3": 40, "m4": 40, "elecgtr": 40, "wg1": 40, "linewidth": 40, "edgecolor": 40, "facecolor": 40, "wg4": 40, "ax1": 40, "ax2": 40, "islic": 40, "add_patch": 40, "tight_layout": 40, "0th": [40, 45], "1st": [40, 45], "spatial": 40, "sinusoid": 40, "non": [40, 41, 42], "slice": [40, 42], "discontinu": 40, "boundari": [40, 43], "perpindicular": 40, "discontin": 40, "contin": 40, "horizont": 40, "domin": 40, "transvers": [40, 42, 43], "wg2": 40, "wg3": 40, "plot_ez": 40, "slight": 40, "aris": 40, "mm": 40, "find_mode_dispers": 40, "mode_numb": 40, "ng": 40, "3f": 40, "106": 40, "892": 40, "ignor": [41, 45], "mass": 41, "induct": 41, "exhaust": 41, "400nm": 41, "950nm": 41, "220nm": 41, "rib": 41, "rectangular": 41, "resembl": 41, "ridg": 41, "difficult": 41, "veloc": 41, "somewhat": 41, "tediou": 41, "streamlin": 41, "wavelegnth": 41, "atom": 41, "gather": [41, 43], "n_g": 41, "dn_": 41, "lambda_0": 41, "minu": 41, "band": 41, "behav": 42, "vector": [42, 43], "pure": 42, "perpendicular": 42, "tricki": 42, "dimension": 42, "arrow": 42, "bield": 42, "sun": 42, "unpolar": 42, "atmospher": 42, "sunlight": 42, "uniform": 42, "permit": 42, "unpredict": 42, "strike": 43, "snell": 43, "theta_i": 43, "theta_r": 43, "n_1sin": 43, "n_2sin": 43, "theta_t": 43, "gamma_": 43, "n_1co": 43, "n_2co": 43, "tau_": 43, "2n_1co": 43, "obliqu": 43, "observ": 43, "n1": 43, "n2": 43, "transmission_angl": 43, "arcsin": 43, "theta_i_deg": 43, "deg2rad": 43, "set_aspect": 43, "zip": 43, "p0": 43, "i1": 43, "rad2deg": 43, "0f": 43, "r1": 43, "t1": 43, "xlim": 43, "ylim": 43, "axvlin": 43, "axhlin": 43, "linestyl": 43, "xtick": 43, "ytick": 43, "ipykernel_19546": 43, "1351043342": 43, "runtimewarn": 43, "AND": 43, "simulate_reflect": 43, "radian": 43, "incident_angle_radian": 43, "reflected_angl": 43, "transmitted_angl": 43, "incident_wav": 43, "tan": 43, "reflected_wav": 43, "transmitted_wav": 43, "display_transmit": 43, "barrier": 43, "set_xlim": 43, "set_ylim": 43, "str": 43, "set_titl": 43, "var": 43, "folder": [43, 44], "9n": 43, "_g8r69x957zb59c09f92zznh0000gn": 43, "ipykernel_69883": 43, "921879874": 43, "runtim": 43, "sine": 43, "theta_c": 43, "critical_angl": 43, "crit_angl": 43, "51840906945382": 43, "progag": 43, "profit": 43, "understood": 43, "prompt": 44, "administr": 44, "password": 44, "sh": 44, "git_and_github": 44, "wslpath": 44, "04": 44, "www": 44, "de": 44, "chapter": 44, "what_is_a_photonic_devic": 44, "arbitrari": 45, "focu": 45, "i_i": 45, "i_1": 45, "i_2": 45, "perfect": 45, "70": 45, "media": 45, "vice": 45, "versa": 45, "exact": 45, "perspect": 45, "inwg": 45, "outwg": 45, "mmi1x2_with_sbend": 45, "inwg_ref": 45, "splitter_ref": 45, "outwg_top_ref": 45, "outwg_bot_ref": 45, "make_geometry_from_gds_compon": 45, "core_mat": 45, "cladding_mat": 45, "component_point": 45, "to_np": 45, "1e3": 45, "pad_width": 45, "nx": 45, "ny": 45, "matgrid": 45, "materialgrid": 45, "do_averag": 45, "damp": 45, "dft": 45, "add_dft_field": 45, "get_arrai": 45, "e_data": 45, "choic": 45, "significantli": 45, "varianc": 45}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"camacholab": 0, "photon": [0, 28, 31], "bootcamp": 0, "tabl": 0, "content": 0, "front": 0, "matter": 0, "develop": 0, "environ": [0, 32], "passiv": [0, 26, 31], "devic": [0, 31, 35], "design": [0, 8, 9, 25, 27, 31, 45], "simul": [0, 8, 20, 21, 34, 35], "circuit": [0, 3, 28, 31, 35], "activ": [0, 31], "test": 0, "refer": [0, 3, 6, 23, 35], "adjoint": 1, "optim": [1, 25, 36], "advanc": 2, "compon": [2, 6, 21, 26], "cross": 2, "section": 2, "creat": 2, "us": [2, 3, 6, 21, 35], "componentspec": 2, "analyz": 3, "account": 3, "grate": [3, 14], "coupler": [3, 8, 10, 14], "curv": 3, "fit": 3, "extract": 3, "index": [3, 41], "refract": [3, 43], "compact": [4, 31], "model": [4, 21, 31, 33, 41], "element": 6, "polygon": 6, "port": [6, 35], "label": 6, "from": [6, 21], "translat": 6, "rotat": 6, "boolean": 6, "oper": 6, "parametr": 6, "cell": 6, "shape": [6, 36], "gener": 6, "ad": 6, "export": 6, "gd": [6, 11, 19], "file": 6, "import": [6, 35], "connect": [6, 38], "exercis": [6, 8, 18], "credit": 7, "sponsor": 7, "contributor": 7, "direct": 8, "supermod": 8, "visual": [8, 38], "coupl": [8, 34], "length": 8, "gap": 8, "between": 8, "waveguid": [8, 39, 40, 41, 43], "other": [8, 35], "split": [8, 45], "ratio": 8, "show": 8, "across": [8, 35], "dc": 8, "consider": [8, 42, 45], "sourc": [8, 14, 23, 35, 45], "rule": [9, 31], "check": [9, 21, 43], "edg": 10, "meep": [11, 19, 35], "find": [11, 35], "s": [11, 21, 35], "paramet": [11, 14, 35, 41], "through": [11, 43], "gmeep": 11, "git": 12, "github": 12, "glossari": 13, "how": [14, 28, 35], "doe": [14, 28], "work": [14, 28], "essenti": 14, "period": 14, "etch": 14, "depth": 14, "fill": 14, "factor": [14, 34], "introduct": 15, "klayout": 16, "klive": 16, "laboratori": 17, "tool": 17, "pyrolab": 17, "instal": 17, "autog": 17, "defin": [18, 31], "layer": [18, 31], "stack": [18, 31], "silicon": 18, "insul": 18, "gdsfactori": 18, "layermap": 18, "layerview": 18, "layerstack": 18, "multimod": 20, "interferomet": [20, 21, 22], "mmi": 20, "self": 20, "imag": 20, "applic": [20, 28, 34], "mach": [21, 22], "zehnder": [21, 22], "The": [21, 31], "mzi": 21, "write": 21, "netlist": 21, "callabl": 21, "analysi": 21, "balanc": 21, "quick": [21, 43], "definit": 21, "imblanc": 21, "thermo": 21, "optic": [21, 24, 33], "effect": [21, 41], "lai": 22, "out": 22, "open": 23, "softwar": [23, 37], "common": 23, "licens": 23, "mit": 23, "apach": 23, "2": [23, 35], "0": 23, "gplv3": 23, "agpl": 23, "i": 24, "o": 24, "invers": 25, "process": [27, 31], "kit": 27, "phase": [28, 29, 30], "shifter": [28, 29, 30], "what": [28, 31, 35, 39], "shift": 28, "A": 28, "simpl": 28, "heater": 29, "advantag": [29, 30], "thermal": 29, "disadvantag": [29, 30], "tune": 29, "effici": 29, "pn": 30, "pin": 30, "junction": 30, "ar": [31, 35], "compar": 31, "electron": 31, "vs": 31, "manufactur": 31, "geometri": [31, 35], "digit": 31, "python": 32, "conda": 32, "virtual": 32, "packag": 32, "manag": 32, "version": 32, "improv": 33, "rai": 33, "support": 33, "mode": [33, 40], "ring": 34, "reson": 34, "critic": [34, 43], "fsr": 34, "free": 34, "spectral": 34, "rang": 34, "qualiti": 34, "field": 34, "scatter": 35, "todo": 35, "why": 35, "demonstr": 35, "simphoni": 35, "quickli": 35, "an": 35, "arbitrari": 35, "step": 35, "1": 35, "run": 35, "singl": 35, "3": 35, "same": 35, "each": 35, "differ": 35, "frequenc": 35, "studio": 38, "code": 38, "configur": 38, "vscode": 38, "wsl": [38, 44], "window": [38, 44], "machin": 38, "wavegudi": 41, "spatial": 41, "dimens": 41, "group": 41, "polar": 42, "total": 43, "intern": 43, "reflect": 43, "kei": 43, "equat": 43, "demo": 43, "angl": 43, "propag": 43, "light": [43, 45], "onli": 44, "y": 45, "branch": 45, "combin": 45}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinxcontrib.bibtex": 9, "sphinx": 56}})
\ No newline at end of file