From e8326228e2a14396de5de87b15c46b2aed7d904e Mon Sep 17 00:00:00 2001
From: Andeloth
Date: Tue, 23 Jan 2024 21:20:25 +0000
Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20BYUCamac?=
=?UTF-8?q?hoLab/Photonics-Bootcamp@90ac9f112f8a53a253a25cf64f3807328f7f65?=
=?UTF-8?q?07=20=F0=9F=9A=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
_sources/pages/y_branch.ipynb | 13 -------------
pages/directional_couplers.html | 4 ++--
pages/y_branch.html | 8 --------
searchindex.js | 2 +-
4 files changed, 3 insertions(+), 24 deletions(-)
diff --git a/_sources/pages/y_branch.ipynb b/_sources/pages/y_branch.ipynb
index a411b79..1256aea 100644
--- a/_sources/pages/y_branch.ipynb
+++ b/_sources/pages/y_branch.ipynb
@@ -211,19 +211,6 @@
"- Manufacturing Variability: Due to the larger scale of directional couplers, they are more likely to be affected by fab variance."
]
},
- {
- "attachments": {},
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "#### Practice\n",
- "\n",
- "\n",
- " Answer
\n",
- " Here is the answer \n",
- " "
- ]
- },
{
"attachments": {},
"cell_type": "markdown",
diff --git a/pages/directional_couplers.html b/pages/directional_couplers.html
index 2f79f34..cdd9e3c 100644
--- a/pages/directional_couplers.html
+++ b/pages/directional_couplers.html
@@ -564,8 +564,8 @@ Coupling length and the gap between waveguides
This cross-over length \(L\), that gives 100% power transfer is found with:
-
-
(2)\[\begin{align}
+
+(2)\[\begin{align}
L_{\text{cross-over}} = \frac {\lambda}{2\Delta n} \nonumber
\end{align}\]
This is found from determining what length when multiplied by the propagation constants makes the phase difference \(\pi\):
diff --git a/pages/y_branch.html b/pages/y_branch.html
index a0e1276..33cf5d1 100644
--- a/pages/y_branch.html
+++ b/pages/y_branch.html
@@ -311,7 +311,6 @@
Contents
Splitting Light
-
-Practice
-
-Answer
- Here is the answer
-
Sources
“Silicon Photonics Design” by Lukas Chrostowski
@@ -534,7 +527,6 @@ SourcesSplitting Light
- Combining Light
diff --git a/searchindex.js b/searchindex.js
index 353da4a..a46abb7 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/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/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", "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, 22], "thi": [0, 3, 6, 8, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 25, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 39, 40, 41, 42, 43, 44], "intend": [0, 11, 22], "those": [0, 6, 21, 22, 44], "experi": [0, 21, 29, 36, 42], "electr": [0, 6, 8, 13, 14, 15, 18, 20, 21, 25, 27, 28, 29, 30, 32, 33, 38, 39, 41, 42], "engin": [0, 15, 21, 22, 30], "ar": [0, 3, 6, 8, 9, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 25, 27, 28, 29, 31, 32, 33, 36, 37, 38, 39, 40, 41, 42, 43, 44], "interest": [0, 15, 21], "learn": [0, 3, 6, 31], "about": [0, 6, 8, 17, 21, 22, 31, 32, 33, 34, 36, 37, 40, 41], "integr": [0, 13, 15, 16, 18, 26, 30, 37], "applic": [0, 8, 13, 21, 22, 28, 29, 31, 34], "cours": [0, 8, 12, 13, 15, 22, 25, 31, 36, 37, 42], "wa": [0, 21, 34, 43], "creat": [0, 6, 8, 11, 12, 13, 14, 15, 17, 18, 20, 21, 30, 31, 32, 33, 34, 36, 39, 42, 43, 44], "collabor": [0, 12, 15, 22], "between": [0, 11, 13, 15, 20, 21, 27, 28, 29, 30, 32, 33, 34, 40, 42, 44], "brigham": 0, "young": 0, "univers": [0, 18], "s": [0, 3, 6, 12, 13, 14, 15, 16, 18, 22, 27, 28, 29, 30, 31, 33, 37, 39, 40, 41, 42, 43, 44], "skywat": 0, "project": [0, 12, 22], "introduct": [0, 21], "credit": 0, "open": [0, 6, 8, 12, 13, 14, 15, 16, 17, 20, 31, 33, 36, 37, 40, 43], "sourc": [0, 6, 11, 12, 13, 15, 16, 17, 18, 19, 20, 30, 31, 33, 36, 37], "softwar": [0, 6, 12, 13, 15, 16, 17, 18, 26, 31, 34], "what": [0, 6, 8, 11, 12, 21, 22, 41, 42], "defin": [0, 3, 6, 8, 9, 11, 14, 20, 21, 33, 34, 39, 40, 42], "layer": [0, 6, 8, 13, 20, 26, 34, 38, 44], "stack": [0, 13, 26, 31], "compon": [0, 8, 11, 13, 14, 15, 18, 19, 20, 22, 23, 30, 32, 34, 39, 41, 44], "waveguid": [0, 6, 13, 14, 18, 20, 21, 25, 27, 28, 29, 30, 32, 33, 34, 41, 44], "optic": [0, 6, 14, 18, 20, 25, 28, 29, 30, 33, 41, 42, 44], "i": [0, 6, 8, 11, 14, 20, 21, 27, 31, 33, 34, 36, 42], "o": [0, 6], "optim": [0, 3, 14, 21, 30, 31, 34, 44], "invers": [0, 30, 42], "compact": [0, 13, 15, 26, 44], "model": [0, 3, 13, 15, 18, 26, 34, 39, 42], "rule": [0, 13, 26, 31], "check": [0, 11, 12, 13, 18, 30, 34], "process": [0, 6, 8, 11, 13, 18, 28, 31, 34, 40], "kit": [0, 13], "mach": [0, 20, 30], "zehnder": [0, 20, 30], "interferomet": [0, 6, 13, 25, 30], "advanc": 0, "phase": [0, 8, 20, 21, 30, 32, 34, 44], "shifter": [0, 21, 30], "analyz": [0, 15, 33], "glossari": 0, "repositori": [0, 12, 36], "pdk": [0, 6, 9, 13, 18, 21, 26, 30], "document": [0, 15, 17, 21, 33, 34], "In": [3, 6, 8, 11, 12, 14, 15, 18, 20, 21, 22, 25, 27, 28, 29, 30, 31, 33, 34, 36, 37, 39, 44], "section": [3, 6, 14, 16, 18, 23, 25, 30, 31, 32, 34, 36, 40, 41, 43], "we": [3, 6, 8, 12, 13, 14, 15, 17, 18, 21, 22, 23, 25, 27, 30, 31, 32, 33, 34, 36, 37, 39, 40, 41, 42, 43, 44], "how": [3, 6, 8, 11, 13, 15, 18, 20, 21, 25, 31, 32, 33, 36, 39, 40, 41, 42, 43], "interpret": [3, 31], "data": [3, 13, 18, 34, 41], "collect": [3, 21], "from": [3, 8, 11, 12, 13, 14, 15, 16, 18, 19, 20, 27, 28, 29, 30, 31, 32, 33, 34, 37, 39, 41, 43, 44], "our": [3, 6, 17, 21, 29, 32, 33, 34, 36, 39], "whenev": 3, "obtain": [3, 28], "import": [3, 8, 11, 14, 18, 19, 20, 21, 22, 31, 32, 33, 39, 41, 42, 44], "rememb": [3, 33], "renspons": 3, "chang": [3, 6, 8, 12, 13, 20, 21, 22, 27, 28, 29, 30, 31, 32, 33, 34, 39, 40, 42, 44], "wavelength": [3, 8, 14, 18, 20, 21, 30, 32, 33, 34, 39, 40], "well": [3, 6, 11, 12, 16, 29, 30, 31, 32, 41], "being": [3, 8, 14, 16, 20, 21, 22, 30, 32, 44], "test": [3, 11, 12, 15, 17, 18, 31, 34, 41], "order": [3, 6, 13, 14, 25, 28, 30, 32, 34, 36, 39, 44], "properli": 3, "must": [3, 6, 8, 11, 13, 18, 21, 22, 28, 33, 44], "first": [3, 8, 11, 12, 21, 25, 27, 33, 34, 39, 41, 42, 43], "deemb": 3, "depend": [3, 8, 18, 21, 22, 27, 28, 31, 39, 40, 41, 42], "can": [3, 6, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44], "done": [3, 6, 19, 30, 31, 34, 37], "varieti": [3, 6, 14, 20], "wai": [3, 6, 15, 20, 21, 22, 27, 28, 30, 31, 32, 33, 34, 36, 37, 40, 42], "includ": [3, 6, 11, 12, 13, 15, 16, 17, 18, 20, 21, 22, 26, 27, 28, 29, 30, 31, 37, 39, 40, 43], "consid": [3, 8, 14, 20, 21, 29, 32, 40, 41, 44], "follow": [3, 6, 13, 14, 19, 21, 25, 29, 31, 32, 33, 36, 40, 42, 43], "via": [3, 12, 17, 18, 31, 33, 38, 43], "sweep": 3, "numpi": [3, 6, 8, 12, 14, 21, 31, 33, 34, 39, 42], "np": [3, 6, 8, 14, 18, 33, 39, 42], "matplotlib": [3, 6, 12, 14, 18, 21, 31, 33, 34, 39, 42, 44], "pyplot": [3, 14, 21, 33, 34, 39, 42, 44], "plt": [3, 14, 21, 33, 34, 39, 42, 44], "poly_ord": 3, "4": [3, 6, 8, 20, 21, 31, 33, 34, 39], "load": [3, 11, 16, 33], "file": [3, 8, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 30, 31, 33, 34, 36, 37, 43], "oscope_data": 3, "npz": 3, "power": [3, 8, 13, 16, 20, 21, 28, 30, 33, 34], "here": [3, 6, 8, 14, 16, 18, 22, 23, 25, 31, 33, 34, 36, 37, 40, 43, 44], "raw": 3, "oscilloscop": 3, "plot": [3, 6, 8, 11, 18, 21, 31, 34, 39, 42, 44], "titl": 3, "xlabel": [3, 8], "nm": [3, 14, 18, 21], "ylabel": [3, 8], "dbm": 3, "show": [3, 6, 11, 18, 20, 21, 33, 34, 39, 42, 44], "The": [3, 6, 8, 11, 13, 14, 15, 18, 19, 20, 22, 25, 27, 28, 29, 31, 32, 33, 34, 36, 39, 40, 41, 42, 43, 44], "parabol": 3, "shape": [3, 13, 23, 30, 34, 39, 40, 44], "graph": [3, 33, 41], "due": [3, 21, 25, 32, 44], "respons": [3, 21, 44], "which": [3, 6, 8, 11, 12, 13, 14, 20, 21, 22, 28, 29, 30, 31, 32, 33, 34, 36, 38, 39, 41, 42, 43, 44], "obfusc": 3, "try": 3, "remov": [3, 8, 14, 20, 28, 29, 30, 31, 33], "effect": [3, 8, 14, 28, 29, 39], "parabola": 3, "subtract": [3, 6], "function": [3, 6, 8, 11, 14, 19, 20, 21, 31, 33, 34, 39, 40, 42], "want": [3, 6, 11, 12, 19, 20, 21, 22, 31, 33, 34, 40, 43, 44], "case": [3, 8, 16, 18, 21, 27, 31, 42, 44], "def": [3, 6, 42, 44], "model_parabola": 3, "x": [3, 6, 8, 11, 20, 34, 39, 41, 42, 44], "b": [3, 6, 8, 42], "c": [3, 6, 8, 11, 21, 31], "d": [3, 7, 15, 31, 34, 40, 41, 42, 43], "e": [3, 6, 8, 11, 12, 18, 21, 27, 30, 33, 34, 36, 39, 40, 44], "return": [3, 6, 11, 19, 21, 34, 39, 42, 44], "3": [3, 8, 11, 14, 15, 18, 19, 20, 21, 22, 31, 33, 38, 39, 42, 44], "2": [3, 6, 8, 11, 14, 15, 18, 19, 20, 21, 31, 32, 33, 39, 42, 44], "now": [3, 6, 21, 23, 31, 32, 33, 34, 37, 39, 44], "just": [3, 6, 8, 11, 13, 14, 15, 17, 21, 27, 31, 34, 39, 44], "need": [3, 6, 11, 12, 21, 22, 31, 34, 36, 40, 41, 43, 44], "paramet": [3, 6, 8, 20, 21, 30, 33], "do": [3, 6, 15, 18, 19, 22, 34, 36, 37, 41], "curve_fit": 3, "scipi": [3, 12, 31], "take": [3, 6, 8, 11, 13, 19, 21, 28, 30, 33, 34, 41, 42, 43], "y": [3, 6, 8, 11, 20, 21, 25, 27, 34, 39, 41, 42], "an": [3, 6, 8, 9, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 28, 29, 30, 31, 32, 33, 39, 40, 41, 42, 44], "initi": [3, 6, 8, 21], "guess": 3, "It": [3, 6, 8, 11, 13, 14, 15, 16, 18, 19, 21, 22, 29, 31, 32, 33, 34, 37, 39, 40, 41, 43], "covari": 3, "matrix": [3, 21, 34], "start": [3, 6, 21, 31, 32, 33, 34, 43], "end": [3, 8, 13, 14, 21, 22, 31, 34, 40, 42, 44], "argmax": 3, "1560": 3, "1580": 3, "help": [3, 6, 9, 12, 13, 16, 18, 21, 29, 32], "term": [3, 8, 13, 21, 34], "speed": [3, 8, 28, 29, 30, 40], "accuraci": 3, "add": [3, 6, 8, 18, 19, 20, 31, 34, 40, 42], "especi": [3, 11, 22, 28, 29, 31], "true": [3, 8, 11, 14, 18, 20, 21, 33, 34, 39, 40, 42, 44], "more": [3, 6, 8, 11, 15, 16, 17, 18, 20, 21, 22, 27, 29, 30, 31, 32, 33, 34, 37, 39, 40, 41, 44], "complic": [3, 6, 32, 33, 40, 44], "initial_guess": 3, "1": [3, 6, 8, 11, 14, 15, 18, 19, 20, 21, 22, 31, 32, 33, 38, 39, 40, 42, 44], "optimal_paramet": 3, "covariance_matrix": 3, "label": [3, 11, 18, 21, 42], "legend": [3, 42], "simpli": [3, 6, 14, 21, 31, 32, 33, 34], "offset": [3, 29], "make": [3, 6, 8, 13, 19, 20, 21, 22, 23, 29, 30, 31, 34, 37, 44], "easier": [3, 6, 37, 44], "see": [3, 8, 11, 13, 14, 18, 20, 21, 22, 27, 29, 33, 34, 39, 41, 44], "power_correct": 3, "max": [3, 34], "correct": [3, 11], "ones": [3, 6, 31], "len": [3, 39], "averag": [3, 14, 40], "gdsfactori": [6, 8, 11, 13, 15, 19, 20, 21, 31, 33, 34, 39, 44], "them": [6, 8, 11, 15, 20, 21, 22, 25, 29, 30, 31, 34, 36], "togeth": [6, 8, 12, 18, 30, 31, 32], "larger": [6, 8, 13, 15, 21, 30, 44], "design": [6, 13, 14, 15, 16, 18, 19, 20, 22, 23, 25, 33, 34], "simpl": [6, 15, 18, 21, 28, 30, 31, 38, 40, 42], "complex": [6, 29, 30, 31, 34], "construct": [6, 13, 14, 20, 21, 27, 30, 32, 33, 34, 44], "exampl": [6, 11, 12, 13, 15, 18, 19, 20, 21, 22, 25, 27, 30, 31, 34, 39, 40], "contain": [6, 11, 13, 18, 19, 21, 30, 31, 32, 39], "other": [6, 11, 12, 13, 17, 18, 20, 21, 22, 27, 28, 29, 30, 31, 32, 33, 37, 39, 40, 41, 44], "thei": [6, 9, 11, 12, 13, 15, 18, 20, 21, 22, 30, 31, 32, 34, 40, 43, 44], "usual": [6, 9, 13, 15, 18, 30], "have": [6, 8, 11, 12, 13, 14, 15, 18, 20, 21, 22, 27, 29, 30, 31, 32, 33, 34, 36, 37, 39, 40, 41, 43, 44], "allow": [6, 8, 11, 12, 13, 15, 16, 21, 22, 30, 34, 37], "you": [6, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 30, 31, 33, 34, 36, 37, 39, 42, 43, 44], "factori": 6, "when": [6, 8, 11, 14, 16, 18, 21, 22, 27, 29, 30, 31, 33, 34, 39, 40, 41, 42, 44], "align": [6, 8], "each": [6, 8, 11, 13, 14, 16, 17, 18, 20, 21, 28, 30, 31, 33, 39, 40, 42, 44], "taken": [6, 18, 34], "care": [6, 34, 40, 41], "automat": [6, 16, 17, 18], "made": [6, 13, 22, 23, 38, 39, 40], "up": [6, 8, 11, 12, 13, 14, 18, 20, 21, 22, 28, 30, 31, 33, 34, 37, 40, 43, 44], "option": [6, 11, 15, 37], "most": [6, 8, 11, 12, 14, 16, 18, 19, 22, 28, 31, 32, 33, 34, 36, 38, 40, 41, 44], "basic": [6, 14, 16, 20, 21, 31, 34, 42], "build": [6, 13, 21, 25, 30, 32, 33, 43], "object": [6, 8, 18, 19, 21, 32, 34, 39], "gf": [6, 11, 20, 21, 44], "seri": [6, 15, 31], "conveni": [6, 21], "visual": [6, 13, 14, 18, 19, 21, 32, 36, 39], "jupyt": [6, 15, 34, 37], "notebook": [6, 11, 15, 33], "For": [6, 11, 13, 17, 18, 20, 21, 27, 28, 29, 30, 31, 33, 34, 36, 40, 42], "plot_holoview": 6, "plot_jupyt": 6, "plot_klayout": 6, "plot_matplotlib": [6, 21], "plot_netlist": 6, "plot_netlist_flat": 6, "plot_widget": 6, "some": [6, 8, 11, 13, 14, 16, 17, 18, 21, 22, 25, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 39, 41, 44], "alias": 6, "default": [6, 21, 34, 36, 37, 43, 44], "could": [6, 11, 13, 18, 20, 21, 32, 34, 41], "keyword": [6, 11, 21], "argument": [6, 11, 21, 42], "below": [6, 8, 11, 14, 18, 19, 20, 21, 22, 27, 32, 33, 34, 39, 41, 42], "format": [6, 8, 14, 15, 16, 17, 20, 21, 33, 34], "ll": [6, 12, 15, 21, 22, 31, 33, 34, 36, 39, 40, 41, 43], "explicit": [6, 21, 22], "But": [6, 22, 34], "recommend": [6, 8, 12, 17, 31, 36, 37, 43], "displai": [6, 16, 33, 42], "interact": [6, 8, 14, 25, 31, 32, 34, 36, 40], "klayout": [6, 18, 30, 34, 36, 43], "widget": 6, "lowest": [6, 13], "block": [6, 8, 13, 14, 19, 21, 25, 30, 33, 34, 43, 44], "list": [6, 11, 13, 19, 21, 30, 31, 34, 40], "vertic": [6, 19, 30, 39, 42], "adjac": 6, "pair": [6, 18], "line": [6, 8, 12, 13, 14, 17, 20, 30, 31, 32, 33, 34, 39, 41, 42, 43], "doe": [6, 8, 21, 22, 32, 41], "cross": [6, 8, 14, 15, 16, 18, 39, 40], "ani": [6, 8, 11, 13, 14, 18, 22, 29, 31, 32, 34, 36, 37, 39, 42, 44], "within": [6, 11, 13, 16, 20, 21, 27, 28, 29, 30, 32, 33, 34, 39, 40], "although": [6, 13, 18, 30, 36], "overlap": [6, 8, 33], "parallel": [6, 8, 11, 39, 41], "lie": 6, "upon": [6, 32, 42], "point": [6, 13, 32, 39], "exist": [6, 8, 13, 18, 22, 30, 31, 34, 39], "geometri": [6, 8, 11, 13, 14, 18, 19, 20, 32, 33, 39, 40, 44], "instead": [6, 11, 13, 14, 20, 21, 22, 29, 30, 31, 34, 40], "new": [6, 13, 15, 16, 18, 27, 30, 31, 43], "one": [6, 8, 11, 13, 14, 15, 18, 20, 21, 22, 27, 28, 29, 30, 31, 33, 36, 39, 40, 41, 44], "That": [6, 22, 41], "parameter": [6, 21, 30, 40], "call": [6, 8, 18, 20, 21, 28, 29, 30, 31, 32, 33, 34, 39, 41, 42], "even": [6, 8, 30, 31, 40], "hierarch": [6, 13], "nest": 6, "save": [6, 8, 11, 13, 14, 19, 20, 31, 33], "memori": [6, 13, 30], "becaus": [6, 8, 12, 14, 18, 20, 21, 22, 28, 29, 30, 33, 34, 40, 41, 42, 44], "core": [6, 8, 11, 18, 32, 38, 39, 40, 42], "onli": [6, 11, 12, 13, 15, 17, 20, 21, 22, 25, 31, 32, 33, 34, 36, 40, 41, 44], "onc": [6, 16, 30, 31, 34, 41], "referenc": 6, "mani": [6, 8, 11, 12, 13, 15, 17, 21, 22, 28, 30, 31, 33, 40, 44], "time": [6, 8, 11, 12, 13, 14, 16, 20, 21, 22, 27, 28, 29, 30, 31, 32, 33, 34, 40, 42, 43, 44], "These": [6, 8, 11, 12, 13, 18, 21, 22, 30, 32, 34, 41, 42], "place": [6, 8, 13, 20, 28, 30, 36], "anywher": [6, 31], "independ": [6, 28], "all": [6, 8, 12, 13, 14, 15, 17, 18, 20, 21, 22, 30, 31, 32, 33, 34, 36, 37, 40, 41, 42, 44], "appli": [6, 16, 18, 29, 34], "base": [6, 8, 12, 17, 20, 22, 28, 29, 30, 31, 34, 42, 44], "instanc": [6, 11, 18, 21, 30, 31], "had": [6, 11, 21, 30], "same": [6, 8, 11, 14, 15, 17, 18, 20, 21, 22, 28, 29, 30, 31, 33, 44], "taper": [6, 14, 20, 32], "its": [6, 8, 11, 17, 18, 21, 22, 28, 30, 31, 33, 34, 40, 41], "input": [6, 8, 13, 20, 21, 30, 33, 34, 44], "output": [6, 8, 11, 13, 14, 20, 21, 30, 33, 34, 42, 44], "repeatedli": 6, "would": [6, 11, 13, 14, 18, 20, 21, 22, 30, 32, 34, 43], "good": [6, 21, 34], "requir": [6, 8, 18, 21, 22, 28, 29, 30, 31], "higher": [6, 18, 27, 28, 29, 32, 33, 34, 39, 40, 44], "level": [6, 14, 21, 31], "By": [6, 11, 14, 21, 29], "draw": 6, "bank": 6, "without": [6, 13, 21, 22, 28, 29, 30, 31, 32], "much": [6, 8, 11, 21, 32, 33, 34, 37], "pattern": [6, 14, 18, 21, 30, 32], "where": [6, 8, 11, 20, 21, 22, 28, 31, 33, 34, 41, 44], "across": [6, 13, 21], "compos": [6, 30], "interconnect": [6, 13], "compound": 6, "intermedi": 6, "specifi": [6, 8, 11, 13, 14, 19, 31, 34, 40], "direct": [6, 13, 19, 20, 25, 30, 32, 33, 34, 39, 41, 42, 44], "face": [6, 13], "either": [6, 11, 13, 30, 41, 44], "out": [6, 8, 11, 13, 14, 16, 20, 21, 31, 32, 33, 34, 39, 41, 44], "also": [6, 8, 11, 12, 13, 14, 15, 16, 20, 21, 22, 27, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 41, 42, 43, 44], "width": [6, 8, 13, 14, 18, 19, 20, 21, 29, 30, 33, 39, 40], "attach": [6, 11, 13], "your": [6, 8, 9, 11, 12, 13, 14, 16, 18, 19, 21, 22, 30, 31, 33, 34, 36, 37, 41, 43], "convei": 6, "inform": [6, 13, 15, 17, 18, 21, 22, 26, 27, 29, 30, 34, 37], "otherwis": [6, 21, 33], "seen": [6, 8, 11, 22, 33], "A": [6, 8, 13, 14, 18, 20, 21, 22, 26, 28, 29, 30, 31, 33, 36, 37, 38, 39, 40, 41, 44], "add_label": 6, "pass": [6, 11, 21, 27, 30, 31, 34], "text": [6, 8, 18, 21, 22, 31, 33, 37], "locat": [6, 14, 19, 43], "should": [6, 8, 11, 15, 18, 21, 34, 37, 44], "shown": [6, 8, 19, 33, 34], "posit": [6, 18, 21, 30, 33, 34, 39, 41], "center": [6, 8, 14, 19, 20, 21, 29, 33, 34, 44], "passiv": [6, 23], "sever": [6, 8, 11, 16, 27, 28, 29, 31, 37, 40], "lai": [6, 16], "than": [6, 8, 14, 18, 20, 22, 27, 29, 30, 32, 42, 44], "mai": [6, 8, 11, 12, 13, 18, 20, 21, 22, 27, 28, 29, 30, 34], "part": [6, 8, 9, 11, 21, 22, 34, 38, 39, 41, 44], "track": [6, 12, 31, 34], "number": [6, 8, 11, 13, 18, 20, 22, 31, 33, 34, 39], "As": [6, 8, 11, 14, 15, 18, 21, 22, 28, 29, 34, 41], "let": [6, 13, 21, 27, 32, 33, 34, 39, 40, 41, 42], "tupl": [6, 18, 21], "coordin": 6, "circular": 6, "fashion": [6, 13], "repeat": 6, "last": 6, "infer": 6, "close": [6, 8, 33], "script": [6, 8, 18, 20, 30, 31, 33, 43], "complet": [6, 8, 12, 13, 15, 18, 28, 33, 34, 36, 44], "run": [6, 8, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 28, 31, 33, 39, 43, 44], "final": [6, 21, 34], "t_length": 6, "10": [6, 8, 18, 19, 21, 31, 33, 34, 39, 42, 44], "t_width_in": 6, "0": [6, 8, 11, 14, 18, 19, 20, 21, 31, 32, 33, 34, 39, 41, 42, 44], "5": [6, 8, 11, 14, 19, 20, 21, 33, 34, 39, 42, 44], "t_width_out": 6, "add_polygon": 6, "int": [6, 39], "assum": [6, 8, 14, 20, 21, 33, 36, 43, 44], "ve": [6, 15, 30, 31, 34], "provid": [6, 12, 21, 22, 31, 36, 37], "datatyp": [6, 18], "poli": 6, "45": [6, 8, 14, 18, 19, 20, 33, 44], "move": [6, 12, 33, 34, 43], "come": [6, 8, 11, 22, 29, 32, 34, 40, 44], "manipul": [6, 19, 30], "easili": [6, 11, 31, 43, 44], "differ": [6, 8, 11, 13, 15, 19, 20, 21, 22, 23, 27, 30, 31, 33, 38, 39, 40, 41, 42, 43, 44], "combin": [6, 8, 13, 20, 21, 27, 33], "mean": [6, 8, 11, 21, 22, 25, 30, 31, 33, 34, 41, 44], "merg": [6, 12], "xor": 6, "To": [6, 8, 11, 12, 14, 15, 20, 23, 28, 31, 33, 34, 37, 41, 43], "two": [6, 8, 11, 13, 18, 20, 21, 22, 27, 28, 29, 30, 32, 33, 38, 41, 42, 44], "group": [6, 18, 39], "piec": [6, 13], "involv": [6, 30], "itself": [6, 21, 22, 28, 31, 33, 34, 39, 40], "target": [6, 21], "result": [6, 8, 11, 13, 14, 15, 20, 21, 29, 30, 33, 42], "components_a": 6, "components_b": 6, "accept": 6, "equival": [6, 8], "t": [6, 8, 14, 15, 17, 18, 20, 21, 28, 30, 31, 33, 34, 36, 37, 39, 40, 41, 42, 43, 44], "linspac": [6, 21], "pi": [6, 8, 20, 21, 33], "100": [6, 8, 34], "co": [6, 21, 42], "sin": [6, 8, 42], "circl": [6, 33], "triangl": 6, "pacman": 6, "precis": [6, 13, 20, 21, 28], "1e": 6, "6": [6, 8, 21, 34], "origin": [6, 22, 31, 33], "boolean_subtract": 6, "add_ref": [6, 21, 44], "talk": [6, 33, 40], "later": [6, 21, 32], "dimens": [6, 13, 41], "redefin": 6, "everi": [6, 11, 21, 34, 44], "write": [6, 11, 22, 31, 37], "addit": [6, 11, 27], "calcul": [6, 21, 33, 34, 39, 40, 42], "cach": 6, "correspond": [6, 11, 18, 21, 28, 30, 32, 40, 42], "so": [6, 8, 11, 13, 18, 20, 21, 22, 27, 28, 29, 30, 31, 32, 33, 34, 36, 40, 42, 44], "subsequ": 6, "rebuild": 6, "enabl": [6, 8, 17, 22, 27, 34], "decor": 6, "If": [6, 8, 12, 14, 19, 20, 21, 22, 30, 31, 33, 34, 36, 37, 41, 42, 43, 44], "re": [6, 13, 15, 18, 21, 22, 31, 34, 36, 37], "develop": [6, 12, 13, 22, 30, 37], "modifi": [6, 11, 21, 22, 30, 34], "content": [6, 22], "again": [6, 29, 31, 34], "code": [6, 11, 12, 13, 15, 16, 18, 19, 21, 22, 31, 33, 34, 36, 42, 43], "won": [6, 15, 18, 21, 31, 34], "clear": [6, 32], "clear_cach": 6, "librari": [6, 21, 22, 31, 40, 44], "reusabl": 6, "circuit": [6, 8, 13, 14, 15, 16, 17, 19, 20, 21, 25, 26, 33, 36, 38, 40, 44], "anoth": [6, 8, 11, 18, 20, 21, 22, 27, 29, 34, 41], "fantast": 6, "benefit": [6, 36], "type": [6, 18, 28, 29, 31, 34, 44], "hint": 6, "valid": [6, 9, 13, 34], "name": [6, 11, 18, 19, 21, 22, 29, 31, 34, 42], "abl": [6, 8, 12, 20, 30, 31], "taper_compon": 6, "length": [6, 13, 14, 20, 21, 27, 28, 30, 33, 44], "float": [6, 21], "width_in": 6, "width_out": 6, "like": [6, 8, 11, 13, 14, 15, 17, 18, 19, 21, 22, 27, 28, 29, 31, 34, 36, 37, 38, 39, 40, 42, 44], "quickli": 6, "rectangl": [6, 39], "ellips": [6, 14], "ring": [6, 13, 25], "bend_circular": 6, "bend_eul": 6, "know": [6, 15, 33, 34, 36, 41], "outward": 6, "awai": [6, 8, 28], "match": [6, 8, 11, 20, 33, 34], "respect": [6, 8, 33, 40, 41, 42], "expand": [6, 27, 28], "earlier": 6, "note": [6, 8, 14, 20, 21, 22, 33, 34, 43], "common": [6, 13, 16, 18, 20, 21, 25, 28, 29, 31, 40, 44], "toward": [6, 34], "o1": [6, 11, 20, 21, 44], "orient": [6, 41], "180": [6, 8], "port_typ": 6, "o2": [6, 11, 20, 21, 44], "add_port": [6, 19], "And": [6, 15, 21], "convent": [6, 13, 21, 29, 30, 41], "clock": 6, "wise": 6, "bottom": [6, 37], "left": [6, 8, 14, 18, 33, 34, 37, 42, 44], "corner": [6, 37], "prefix": 6, "index": [6, 8, 14, 18, 19, 20, 21, 25, 27, 28, 29, 31, 32, 33, 34, 36, 38, 39, 42, 44], "previous": [6, 18], "essenti": [6, 9, 16], "pointer": [6, 31], "There": [6, 8, 11, 13, 18, 21, 28, 31, 33, 34, 37, 40, 44], "limit": [6, 20], "gdsii": [6, 34], "specif": [6, 8, 11, 14, 17, 18, 22, 31, 34, 37, 42], "built": [6, 22, 31, 32, 39], "around": [6, 12, 31, 33, 34], "previou": [6, 21, 31], "2x2": [6, 11, 20, 34], "multimod": [6, 25, 44], "mmi": [6, 11, 13, 19, 25, 34], "wide": [6, 13], "therefor": [6, 21, 22, 28, 30, 31, 36, 44], "side": [6, 29, 33, 40, 44], "four": [6, 33, 34], "redraw": 6, "individu": [6, 43], "right": [6, 8, 14, 22, 33, 34, 42, 43, 44], "off": [6, 20, 30, 31, 34, 42, 44], "bat": 6, "mmi2x2": [6, 11, 20, 34], "gap": [6, 33, 44], "125": 6, "determin": [6, 8, 14, 20, 39, 40, 42, 44], "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, 22, 30, 32, 33, 34, 44], "none": [6, 39, 42, 44], "port_width": 6, "port_cent": 6, "o3": [6, 11, 20, 44], "o4": [6, 11, 20], "mmi_ref": 6, "shift": [6, 21, 28], "shorthand": [6, 21], "taper_ref": 6, "_": 6, "rang": [6, 13, 14, 18, 28, 34], "enumer": [6, 42], "destin": [6, 44], "alon": [6, 21, 39], "expos": [6, 21, 30], "ref": 6, "f": [6, 8, 15, 34, 39, 42], "auto_rename_port": 6, "consist": [6, 18, 21, 33, 38], "simpler": 6, "find": [6, 8, 13, 20, 33, 37], "math": [6, 34], "fit": [6, 30], "yourself": 6, "often": [6, 11, 22, 30, 31, 33, 34, 40, 44], "swap": [6, 21, 32], "redo": 6, "inlin": [6, 15], "rect_ref": 6, "figur": [6, 27, 29, 34, 38, 42, 44], "put": [6, 8, 15, 19, 20, 32], "manufactur": [6, 9, 11, 13, 15, 20, 21, 28, 34, 38, 40, 44], "share": [6, 8, 14, 33], "tool": [6, 12, 13, 15, 16, 18, 26, 30, 31, 34, 36, 39, 43], "potenti": [6, 22, 30], "lumer": 6, "fix": [6, 22, 31], "write_gd": [6, 19], "suppli": [6, 28], "path": [6, 8, 12, 14, 16, 18, 21, 30, 33, 43], "current": [6, 28, 32], "directori": [6, 8, 14, 20, 33], "sometim": [6, 8, 11, 14, 31], "necessari": [6, 11, 13, 31, 32, 34, 39], "perhap": [6, 22], "meep": [6, 8, 13, 14, 15, 20, 31, 33, 39, 44], "Or": [6, 33], "were": [6, 11, 14, 30, 31, 32, 33, 41], "given": [6, 8, 11, 14, 21, 31, 34, 40, 42], "fab": [6, 18, 30, 44], "while": [6, 8, 12, 16, 18, 21, 22, 25, 29, 30, 31, 32, 33, 34, 36, 37, 41, 42, 44], "ha": [6, 8, 11, 14, 16, 18, 21, 22, 30, 31, 32, 33, 34, 38, 39, 41], "convert": [6, 11, 13, 30, 42], "step": [6, 8, 11, 15, 18, 23, 30, 33, 43], "after": [6, 19, 21, 31, 34], "convers": 6, "get": [6, 8, 11, 12, 18, 19, 20, 21, 30, 33, 34, 42, 43, 44], "branch": [6, 21, 25], "siepic": [6, 21], "ebeam": [6, 21], "ebeam_y_1550": 6, "github": [6, 15, 17, 21, 33], "import_gd": 6, "filenam": [6, 44], "splitter": [6, 11, 21, 30, 44], "read": [6, 8, 16, 18, 21, 22, 30, 31, 34], "manual": [6, 30, 40, 43], "hover": 6, "mous": 6, "examin": [6, 33], "themselv": 6, "midpoint": 6, "7": [6, 8, 31, 34], "75": [6, 8, 21, 39], "separ": [6, 21], "straight": [6, 32, 34, 41, 44], "bend": [6, 30], "radiu": [6, 33], "recal": [6, 21], "canva": 6, "straight_ref": 6, "bend_ref": 6, "pick": 6, "recreat": [6, 31], "racetrack": [6, 33], "coupler": [6, 11, 13, 18, 20, 21, 23, 25, 30, 32, 33, 44], "camacholab": [7, 15], "sequoia": [7, 15, 18, 21], "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, 28, 29, 37], "transfer": [8, 28, 30, 33], "light": [8, 11, 13, 14, 20, 21, 25, 27, 28, 30, 32, 33, 34, 38, 39, 40, 41], "multipl": [8, 11, 13, 15, 18, 33, 41], "eigenmod": [8, 20, 33], "mode": [8, 13, 20, 21, 30, 33, 34, 40, 41, 44], "field": [8, 11, 14, 20, 21, 30, 32, 34, 39, 41, 43, 44], "outsid": [8, 22, 25, 34, 39, 42], "evanesc": [8, 32, 39], "second": [8, 11, 21, 27, 28, 31, 39, 42, 44], "propag": [8, 21, 27, 32, 33, 34, 39, 41], "us": [8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 39, 40, 41, 42, 43, 44], "photon": [8, 11, 13, 14, 15, 16, 17, 18, 20, 21, 25, 26, 29, 31, 32, 33, 34, 38, 40, 41, 43, 44], "amount": [8, 14, 21, 28, 31, 34], "thing": [8, 15, 18, 31, 34, 36, 37, 39, 44], "region": [8, 18, 20, 27, 29, 30, 34, 44], "enough": [8, 30, 36, 42], "incid": [8, 11, 42], "distanc": [8, 20, 33, 38], "materi": [8, 14, 15, 18, 19, 20, 22, 25, 27, 28, 29, 30, 32, 33, 34, 38, 39, 40, 42, 44], "layout": [8, 11, 15, 16, 21, 30, 31, 33, 36], "produc": [8, 21], "g": [8, 12, 15, 18, 30, 40, 42, 44], "50": [8, 13, 21, 44], "25": [8, 14, 18, 19, 21, 34, 42], "fraction": [8, 20, 44], "geometr": [8, 13, 14, 20, 26, 30, 33], "describ": [8, 14, 21, 27, 29, 30, 32, 33, 34, 36, 41], "kappa": [8, 33], "frac": [8, 14, 21, 33, 40, 42], "p_": 8, "p_0": 8, "cl": 8, "coeffici": [8, 21, 42], "l": [8, 21, 33], "found": [8, 37, 39, 40], "analysi": [8, 13, 14], "system": [8, 12, 13, 14, 15, 18, 20, 26, 31, 33, 36, 37], "odd": 8, "antisymmetr": 8, "occur": [8, 20, 21, 33, 42], "circ": 8, "similarli": 8, "symmetr": [8, 11, 34, 44], "user": [8, 12, 22, 31, 43], "permitt": [8, 25], "clad": [8, 14, 18, 30, 32, 34, 38, 39, 40, 42, 44], "refract": [8, 14, 18, 21, 25, 27, 28, 29, 32, 38, 39, 40], "indic": [8, 14, 27, 33, 34, 40, 42], "valu": [8, 11, 18, 21, 31, 32, 34, 39, 42], "rel": [8, 19, 21, 27, 28, 30, 31, 44], "increas": [8, 14, 28, 29, 40], "decreas": [8, 14, 40], "notic": [8, 21, 22, 27, 32, 39, 40, 42], "intens": [8, 14, 20, 21, 33, 34, 44], "insid": [8, 33, 39], "gplugin": [8, 31, 39], "gm": [8, 11, 39], "find_modes_coupl": 8, "core_width": [8, 39], "core_materi": [8, 39], "clad_materi": [8, 39], "core_thick": [8, 39], "22": [8, 21, 34, 43], "resolut": [8, 11, 14, 19, 20, 33, 34, 39, 44], "40": [8, 18, 34, 39, 44], "sz": [8, 39], "nmode": [8, 39], "m1": [8, 18, 39], "m2": [8, 33, 39], "look": [8, 11, 22, 25, 31, 34, 37, 41, 44], "big": 8, "print": [8, 11, 13, 21, 34, 39], "neff": [8, 39], "dielectr": [8, 39, 44], "sidebar": 8, "plot_ep": 8, "plot_ei": [8, 39], "abov": [8, 11, 14, 18, 21, 28, 30, 33, 34, 39, 41, 42, 44], "happen": 8, "desir": [8, 12, 14, 27, 30, 34], "delta": [8, 21], "n": [8, 17, 18, 20, 21, 29, 30, 31, 33, 34, 42], "lambda": [8, 14, 21, 33, 40], "n_": [8, 33, 40, 42], "eff": [8, 14, 33, 40], "find_coupling_vs_gap": 8, "crossov": 8, "tabl": 8, "detail": [8, 14, 21, 34, 37], "ne": 8, "unit": [8, 27, 28, 34], "mu": [8, 21], "m": [8, 15, 20, 21, 31, 33], "lc": 8, "dn": 8, "exponenti": [8, 39], "relationship": [8, 11, 21, 28, 29, 34], "cdot": 8, "variou": [8, 21, 30, 34, 36], "oper": [8, 18, 20, 21, 28, 29, 30, 31, 32, 33, 34, 36], "mp": [8, 11, 14, 19, 20, 33, 34, 39, 44], "gap1": 8, "gap2": 8, "11": [8, 18, 21, 31, 39], "55": [8, 14, 19, 20, 21, 33, 34, 44], "pariti": [8, 39], "even_i": [8, 34], "463631": 8, "409798": 8, "14": 8, "396530": 8, "053832": 8, "460647": 8, "410682": 8, "15": [8, 11, 21, 33, 42], "510925": 8, "049965": 8, "12": [8, 14, 18, 34], "459734": 8, "411797": 8, "16": [8, 18, 39], "166968": 8, "047937": 8, "13": [8, 34], "452682": 8, "411449": 8, "18": [8, 18], "795515": 8, "041233": 8, "448745": 8, "412270": 8, "21": [8, 42], "247526": 8, "036475": 8, "447691": 8, "414688": 8, "23": [8, 15, 21], "482841": 8, "033003": 8, "447658": 8, "416929": 8, "220085": 8, "030729": 8, "17": [8, 42], "447685": 8, "418000": 8, "26": [8, 42], "107513": 8, "029685": 8, "8": [8, 11, 34, 44], "442283": 8, "416295": 8, "29": 8, "821729": 8, "025988": 8, "9": [8, 34, 42, 44], "19": [8, 18], "439496": 8, "416231": 8, "33": 8, "311196": 8, "023265": 8, "20": [8, 11, 19, 20, 21, 33, 42], "438256": 8, "417123": 8, "36": 8, "672851": 8, "021133": 8, "own": [8, 15, 17, 18, 21, 22, 30, 31, 36], "normal": [8, 34, 43], "constant": [8, 21, 29, 33], "beta": [8, 20, 21, 33, 44], "travel": [8, 14, 21, 27, 29, 33, 39, 40, 42], "down": [8, 21, 31, 34, 39], "oscil": [8, 27, 41], "beat": [8, 20], "One": [8, 22, 30, 32, 38], "over": [8, 12, 14, 20, 30, 33, 38], "smaller": [8, 32], "faster": [8, 29], "sinc": [8, 11, 13, 14, 21, 31, 33, 34, 36, 37, 39, 44], "shorter": [8, 21, 28, 40], "give": [8, 11, 15, 21, 31, 34, 36], "begin": [8, 20, 21, 40, 42], "l_": [8, 20, 21], "nonumb": 8, "multipli": 8, "_1": [8, 20], "l_x": 8, "_2": 8, "n_1": 8, "n_2": 8, "Of": [8, 22, 42], "don": [8, 17, 21, 28, 31, 36, 40, 43, 44], "oftentim": 8, "60": 8, "receiv": 8, "equat": [8, 13, 14, 20, 21, 28, 30, 33, 39, 40], "further": [8, 11, 21, 32, 34], "explor": [8, 32, 41, 43], "send": [8, 16, 32], "affect": [8, 20, 21, 28, 33, 40, 41, 44], "minut": 8, "setup": [8, 13, 30, 31, 36, 37, 43], "gif": [8, 14, 20, 33], "typic": [8, 13, 14, 22, 26, 28, 29, 30, 38, 40], "practic": [8, 15, 21, 31], "si": [8, 14, 19, 20, 33, 39], "medium": [8, 14, 19, 20, 33, 34, 44], "sio2": [8, 14, 18, 19, 20, 33, 34, 39], "um": [8, 14, 20, 21, 34], "wvl": [8, 14, 19, 20, 33], "cell": [8, 14, 20, 30, 33, 34], "wg_width": [8, 33], "dpml": [8, 20, 34], "pad": [8, 20, 33], "07": 8, "lx": 8, "30": [8, 14, 42, 44], "sx": [8, 19, 20, 33, 44], "sy": [8, 19, 20, 33, 39, 44], "wg_center_i": 8, "pml": [8, 14, 19, 20, 33, 34, 44], "perfectli": [8, 20, 21, 33, 34], "infinit": 8, "long": [8, 21, 31, 33, 34, 38, 43], "vector3": [8, 14, 19, 20, 33, 34, 44], "puls": [8, 14, 20, 33], "fcen": [8, 14, 19, 20, 33, 34], "fwidth": [8, 14, 19, 20, 33, 34], "src": [8, 19, 20, 33, 34], "gaussiansourc": [8, 14, 19, 20, 33, 34], "frequenc": [8, 11, 13, 14, 19, 20, 21, 27, 28, 29, 32, 33, 42, 44], "eigenmodesourc": [8, 19, 20, 33, 34, 44], "eig_band": [8, 19, 20, 33, 34, 44], "eig_kpoint": [8, 19, 20, 33, 34], "sim": [8, 11, 14, 19, 20, 33, 34, 44], "cell_siz": [8, 11, 14, 19, 20, 33, 34, 44], "boundary_lay": [8, 14, 19, 33, 34, 44], "default_materi": [8, 19, 33, 44], "set": [8, 11, 13, 14, 15, 18, 20, 21, 30, 31, 33, 34, 37, 39, 42, 43], "plot2d": [8, 11, 14, 19, 20, 33, 34, 44], "warn": [8, 42], "grid": 8, "volum": [8, 34, 40, 44], "integ": [8, 18, 33], "pixel": [8, 34], "round": [8, 30, 33], "nearest": 8, "ax": [8, 21, 39, 42], "pil": [8, 14, 20, 33], "imag": [8, 14, 21, 33, 34, 44], "glob": [8, 14, 20, 33], "os": [8, 14, 20, 33, 36], "reset_meep": [8, 34], "captur": [8, 14, 20, 33], "at_begin": [8, 14, 20, 33], "output_epsilon": [8, 14, 20, 33], "to_append": [8, 14, 20, 33], "ez": [8, 14, 20, 33, 44], "at_everi": [8, 14, 20, 33], "output_efield_z": [8, 14, 20, 33], "until": [8, 11, 14, 20, 33, 34, 44], "200": [8, 11, 14, 20, 34], "gener": [8, 11, 13, 14, 18, 20, 21, 22, 27, 28, 30, 31, 33, 39, 41], "png": [8, 14, 20, 21, 33], "colormap": [8, 14, 20, 33], "work": [8, 20, 22, 31, 33, 34, 41], "h5py": [8, 14, 20, 33], "instal": [8, 12, 13, 14, 16, 20, 31, 33, 36, 37, 39, 43], "problem": [8, 14, 15, 20, 28, 33], "h5util": [8, 14, 20, 33], "h5topng": [8, 14, 20, 33], "99": [8, 14], "r": [8, 14, 20, 31, 33, 42], "zc": [8, 14, 20, 33], "rdbu": [8, 14, 20, 33, 34, 44], "ep": [8, 14, 20, 33], "000000": [8, 14, 20, 33], "00": [8, 14, 20, 21, 33, 42], "h5": [8, 14, 20, 33], "grai": [8, 14, 20, 33, 39], "frame": [8, 14, 20, 33], "img": [8, 14, 20, 33], "sort": [8, 14, 20, 30, 33], "new_fram": [8, 14, 20, 33], "append": [8, 14, 20, 33, 34], "loop": [8, 14, 20, 33, 34], "forev": [8, 14, 20, 33], "append_imag": [8, 14, 20, 33], "save_al": [8, 14, 20, 33], "clean": [8, 14, 20, 33], "workspac": [8, 14, 20, 33], "delet": [8, 14, 20, 31, 33], "invalid": [8, 14, 42], "circumv": [8, 14], "issu": [8, 14], "chosen": [8, 14, 40, 42], "sensit": [8, 14, 20, 30], "fabric": [8, 9, 13, 15, 18, 26, 28, 30, 34], "variat": [8, 20, 33], "robust": [8, 20, 31], "element": [8, 13, 21, 28, 34, 40], "principl": [8, 13, 14, 15, 18, 20, 34, 42], "behind": [8, 21, 30], "interfer": [8, 13, 14, 20, 21, 27, 32, 33, 44], "nearbi": 8, "chip": [8, 13, 14, 16, 17, 18, 21, 25, 30, 31], "parasit": 8, "too": [8, 13, 18, 21, 31, 33, 36, 41], "lead": [8, 32, 33, 40], "leak": [8, 44], "far": [8, 11, 32, 33], "apart": 8, "silicon": [8, 13, 14, 21, 29, 30, 34, 38, 39, 42, 44], "answer": [8, 21, 31, 42, 44], "approxim": [8, 13, 18, 28], "135": 8, "micron": [8, 14, 18, 21, 39], "luka": [8, 14, 44], "chrostowski": [8, 14, 44], "stefan": 8, "prebl": 8, "facil": [9, 15, 30], "simul": [11, 13, 14, 15, 18, 19, 23, 26, 30, 39, 42, 44], "devic": [11, 13, 15, 16, 18, 20, 21, 25, 26, 27, 29, 33, 44], "befor": [11, 21, 22, 30, 31, 34], "idea": [11, 31], "perform": [11, 13, 15, 30, 31, 34], "plugin": 11, "finit": [11, 13, 30, 31, 39], "domain": [11, 13, 31, 42], "algorithm": [11, 31], "fdtd": [11, 13, 15, 31], "turn": [11, 21, 28, 34, 39], "component_from_gd": 11, "py": [11, 21, 42], "func": 11, "get_simul": [11, 20], "get_meep_geometry_from_compon": [11, 20], "grate": [11, 13, 18, 21, 23, 30], "fiber": [11, 13, 14, 18, 21, 30, 32], "connect": [11, 15, 18, 21, 30, 44], "howev": [11, 15, 21, 22, 32, 33, 34, 36, 44], "suffic": 11, "tutori": [11, 21, 34], "tidy3d": [11, 20, 40], "implement": [11, 28, 33], "tpml": [11, 20], "port_source_offset": [11, 20], "port_monitor_offset": [11, 20], "distance_source_to_monitor": [11, 20], "32": 11, "scatter": [11, 21, 41], "tell": [11, 13, 31, 33, 34, 41], "port": [11, 13, 18, 19, 20, 21, 33, 44], "purpos": [11, 17, 22, 27, 40], "write_sparameters_meep": 11, "3d": [11, 18, 32, 34], "margin": 11, "account": [11, 12, 33, 43], "kwarg": 11, "fals": [11, 18, 34, 39, 42], "wast": 11, "incorrectli": 11, "2d": [11, 14, 19, 32, 34], "comprehens": [11, 34, 41], "dictionari": [11, 18, 20, 21], "kei": [11, 14, 21, 32], "form": [11, 21, 28], "refer": [11, 13, 15, 30, 33, 40, 41], "go": [11, 15, 16, 20, 22, 23, 27, 33, 34, 36, 43, 44], "symmetri": 11, "port_symmetri": 11, "assign": [11, 30], "1x2": [11, 13, 20], "comput": [11, 13, 15, 21, 31, 33, 34, 37, 43], "written": [11, 15], "thu": [11, 33, 44], "write_sparamters_meep_mpi": 11, "write_sparameters_meep_batch": 11, "per": [11, 13, 27], "total": [11, 18, 32, 34, 39], "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, 25, 32, 34, 39, 44], "wave": [11, 13, 14, 20, 21, 27, 33, 34, 39, 40, 41, 42], "why": [11, 32, 41], "program": [12, 13, 16, 31, 37], "environ": [12, 15, 17, 22, 36, 37], "uncommon": 12, "roll": [12, 22], "back": [12, 14, 30, 33, 42, 44], "break": [12, 31], "someth": [12, 31], "product": [12, 42], "version": [12, 21, 22, 43], "control": [12, 17, 21, 22], "vc": 12, "extrem": [12, 22], "who": [12, 22], "simultan": [12, 41], "edit": [12, 30, 43], "rather": [12, 30, 33], "painlessli": 12, "predomin": 12, "programm": [12, 22], "todai": 12, "command": [12, 13, 17, 21, 31, 34, 39, 43], "entir": [12, 13, 15, 32, 34], "ecosystem": 12, "host": [12, 15, 31], "servic": 12, "gui": [12, 34, 36], "id": [12, 37], "sprung": 12, "alreadi": [12, 21, 30, 33, 34], "linux": [12, 13, 16, 31, 36, 37, 43], "temin": 12, "enter": [12, 21, 33, 34], "machin": [12, 13, 31, 36, 43], "window": [12, 13, 16, 31, 36, 42], "packag": [12, 15, 16, 17, 18, 21, 36, 39], "mac": [12, 16, 31, 36], "forc": [12, 22], "wsl": [12, 13, 31, 36], "still": [12, 29, 31, 32, 34, 44], "download": [12, 15, 16, 31, 37, 43], "link": [12, 29, 31], "maco": [12, 13, 31, 36, 37], "xcode": 12, "termin": [12, 31, 36, 37, 43], "select": [12, 16, 18, 43], "through": [12, 15, 21, 23, 25, 27, 28, 29, 30, 32, 34, 36, 37, 39, 40, 41, 43], "debian": 12, "distribut": [12, 13, 22, 31, 39], "ubuntu": [12, 31, 36, 43], "sudo": 12, "apt": 12, "rpm": 12, "fedora": 12, "rhel": 12, "cento": 12, "dnf": 12, "known": [12, 14, 21, 22, 31, 37, 38, 39, 41, 42], "free": [12, 13, 15, 16, 22, 28, 30, 31, 40], "privat": 12, "bootcamp": [12, 15, 18, 21, 33, 34], "along": [12, 33, 39, 41, 42], "popular": [12, 22, 31, 37, 38], "python": [12, 13, 15, 16, 18, 30, 34, 36, 37, 42], "keep": [12, 15, 31, 34], "definit": [13, 22], "throughout": [13, 21], "mathemat": [13, 21, 30, 33], "descript": 13, "behavior": [13, 21, 30, 32, 33, 41, 42, 44], "cutback": 13, "techniqu": 13, "measur": [13, 14, 20, 21, 28, 33, 40], "attenu": [13, 30, 33], "transmiss": [13, 21, 27, 33, 34, 42], "delai": [13, 30], "count": 13, "etc": [13, 18, 30, 31, 40], "drc": [13, 16, 18, 30], "verifi": [13, 31, 34], "ensur": [13, 21, 30, 31, 34, 44], "error": [13, 18, 20, 39], "caus": [13, 21, 29], "fail": [13, 34], "short": [13, 14, 16, 21, 22, 29], "featur": [13, 16, 30, 31, 37, 39, 40], "resolv": [13, 42], "drastic": 13, "foundri": 13, "minimum": [13, 20, 30], "space": [13, 28, 30, 33, 40], "numer": [13, 39], "electrodynam": 13, "solut": 13, "differenti": [13, 28, 39], "method": [13, 15, 17, 19, 21, 22, 30, 31, 34, 36], "cover": [13, 15], "singl": [13, 15, 20, 21, 30, 33, 36, 44], "primari": 13, "avail": [13, 15, 16, 18, 22, 30, 31, 36], "platform": [13, 15, 31], "yaml": [13, 21], "flow": [13, 26], "gd": [13, 14, 15, 16, 18, 30, 31, 34, 36, 44], "graphic": 13, "coupl": [13, 14, 21, 22, 30, 44], "reson": [13, 25], "instrument": [13, 17, 20], "util": [13, 14, 18, 20, 21, 22], "beam": [13, 14, 20, 21, 32], "multi": 13, "split": [13, 20, 21, 34], "ideal": [13, 14, 21, 32], "nearli": 13, "imposs": 13, "polygon": [13, 30], "electron": [13, 26, 32, 34], "digit": [13, 26], "dry": 13, "modif": 13, "replic": 13, "insul": [13, 38], "soi": [13, 18, 30, 38, 42], "technolog": [13, 21, 30], "substrat": [13, 14, 18, 30, 38, 39], "semiconductor": 13, "wafer": [13, 30, 38], "vscode": [13, 31], "studio": [13, 36], "commonli": [13, 22, 31, 40], "vs": [13, 37], "editor": [13, 15, 36, 37], "microsoft": [13, 36, 37], "support": [13, 15, 17, 18, 20, 29, 40, 41], "debug": [13, 31], "syntax": [13, 17, 31, 39], "highlight": 13, "intellig": 13, "snippet": 13, "refactor": [13, 31], "embed": [13, 15], "git": [13, 18, 21], "wikipedia": 13, "subsystem": [13, 36], "bash": [13, 31, 43], "directli": [13, 15, 18, 19, 34], "unmodifi": 13, "overhead": 13, "tradit": [13, 38], "virtual": [13, 17, 36], "dual": 13, "boot": 13, "diffract": 14, "cabl": [14, 30], "edg": [14, 23], "teeth": 14, "drawn": [14, 32], "onto": [14, 23, 30, 38, 43], "altern": [14, 43], "structur": 14, "propog": [14, 21, 30], "hyugen": 14, "fresnel": [14, 42], "bragg": 14, "law": [14, 39, 42], "depict": [14, 32, 40], "orthogon": [14, 32, 41], "arrai": [14, 21, 34, 42], "might": [14, 18, 21, 31, 44], "imagin": [14, 21], "hold": [14, 22, 34], "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, 44], "inf": [14, 19], "epsilon": [14, 34], "cladding_depth": 14, "box_depth": 14, "box": [14, 18, 34, 37, 42], "substrate_depth": 14, "700": 14, "df": [14, 34], "pml_layer": [14, 19], "500": [14, 21], "savefig": 14, "grating_coupler_plot": 14, "encount": [14, 22, 42], "recogn": 14, "discuss": [14, 32], "page": [14, 18, 31, 32, 33, 34, 39, 43, 44], "demonstr": [14, 42], "been": [14, 30, 31, 32, 34], "1550": 14, "appropri": [14, 21, 31, 32], "three": [14, 18, 20, 21, 34, 41], "understand": [14, 33, 34, 41, 42], "simplifi": [14, 21, 32], "view": [14, 16, 18, 34, 36], "denot": [14, 20], "effici": [14, 21], "half": [14, 33, 39], "relat": [14, 18, 32, 39], "2n_": 14, "choos": [14, 19, 32, 39], "exactli": [14, 21, 34], "90": [14, 21, 44], "degre": [14, 21, 28, 42], "problemat": 14, "byproduct": [14, 29], "larg": [14, 31, 44], "zeroth": 14, "avoid": [14, 31], "slightli": [14, 20, 21, 29, 34, 40, 44], "less": [14, 22, 30, 32, 33, 44], "angl": [14, 21, 32], "area": [14, 30, 31, 42], "overal": 14, "weight": [14, 44], "unetch": 14, "ratio": [14, 20, 33, 34, 42, 44], "ff": 14, "w": 14, "welcom": 15, "present": [15, 18, 20, 32], "onlin": [15, 22], "freeli": [15, 22, 31], "resourc": [15, 29], "teach": 15, "student": 15, "curriculum": 15, "background": [15, 16, 21, 22], "motiv": 15, "full": [15, 22, 30, 31, 32, 33, 39], "learner": 15, "guid": [15, 30, 36, 38, 40, 42], "submit": [15, 22], "wish": [15, 22], "simphoni": [15, 21, 31], "submiss": [15, 30], "pic": 15, "post": 15, "instruct": [15, 31, 36, 37, 43], "contribut": [15, 22], "subject": 15, "matter": [15, 34], "expert": 15, "futur": [15, 31], "expans": 15, "fork": 15, "parti": 15, "custom": [15, 22], "train": 15, "websit": [15, 22], "explanatori": 15, "webpag": 15, "launch": [15, 34], "colab": 15, "local": [15, 17, 36], "immedi": [15, 31], "alwai": [15, 21, 31, 44], "workflow": 15, "approach": 15, "introduc": [15, 21, 22, 28, 31, 33, 44], "bother": 15, "mention": [15, 18, 22], "possibl": [15, 41], "configur": [15, 18, 36], "ahead": 15, "standard": [15, 36, 44], "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, 30], "electromagnet": [15, 39, 41, 44], "physic": [15, 23, 29, 40], "commun": [15, 22, 31], "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, 22], "http": [15, 21, 22, 32, 43], "io": 15, "verif": 16, "viewer": [16, 36], "trace": [16, 38], "net": 16, "detect": [16, 30], "scriptabl": 16, "languag": [16, 31], "rubi": 16, "extens": [16, 37], "extern": [16, 21], "json": 16, "request": 16, "server": [16, 17], "hot": 16, "reload": 16, "rerun": 16, "manag": [16, 36], "Then": [16, 34, 43, 44], "search": 16, "doubl": [16, 21, 33], "click": [16, 23, 37, 43], "pyro5": 17, "remot": 17, "access": [17, 18, 22, 31, 33], "equip": 17, "lab": 17, "favor": [17, 38], "usb": 17, "proprietari": [17, 22], "brand": 17, "unifi": 17, "intrument": 17, "easi": [17, 21, 28, 31, 34], "pip": [17, 31, 36], "conda": [17, 36, 43], "environment_nam": 17, "activ": [17, 21, 22, 25, 27, 31, 43], "updat": [17, 21], "pypi": [17, 31, 36], "upgrad": [17, 31], "visit": 17, "interrog": 17, "station": 17, "interfac": [17, 31, 36, 39, 41], "fore": 17, "whether": [18, 22, 30], "etch": [18, 30, 38, 40], "deposit": [18, 30, 38], "dope": [18, 29, 30], "metal": [18, 28, 30], "p": [18, 29, 30], "translat": [18, 30], "mask": [18, 30], "formal": 18, "state": [18, 22, 34], "255": 18, "modern": [18, 31, 36], "almost": [18, 34, 44], "dedic": [18, 22], "nitrid": 18, "lithium": [18, 42], "niobat": [18, 42], "whichev": 18, "decid": 18, "thin": 18, "top": [18, 21], "dioxid": [18, 38, 42], "thick": [18, 21, 33, 34, 39], "buri": 18, "oxid": [18, 34], "main": [18, 25, 30, 31], "intern": [18, 32, 39], "48": [18, 21], "excel": [18, 29, 31], "refractiveindex": 18, "info": [18, 21], "color": [18, 37, 40, 42], "fill": 18, "map": [18, 21], "human": [18, 21], "readabl": [18, 21, 34], "properti": [18, 27, 29, 30, 39, 40, 43], "lyp": 18, "migrat": 18, "few": [18, 22, 31, 36, 37, 40], "devrec": 18, "recognit": 18, "show_port": 18, "marker": 18, "label_inst": 18, "netlist": 18, "te": [18, 21, 32, 34, 39, 41, 42], "polar": [18, 20, 21, 27, 30, 32, 39], "tm": [18, 21, 41, 42], "pydant": 18, "class": [18, 22], "partial": [18, 29, 32, 41], "germanium": 18, "photodiod": 18, "vari": [18, 21], "concentr": 18, "pn": 18, "junction": 18, "capacitor": [18, 30, 40], "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, 31], "frozen": 18, "extra": [18, 31, 40], "forbid": 18, "32m2023": 18, "06": 18, "227": [18, 21], "0m": [18, 21, 39], "1minfo": [18, 21, 39], "36mgdsfactori": [18, 21], "36m__init__": [18, 21], "36m204": 18, "1mloglevel": 18, "visibl": 18, "export": [18, 19], "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, 32, 34, 39, 41, 42], "label_set": 18, "202": 18, "magenta": 18, "red": [18, 32, 34, 41, 42], "lightli": 18, "hatch": 18, "004080": 18, "pinrec": 18, "404040": 18, "xsection": 18, "group_memb": 18, "xs_box": 18, "300": [18, 34], "f3ff80": 18, "solid": 18, "xs_si": 18, "301": 18, "black": [18, 34, 42], "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, 42], "xs_oxide_m1": 18, "305": 18, "308": 18, "ff80a8": 18, "wg_pin": 18, "klayout_lyp": 18, "posixpath": 18, "home": [18, 21, 33, 34, 39], "env": [18, 21, 31, 33, 39], "lib": [18, 21, 39], "python3": [18, 21, 39], "site": [18, 21, 22, 39], "generic_tech": [18, 21], "tech": 18, "npp": 18, "pp": 18, "ppp": 18, "Be": [18, 21], "sure": [18, 19, 22, 34], "gmeep": [19, 20, 39], "meep_adjoint_optim": 19, "straightforward": 19, "get_component_from_sim": 19, "continu": [19, 31, 34, 39], "variabl": [19, 21, 29, 30, 34, 44], "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, 40], "source_center_x": 19, "source_s": 19, "kpoint": 19, "no_direct": [19, 34], "geometry_cent": 19, "gdspath": 19, "2x2mmi": 19, "predict": [20, 21, 30, 41], "certain": [20, 22, 32, 33, 41], "k": [20, 25, 42], "wider": 20, "gradual": 20, "widen": 20, "nxm": 20, "replica": 20, "period": [20, 21, 28], "_0": 20, "wall": [20, 31], "interf": 20, "destruct": [20, 21, 27, 32, 44], "forward": [20, 22, 29, 34], "backward": [20, 31, 34], "word": [20, 22, 27, 32, 44], "excit": 20, "goe": [20, 33, 34, 42, 44], "THE": 20, "TO": 20, "length_mmi": 20, "extend": [20, 22], "extend_port": 20, "port_nam": [20, 21], "299": [20, 33], "evenli": [20, 44], "advantag": [20, 22, 30], "veri": [20, 21, 22, 29, 31, 34, 36, 38, 44], "suscept": [20, 30], "fact": [20, 22, 34], "optimum": 20, "contrast": 20, "mimic": 20, "disadvantag": 20, "switch": [20, 21, 33, 34], "wdm": 20, "divis": 20, "multiplex": 20, "hybrid": 20, "divers": 20, "photodetector": [20, 25, 30], "extract": [21, 39], "doc": [21, 37, 39], "zender": 21, "concept": [21, 30, 31, 32, 33], "recombin": [21, 44], "accumul": 21, "quantum": 21, "piezo": 21, "transduc": 21, "sax": 21, "jax": 21, "nice": [21, 31, 36], "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, 33, 41], "carri": [21, 22], "identifi": 21, "explain": [21, 29, 33, 34, 43], "formul": 21, "s_": 21, "ij": 21, "repres": [21, 32, 34, 40, 41, 42], "j": [21, 33, 34], "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, 22, 32], "siepic_ebeam_pdk": 21, "blob": 21, "master": 21, "20compon": 21, "20with": 21, "20model": 21, "docx": 21, "31mfile": 21, "31mtype": 21, "inspect": [21, 22], "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, 39], "instance_nam": 21, "whitespac": 21, "delimit": 21, "comma": 21, "composit": 21, "gc_in": 21, "gc": 21, "ybranch": [21, 44], "long_wg": 21, "short_wg": 21, "gc_out": 21, "act": 21, "whatev": 21, "invok": [21, 31], "gave": 21, "becom": [21, 22, 31, 34, 41], "instanti": 21, "unsur": 21, "get_set": 21, "float64": 21, "loss": [21, 28, 29, 33, 34, 44], "overkil": 21, "everyth": [21, 34, 43], "els": [21, 31, 34], "stai": 21, "global": 21, "toplevel": 21, "trickl": 21, "1000": 21, "150": 21, "transmit": [21, 33, 38, 41, 42], "magnitud": [21, 34, 39, 42], "squar": [21, 33], "renam": 21, "unconnect": 21, "realli": [21, 22, 34, 42], "meaning": 21, "both": [21, 28, 29, 31, 33, 34, 39, 44], "linear": [21, 28, 34, 44], "log": [21, 34], "scale": [21, 30, 44], "mag": 21, "ab": [21, 34], "fig": [21, 39, 42], "subplot": [21, 39, 42], "sharex": [21, 39], "set_ylabel": 21, "log10": [21, 34], "db": [21, 34], "set_xlabel": [21, 42], "suptitl": 21, "dip": 21, "opposit": 21, "peak": [21, 32, 33], "maximum": [21, 33], "better": [21, 40, 41], "think": [21, 30, 31], "equal": [21, 27, 33, 40, 42, 44], "condit": [21, 22, 39], "get_generic_pdk": 21, "my_compon": 21, "delta_length": 21, "32m2024": [21, 39], "01": [21, 39, 44], "09": 21, "222": 21, "layer_view": 21, "36m785": 21, "1mimport": 21, "layerview": 21, "36mactiv": 21, "36m258": 21, "1m": 21, "relev": 21, "amplitud": [21, 27, 28, 29, 30, 32, 44], "i_": 21, "e_": [21, 33], "sqrt": 21, "hspace": 21, "2mm": 21, "whose": 21, "undergon": 21, "mw": [21, 28], "lossless": 21, "plane": [21, 41], "e_0": 21, "omega": 21, "z": [21, 34, 39, 41], "beta_": 21, "alpha_": 21, "\u03b1": 21, "appear": 21, "expon": 21, "zero": [21, 39], "lvert": 21, "express": [21, 28], "59": 21, "499": 21, "508": 21, "1450": 21, "longer": [21, 28, 40], "102": 21, "491": 21, "phasa": 21, "heat": [21, 25, 28], "static": 21, "\u03b2": 21, "100\u00b5m": 21, "1500nm": 21, "ouptput": 21, "9mw": 21, "heater": 21, "constitut": [22, 29], "legal": 22, "advic": 22, "date": 22, "corpor": 22, "contact": 22, "attornei": 22, "absolut": 22, "implic": 22, "organ": [22, 34, 39], "particularli": 22, "question": 22, "compani": 22, "incorpor": 22, "inherit": 22, "foss": 22, "availbl": 22, "portion": [22, 32, 42], "anyon": [22, 31], "enhanc": 22, "methodolog": 22, "creation": 22, "peopl": 22, "skill": 22, "context": [22, 32], "monetarili": 22, "under": 22, "restrict": [22, 30], "freedom": 22, "copi": [22, 42, 43], "studi": 22, "improv": 22, "hood": 22, "actual": [22, 34, 44], "strong": 22, "focus": 22, "downsid": 22, "thanklessli": 22, "maintain": [22, 27], "spend": 22, "driven": 22, "psiquantum": 22, "natur": [22, 41], "mainten": 22, "bug": [22, 31], "slower": 22, "commerci": 22, "On": [22, 25, 41, 43], "hand": [22, 33, 37, 41], "garner": 22, "friendli": 22, "copor": 22, "scheme": 22, "confirm": 22, "team": 22, "abil": 22, "plan": 22, "releas": [22, 31], "permiss": 22, "162": 22, "copyright": 22, "remain": [22, 33], "stricter": 22, "deriv": [22, 40, 42], "warranti": 22, "world": [22, 31, 40], "statement": 22, "signific": [22, 44], "attribut": 22, "similar": [22, 33, 39], "rereleas": 22, "grant": 22, "patent": 22, "contributor": 22, "claim": 22, "codebas": 22, "cannot": [22, 42], "liabl": 22, "reason": [22, 32], "trademark": 22, "licensor": 22, "belong": 22, "copyleft": 22, "mandat": 22, "gpl": 22, "v3": 22, "unpopular": 22, "prohibit": 22, "inclus": 22, "prevent": 22, "contamin": 22, "witih": 22, "technic": 22, "offend": 22, "liabil": 22, "binari": [22, 30, 34, 44], "attempt": 22, "pai": [22, 32], "attitud": 22, "necessarili": [22, 31], "impress": 22, "gnu": 22, "notepad": 22, "wordpress": 22, "mysql": 22, "unabl": 22, "sale": 22, "fossa": 22, "editori": 22, "101": 22, "jan": 22, "2021": 22, "blog": 22, "feb": 22, "mar": 22, "walk": [23, 39], "skip": [23, 43], "explan": 23, "tune": [25, 27, 33], "scope": [25, 29], "thermo": [25, 28], "slow": 25, "stabl": 25, "electro": [25, 30], "modul": [25, 27, 28, 29, 30, 39], "fast": [25, 29], "laser": [25, 30], "signal": [27, 28, 29, 30, 31, 34, 38, 40, 41], "characterist": [27, 34, 40], "ac": 27, "encod": [27, 30], "adjust": [27, 28, 42, 44], "categor": 27, "tuner": [27, 29], "dure": 27, "sai": [27, 33, 37, 41], "bridg": 27, "todo": [27, 29, 40], "insert": [27, 28, 29, 33, 34], "illustr": [27, 40], "compress": 27, "accord": [27, 34], "lower": [27, 32, 34, 39, 40, 44], "fewer": 27, "temperatur": [28, 40], "molecul": [28, 41], "At": 28, "low": [28, 29, 30, 33, 38], "proport": 28, "compris": 28, "proxim": [28, 33], "resistor": [28, 30, 40], "dissip": 28, "besid": 28, "govern": [28, 39], "mostli": [28, 32, 39, 41], "unlik": [28, 29], "pin": [28, 31], "eas": [28, 38], "offer": [28, 29, 40], "tradeoff": [28, 29], "capac": 28, "applciat": 28, "constantli": 28, "360": 28, "fsr": 28, "spectral": 28, "maxima": 28, "achiev": [28, 32, 42], "consum": 28, "closer": 28, "rate": 28, "plasma": 29, "dispers": 29, "charg": 29, "carrier": 29, "inject": [29, 34], "refrac": 29, "voltag": 29, "revers": [29, 44], "bias": 29, "respond": 29, "induc": 29, "mechan": [29, 31], "quit": 29, "beyond": [29, 40], "resist": [29, 40], "capacit": [29, 40], "intrins": 29, "compar": [29, 40], "high": [29, 31, 32, 38], "cutoff": 29, "ten": 29, "ghz": 29, "suit": 29, "neglig": 29, "clariti": 29, "thermal": 29, "undop": 29, "copmris": 29, "ad": [29, 34], "experienc": [29, 36, 40], "cost": [29, 30, 31], "qualiti": 29, "deplet": 29, "moder": 29, "bia": 29, "analog": 30, "macro": 30, "lens": 30, "mirror": 30, "beamsplitt": 30, "analogu": 30, "micro": 30, "nano": 30, "discret": [30, 32], "inductor": 30, "cmo": 30, "classifi": 30, "mismatch": 30, "anisotropi": 30, "voa": 30, "photolithographi": 30, "photomask": 30, "photosensit": 30, "chemic": 30, "photoresist": 30, "lamp": 30, "ultraviolet": 30, "regim": 30, "stencil": 30, "alter": 30, "leav": 30, "underli": 30, "constraint": 30, "densiti": 30, "pcb": 30, "familiar": [30, 31, 33], "reject": 30, "didn": 30, "meet": 30, "undergo": 30, "compat": [30, 31, 36], "hous": 30, "matur": 30, "autom": 30, "store": [30, 34, 36, 43], "concret": 30, "conta": 30, "latter": 30, "regener": 30, "regress": 30, "mzm": 30, "least": 30, "arm": [30, 44], "rout": 30, "briefli": [30, 34], "touch": 30, "solv": [30, 33, 39, 40], "maxwel": [30, 39], "computation": [30, 34], "expens": 30, "volumetr": 30, "mesh": 30, "voxel": 30, "magnet": [30, 32, 39, 41, 42], "lot": [30, 41], "hour": 30, "pertin": 30, "abstract": [30, 32], "sequenc": 30, "yet": 30, "embrac": 31, "scientif": 31, "session": 31, "recompil": 31, "prototyp": 31, "rapidli": 31, "miniconda": [31, 36, 43], "bundl": 31, "though": 31, "frill": 31, "strip": 31, "anaconda": 31, "tend": 31, "pretti": 31, "latest": 31, "execut": 31, "easiest": [31, 37], "quick": 31, "best": [31, 33], "isol": [31, 33], "sandbox": 31, "destroi": 31, "mess": 31, "never": [31, 34], "worri": 31, "someon": 31, "venv": 31, "older": 31, "intel_env": 31, "subdir": 31, "osx": 31, "64": 31, "establish": 31, "hasn": 31, "promin": 31, "fundament": [31, 32, 34, 39, 44], "counterpart": 31, "matlab": 31, "defacto": 31, "databas": 31, "solver": [31, 39, 40], "forg": 31, "pymeep": 31, "grab": 31, "nlopt": 31, "aren": 31, "increment": 31, "api": 31, "contract": 31, "task": 31, "evolv": 31, "accomplish": 31, "old": 31, "immatur": 31, "frequent": 31, "guarante": 31, "reproduc": 31, "semant": 31, "major": 31, "minor": 31, "patch": [31, 39], "incompat": 31, "manner": 31, "txt": 31, "24": [31, 42], "great": 32, "intuit": [32, 33, 42, 44], "surround": [32, 38, 39], "flaw": 32, "assumpt": 32, "misconcept": 32, "compen": 32, "challeng": 32, "slab": [32, 40], "implicit": 32, "fulli": [32, 33], "crucial": 32, "addition": 32, "impli": 32, "greater": [32, 42], "critic": 32, "except": 32, "anim": 32, "white": 32, "sent": 32, "orthogan": 32, "wavefront": 32, "interv": 32, "trough": 32, "special": [32, 37], "attent": 32, "clarifi": 32, "incremental": 32, "With": [32, 33], "backdrop": 32, "consider": [32, 40], "lost": [32, 34, 42, 44], "interferr": 32, "minim": 32, "emerg": 32, "obvious": 32, "mit": 32, "s3": 32, "amazonaw": 32, "fip": 32, "html": [32, 43], "bu": 33, "theori": 33, "trip": 33, "particular": 33, "Such": 33, "circumfer": 33, "alpha": [33, 34, 42, 44], "cm": 33, "plug": 33, "b1": 33, "te_": 33, "a1": 33, "a2": 33, "b2": 33, "quantiti": 33, "opd": 33, "roundtrip": 33, "imped": [33, 34], "approx": 33, "fwhm": 33, "aka": 33, "bandwidth": 33, "finess": 33, "narrow": 33, "sharp": 33, "q": 33, "sharper": 33, "filter": [33, 41], "whisper": 33, "galleri": 33, "feel": 33, "ipython": 33, "video": 33, "10um": 33, "d_pml": 33, "d_pad": 33, "r_in": 33, "r_out": 33, "wg_length": 33, "cylind": 33, "600": 33, "ebang4": 33, "miniconda3": [33, 39], "book": [33, 34], "decai": [33, 39], "despit": 33, "wg_center": 33, "radio": 34, "rf": 34, "exit": 34, "nxn": 34, "ofen": 34, "notat": 34, "character": 34, "bechavior": 34, "metric": 34, "param": 34, "mind": 34, "accur": [34, 40], "life": 34, "detector": 34, "adapt": [34, 36], "pictur": [34, 42], "purpl": 34, "my": 34, "next": [34, 36, 39, 41, 43], "whole": 34, "bunch": 34, "three_d": 34, "reduc": 34, "gds_file": 34, "jkart": 34, "geometry_l": 34, "cell_l": 34, "port1_l": 34, "port2_l": 34, "port3_l": 34, "port4_l": 34, "source1_l": 34, "source2_l": 34, "source3_l": 34, "source4_l": 34, "lcen": 34, "diamet": 34, "t_oxid": 34, "t_si": 34, "t_air": 34, "78": 34, "cell_thick": 34, "min": 34, "cell_zmax": 34, "cell_zmin": 34, "si_zmax": 34, "si_zmin": 34, "numport": 34, "s_param": 34, "input_param": 34, "kernel": 34, "usabl": 34, "tab": 34, "href": 34, "viewoutput": 34, "gdsii_prism": 34, "zmax": 34, "zmin": 34, "gdsii_vol": 34, "fname": 34, "gdsii_prim": 34, "port1": 34, "port2": 34, "port3": 34, "port4": 34, "source1": 34, "source2": 34, "source3": 34, "source4": 34, "Not": 34, "oxide_cent": 34, "oxide_s": 34, "oxide_lay": 34, "eig_par": 34, "eig_match_freq": 34, "contructor": 34, "no_par": [34, 39], "odd_z": 34, "monitor": 34, "energi": 34, "modemonitor": 34, "add_mode_monitor": 34, "moderegion": 34, "No": 34, "correctli": [34, 43], "readi": [34, 43], "until_after_sourc": 34, "get_eigenmode_coeffici": 34, "nfreq": 34, "neg": [34, 39], "third": [34, 39], "spot": 34, "sour": 34, "5th": 34, "input_coeff": 34, "port1_coeff": 34, "port2_coeff": 34, "port3_coeff": 34, "port4_coeff": 34, "s11": 34, "6f": 34, "upper": [34, 39, 44], "s12": 34, "s13": 34, "s14": 34, "fun": 34, "transmitt": 34, "exercis": 34, "terribl": 34, "isn": [34, 42], "fortun": 34, "meant": 34, "port1_tran": 34, "port2_tran": 34, "port3_tran": 34, "port4_tran": 34, "percent": 34, "insertionloss": 34, "insertionloss_db": 34, "steadi": 34, "reset": 34, "visula": 34, "continuoussourc": [34, 44], "reach": 34, "eps_data": [34, 44], "get_epsilon": 34, "ez_data": 34, "real": 34, "get_efield_z": 34, "screen": 34, "dpi": 34, "imshow": [34, 44], "transpos": [34, 44], "interpol": [34, 44], "spline36": [34, 44], "cmap": [34, 39, 44], "flipud": 34, "axi": [34, 39, 41, 42, 44], "hopefulli": 34, "sens": 34, "sake": 34, "rest": [34, 42], "devi": 34, "ts": 34, "s1": 34, "ts2": 34, "ts3": 34, "ts4": 34, "input_pow": 34, "trans1": 34, "trans2": 34, "trans3": 34, "trans4": 34, "expect": [34, 44], "entri": 34, "breviti": 34, "paramt": 34, "mathwork": 34, "luceda": 34, "microwaves101": 34, "youtub": 34, "opinion": 36, "newcom": 36, "troubleshoot": 36, "disagre": 36, "primarili": 36, "nervou": 36, "navig": 36, "precompil": 36, "desig": 37, "boast": 37, "healthi": 37, "capabl": 37, "lighter": 37, "pylanc": 37, "tree": 37, "icon": 37, "ey": [37, 39], "candi": 37, "theme": 37, "doesn": [37, 39, 41], "menu": [37, 43], "pop": 37, "conduct": 38, "copper": 38, "47": [38, 39, 42], "44": [38, 39, 42], "confin": [39, 40], "newton": 39, "motion": [39, 41], "vibrat": 39, "violin": 39, "pipe": 39, "stationari": 39, "mpb": 39, "05": 39, "51": 39, "512": 39, "36mgplugin": 39, "36m": 39, "36m39": 39, "1mmeep": 39, "28": 39, "parkeraa": 39, "glass": 39, "find_modes_waveguid": 39, "core_w": 39, "core_t": 39, "m3": 39, "m4": 39, "elecgtr": 39, "wg1": 39, "linewidth": 39, "edgecolor": 39, "facecolor": 39, "wg4": 39, "ax1": 39, "ax2": 39, "islic": 39, "add_patch": 39, "tight_layout": 39, "0th": [39, 44], "1st": [39, 44], "spatial": 39, "sinusoid": 39, "non": [39, 40, 41], "slice": [39, 41], "discontinu": 39, "boundari": [39, 42], "perpindicular": 39, "discontin": 39, "contin": 39, "horizont": 39, "domin": 39, "transvers": [39, 41, 42], "wg2": 39, "wg3": 39, "plot_ez": 39, "slight": 39, "aris": 39, "mm": 39, "find_mode_dispers": 39, "mode_numb": 39, "ng": 39, "3f": 39, "106": 39, "892": 39, "ignor": [40, 44], "mass": 40, "induct": 40, "exhaust": 40, "400nm": 40, "950nm": 40, "220nm": 40, "rib": 40, "rectangular": 40, "resembl": 40, "ridg": 40, "difficult": 40, "veloc": 40, "somewhat": 40, "tediou": 40, "streamlin": 40, "wavelegnth": 40, "atom": 40, "gather": [40, 42], "n_g": 40, "dn_": 40, "lambda_0": 40, "minu": 40, "band": 40, "behav": 41, "vector": [41, 42], "pure": 41, "perpendicular": 41, "bit": 41, "tricki": 41, "dimension": 41, "arrow": 41, "bield": 41, "sun": 41, "unpolar": 41, "atmospher": 41, "sunlight": 41, "uniform": 41, "permit": 41, "unpredict": 41, "strike": 42, "snell": 42, "theta_i": 42, "theta_r": 42, "n_1sin": 42, "n_2sin": 42, "theta_t": 42, "gamma_": 42, "n_1co": 42, "n_2co": 42, "tau_": 42, "2n_1co": 42, "obliqu": 42, "observ": 42, "n1": 42, "n2": 42, "transmission_angl": 42, "arcsin": 42, "theta_i_deg": 42, "deg2rad": 42, "set_aspect": 42, "zip": 42, "p0": 42, "i1": 42, "rad2deg": 42, "0f": 42, "r1": 42, "t1": 42, "xlim": 42, "ylim": 42, "axvlin": 42, "axhlin": 42, "linestyl": 42, "xtick": 42, "ytick": 42, "tmp": 42, "ipykernel_19546": 42, "1351043342": 42, "runtimewarn": 42, "AND": 42, "simulate_reflect": 42, "radian": 42, "incident_angle_radian": 42, "reflected_angl": 42, "transmitted_angl": 42, "incident_wav": 42, "tan": 42, "reflected_wav": 42, "transmitted_wav": 42, "display_transmit": 42, "barrier": 42, "set_xlim": 42, "set_ylim": 42, "str": 42, "set_titl": 42, "var": 42, "folder": [42, 43], "9n": 42, "_g8r69x957zb59c09f92zznh0000gn": 42, "ipykernel_69883": 42, "921879874": 42, "runtim": 42, "sine": 42, "theta_c": 42, "critical_angl": 42, "crit_angl": 42, "51840906945382": 42, "air": 42, "progag": 42, "profit": 42, "understood": 42, "prompt": 43, "administr": 43, "restart": 43, "usernam": 43, "password": 43, "sh": 43, "git_and_github": 43, "wslpath": 43, "04": 43, "www": 43, "de": 43, "chapter": 43, "what_is_a_photonic_devic": 43, "arbitrari": 44, "focu": 44, "i_i": 44, "i_1": 44, "i_2": 44, "perfect": 44, "70": 44, "media": 44, "vice": 44, "versa": 44, "exact": 44, "perspect": 44, "inwg": 44, "outwg": 44, "mmi1x2_with_sbend": 44, "inwg_ref": 44, "splitter_ref": 44, "outwg_top_ref": 44, "outwg_bot_ref": 44, "make_geometry_from_gds_compon": 44, "core_mat": 44, "cladding_mat": 44, "component_point": 44, "to_np": 44, "1e3": 44, "pad_width": 44, "nx": 44, "ny": 44, "matgrid": 44, "materialgrid": 44, "do_averag": 44, "damp": 44, "dft": 44, "add_dft_field": 44, "get_arrai": 44, "e_data": 44, "choic": 44, "significantli": 44, "varianc": 44}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"camacholab": 0, "photon": [0, 27, 30], "bootcamp": 0, "tabl": 0, "content": 0, "front": 0, "matter": 0, "develop": 0, "environ": [0, 31], "passiv": [0, 25, 30], "devic": [0, 30, 34], "design": [0, 8, 9, 24, 26, 30, 44], "simul": [0, 8, 20, 21, 33, 34], "circuit": [0, 3, 27, 30, 34], "activ": [0, 30], "test": 0, "refer": [0, 3, 6, 22, 34], "adjoint": 1, "optim": [1, 24, 35], "advanc": 2, "compon": [2, 6, 21, 25], "cross": 2, "section": 2, "creat": 2, "us": [2, 3, 6, 21, 34], "componentspec": 2, "analyz": 3, "account": 3, "grate": [3, 14], "coupler": [3, 8, 10, 14], "curv": 3, "fit": 3, "extract": 3, "index": [3, 40], "refract": [3, 42], "compact": [4, 30], "model": [4, 21, 30, 32, 40], "element": 6, "polygon": 6, "port": [6, 34], "label": 6, "from": [6, 21], "translat": 6, "rotat": 6, "boolean": 6, "oper": 6, "parametr": 6, "cell": 6, "shape": [6, 35], "gener": 6, "ad": 6, "export": 6, "gd": [6, 11, 19], "file": 6, "import": [6, 34], "connect": [6, 37], "exercis": [6, 8, 18], "credit": 7, "sponsor": 7, "contributor": 7, "direct": 8, "supermod": 8, "visual": [8, 37], "coupl": [8, 33], "length": 8, "gap": 8, "between": 8, "waveguid": [8, 38, 39, 40, 42], "other": [8, 34], "split": [8, 44], "ratio": 8, "show": 8, "across": [8, 34], "dc": 8, "consider": [8, 41, 44], "sourc": [8, 14, 22, 34, 44], "rule": [9, 30], "check": [9, 21, 42], "edg": 10, "meep": [11, 19, 34], "find": [11, 34], "s": [11, 21, 34], "paramet": [11, 14, 34, 40], "through": [11, 42], "gmeep": 11, "git": 12, "github": 12, "glossari": 13, "how": [14, 27, 34], "doe": [14, 27], "work": [14, 27], "essenti": 14, "period": 14, "etch": 14, "depth": 14, "fill": 14, "factor": [14, 33], "introduct": 15, "klayout": 16, "klive": 16, "laboratori": 17, "tool": 17, "pyrolab": 17, "instal": 17, "autog": 17, "defin": [18, 30], "layer": [18, 30], "stack": [18, 30], "silicon": 18, "insul": 18, "gdsfactori": 18, "layermap": 18, "layerview": 18, "layerstack": 18, "multimod": 20, "interferomet": [20, 21], "mmi": 20, "self": 20, "imag": 20, "applic": [20, 27, 33], "mach": 21, "zehnder": 21, "The": [21, 30], "mzi": 21, "write": 21, "netlist": 21, "callabl": 21, "analysi": 21, "balanc": 21, "quick": [21, 42], "definit": 21, "imblanc": 21, "thermo": 21, "optic": [21, 23, 32], "effect": [21, 40], "open": 22, "softwar": [22, 36], "common": 22, "licens": 22, "mit": 22, "apach": 22, "2": [22, 34], "0": 22, "gplv3": 22, "agpl": 22, "i": 23, "o": 23, "invers": 24, "process": [26, 30], "kit": 26, "phase": [27, 28, 29], "shifter": [27, 28, 29], "what": [27, 30, 34, 38], "shift": 27, "A": 27, "simpl": 27, "heater": 28, "advantag": [28, 29], "thermal": 28, "disadvantag": [28, 29], "tune": 28, "effici": 28, "pn": 29, "pin": 29, "junction": 29, "ar": [30, 34], "compar": 30, "electron": 30, "vs": 30, "manufactur": 30, "geometri": [30, 34], "digit": 30, "python": 31, "conda": 31, "virtual": 31, "packag": 31, "manag": 31, "version": 31, "improv": 32, "rai": 32, "support": 32, "mode": [32, 39], "ring": 33, "reson": 33, "critic": [33, 42], "fsr": 33, "free": 33, "spectral": 33, "rang": 33, "qualiti": 33, "field": 33, "scatter": 34, "todo": 34, "why": 34, "demonstr": 34, "simphoni": 34, "quickli": 34, "an": 34, "arbitrari": 34, "step": 34, "1": 34, "run": 34, "singl": 34, "3": 34, "same": 34, "each": 34, "differ": 34, "frequenc": 34, "studio": 37, "code": 37, "configur": 37, "vscode": 37, "wsl": [37, 43], "window": [37, 43], "machin": 37, "wavegudi": 40, "spatial": 40, "dimens": 40, "group": 40, "polar": 41, "total": 42, "intern": 42, "reflect": 42, "kei": 42, "equat": 42, "demo": 42, "angl": 42, "propag": 42, "light": [42, 44], "onli": 43, "y": 44, "branch": 44, "combin": 44, "practic": 44}, "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/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/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", "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, 22], "thi": [0, 3, 6, 8, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 25, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 39, 40, 41, 42, 43, 44], "intend": [0, 11, 22], "those": [0, 6, 21, 22, 44], "experi": [0, 21, 29, 36, 42], "electr": [0, 6, 8, 13, 14, 15, 18, 20, 21, 25, 27, 28, 29, 30, 32, 33, 38, 39, 41, 42], "engin": [0, 15, 21, 22, 30], "ar": [0, 3, 6, 8, 9, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 25, 27, 28, 29, 31, 32, 33, 36, 37, 38, 39, 40, 41, 42, 43, 44], "interest": [0, 15, 21], "learn": [0, 3, 6, 31], "about": [0, 6, 8, 17, 21, 22, 31, 32, 33, 34, 36, 37, 40, 41], "integr": [0, 13, 15, 16, 18, 26, 30, 37], "applic": [0, 8, 13, 21, 22, 28, 29, 31, 34], "cours": [0, 8, 12, 13, 15, 22, 25, 31, 36, 37, 42], "wa": [0, 21, 34, 43], "creat": [0, 6, 8, 11, 12, 13, 14, 15, 17, 18, 20, 21, 30, 31, 32, 33, 34, 36, 39, 42, 43, 44], "collabor": [0, 12, 15, 22], "between": [0, 11, 13, 15, 20, 21, 27, 28, 29, 30, 32, 33, 34, 40, 42, 44], "brigham": 0, "young": 0, "univers": [0, 18], "s": [0, 3, 6, 12, 13, 14, 15, 16, 18, 22, 27, 28, 29, 30, 31, 33, 37, 39, 40, 41, 42, 43, 44], "skywat": 0, "project": [0, 12, 22], "introduct": [0, 21], "credit": 0, "open": [0, 6, 8, 12, 13, 14, 15, 16, 17, 20, 31, 33, 36, 37, 40, 43], "sourc": [0, 6, 11, 12, 13, 15, 16, 17, 18, 19, 20, 30, 31, 33, 36, 37], "softwar": [0, 6, 12, 13, 15, 16, 17, 18, 26, 31, 34], "what": [0, 6, 8, 11, 12, 21, 22, 41, 42], "defin": [0, 3, 6, 8, 9, 11, 14, 20, 21, 33, 34, 39, 40, 42], "layer": [0, 6, 8, 13, 20, 26, 34, 38, 44], "stack": [0, 13, 26, 31], "compon": [0, 8, 11, 13, 14, 15, 18, 19, 20, 22, 23, 30, 32, 34, 39, 41, 44], "waveguid": [0, 6, 13, 14, 18, 20, 21, 25, 27, 28, 29, 30, 32, 33, 34, 41, 44], "optic": [0, 6, 14, 18, 20, 25, 28, 29, 30, 33, 41, 42, 44], "i": [0, 6, 8, 11, 14, 20, 21, 27, 31, 33, 34, 36, 42], "o": [0, 6], "optim": [0, 3, 14, 21, 30, 31, 34, 44], "invers": [0, 30, 42], "compact": [0, 13, 15, 26, 44], "model": [0, 3, 13, 15, 18, 26, 34, 39, 42], "rule": [0, 13, 26, 31], "check": [0, 11, 12, 13, 18, 30, 34], "process": [0, 6, 8, 11, 13, 18, 28, 31, 34, 40], "kit": [0, 13], "mach": [0, 20, 30], "zehnder": [0, 20, 30], "interferomet": [0, 6, 13, 25, 30], "advanc": 0, "phase": [0, 8, 20, 21, 30, 32, 34, 44], "shifter": [0, 21, 30], "analyz": [0, 15, 33], "glossari": 0, "repositori": [0, 12, 36], "pdk": [0, 6, 9, 13, 18, 21, 26, 30], "document": [0, 15, 17, 21, 33, 34], "In": [3, 6, 8, 11, 12, 14, 15, 18, 20, 21, 22, 25, 27, 28, 29, 30, 31, 33, 34, 36, 37, 39, 44], "section": [3, 6, 14, 16, 18, 23, 25, 30, 31, 32, 34, 36, 40, 41, 43], "we": [3, 6, 8, 12, 13, 14, 15, 17, 18, 21, 22, 23, 25, 27, 30, 31, 32, 33, 34, 36, 37, 39, 40, 41, 42, 43, 44], "how": [3, 6, 8, 11, 13, 15, 18, 20, 21, 25, 31, 32, 33, 36, 39, 40, 41, 42, 43], "interpret": [3, 31], "data": [3, 13, 18, 34, 41], "collect": [3, 21], "from": [3, 8, 11, 12, 13, 14, 15, 16, 18, 19, 20, 27, 28, 29, 30, 31, 32, 33, 34, 37, 39, 41, 43, 44], "our": [3, 6, 17, 21, 29, 32, 33, 34, 36, 39], "whenev": 3, "obtain": [3, 28], "import": [3, 8, 11, 14, 18, 19, 20, 21, 22, 31, 32, 33, 39, 41, 42, 44], "rememb": [3, 33], "renspons": 3, "chang": [3, 6, 8, 12, 13, 20, 21, 22, 27, 28, 29, 30, 31, 32, 33, 34, 39, 40, 42, 44], "wavelength": [3, 8, 14, 18, 20, 21, 30, 32, 33, 34, 39, 40], "well": [3, 6, 11, 12, 16, 29, 30, 31, 32, 41], "being": [3, 8, 14, 16, 20, 21, 22, 30, 32, 44], "test": [3, 11, 12, 15, 17, 18, 31, 34, 41], "order": [3, 6, 13, 14, 25, 28, 30, 32, 34, 36, 39, 44], "properli": 3, "must": [3, 6, 8, 11, 13, 18, 21, 22, 28, 33, 44], "first": [3, 8, 11, 12, 21, 25, 27, 33, 34, 39, 41, 42, 43], "deemb": 3, "depend": [3, 8, 18, 21, 22, 27, 28, 31, 39, 40, 41, 42], "can": [3, 6, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44], "done": [3, 6, 19, 30, 31, 34, 37], "varieti": [3, 6, 14, 20], "wai": [3, 6, 15, 20, 21, 22, 27, 28, 30, 31, 32, 33, 34, 36, 37, 40, 42], "includ": [3, 6, 11, 12, 13, 15, 16, 17, 18, 20, 21, 22, 26, 27, 28, 29, 30, 31, 37, 39, 40, 43], "consid": [3, 8, 14, 20, 21, 29, 32, 40, 41, 44], "follow": [3, 6, 13, 14, 19, 21, 25, 29, 31, 32, 33, 36, 40, 42, 43], "via": [3, 12, 17, 18, 31, 33, 38, 43], "sweep": 3, "numpi": [3, 6, 8, 12, 14, 21, 31, 33, 34, 39, 42], "np": [3, 6, 8, 14, 18, 33, 39, 42], "matplotlib": [3, 6, 12, 14, 18, 21, 31, 33, 34, 39, 42, 44], "pyplot": [3, 14, 21, 33, 34, 39, 42, 44], "plt": [3, 14, 21, 33, 34, 39, 42, 44], "poly_ord": 3, "4": [3, 6, 8, 20, 21, 31, 33, 34, 39], "load": [3, 11, 16, 33], "file": [3, 8, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 30, 31, 33, 34, 36, 37, 43], "oscope_data": 3, "npz": 3, "power": [3, 8, 13, 16, 20, 21, 28, 30, 33, 34], "here": [3, 6, 8, 14, 16, 18, 22, 23, 25, 31, 33, 34, 36, 37, 40, 43, 44], "raw": 3, "oscilloscop": 3, "plot": [3, 6, 8, 11, 18, 21, 31, 34, 39, 42, 44], "titl": 3, "xlabel": [3, 8], "nm": [3, 14, 18, 21], "ylabel": [3, 8], "dbm": 3, "show": [3, 6, 11, 18, 20, 21, 33, 34, 39, 42, 44], "The": [3, 6, 8, 11, 13, 14, 15, 18, 19, 20, 22, 25, 27, 28, 29, 31, 32, 33, 34, 36, 39, 40, 41, 42, 43, 44], "parabol": 3, "shape": [3, 13, 23, 30, 34, 39, 40, 44], "graph": [3, 33, 41], "due": [3, 21, 25, 32, 44], "respons": [3, 21, 44], "which": [3, 6, 8, 11, 12, 13, 14, 20, 21, 22, 28, 29, 30, 31, 32, 33, 34, 36, 38, 39, 41, 42, 43, 44], "obfusc": 3, "try": 3, "remov": [3, 8, 14, 20, 28, 29, 30, 31, 33], "effect": [3, 8, 14, 28, 29, 39], "parabola": 3, "subtract": [3, 6], "function": [3, 6, 8, 11, 14, 19, 20, 21, 31, 33, 34, 39, 40, 42], "want": [3, 6, 11, 12, 19, 20, 21, 22, 31, 33, 34, 40, 43, 44], "case": [3, 8, 16, 18, 21, 27, 31, 42, 44], "def": [3, 6, 42, 44], "model_parabola": 3, "x": [3, 6, 8, 11, 20, 34, 39, 41, 42, 44], "b": [3, 6, 8, 42], "c": [3, 6, 8, 11, 21, 31], "d": [3, 7, 15, 31, 34, 40, 41, 42, 43], "e": [3, 6, 8, 11, 12, 18, 21, 27, 30, 33, 34, 36, 39, 40, 44], "return": [3, 6, 11, 19, 21, 34, 39, 42, 44], "3": [3, 8, 11, 14, 15, 18, 19, 20, 21, 22, 31, 33, 38, 39, 42, 44], "2": [3, 6, 8, 11, 14, 15, 18, 19, 20, 21, 31, 32, 33, 39, 42, 44], "now": [3, 6, 21, 23, 31, 32, 33, 34, 37, 39, 44], "just": [3, 6, 8, 11, 13, 14, 15, 17, 21, 27, 31, 34, 39, 44], "need": [3, 6, 11, 12, 21, 22, 31, 34, 36, 40, 41, 43, 44], "paramet": [3, 6, 8, 20, 21, 30, 33], "do": [3, 6, 15, 18, 19, 22, 34, 36, 37, 41], "curve_fit": 3, "scipi": [3, 12, 31], "take": [3, 6, 8, 11, 13, 19, 21, 28, 30, 33, 34, 41, 42, 43], "y": [3, 6, 8, 11, 20, 21, 25, 27, 34, 39, 41, 42], "an": [3, 6, 8, 9, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22, 28, 29, 30, 31, 32, 33, 39, 40, 41, 42, 44], "initi": [3, 6, 8, 21], "guess": 3, "It": [3, 6, 8, 11, 13, 14, 15, 16, 18, 19, 21, 22, 29, 31, 32, 33, 34, 37, 39, 40, 41, 43], "covari": 3, "matrix": [3, 21, 34], "start": [3, 6, 21, 31, 32, 33, 34, 43], "end": [3, 8, 13, 14, 21, 22, 31, 34, 40, 42, 44], "argmax": 3, "1560": 3, "1580": 3, "help": [3, 6, 9, 12, 13, 16, 18, 21, 29, 32], "term": [3, 8, 13, 21, 34], "speed": [3, 8, 28, 29, 30, 40], "accuraci": 3, "add": [3, 6, 8, 18, 19, 20, 31, 34, 40, 42], "especi": [3, 11, 22, 28, 29, 31], "true": [3, 8, 11, 14, 18, 20, 21, 33, 34, 39, 40, 42, 44], "more": [3, 6, 8, 11, 15, 16, 17, 18, 20, 21, 22, 27, 29, 30, 31, 32, 33, 34, 37, 39, 40, 41, 44], "complic": [3, 6, 32, 33, 40, 44], "initial_guess": 3, "1": [3, 6, 8, 11, 14, 15, 18, 19, 20, 21, 22, 31, 32, 33, 38, 39, 40, 42, 44], "optimal_paramet": 3, "covariance_matrix": 3, "label": [3, 11, 18, 21, 42], "legend": [3, 42], "simpli": [3, 6, 14, 21, 31, 32, 33, 34], "offset": [3, 29], "make": [3, 6, 8, 13, 19, 20, 21, 22, 23, 29, 30, 31, 34, 37, 44], "easier": [3, 6, 37, 44], "see": [3, 8, 11, 13, 14, 18, 20, 21, 22, 27, 29, 33, 34, 39, 41, 44], "power_correct": 3, "max": [3, 34], "correct": [3, 11], "ones": [3, 6, 31], "len": [3, 39], "averag": [3, 14, 40], "gdsfactori": [6, 8, 11, 13, 15, 19, 20, 21, 31, 33, 34, 39, 44], "them": [6, 8, 11, 15, 20, 21, 22, 25, 29, 30, 31, 34, 36], "togeth": [6, 8, 12, 18, 30, 31, 32], "larger": [6, 8, 13, 15, 21, 30, 44], "design": [6, 13, 14, 15, 16, 18, 19, 20, 22, 23, 25, 33, 34], "simpl": [6, 15, 18, 21, 28, 30, 31, 38, 40, 42], "complex": [6, 29, 30, 31, 34], "construct": [6, 13, 14, 20, 21, 27, 30, 32, 33, 34, 44], "exampl": [6, 11, 12, 13, 15, 18, 19, 20, 21, 22, 25, 27, 30, 31, 34, 39, 40], "contain": [6, 11, 13, 18, 19, 21, 30, 31, 32, 39], "other": [6, 11, 12, 13, 17, 18, 20, 21, 22, 27, 28, 29, 30, 31, 32, 33, 37, 39, 40, 41, 44], "thei": [6, 9, 11, 12, 13, 15, 18, 20, 21, 22, 30, 31, 32, 34, 40, 43, 44], "usual": [6, 9, 13, 15, 18, 30], "have": [6, 8, 11, 12, 13, 14, 15, 18, 20, 21, 22, 27, 29, 30, 31, 32, 33, 34, 36, 37, 39, 40, 41, 43, 44], "allow": [6, 8, 11, 12, 13, 15, 16, 21, 22, 30, 34, 37], "you": [6, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 30, 31, 33, 34, 36, 37, 39, 42, 43, 44], "factori": 6, "when": [6, 8, 11, 14, 16, 18, 21, 22, 27, 29, 30, 31, 33, 34, 39, 40, 41, 42, 44], "align": [6, 8], "each": [6, 8, 11, 13, 14, 16, 17, 18, 20, 21, 28, 30, 31, 33, 39, 40, 42, 44], "taken": [6, 18, 34], "care": [6, 34, 40, 41], "automat": [6, 16, 17, 18], "made": [6, 13, 22, 23, 38, 39, 40], "up": [6, 8, 11, 12, 13, 14, 18, 20, 21, 22, 28, 30, 31, 33, 34, 37, 40, 43, 44], "option": [6, 11, 15, 37], "most": [6, 8, 11, 12, 14, 16, 18, 19, 22, 28, 31, 32, 33, 34, 36, 38, 40, 41, 44], "basic": [6, 14, 16, 20, 21, 31, 34, 42], "build": [6, 13, 21, 25, 30, 32, 33, 43], "object": [6, 8, 18, 19, 21, 32, 34, 39], "gf": [6, 11, 20, 21, 44], "seri": [6, 15, 31], "conveni": [6, 21], "visual": [6, 13, 14, 18, 19, 21, 32, 36, 39], "jupyt": [6, 15, 34, 37], "notebook": [6, 11, 15, 33], "For": [6, 11, 13, 17, 18, 20, 21, 27, 28, 29, 30, 31, 33, 34, 36, 40, 42], "plot_holoview": 6, "plot_jupyt": 6, "plot_klayout": 6, "plot_matplotlib": [6, 21], "plot_netlist": 6, "plot_netlist_flat": 6, "plot_widget": 6, "some": [6, 8, 11, 13, 14, 16, 17, 18, 21, 22, 25, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 39, 41, 44], "alias": 6, "default": [6, 21, 34, 36, 37, 43, 44], "could": [6, 11, 13, 18, 20, 21, 32, 34, 41], "keyword": [6, 11, 21], "argument": [6, 11, 21, 42], "below": [6, 8, 11, 14, 18, 19, 20, 21, 22, 27, 32, 33, 34, 39, 41, 42], "format": [6, 8, 14, 15, 16, 17, 20, 21, 33, 34], "ll": [6, 12, 15, 21, 22, 31, 33, 34, 36, 39, 40, 41, 43], "explicit": [6, 21, 22], "But": [6, 22, 34], "recommend": [6, 8, 12, 17, 31, 36, 37, 43], "displai": [6, 16, 33, 42], "interact": [6, 8, 14, 25, 31, 32, 34, 36, 40], "klayout": [6, 18, 30, 34, 36, 43], "widget": 6, "lowest": [6, 13], "block": [6, 8, 13, 14, 19, 21, 25, 30, 33, 34, 43, 44], "list": [6, 11, 13, 19, 21, 30, 31, 34, 40], "vertic": [6, 19, 30, 39, 42], "adjac": 6, "pair": [6, 18], "line": [6, 8, 12, 13, 14, 17, 20, 30, 31, 32, 33, 34, 39, 41, 42, 43], "doe": [6, 8, 21, 22, 32, 41], "cross": [6, 8, 14, 15, 16, 18, 39, 40], "ani": [6, 8, 11, 13, 14, 18, 22, 29, 31, 32, 34, 36, 37, 39, 42, 44], "within": [6, 11, 13, 16, 20, 21, 27, 28, 29, 30, 32, 33, 34, 39, 40], "although": [6, 13, 18, 30, 36], "overlap": [6, 8, 33], "parallel": [6, 8, 11, 39, 41], "lie": 6, "upon": [6, 32, 42], "point": [6, 13, 32, 39], "exist": [6, 8, 13, 18, 22, 30, 31, 34, 39], "geometri": [6, 8, 11, 13, 14, 18, 19, 20, 32, 33, 39, 40, 44], "instead": [6, 11, 13, 14, 20, 21, 22, 29, 30, 31, 34, 40], "new": [6, 13, 15, 16, 18, 27, 30, 31, 43], "one": [6, 8, 11, 13, 14, 15, 18, 20, 21, 22, 27, 28, 29, 30, 31, 33, 36, 39, 40, 41, 44], "That": [6, 22, 41], "parameter": [6, 21, 30, 40], "call": [6, 8, 18, 20, 21, 28, 29, 30, 31, 32, 33, 34, 39, 41, 42], "even": [6, 8, 30, 31, 40], "hierarch": [6, 13], "nest": 6, "save": [6, 8, 11, 13, 14, 19, 20, 31, 33], "memori": [6, 13, 30], "becaus": [6, 8, 12, 14, 18, 20, 21, 22, 28, 29, 30, 33, 34, 40, 41, 42, 44], "core": [6, 8, 11, 18, 32, 38, 39, 40, 42], "onli": [6, 11, 12, 13, 15, 17, 20, 21, 22, 25, 31, 32, 33, 34, 36, 40, 41, 44], "onc": [6, 16, 30, 31, 34, 41], "referenc": 6, "mani": [6, 8, 11, 12, 13, 15, 17, 21, 22, 28, 30, 31, 33, 40, 44], "time": [6, 8, 11, 12, 13, 14, 16, 20, 21, 22, 27, 28, 29, 30, 31, 32, 33, 34, 40, 42, 43, 44], "These": [6, 8, 11, 12, 13, 18, 21, 22, 30, 32, 34, 41, 42], "place": [6, 8, 13, 20, 28, 30, 36], "anywher": [6, 31], "independ": [6, 28], "all": [6, 8, 12, 13, 14, 15, 17, 18, 20, 21, 22, 30, 31, 32, 33, 34, 36, 37, 40, 41, 42, 44], "appli": [6, 16, 18, 29, 34], "base": [6, 8, 12, 17, 20, 22, 28, 29, 30, 31, 34, 42, 44], "instanc": [6, 11, 18, 21, 30, 31], "had": [6, 11, 21, 30], "same": [6, 8, 11, 14, 15, 17, 18, 20, 21, 22, 28, 29, 30, 31, 33, 44], "taper": [6, 14, 20, 32], "its": [6, 8, 11, 17, 18, 21, 22, 28, 30, 31, 33, 34, 40, 41], "input": [6, 8, 13, 20, 21, 30, 33, 34, 44], "output": [6, 8, 11, 13, 14, 20, 21, 30, 33, 34, 42, 44], "repeatedli": 6, "would": [6, 11, 13, 14, 18, 20, 21, 22, 30, 32, 34, 43], "good": [6, 21, 34], "requir": [6, 8, 18, 21, 22, 28, 29, 30, 31], "higher": [6, 18, 27, 28, 29, 32, 33, 34, 39, 40, 44], "level": [6, 14, 21, 31], "By": [6, 11, 14, 21, 29], "draw": 6, "bank": 6, "without": [6, 13, 21, 22, 28, 29, 30, 31, 32], "much": [6, 8, 11, 21, 32, 33, 34, 37], "pattern": [6, 14, 18, 21, 30, 32], "where": [6, 8, 11, 20, 21, 22, 28, 31, 33, 34, 41, 44], "across": [6, 13, 21], "compos": [6, 30], "interconnect": [6, 13], "compound": 6, "intermedi": 6, "specifi": [6, 8, 11, 13, 14, 19, 31, 34, 40], "direct": [6, 13, 19, 20, 25, 30, 32, 33, 34, 39, 41, 42, 44], "face": [6, 13], "either": [6, 11, 13, 30, 41, 44], "out": [6, 8, 11, 13, 14, 16, 20, 21, 31, 32, 33, 34, 39, 41, 44], "also": [6, 8, 11, 12, 13, 14, 15, 16, 20, 21, 22, 27, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 41, 42, 43, 44], "width": [6, 8, 13, 14, 18, 19, 20, 21, 29, 30, 33, 39, 40], "attach": [6, 11, 13], "your": [6, 8, 9, 11, 12, 13, 14, 16, 18, 19, 21, 22, 30, 31, 33, 34, 36, 37, 41, 43], "convei": 6, "inform": [6, 13, 15, 17, 18, 21, 22, 26, 27, 29, 30, 34, 37], "otherwis": [6, 21, 33], "seen": [6, 8, 11, 22, 33], "A": [6, 8, 13, 14, 18, 20, 21, 22, 26, 28, 29, 30, 31, 33, 36, 37, 38, 39, 40, 41, 44], "add_label": 6, "pass": [6, 11, 21, 27, 30, 31, 34], "text": [6, 8, 18, 21, 22, 31, 33, 37], "locat": [6, 14, 19, 43], "should": [6, 8, 11, 15, 18, 21, 34, 37, 44], "shown": [6, 8, 19, 33, 34], "posit": [6, 18, 21, 30, 33, 34, 39, 41], "center": [6, 8, 14, 19, 20, 21, 29, 33, 34, 44], "passiv": [6, 23], "sever": [6, 8, 11, 16, 27, 28, 29, 31, 37, 40], "lai": [6, 16], "than": [6, 8, 14, 18, 20, 22, 27, 29, 30, 32, 42, 44], "mai": [6, 8, 11, 12, 13, 18, 20, 21, 22, 27, 28, 29, 30, 34], "part": [6, 8, 9, 11, 21, 22, 34, 38, 39, 41, 44], "track": [6, 12, 31, 34], "number": [6, 8, 11, 13, 18, 20, 22, 31, 33, 34, 39], "As": [6, 8, 11, 14, 15, 18, 21, 22, 28, 29, 34, 41], "let": [6, 13, 21, 27, 32, 33, 34, 39, 40, 41, 42], "tupl": [6, 18, 21], "coordin": 6, "circular": 6, "fashion": [6, 13], "repeat": 6, "last": 6, "infer": 6, "close": [6, 8, 33], "script": [6, 8, 18, 20, 30, 31, 33, 43], "complet": [6, 8, 12, 13, 15, 18, 28, 33, 34, 36, 44], "run": [6, 8, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 28, 31, 33, 39, 43, 44], "final": [6, 21, 34], "t_length": 6, "10": [6, 8, 18, 19, 21, 31, 33, 34, 39, 42, 44], "t_width_in": 6, "0": [6, 8, 11, 14, 18, 19, 20, 21, 31, 32, 33, 34, 39, 41, 42, 44], "5": [6, 8, 11, 14, 19, 20, 21, 33, 34, 39, 42, 44], "t_width_out": 6, "add_polygon": 6, "int": [6, 39], "assum": [6, 8, 14, 20, 21, 33, 36, 43, 44], "ve": [6, 15, 30, 31, 34], "provid": [6, 12, 21, 22, 31, 36, 37], "datatyp": [6, 18], "poli": 6, "45": [6, 8, 14, 18, 19, 20, 33, 44], "move": [6, 12, 33, 34, 43], "come": [6, 8, 11, 22, 29, 32, 34, 40, 44], "manipul": [6, 19, 30], "easili": [6, 11, 31, 43, 44], "differ": [6, 8, 11, 13, 15, 19, 20, 21, 22, 23, 27, 30, 31, 33, 38, 39, 40, 41, 42, 43, 44], "combin": [6, 8, 13, 20, 21, 27, 33], "mean": [6, 8, 11, 21, 22, 25, 30, 31, 33, 34, 41, 44], "merg": [6, 12], "xor": 6, "To": [6, 8, 11, 12, 14, 15, 20, 23, 28, 31, 33, 34, 37, 41, 43], "two": [6, 8, 11, 13, 18, 20, 21, 22, 27, 28, 29, 30, 32, 33, 38, 41, 42, 44], "group": [6, 18, 39], "piec": [6, 13], "involv": [6, 30], "itself": [6, 21, 22, 28, 31, 33, 34, 39, 40], "target": [6, 21], "result": [6, 8, 11, 13, 14, 15, 20, 21, 29, 30, 33, 42], "components_a": 6, "components_b": 6, "accept": 6, "equival": [6, 8], "t": [6, 8, 14, 15, 17, 18, 20, 21, 28, 30, 31, 33, 34, 36, 37, 39, 40, 41, 42, 43, 44], "linspac": [6, 21], "pi": [6, 8, 20, 21, 33], "100": [6, 8, 34], "co": [6, 21, 42], "sin": [6, 8, 42], "circl": [6, 33], "triangl": 6, "pacman": 6, "precis": [6, 13, 20, 21, 28], "1e": 6, "6": [6, 8, 21, 34], "origin": [6, 22, 31, 33], "boolean_subtract": 6, "add_ref": [6, 21, 44], "talk": [6, 33, 40], "later": [6, 21, 32], "dimens": [6, 13, 41], "redefin": 6, "everi": [6, 11, 21, 34, 44], "write": [6, 11, 22, 31, 37], "addit": [6, 11, 27], "calcul": [6, 21, 33, 34, 39, 40, 42], "cach": 6, "correspond": [6, 11, 18, 21, 28, 30, 32, 40, 42], "so": [6, 8, 11, 13, 18, 20, 21, 22, 27, 28, 29, 30, 31, 32, 33, 34, 36, 40, 42, 44], "subsequ": 6, "rebuild": 6, "enabl": [6, 8, 17, 22, 27, 34], "decor": 6, "If": [6, 8, 12, 14, 19, 20, 21, 22, 30, 31, 33, 34, 36, 37, 41, 42, 43, 44], "re": [6, 13, 15, 18, 21, 22, 31, 34, 36, 37], "develop": [6, 12, 13, 22, 30, 37], "modifi": [6, 11, 21, 22, 30, 34], "content": [6, 22], "again": [6, 29, 31, 34], "code": [6, 11, 12, 13, 15, 16, 18, 19, 21, 22, 31, 33, 34, 36, 42, 43], "won": [6, 15, 18, 21, 31, 34], "clear": [6, 32], "clear_cach": 6, "librari": [6, 21, 22, 31, 40, 44], "reusabl": 6, "circuit": [6, 8, 13, 14, 15, 16, 17, 19, 20, 21, 25, 26, 33, 36, 38, 40, 44], "anoth": [6, 8, 11, 18, 20, 21, 22, 27, 29, 34, 41], "fantast": 6, "benefit": [6, 36], "type": [6, 18, 28, 29, 31, 34, 44], "hint": 6, "valid": [6, 9, 13, 34], "name": [6, 11, 18, 19, 21, 22, 29, 31, 34, 42], "abl": [6, 8, 12, 20, 30, 31], "taper_compon": 6, "length": [6, 13, 14, 20, 21, 27, 28, 30, 33, 44], "float": [6, 21], "width_in": 6, "width_out": 6, "like": [6, 8, 11, 13, 14, 15, 17, 18, 19, 21, 22, 27, 28, 29, 31, 34, 36, 37, 38, 39, 40, 42, 44], "quickli": 6, "rectangl": [6, 39], "ellips": [6, 14], "ring": [6, 13, 25], "bend_circular": 6, "bend_eul": 6, "know": [6, 15, 33, 34, 36, 41], "outward": 6, "awai": [6, 8, 28], "match": [6, 8, 11, 20, 33, 34], "respect": [6, 8, 33, 40, 41, 42], "expand": [6, 27, 28], "earlier": 6, "note": [6, 8, 14, 20, 21, 22, 33, 34, 43], "common": [6, 13, 16, 18, 20, 21, 25, 28, 29, 31, 40, 44], "toward": [6, 34], "o1": [6, 11, 20, 21, 44], "orient": [6, 41], "180": [6, 8], "port_typ": 6, "o2": [6, 11, 20, 21, 44], "add_port": [6, 19], "And": [6, 15, 21], "convent": [6, 13, 21, 29, 30, 41], "clock": 6, "wise": 6, "bottom": [6, 37], "left": [6, 8, 14, 18, 33, 34, 37, 42, 44], "corner": [6, 37], "prefix": 6, "index": [6, 8, 14, 18, 19, 20, 21, 25, 27, 28, 29, 31, 32, 33, 34, 36, 38, 39, 42, 44], "previous": [6, 18], "essenti": [6, 9, 16], "pointer": [6, 31], "There": [6, 8, 11, 13, 18, 21, 28, 31, 33, 34, 37, 40, 44], "limit": [6, 20], "gdsii": [6, 34], "specif": [6, 8, 11, 14, 17, 18, 22, 31, 34, 37, 42], "built": [6, 22, 31, 32, 39], "around": [6, 12, 31, 33, 34], "previou": [6, 21, 31], "2x2": [6, 11, 20, 34], "multimod": [6, 25, 44], "mmi": [6, 11, 13, 19, 25, 34], "wide": [6, 13], "therefor": [6, 21, 22, 28, 30, 31, 36, 44], "side": [6, 29, 33, 40, 44], "four": [6, 33, 34], "redraw": 6, "individu": [6, 43], "right": [6, 8, 14, 22, 33, 34, 42, 43, 44], "off": [6, 20, 30, 31, 34, 42, 44], "bat": 6, "mmi2x2": [6, 11, 20, 34], "gap": [6, 33, 44], "125": 6, "determin": [6, 8, 14, 20, 39, 40, 42, 44], "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, 22, 30, 32, 33, 34, 44], "none": [6, 39, 42, 44], "port_width": 6, "port_cent": 6, "o3": [6, 11, 20, 44], "o4": [6, 11, 20], "mmi_ref": 6, "shift": [6, 21, 28], "shorthand": [6, 21], "taper_ref": 6, "_": 6, "rang": [6, 13, 14, 18, 28, 34], "enumer": [6, 42], "destin": [6, 44], "alon": [6, 21, 39], "expos": [6, 21, 30], "ref": 6, "f": [6, 8, 15, 34, 39, 42], "auto_rename_port": 6, "consist": [6, 18, 21, 33, 38], "simpler": 6, "find": [6, 8, 13, 20, 33, 37], "math": [6, 34], "fit": [6, 30], "yourself": 6, "often": [6, 11, 22, 30, 31, 33, 34, 40, 44], "swap": [6, 21, 32], "redo": 6, "inlin": [6, 15], "rect_ref": 6, "figur": [6, 27, 29, 34, 38, 42, 44], "put": [6, 8, 15, 19, 20, 32], "manufactur": [6, 9, 11, 13, 15, 20, 21, 28, 34, 38, 40, 44], "share": [6, 8, 14, 33], "tool": [6, 12, 13, 15, 16, 18, 26, 30, 31, 34, 36, 39, 43], "potenti": [6, 22, 30], "lumer": 6, "fix": [6, 22, 31], "write_gd": [6, 19], "suppli": [6, 28], "path": [6, 8, 12, 14, 16, 18, 21, 30, 33, 43], "current": [6, 28, 32], "directori": [6, 8, 14, 20, 33], "sometim": [6, 8, 11, 14, 31], "necessari": [6, 11, 13, 31, 32, 34, 39], "perhap": [6, 22], "meep": [6, 8, 13, 14, 15, 20, 31, 33, 39, 44], "Or": [6, 33], "were": [6, 11, 14, 30, 31, 32, 33, 41], "given": [6, 8, 11, 14, 21, 31, 34, 40, 42], "fab": [6, 18, 30, 44], "while": [6, 8, 12, 16, 18, 21, 22, 25, 29, 30, 31, 32, 33, 34, 36, 37, 41, 42, 44], "ha": [6, 8, 11, 14, 16, 18, 21, 22, 30, 31, 32, 33, 34, 38, 39, 41], "convert": [6, 11, 13, 30, 42], "step": [6, 8, 11, 15, 18, 23, 30, 33, 43], "after": [6, 19, 21, 31, 34], "convers": 6, "get": [6, 8, 11, 12, 18, 19, 20, 21, 30, 33, 34, 42, 43, 44], "branch": [6, 21, 25], "siepic": [6, 21], "ebeam": [6, 21], "ebeam_y_1550": 6, "github": [6, 15, 17, 21, 33], "import_gd": 6, "filenam": [6, 44], "splitter": [6, 11, 21, 30, 44], "read": [6, 8, 16, 18, 21, 22, 30, 31, 34], "manual": [6, 30, 40, 43], "hover": 6, "mous": 6, "examin": [6, 33], "themselv": 6, "midpoint": 6, "7": [6, 8, 31, 34], "75": [6, 8, 21, 39], "separ": [6, 21], "straight": [6, 32, 34, 41, 44], "bend": [6, 30], "radiu": [6, 33], "recal": [6, 21], "canva": 6, "straight_ref": 6, "bend_ref": 6, "pick": 6, "recreat": [6, 31], "racetrack": [6, 33], "coupler": [6, 11, 13, 18, 20, 21, 23, 25, 30, 32, 33, 44], "camacholab": [7, 15], "sequoia": [7, 15, 18, 21], "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, 28, 29, 37], "transfer": [8, 28, 30, 33], "light": [8, 11, 13, 14, 20, 21, 25, 27, 28, 30, 32, 33, 34, 38, 39, 40, 41], "multipl": [8, 11, 13, 15, 18, 33, 41], "eigenmod": [8, 20, 33], "mode": [8, 13, 20, 21, 30, 33, 34, 40, 41, 44], "field": [8, 11, 14, 20, 21, 30, 32, 34, 39, 41, 43, 44], "outsid": [8, 22, 25, 34, 39, 42], "evanesc": [8, 32, 39], "second": [8, 11, 21, 27, 28, 31, 39, 42, 44], "propag": [8, 21, 27, 32, 33, 34, 39, 41], "us": [8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 23, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 38, 39, 40, 41, 42, 43, 44], "photon": [8, 11, 13, 14, 15, 16, 17, 18, 20, 21, 25, 26, 29, 31, 32, 33, 34, 38, 40, 41, 43, 44], "amount": [8, 14, 21, 28, 31, 34], "thing": [8, 15, 18, 31, 34, 36, 37, 39, 44], "region": [8, 18, 20, 27, 29, 30, 34, 44], "enough": [8, 30, 36, 42], "incid": [8, 11, 42], "distanc": [8, 20, 33, 38], "materi": [8, 14, 15, 18, 19, 20, 22, 25, 27, 28, 29, 30, 32, 33, 34, 38, 39, 40, 42, 44], "layout": [8, 11, 15, 16, 21, 30, 31, 33, 36], "produc": [8, 21], "g": [8, 12, 15, 18, 30, 40, 42, 44], "50": [8, 13, 21, 44], "25": [8, 14, 18, 19, 21, 34, 42], "fraction": [8, 20, 44], "geometr": [8, 13, 14, 20, 26, 30, 33], "describ": [8, 14, 21, 27, 29, 30, 32, 33, 34, 36, 41], "kappa": [8, 33], "frac": [8, 14, 21, 33, 40, 42], "p_": 8, "p_0": 8, "cl": 8, "coeffici": [8, 21, 42], "l": [8, 21, 33], "found": [8, 37, 39, 40], "analysi": [8, 13, 14], "system": [8, 12, 13, 14, 15, 18, 20, 26, 31, 33, 36, 37], "odd": 8, "antisymmetr": 8, "occur": [8, 20, 21, 33, 42], "circ": 8, "similarli": 8, "symmetr": [8, 11, 34, 44], "user": [8, 12, 22, 31, 43], "permitt": [8, 25], "clad": [8, 14, 18, 30, 32, 34, 38, 39, 40, 42, 44], "refract": [8, 14, 18, 21, 25, 27, 28, 29, 32, 38, 39, 40], "indic": [8, 14, 27, 33, 34, 40, 42], "valu": [8, 11, 18, 21, 31, 32, 34, 39, 42], "rel": [8, 19, 21, 27, 28, 30, 31, 44], "increas": [8, 14, 28, 29, 40], "decreas": [8, 14, 40], "notic": [8, 21, 22, 27, 32, 39, 40, 42], "intens": [8, 14, 20, 21, 33, 34, 44], "insid": [8, 33, 39], "gplugin": [8, 31, 39], "gm": [8, 11, 39], "find_modes_coupl": 8, "core_width": [8, 39], "core_materi": [8, 39], "clad_materi": [8, 39], "core_thick": [8, 39], "22": [8, 21, 34, 43], "resolut": [8, 11, 14, 19, 20, 33, 34, 39, 44], "40": [8, 18, 34, 39, 44], "sz": [8, 39], "nmode": [8, 39], "m1": [8, 18, 39], "m2": [8, 33, 39], "look": [8, 11, 22, 25, 31, 34, 37, 41, 44], "big": 8, "print": [8, 11, 13, 21, 34, 39], "neff": [8, 39], "dielectr": [8, 39, 44], "sidebar": 8, "plot_ep": 8, "plot_ei": [8, 39], "abov": [8, 11, 14, 18, 21, 28, 30, 33, 34, 39, 41, 42, 44], "happen": 8, "desir": [8, 12, 14, 27, 30, 34], "delta": [8, 21], "n": [8, 17, 18, 20, 21, 29, 30, 31, 33, 34, 42], "lambda": [8, 14, 21, 33, 40], "n_": [8, 33, 40, 42], "eff": [8, 14, 33, 40], "find_coupling_vs_gap": 8, "crossov": 8, "tabl": 8, "detail": [8, 14, 21, 34, 37], "ne": 8, "unit": [8, 27, 28, 34], "mu": [8, 21], "m": [8, 15, 20, 21, 31, 33], "lc": 8, "dn": 8, "exponenti": [8, 39], "relationship": [8, 11, 21, 28, 29, 34], "cdot": 8, "variou": [8, 21, 30, 34, 36], "oper": [8, 18, 20, 21, 28, 29, 30, 31, 32, 33, 34, 36], "mp": [8, 11, 14, 19, 20, 33, 34, 39, 44], "gap1": 8, "gap2": 8, "11": [8, 18, 21, 31, 39], "55": [8, 14, 19, 20, 21, 33, 34, 44], "pariti": [8, 39], "even_i": [8, 34], "463631": 8, "409798": 8, "14": 8, "396530": 8, "053832": 8, "460647": 8, "410682": 8, "15": [8, 11, 21, 33, 42], "510925": 8, "049965": 8, "12": [8, 14, 18, 34], "459734": 8, "411797": 8, "16": [8, 18, 39], "166968": 8, "047937": 8, "13": [8, 34], "452682": 8, "411449": 8, "18": [8, 18], "795515": 8, "041233": 8, "448745": 8, "412270": 8, "21": [8, 42], "247526": 8, "036475": 8, "447691": 8, "414688": 8, "23": [8, 15, 21], "482841": 8, "033003": 8, "447658": 8, "416929": 8, "220085": 8, "030729": 8, "17": [8, 42], "447685": 8, "418000": 8, "26": [8, 42], "107513": 8, "029685": 8, "8": [8, 11, 34, 44], "442283": 8, "416295": 8, "29": 8, "821729": 8, "025988": 8, "9": [8, 34, 42, 44], "19": [8, 18], "439496": 8, "416231": 8, "33": 8, "311196": 8, "023265": 8, "20": [8, 11, 19, 20, 21, 33, 42], "438256": 8, "417123": 8, "36": 8, "672851": 8, "021133": 8, "own": [8, 15, 17, 18, 21, 22, 30, 31, 36], "normal": [8, 34, 43], "constant": [8, 21, 29, 33], "beta": [8, 20, 21, 33, 44], "travel": [8, 14, 21, 27, 29, 33, 39, 40, 42], "down": [8, 21, 31, 34, 39], "oscil": [8, 27, 41], "beat": [8, 20], "One": [8, 22, 30, 32, 38], "over": [8, 12, 14, 20, 30, 33, 38], "smaller": [8, 32], "faster": [8, 29], "sinc": [8, 11, 13, 14, 21, 31, 33, 34, 36, 37, 39, 44], "shorter": [8, 21, 28, 40], "give": [8, 11, 15, 21, 31, 34, 36], "begin": [8, 20, 21, 40, 42], "l_": [8, 20, 21], "nonumb": 8, "multipli": 8, "_1": [8, 20], "l_x": 8, "_2": 8, "n_1": 8, "n_2": 8, "Of": [8, 22, 42], "don": [8, 17, 21, 28, 31, 36, 40, 43, 44], "oftentim": 8, "60": 8, "receiv": 8, "equat": [8, 13, 14, 20, 21, 28, 30, 33, 39, 40], "further": [8, 11, 21, 32, 34], "explor": [8, 32, 41, 43], "send": [8, 16, 32], "affect": [8, 20, 21, 28, 33, 40, 41, 44], "minut": 8, "setup": [8, 13, 30, 31, 36, 37, 43], "gif": [8, 14, 20, 33], "typic": [8, 13, 14, 22, 26, 28, 29, 30, 38, 40], "practic": [8, 15, 21, 31], "si": [8, 14, 19, 20, 33, 39], "medium": [8, 14, 19, 20, 33, 34, 44], "sio2": [8, 14, 18, 19, 20, 33, 34, 39], "um": [8, 14, 20, 21, 34], "wvl": [8, 14, 19, 20, 33], "cell": [8, 14, 20, 30, 33, 34], "wg_width": [8, 33], "dpml": [8, 20, 34], "pad": [8, 20, 33], "07": 8, "lx": 8, "30": [8, 14, 42, 44], "sx": [8, 19, 20, 33, 44], "sy": [8, 19, 20, 33, 39, 44], "wg_center_i": 8, "pml": [8, 14, 19, 20, 33, 34, 44], "perfectli": [8, 20, 21, 33, 34], "infinit": 8, "long": [8, 21, 31, 33, 34, 38, 43], "vector3": [8, 14, 19, 20, 33, 34, 44], "puls": [8, 14, 20, 33], "fcen": [8, 14, 19, 20, 33, 34], "fwidth": [8, 14, 19, 20, 33, 34], "src": [8, 19, 20, 33, 34], "gaussiansourc": [8, 14, 19, 20, 33, 34], "frequenc": [8, 11, 13, 14, 19, 20, 21, 27, 28, 29, 32, 33, 42, 44], "eigenmodesourc": [8, 19, 20, 33, 34, 44], "eig_band": [8, 19, 20, 33, 34, 44], "eig_kpoint": [8, 19, 20, 33, 34], "sim": [8, 11, 14, 19, 20, 33, 34, 44], "cell_siz": [8, 11, 14, 19, 20, 33, 34, 44], "boundary_lay": [8, 14, 19, 33, 34, 44], "default_materi": [8, 19, 33, 44], "set": [8, 11, 13, 14, 15, 18, 20, 21, 30, 31, 33, 34, 37, 39, 42, 43], "plot2d": [8, 11, 14, 19, 20, 33, 34, 44], "warn": [8, 42], "grid": 8, "volum": [8, 34, 40, 44], "integ": [8, 18, 33], "pixel": [8, 34], "round": [8, 30, 33], "nearest": 8, "ax": [8, 21, 39, 42], "pil": [8, 14, 20, 33], "imag": [8, 14, 21, 33, 34, 44], "glob": [8, 14, 20, 33], "os": [8, 14, 20, 33, 36], "reset_meep": [8, 34], "captur": [8, 14, 20, 33], "at_begin": [8, 14, 20, 33], "output_epsilon": [8, 14, 20, 33], "to_append": [8, 14, 20, 33], "ez": [8, 14, 20, 33, 44], "at_everi": [8, 14, 20, 33], "output_efield_z": [8, 14, 20, 33], "until": [8, 11, 14, 20, 33, 34, 44], "200": [8, 11, 14, 20, 34], "gener": [8, 11, 13, 14, 18, 20, 21, 22, 27, 28, 30, 31, 33, 39, 41], "png": [8, 14, 20, 21, 33], "colormap": [8, 14, 20, 33], "work": [8, 20, 22, 31, 33, 34, 41], "h5py": [8, 14, 20, 33], "instal": [8, 12, 13, 14, 16, 20, 31, 33, 36, 37, 39, 43], "problem": [8, 14, 15, 20, 28, 33], "h5util": [8, 14, 20, 33], "h5topng": [8, 14, 20, 33], "99": [8, 14], "r": [8, 14, 20, 31, 33, 42], "zc": [8, 14, 20, 33], "rdbu": [8, 14, 20, 33, 34, 44], "ep": [8, 14, 20, 33], "000000": [8, 14, 20, 33], "00": [8, 14, 20, 21, 33, 42], "h5": [8, 14, 20, 33], "grai": [8, 14, 20, 33, 39], "frame": [8, 14, 20, 33], "img": [8, 14, 20, 33], "sort": [8, 14, 20, 30, 33], "new_fram": [8, 14, 20, 33], "append": [8, 14, 20, 33, 34], "loop": [8, 14, 20, 33, 34], "forev": [8, 14, 20, 33], "append_imag": [8, 14, 20, 33], "save_al": [8, 14, 20, 33], "clean": [8, 14, 20, 33], "workspac": [8, 14, 20, 33], "delet": [8, 14, 20, 31, 33], "invalid": [8, 14, 42], "circumv": [8, 14], "issu": [8, 14], "chosen": [8, 14, 40, 42], "sensit": [8, 14, 20, 30], "fabric": [8, 9, 13, 15, 18, 26, 28, 30, 34], "variat": [8, 20, 33], "robust": [8, 20, 31], "element": [8, 13, 21, 28, 34, 40], "principl": [8, 13, 14, 15, 18, 20, 34, 42], "behind": [8, 21, 30], "interfer": [8, 13, 14, 20, 21, 27, 32, 33, 44], "nearbi": 8, "chip": [8, 13, 14, 16, 17, 18, 21, 25, 30, 31], "parasit": 8, "too": [8, 13, 18, 21, 31, 33, 36, 41], "lead": [8, 32, 33, 40], "leak": [8, 44], "far": [8, 11, 32, 33], "apart": 8, "silicon": [8, 13, 14, 21, 29, 30, 34, 38, 39, 42, 44], "answer": [8, 21, 31, 42], "approxim": [8, 13, 18, 28], "135": 8, "micron": [8, 14, 18, 21, 39], "luka": [8, 14, 44], "chrostowski": [8, 14, 44], "stefan": 8, "prebl": 8, "facil": [9, 15, 30], "simul": [11, 13, 14, 15, 18, 19, 23, 26, 30, 39, 42, 44], "devic": [11, 13, 15, 16, 18, 20, 21, 25, 26, 27, 29, 33, 44], "befor": [11, 21, 22, 30, 31, 34], "idea": [11, 31], "perform": [11, 13, 15, 30, 31, 34], "plugin": 11, "finit": [11, 13, 30, 31, 39], "domain": [11, 13, 31, 42], "algorithm": [11, 31], "fdtd": [11, 13, 15, 31], "turn": [11, 21, 28, 34, 39], "component_from_gd": 11, "py": [11, 21, 42], "func": 11, "get_simul": [11, 20], "get_meep_geometry_from_compon": [11, 20], "grate": [11, 13, 18, 21, 23, 30], "fiber": [11, 13, 14, 18, 21, 30, 32], "connect": [11, 15, 18, 21, 30, 44], "howev": [11, 15, 21, 22, 32, 33, 34, 36, 44], "suffic": 11, "tutori": [11, 21, 34], "tidy3d": [11, 20, 40], "implement": [11, 28, 33], "tpml": [11, 20], "port_source_offset": [11, 20], "port_monitor_offset": [11, 20], "distance_source_to_monitor": [11, 20], "32": 11, "scatter": [11, 21, 41], "tell": [11, 13, 31, 33, 34, 41], "port": [11, 13, 18, 19, 20, 21, 33, 44], "purpos": [11, 17, 22, 27, 40], "write_sparameters_meep": 11, "3d": [11, 18, 32, 34], "margin": 11, "account": [11, 12, 33, 43], "kwarg": 11, "fals": [11, 18, 34, 39, 42], "wast": 11, "incorrectli": 11, "2d": [11, 14, 19, 32, 34], "comprehens": [11, 34, 41], "dictionari": [11, 18, 20, 21], "kei": [11, 14, 21, 32], "form": [11, 21, 28], "refer": [11, 13, 15, 30, 33, 40, 41], "go": [11, 15, 16, 20, 22, 23, 27, 33, 34, 36, 43, 44], "symmetri": 11, "port_symmetri": 11, "assign": [11, 30], "1x2": [11, 13, 20], "comput": [11, 13, 15, 21, 31, 33, 34, 37, 43], "written": [11, 15], "thu": [11, 33, 44], "write_sparamters_meep_mpi": 11, "write_sparameters_meep_batch": 11, "per": [11, 13, 27], "total": [11, 18, 32, 34, 39], "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, 25, 32, 34, 39, 44], "wave": [11, 13, 14, 20, 21, 27, 33, 34, 39, 40, 41, 42], "why": [11, 32, 41], "program": [12, 13, 16, 31, 37], "environ": [12, 15, 17, 22, 36, 37], "uncommon": 12, "roll": [12, 22], "back": [12, 14, 30, 33, 42, 44], "break": [12, 31], "someth": [12, 31], "product": [12, 42], "version": [12, 21, 22, 43], "control": [12, 17, 21, 22], "vc": 12, "extrem": [12, 22], "who": [12, 22], "simultan": [12, 41], "edit": [12, 30, 43], "rather": [12, 30, 33], "painlessli": 12, "predomin": 12, "programm": [12, 22], "todai": 12, "command": [12, 13, 17, 21, 31, 34, 39, 43], "entir": [12, 13, 15, 32, 34], "ecosystem": 12, "host": [12, 15, 31], "servic": 12, "gui": [12, 34, 36], "id": [12, 37], "sprung": 12, "alreadi": [12, 21, 30, 33, 34], "linux": [12, 13, 16, 31, 36, 37, 43], "temin": 12, "enter": [12, 21, 33, 34], "machin": [12, 13, 31, 36, 43], "window": [12, 13, 16, 31, 36, 42], "packag": [12, 15, 16, 17, 18, 21, 36, 39], "mac": [12, 16, 31, 36], "forc": [12, 22], "wsl": [12, 13, 31, 36], "still": [12, 29, 31, 32, 34, 44], "download": [12, 15, 16, 31, 37, 43], "link": [12, 29, 31], "maco": [12, 13, 31, 36, 37], "xcode": 12, "termin": [12, 31, 36, 37, 43], "select": [12, 16, 18, 43], "through": [12, 15, 21, 23, 25, 27, 28, 29, 30, 32, 34, 36, 37, 39, 40, 41, 43], "debian": 12, "distribut": [12, 13, 22, 31, 39], "ubuntu": [12, 31, 36, 43], "sudo": 12, "apt": 12, "rpm": 12, "fedora": 12, "rhel": 12, "cento": 12, "dnf": 12, "known": [12, 14, 21, 22, 31, 37, 38, 39, 41, 42], "free": [12, 13, 15, 16, 22, 28, 30, 31, 40], "privat": 12, "bootcamp": [12, 15, 18, 21, 33, 34], "along": [12, 33, 39, 41, 42], "popular": [12, 22, 31, 37, 38], "python": [12, 13, 15, 16, 18, 30, 34, 36, 37, 42], "keep": [12, 15, 31, 34], "definit": [13, 22], "throughout": [13, 21], "mathemat": [13, 21, 30, 33], "descript": 13, "behavior": [13, 21, 30, 32, 33, 41, 42, 44], "cutback": 13, "techniqu": 13, "measur": [13, 14, 20, 21, 28, 33, 40], "attenu": [13, 30, 33], "transmiss": [13, 21, 27, 33, 34, 42], "delai": [13, 30], "count": 13, "etc": [13, 18, 30, 31, 40], "drc": [13, 16, 18, 30], "verifi": [13, 31, 34], "ensur": [13, 21, 30, 31, 34, 44], "error": [13, 18, 20, 39], "caus": [13, 21, 29], "fail": [13, 34], "short": [13, 14, 16, 21, 22, 29], "featur": [13, 16, 30, 31, 37, 39, 40], "resolv": [13, 42], "drastic": 13, "foundri": 13, "minimum": [13, 20, 30], "space": [13, 28, 30, 33, 40], "numer": [13, 39], "electrodynam": 13, "solut": 13, "differenti": [13, 28, 39], "method": [13, 15, 17, 19, 21, 22, 30, 31, 34, 36], "cover": [13, 15], "singl": [13, 15, 20, 21, 30, 33, 36, 44], "primari": 13, "avail": [13, 15, 16, 18, 22, 30, 31, 36], "platform": [13, 15, 31], "yaml": [13, 21], "flow": [13, 26], "gd": [13, 14, 15, 16, 18, 30, 31, 34, 36, 44], "graphic": 13, "coupl": [13, 14, 21, 22, 30, 44], "reson": [13, 25], "instrument": [13, 17, 20], "util": [13, 14, 18, 20, 21, 22], "beam": [13, 14, 20, 21, 32], "multi": 13, "split": [13, 20, 21, 34], "ideal": [13, 14, 21, 32], "nearli": 13, "imposs": 13, "polygon": [13, 30], "electron": [13, 26, 32, 34], "digit": [13, 26], "dry": 13, "modif": 13, "replic": 13, "insul": [13, 38], "soi": [13, 18, 30, 38, 42], "technolog": [13, 21, 30], "substrat": [13, 14, 18, 30, 38, 39], "semiconductor": 13, "wafer": [13, 30, 38], "vscode": [13, 31], "studio": [13, 36], "commonli": [13, 22, 31, 40], "vs": [13, 37], "editor": [13, 15, 36, 37], "microsoft": [13, 36, 37], "support": [13, 15, 17, 18, 20, 29, 40, 41], "debug": [13, 31], "syntax": [13, 17, 31, 39], "highlight": 13, "intellig": 13, "snippet": 13, "refactor": [13, 31], "embed": [13, 15], "git": [13, 18, 21], "wikipedia": 13, "subsystem": [13, 36], "bash": [13, 31, 43], "directli": [13, 15, 18, 19, 34], "unmodifi": 13, "overhead": 13, "tradit": [13, 38], "virtual": [13, 17, 36], "dual": 13, "boot": 13, "diffract": 14, "cabl": [14, 30], "edg": [14, 23], "teeth": 14, "drawn": [14, 32], "onto": [14, 23, 30, 38, 43], "altern": [14, 43], "structur": 14, "propog": [14, 21, 30], "hyugen": 14, "fresnel": [14, 42], "bragg": 14, "law": [14, 39, 42], "depict": [14, 32, 40], "orthogon": [14, 32, 41], "arrai": [14, 21, 34, 42], "might": [14, 18, 21, 31, 44], "imagin": [14, 21], "hold": [14, 22, 34], "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, 44], "inf": [14, 19], "epsilon": [14, 34], "cladding_depth": 14, "box_depth": 14, "box": [14, 18, 34, 37, 42], "substrate_depth": 14, "700": 14, "df": [14, 34], "pml_layer": [14, 19], "500": [14, 21], "savefig": 14, "grating_coupler_plot": 14, "encount": [14, 22, 42], "recogn": 14, "discuss": [14, 32], "page": [14, 18, 31, 32, 33, 34, 39, 43, 44], "demonstr": [14, 42], "been": [14, 30, 31, 32, 34], "1550": 14, "appropri": [14, 21, 31, 32], "three": [14, 18, 20, 21, 34, 41], "understand": [14, 33, 34, 41, 42], "simplifi": [14, 21, 32], "view": [14, 16, 18, 34, 36], "denot": [14, 20], "effici": [14, 21], "half": [14, 33, 39], "relat": [14, 18, 32, 39], "2n_": 14, "choos": [14, 19, 32, 39], "exactli": [14, 21, 34], "90": [14, 21, 44], "degre": [14, 21, 28, 42], "problemat": 14, "byproduct": [14, 29], "larg": [14, 31, 44], "zeroth": 14, "avoid": [14, 31], "slightli": [14, 20, 21, 29, 34, 40, 44], "less": [14, 22, 30, 32, 33, 44], "angl": [14, 21, 32], "area": [14, 30, 31, 42], "overal": 14, "weight": [14, 44], "unetch": 14, "ratio": [14, 20, 33, 34, 42, 44], "ff": 14, "w": 14, "welcom": 15, "present": [15, 18, 20, 32], "onlin": [15, 22], "freeli": [15, 22, 31], "resourc": [15, 29], "teach": 15, "student": 15, "curriculum": 15, "background": [15, 16, 21, 22], "motiv": 15, "full": [15, 22, 30, 31, 32, 33, 39], "learner": 15, "guid": [15, 30, 36, 38, 40, 42], "submit": [15, 22], "wish": [15, 22], "simphoni": [15, 21, 31], "submiss": [15, 30], "pic": 15, "post": 15, "instruct": [15, 31, 36, 37, 43], "contribut": [15, 22], "subject": 15, "matter": [15, 34], "expert": 15, "futur": [15, 31], "expans": 15, "fork": 15, "parti": 15, "custom": [15, 22], "train": 15, "websit": [15, 22], "explanatori": 15, "webpag": 15, "launch": [15, 34], "colab": 15, "local": [15, 17, 36], "immedi": [15, 31], "alwai": [15, 21, 31, 44], "workflow": 15, "approach": 15, "introduc": [15, 21, 22, 28, 31, 33, 44], "bother": 15, "mention": [15, 18, 22], "possibl": [15, 41], "configur": [15, 18, 36], "ahead": 15, "standard": [15, 36, 44], "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, 30], "electromagnet": [15, 39, 41, 44], "physic": [15, 23, 29, 40], "commun": [15, 22, 31], "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, 22], "http": [15, 21, 22, 32, 43], "io": 15, "verif": 16, "viewer": [16, 36], "trace": [16, 38], "net": 16, "detect": [16, 30], "scriptabl": 16, "languag": [16, 31], "rubi": 16, "extens": [16, 37], "extern": [16, 21], "json": 16, "request": 16, "server": [16, 17], "hot": 16, "reload": 16, "rerun": 16, "manag": [16, 36], "Then": [16, 34, 43, 44], "search": 16, "doubl": [16, 21, 33], "click": [16, 23, 37, 43], "pyro5": 17, "remot": 17, "access": [17, 18, 22, 31, 33], "equip": 17, "lab": 17, "favor": [17, 38], "usb": 17, "proprietari": [17, 22], "brand": 17, "unifi": 17, "intrument": 17, "easi": [17, 21, 28, 31, 34], "pip": [17, 31, 36], "conda": [17, 36, 43], "environment_nam": 17, "activ": [17, 21, 22, 25, 27, 31, 43], "updat": [17, 21], "pypi": [17, 31, 36], "upgrad": [17, 31], "visit": 17, "interrog": 17, "station": 17, "interfac": [17, 31, 36, 39, 41], "fore": 17, "whether": [18, 22, 30], "etch": [18, 30, 38, 40], "deposit": [18, 30, 38], "dope": [18, 29, 30], "metal": [18, 28, 30], "p": [18, 29, 30], "translat": [18, 30], "mask": [18, 30], "formal": 18, "state": [18, 22, 34], "255": 18, "modern": [18, 31, 36], "almost": [18, 34, 44], "dedic": [18, 22], "nitrid": 18, "lithium": [18, 42], "niobat": [18, 42], "whichev": 18, "decid": 18, "thin": 18, "top": [18, 21], "dioxid": [18, 38, 42], "thick": [18, 21, 33, 34, 39], "buri": 18, "oxid": [18, 34], "main": [18, 25, 30, 31], "intern": [18, 32, 39], "48": [18, 21], "excel": [18, 29, 31], "refractiveindex": 18, "info": [18, 21], "color": [18, 37, 40, 42], "fill": 18, "map": [18, 21], "human": [18, 21], "readabl": [18, 21, 34], "properti": [18, 27, 29, 30, 39, 40, 43], "lyp": 18, "migrat": 18, "few": [18, 22, 31, 36, 37, 40], "devrec": 18, "recognit": 18, "show_port": 18, "marker": 18, "label_inst": 18, "netlist": 18, "te": [18, 21, 32, 34, 39, 41, 42], "polar": [18, 20, 21, 27, 30, 32, 39], "tm": [18, 21, 41, 42], "pydant": 18, "class": [18, 22], "partial": [18, 29, 32, 41], "germanium": 18, "photodiod": 18, "vari": [18, 21], "concentr": 18, "pn": 18, "junction": 18, "capacitor": [18, 30, 40], "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, 31], "frozen": 18, "extra": [18, 31, 40], "forbid": 18, "32m2023": 18, "06": 18, "227": [18, 21], "0m": [18, 21, 39], "1minfo": [18, 21, 39], "36mgdsfactori": [18, 21], "36m__init__": [18, 21], "36m204": 18, "1mloglevel": 18, "visibl": 18, "export": [18, 19], "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, 32, 34, 39, 41, 42], "label_set": 18, "202": 18, "magenta": 18, "red": [18, 32, 34, 41, 42], "lightli": 18, "hatch": 18, "004080": 18, "pinrec": 18, "404040": 18, "xsection": 18, "group_memb": 18, "xs_box": 18, "300": [18, 34], "f3ff80": 18, "solid": 18, "xs_si": 18, "301": 18, "black": [18, 34, 42], "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, 42], "xs_oxide_m1": 18, "305": 18, "308": 18, "ff80a8": 18, "wg_pin": 18, "klayout_lyp": 18, "posixpath": 18, "home": [18, 21, 33, 34, 39], "env": [18, 21, 31, 33, 39], "lib": [18, 21, 39], "python3": [18, 21, 39], "site": [18, 21, 22, 39], "generic_tech": [18, 21], "tech": 18, "npp": 18, "pp": 18, "ppp": 18, "Be": [18, 21], "sure": [18, 19, 22, 34], "gmeep": [19, 20, 39], "meep_adjoint_optim": 19, "straightforward": 19, "get_component_from_sim": 19, "continu": [19, 31, 34, 39], "variabl": [19, 21, 29, 30, 34, 44], "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, 40], "source_center_x": 19, "source_s": 19, "kpoint": 19, "no_direct": [19, 34], "geometry_cent": 19, "gdspath": 19, "2x2mmi": 19, "predict": [20, 21, 30, 41], "certain": [20, 22, 32, 33, 41], "k": [20, 25, 42], "wider": 20, "gradual": 20, "widen": 20, "nxm": 20, "replica": 20, "period": [20, 21, 28], "_0": 20, "wall": [20, 31], "interf": 20, "destruct": [20, 21, 27, 32, 44], "forward": [20, 22, 29, 34], "backward": [20, 31, 34], "word": [20, 22, 27, 32, 44], "excit": 20, "goe": [20, 33, 34, 42, 44], "THE": 20, "TO": 20, "length_mmi": 20, "extend": [20, 22], "extend_port": 20, "port_nam": [20, 21], "299": [20, 33], "evenli": [20, 44], "advantag": [20, 22, 30], "veri": [20, 21, 22, 29, 31, 34, 36, 38, 44], "suscept": [20, 30], "fact": [20, 22, 34], "optimum": 20, "contrast": 20, "mimic": 20, "disadvantag": 20, "switch": [20, 21, 33, 34], "wdm": 20, "divis": 20, "multiplex": 20, "hybrid": 20, "divers": 20, "photodetector": [20, 25, 30], "extract": [21, 39], "doc": [21, 37, 39], "zender": 21, "concept": [21, 30, 31, 32, 33], "recombin": [21, 44], "accumul": 21, "quantum": 21, "piezo": 21, "transduc": 21, "sax": 21, "jax": 21, "nice": [21, 31, 36], "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, 33, 41], "carri": [21, 22], "identifi": 21, "explain": [21, 29, 33, 34, 43], "formul": 21, "s_": 21, "ij": 21, "repres": [21, 32, 34, 40, 41, 42], "j": [21, 33, 34], "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, 22, 32], "siepic_ebeam_pdk": 21, "blob": 21, "master": 21, "20compon": 21, "20with": 21, "20model": 21, "docx": 21, "31mfile": 21, "31mtype": 21, "inspect": [21, 22], "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, 39], "instance_nam": 21, "whitespac": 21, "delimit": 21, "comma": 21, "composit": 21, "gc_in": 21, "gc": 21, "ybranch": [21, 44], "long_wg": 21, "short_wg": 21, "gc_out": 21, "act": 21, "whatev": 21, "invok": [21, 31], "gave": 21, "becom": [21, 22, 31, 34, 41], "instanti": 21, "unsur": 21, "get_set": 21, "float64": 21, "loss": [21, 28, 29, 33, 34, 44], "overkil": 21, "everyth": [21, 34, 43], "els": [21, 31, 34], "stai": 21, "global": 21, "toplevel": 21, "trickl": 21, "1000": 21, "150": 21, "transmit": [21, 33, 38, 41, 42], "magnitud": [21, 34, 39, 42], "squar": [21, 33], "renam": 21, "unconnect": 21, "realli": [21, 22, 34, 42], "meaning": 21, "both": [21, 28, 29, 31, 33, 34, 39, 44], "linear": [21, 28, 34, 44], "log": [21, 34], "scale": [21, 30, 44], "mag": 21, "ab": [21, 34], "fig": [21, 39, 42], "subplot": [21, 39, 42], "sharex": [21, 39], "set_ylabel": 21, "log10": [21, 34], "db": [21, 34], "set_xlabel": [21, 42], "suptitl": 21, "dip": 21, "opposit": 21, "peak": [21, 32, 33], "maximum": [21, 33], "better": [21, 40, 41], "think": [21, 30, 31], "equal": [21, 27, 33, 40, 42, 44], "condit": [21, 22, 39], "get_generic_pdk": 21, "my_compon": 21, "delta_length": 21, "32m2024": [21, 39], "01": [21, 39, 44], "09": 21, "222": 21, "layer_view": 21, "36m785": 21, "1mimport": 21, "layerview": 21, "36mactiv": 21, "36m258": 21, "1m": 21, "relev": 21, "amplitud": [21, 27, 28, 29, 30, 32, 44], "i_": 21, "e_": [21, 33], "sqrt": 21, "hspace": 21, "2mm": 21, "whose": 21, "undergon": 21, "mw": [21, 28], "lossless": 21, "plane": [21, 41], "e_0": 21, "omega": 21, "z": [21, 34, 39, 41], "beta_": 21, "alpha_": 21, "\u03b1": 21, "appear": 21, "expon": 21, "zero": [21, 39], "lvert": 21, "express": [21, 28], "59": 21, "499": 21, "508": 21, "1450": 21, "longer": [21, 28, 40], "102": 21, "491": 21, "phasa": 21, "heat": [21, 25, 28], "static": 21, "\u03b2": 21, "100\u00b5m": 21, "1500nm": 21, "ouptput": 21, "9mw": 21, "heater": 21, "constitut": [22, 29], "legal": 22, "advic": 22, "date": 22, "corpor": 22, "contact": 22, "attornei": 22, "absolut": 22, "implic": 22, "organ": [22, 34, 39], "particularli": 22, "question": 22, "compani": 22, "incorpor": 22, "inherit": 22, "foss": 22, "availbl": 22, "portion": [22, 32, 42], "anyon": [22, 31], "enhanc": 22, "methodolog": 22, "creation": 22, "peopl": 22, "skill": 22, "context": [22, 32], "monetarili": 22, "under": 22, "restrict": [22, 30], "freedom": 22, "copi": [22, 42, 43], "studi": 22, "improv": 22, "hood": 22, "actual": [22, 34, 44], "strong": 22, "focus": 22, "downsid": 22, "thanklessli": 22, "maintain": [22, 27], "spend": 22, "driven": 22, "psiquantum": 22, "natur": [22, 41], "mainten": 22, "bug": [22, 31], "slower": 22, "commerci": 22, "On": [22, 25, 41, 43], "hand": [22, 33, 37, 41], "garner": 22, "friendli": 22, "copor": 22, "scheme": 22, "confirm": 22, "team": 22, "abil": 22, "plan": 22, "releas": [22, 31], "permiss": 22, "162": 22, "copyright": 22, "remain": [22, 33], "stricter": 22, "deriv": [22, 40, 42], "warranti": 22, "world": [22, 31, 40], "statement": 22, "signific": [22, 44], "attribut": 22, "similar": [22, 33, 39], "rereleas": 22, "grant": 22, "patent": 22, "contributor": 22, "claim": 22, "codebas": 22, "cannot": [22, 42], "liabl": 22, "reason": [22, 32], "trademark": 22, "licensor": 22, "belong": 22, "copyleft": 22, "mandat": 22, "gpl": 22, "v3": 22, "unpopular": 22, "prohibit": 22, "inclus": 22, "prevent": 22, "contamin": 22, "witih": 22, "technic": 22, "offend": 22, "liabil": 22, "binari": [22, 30, 34, 44], "attempt": 22, "pai": [22, 32], "attitud": 22, "necessarili": [22, 31], "impress": 22, "gnu": 22, "notepad": 22, "wordpress": 22, "mysql": 22, "unabl": 22, "sale": 22, "fossa": 22, "editori": 22, "101": 22, "jan": 22, "2021": 22, "blog": 22, "feb": 22, "mar": 22, "walk": [23, 39], "skip": [23, 43], "explan": 23, "tune": [25, 27, 33], "scope": [25, 29], "thermo": [25, 28], "slow": 25, "stabl": 25, "electro": [25, 30], "modul": [25, 27, 28, 29, 30, 39], "fast": [25, 29], "laser": [25, 30], "signal": [27, 28, 29, 30, 31, 34, 38, 40, 41], "characterist": [27, 34, 40], "ac": 27, "encod": [27, 30], "adjust": [27, 28, 42, 44], "categor": 27, "tuner": [27, 29], "dure": 27, "sai": [27, 33, 37, 41], "bridg": 27, "todo": [27, 29, 40], "insert": [27, 28, 29, 33, 34], "illustr": [27, 40], "compress": 27, "accord": [27, 34], "lower": [27, 32, 34, 39, 40, 44], "fewer": 27, "temperatur": [28, 40], "molecul": [28, 41], "At": 28, "low": [28, 29, 30, 33, 38], "proport": 28, "compris": 28, "proxim": [28, 33], "resistor": [28, 30, 40], "dissip": 28, "besid": 28, "govern": [28, 39], "mostli": [28, 32, 39, 41], "unlik": [28, 29], "pin": [28, 31], "eas": [28, 38], "offer": [28, 29, 40], "tradeoff": [28, 29], "capac": 28, "applciat": 28, "constantli": 28, "360": 28, "fsr": 28, "spectral": 28, "maxima": 28, "achiev": [28, 32, 42], "consum": 28, "closer": 28, "rate": 28, "plasma": 29, "dispers": 29, "charg": 29, "carrier": 29, "inject": [29, 34], "refrac": 29, "voltag": 29, "revers": [29, 44], "bias": 29, "respond": 29, "induc": 29, "mechan": [29, 31], "quit": 29, "beyond": [29, 40], "resist": [29, 40], "capacit": [29, 40], "intrins": 29, "compar": [29, 40], "high": [29, 31, 32, 38], "cutoff": 29, "ten": 29, "ghz": 29, "suit": 29, "neglig": 29, "clariti": 29, "thermal": 29, "undop": 29, "copmris": 29, "ad": [29, 34], "experienc": [29, 36, 40], "cost": [29, 30, 31], "qualiti": 29, "deplet": 29, "moder": 29, "bia": 29, "analog": 30, "macro": 30, "lens": 30, "mirror": 30, "beamsplitt": 30, "analogu": 30, "micro": 30, "nano": 30, "discret": [30, 32], "inductor": 30, "cmo": 30, "classifi": 30, "mismatch": 30, "anisotropi": 30, "voa": 30, "photolithographi": 30, "photomask": 30, "photosensit": 30, "chemic": 30, "photoresist": 30, "lamp": 30, "ultraviolet": 30, "regim": 30, "stencil": 30, "alter": 30, "leav": 30, "underli": 30, "constraint": 30, "densiti": 30, "pcb": 30, "familiar": [30, 31, 33], "reject": 30, "didn": 30, "meet": 30, "undergo": 30, "compat": [30, 31, 36], "hous": 30, "matur": 30, "autom": 30, "store": [30, 34, 36, 43], "concret": 30, "conta": 30, "latter": 30, "regener": 30, "regress": 30, "mzm": 30, "least": 30, "arm": [30, 44], "rout": 30, "briefli": [30, 34], "touch": 30, "solv": [30, 33, 39, 40], "maxwel": [30, 39], "computation": [30, 34], "expens": 30, "volumetr": 30, "mesh": 30, "voxel": 30, "magnet": [30, 32, 39, 41, 42], "lot": [30, 41], "hour": 30, "pertin": 30, "abstract": [30, 32], "sequenc": 30, "yet": 30, "embrac": 31, "scientif": 31, "session": 31, "recompil": 31, "prototyp": 31, "rapidli": 31, "miniconda": [31, 36, 43], "bundl": 31, "though": 31, "frill": 31, "strip": 31, "anaconda": 31, "tend": 31, "pretti": 31, "latest": 31, "execut": 31, "easiest": [31, 37], "quick": 31, "best": [31, 33], "isol": [31, 33], "sandbox": 31, "destroi": 31, "mess": 31, "never": [31, 34], "worri": 31, "someon": 31, "venv": 31, "older": 31, "intel_env": 31, "subdir": 31, "osx": 31, "64": 31, "establish": 31, "hasn": 31, "promin": 31, "fundament": [31, 32, 34, 39, 44], "counterpart": 31, "matlab": 31, "defacto": 31, "databas": 31, "solver": [31, 39, 40], "forg": 31, "pymeep": 31, "grab": 31, "nlopt": 31, "aren": 31, "increment": 31, "api": 31, "contract": 31, "task": 31, "evolv": 31, "accomplish": 31, "old": 31, "immatur": 31, "frequent": 31, "guarante": 31, "reproduc": 31, "semant": 31, "major": 31, "minor": 31, "patch": [31, 39], "incompat": 31, "manner": 31, "txt": 31, "24": [31, 42], "great": 32, "intuit": [32, 33, 42, 44], "surround": [32, 38, 39], "flaw": 32, "assumpt": 32, "misconcept": 32, "compen": 32, "challeng": 32, "slab": [32, 40], "implicit": 32, "fulli": [32, 33], "crucial": 32, "addition": 32, "impli": 32, "greater": [32, 42], "critic": 32, "except": 32, "anim": 32, "white": 32, "sent": 32, "orthogan": 32, "wavefront": 32, "interv": 32, "trough": 32, "special": [32, 37], "attent": 32, "clarifi": 32, "incremental": 32, "With": [32, 33], "backdrop": 32, "consider": [32, 40], "lost": [32, 34, 42, 44], "interferr": 32, "minim": 32, "emerg": 32, "obvious": 32, "mit": 32, "s3": 32, "amazonaw": 32, "fip": 32, "html": [32, 43], "bu": 33, "theori": 33, "trip": 33, "particular": 33, "Such": 33, "circumfer": 33, "alpha": [33, 34, 42, 44], "cm": 33, "plug": 33, "b1": 33, "te_": 33, "a1": 33, "a2": 33, "b2": 33, "quantiti": 33, "opd": 33, "roundtrip": 33, "imped": [33, 34], "approx": 33, "fwhm": 33, "aka": 33, "bandwidth": 33, "finess": 33, "narrow": 33, "sharp": 33, "q": 33, "sharper": 33, "filter": [33, 41], "whisper": 33, "galleri": 33, "feel": 33, "ipython": 33, "video": 33, "10um": 33, "d_pml": 33, "d_pad": 33, "r_in": 33, "r_out": 33, "wg_length": 33, "cylind": 33, "600": 33, "ebang4": 33, "miniconda3": [33, 39], "book": [33, 34], "decai": [33, 39], "despit": 33, "wg_center": 33, "radio": 34, "rf": 34, "exit": 34, "nxn": 34, "ofen": 34, "notat": 34, "character": 34, "bechavior": 34, "metric": 34, "param": 34, "mind": 34, "accur": [34, 40], "life": 34, "detector": 34, "adapt": [34, 36], "pictur": [34, 42], "purpl": 34, "my": 34, "next": [34, 36, 39, 41, 43], "whole": 34, "bunch": 34, "three_d": 34, "reduc": 34, "gds_file": 34, "jkart": 34, "geometry_l": 34, "cell_l": 34, "port1_l": 34, "port2_l": 34, "port3_l": 34, "port4_l": 34, "source1_l": 34, "source2_l": 34, "source3_l": 34, "source4_l": 34, "lcen": 34, "diamet": 34, "t_oxid": 34, "t_si": 34, "t_air": 34, "78": 34, "cell_thick": 34, "min": 34, "cell_zmax": 34, "cell_zmin": 34, "si_zmax": 34, "si_zmin": 34, "numport": 34, "s_param": 34, "input_param": 34, "kernel": 34, "usabl": 34, "tab": 34, "href": 34, "viewoutput": 34, "gdsii_prism": 34, "zmax": 34, "zmin": 34, "gdsii_vol": 34, "fname": 34, "gdsii_prim": 34, "port1": 34, "port2": 34, "port3": 34, "port4": 34, "source1": 34, "source2": 34, "source3": 34, "source4": 34, "Not": 34, "oxide_cent": 34, "oxide_s": 34, "oxide_lay": 34, "eig_par": 34, "eig_match_freq": 34, "contructor": 34, "no_par": [34, 39], "odd_z": 34, "monitor": 34, "energi": 34, "modemonitor": 34, "add_mode_monitor": 34, "moderegion": 34, "No": 34, "correctli": [34, 43], "readi": [34, 43], "until_after_sourc": 34, "get_eigenmode_coeffici": 34, "nfreq": 34, "neg": [34, 39], "third": [34, 39], "spot": 34, "sour": 34, "5th": 34, "input_coeff": 34, "port1_coeff": 34, "port2_coeff": 34, "port3_coeff": 34, "port4_coeff": 34, "s11": 34, "6f": 34, "upper": [34, 39, 44], "s12": 34, "s13": 34, "s14": 34, "fun": 34, "transmitt": 34, "exercis": 34, "terribl": 34, "isn": [34, 42], "fortun": 34, "meant": 34, "port1_tran": 34, "port2_tran": 34, "port3_tran": 34, "port4_tran": 34, "percent": 34, "insertionloss": 34, "insertionloss_db": 34, "steadi": 34, "reset": 34, "visula": 34, "continuoussourc": [34, 44], "reach": 34, "eps_data": [34, 44], "get_epsilon": 34, "ez_data": 34, "real": 34, "get_efield_z": 34, "screen": 34, "dpi": 34, "imshow": [34, 44], "transpos": [34, 44], "interpol": [34, 44], "spline36": [34, 44], "cmap": [34, 39, 44], "flipud": 34, "axi": [34, 39, 41, 42, 44], "hopefulli": 34, "sens": 34, "sake": 34, "rest": [34, 42], "devi": 34, "ts": 34, "s1": 34, "ts2": 34, "ts3": 34, "ts4": 34, "input_pow": 34, "trans1": 34, "trans2": 34, "trans3": 34, "trans4": 34, "expect": [34, 44], "entri": 34, "breviti": 34, "paramt": 34, "mathwork": 34, "luceda": 34, "microwaves101": 34, "youtub": 34, "opinion": 36, "newcom": 36, "troubleshoot": 36, "disagre": 36, "primarili": 36, "nervou": 36, "navig": 36, "precompil": 36, "desig": 37, "boast": 37, "healthi": 37, "capabl": 37, "lighter": 37, "pylanc": 37, "tree": 37, "icon": 37, "ey": [37, 39], "candi": 37, "theme": 37, "doesn": [37, 39, 41], "menu": [37, 43], "pop": 37, "conduct": 38, "copper": 38, "47": [38, 39, 42], "44": [38, 39, 42], "confin": [39, 40], "newton": 39, "motion": [39, 41], "vibrat": 39, "violin": 39, "pipe": 39, "stationari": 39, "mpb": 39, "05": 39, "51": 39, "512": 39, "36mgplugin": 39, "36m": 39, "36m39": 39, "1mmeep": 39, "28": 39, "parkeraa": 39, "glass": 39, "find_modes_waveguid": 39, "core_w": 39, "core_t": 39, "m3": 39, "m4": 39, "elecgtr": 39, "wg1": 39, "linewidth": 39, "edgecolor": 39, "facecolor": 39, "wg4": 39, "ax1": 39, "ax2": 39, "islic": 39, "add_patch": 39, "tight_layout": 39, "0th": [39, 44], "1st": [39, 44], "spatial": 39, "sinusoid": 39, "non": [39, 40, 41], "slice": [39, 41], "discontinu": 39, "boundari": [39, 42], "perpindicular": 39, "discontin": 39, "contin": 39, "horizont": 39, "domin": 39, "transvers": [39, 41, 42], "wg2": 39, "wg3": 39, "plot_ez": 39, "slight": 39, "aris": 39, "mm": 39, "find_mode_dispers": 39, "mode_numb": 39, "ng": 39, "3f": 39, "106": 39, "892": 39, "ignor": [40, 44], "mass": 40, "induct": 40, "exhaust": 40, "400nm": 40, "950nm": 40, "220nm": 40, "rib": 40, "rectangular": 40, "resembl": 40, "ridg": 40, "difficult": 40, "veloc": 40, "somewhat": 40, "tediou": 40, "streamlin": 40, "wavelegnth": 40, "atom": 40, "gather": [40, 42], "n_g": 40, "dn_": 40, "lambda_0": 40, "minu": 40, "band": 40, "behav": 41, "vector": [41, 42], "pure": 41, "perpendicular": 41, "bit": 41, "tricki": 41, "dimension": 41, "arrow": 41, "bield": 41, "sun": 41, "unpolar": 41, "atmospher": 41, "sunlight": 41, "uniform": 41, "permit": 41, "unpredict": 41, "strike": 42, "snell": 42, "theta_i": 42, "theta_r": 42, "n_1sin": 42, "n_2sin": 42, "theta_t": 42, "gamma_": 42, "n_1co": 42, "n_2co": 42, "tau_": 42, "2n_1co": 42, "obliqu": 42, "observ": 42, "n1": 42, "n2": 42, "transmission_angl": 42, "arcsin": 42, "theta_i_deg": 42, "deg2rad": 42, "set_aspect": 42, "zip": 42, "p0": 42, "i1": 42, "rad2deg": 42, "0f": 42, "r1": 42, "t1": 42, "xlim": 42, "ylim": 42, "axvlin": 42, "axhlin": 42, "linestyl": 42, "xtick": 42, "ytick": 42, "tmp": 42, "ipykernel_19546": 42, "1351043342": 42, "runtimewarn": 42, "AND": 42, "simulate_reflect": 42, "radian": 42, "incident_angle_radian": 42, "reflected_angl": 42, "transmitted_angl": 42, "incident_wav": 42, "tan": 42, "reflected_wav": 42, "transmitted_wav": 42, "display_transmit": 42, "barrier": 42, "set_xlim": 42, "set_ylim": 42, "str": 42, "set_titl": 42, "var": 42, "folder": [42, 43], "9n": 42, "_g8r69x957zb59c09f92zznh0000gn": 42, "ipykernel_69883": 42, "921879874": 42, "runtim": 42, "sine": 42, "theta_c": 42, "critical_angl": 42, "crit_angl": 42, "51840906945382": 42, "air": 42, "progag": 42, "profit": 42, "understood": 42, "prompt": 43, "administr": 43, "restart": 43, "usernam": 43, "password": 43, "sh": 43, "git_and_github": 43, "wslpath": 43, "04": 43, "www": 43, "de": 43, "chapter": 43, "what_is_a_photonic_devic": 43, "arbitrari": 44, "focu": 44, "i_i": 44, "i_1": 44, "i_2": 44, "perfect": 44, "70": 44, "media": 44, "vice": 44, "versa": 44, "exact": 44, "perspect": 44, "inwg": 44, "outwg": 44, "mmi1x2_with_sbend": 44, "inwg_ref": 44, "splitter_ref": 44, "outwg_top_ref": 44, "outwg_bot_ref": 44, "make_geometry_from_gds_compon": 44, "core_mat": 44, "cladding_mat": 44, "component_point": 44, "to_np": 44, "1e3": 44, "pad_width": 44, "nx": 44, "ny": 44, "matgrid": 44, "materialgrid": 44, "do_averag": 44, "damp": 44, "dft": 44, "add_dft_field": 44, "get_arrai": 44, "e_data": 44, "choic": 44, "significantli": 44, "varianc": 44}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"camacholab": 0, "photon": [0, 27, 30], "bootcamp": 0, "tabl": 0, "content": 0, "front": 0, "matter": 0, "develop": 0, "environ": [0, 31], "passiv": [0, 25, 30], "devic": [0, 30, 34], "design": [0, 8, 9, 24, 26, 30, 44], "simul": [0, 8, 20, 21, 33, 34], "circuit": [0, 3, 27, 30, 34], "activ": [0, 30], "test": 0, "refer": [0, 3, 6, 22, 34], "adjoint": 1, "optim": [1, 24, 35], "advanc": 2, "compon": [2, 6, 21, 25], "cross": 2, "section": 2, "creat": 2, "us": [2, 3, 6, 21, 34], "componentspec": 2, "analyz": 3, "account": 3, "grate": [3, 14], "coupler": [3, 8, 10, 14], "curv": 3, "fit": 3, "extract": 3, "index": [3, 40], "refract": [3, 42], "compact": [4, 30], "model": [4, 21, 30, 32, 40], "element": 6, "polygon": 6, "port": [6, 34], "label": 6, "from": [6, 21], "translat": 6, "rotat": 6, "boolean": 6, "oper": 6, "parametr": 6, "cell": 6, "shape": [6, 35], "gener": 6, "ad": 6, "export": 6, "gd": [6, 11, 19], "file": 6, "import": [6, 34], "connect": [6, 37], "exercis": [6, 8, 18], "credit": 7, "sponsor": 7, "contributor": 7, "direct": 8, "supermod": 8, "visual": [8, 37], "coupl": [8, 33], "length": 8, "gap": 8, "between": 8, "waveguid": [8, 38, 39, 40, 42], "other": [8, 34], "split": [8, 44], "ratio": 8, "show": 8, "across": [8, 34], "dc": 8, "consider": [8, 41, 44], "sourc": [8, 14, 22, 34, 44], "rule": [9, 30], "check": [9, 21, 42], "edg": 10, "meep": [11, 19, 34], "find": [11, 34], "s": [11, 21, 34], "paramet": [11, 14, 34, 40], "through": [11, 42], "gmeep": 11, "git": 12, "github": 12, "glossari": 13, "how": [14, 27, 34], "doe": [14, 27], "work": [14, 27], "essenti": 14, "period": 14, "etch": 14, "depth": 14, "fill": 14, "factor": [14, 33], "introduct": 15, "klayout": 16, "klive": 16, "laboratori": 17, "tool": 17, "pyrolab": 17, "instal": 17, "autog": 17, "defin": [18, 30], "layer": [18, 30], "stack": [18, 30], "silicon": 18, "insul": 18, "gdsfactori": 18, "layermap": 18, "layerview": 18, "layerstack": 18, "multimod": 20, "interferomet": [20, 21], "mmi": 20, "self": 20, "imag": 20, "applic": [20, 27, 33], "mach": 21, "zehnder": 21, "The": [21, 30], "mzi": 21, "write": 21, "netlist": 21, "callabl": 21, "analysi": 21, "balanc": 21, "quick": [21, 42], "definit": 21, "imblanc": 21, "thermo": 21, "optic": [21, 23, 32], "effect": [21, 40], "open": 22, "softwar": [22, 36], "common": 22, "licens": 22, "mit": 22, "apach": 22, "2": [22, 34], "0": 22, "gplv3": 22, "agpl": 22, "i": 23, "o": 23, "invers": 24, "process": [26, 30], "kit": 26, "phase": [27, 28, 29], "shifter": [27, 28, 29], "what": [27, 30, 34, 38], "shift": 27, "A": 27, "simpl": 27, "heater": 28, "advantag": [28, 29], "thermal": 28, "disadvantag": [28, 29], "tune": 28, "effici": 28, "pn": 29, "pin": 29, "junction": 29, "ar": [30, 34], "compar": 30, "electron": 30, "vs": 30, "manufactur": 30, "geometri": [30, 34], "digit": 30, "python": 31, "conda": 31, "virtual": 31, "packag": 31, "manag": 31, "version": 31, "improv": 32, "rai": 32, "support": 32, "mode": [32, 39], "ring": 33, "reson": 33, "critic": [33, 42], "fsr": 33, "free": 33, "spectral": 33, "rang": 33, "qualiti": 33, "field": 33, "scatter": 34, "todo": 34, "why": 34, "demonstr": 34, "simphoni": 34, "quickli": 34, "an": 34, "arbitrari": 34, "step": 34, "1": 34, "run": 34, "singl": 34, "3": 34, "same": 34, "each": 34, "differ": 34, "frequenc": 34, "studio": 37, "code": 37, "configur": 37, "vscode": 37, "wsl": [37, 43], "window": [37, 43], "machin": 37, "wavegudi": 40, "spatial": 40, "dimens": 40, "group": 40, "polar": 41, "total": 42, "intern": 42, "reflect": 42, "kei": 42, "equat": 42, "demo": 42, "angl": 42, "propag": 42, "light": [42, 44], "onli": 43, "y": 44, "branch": 44, "combin": 44}, "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