From f7f9a0b432a8b53bc6ba254b1d969f9adac59379 Mon Sep 17 00:00:00 2001 From: Andeloth Date: Tue, 23 Jan 2024 21:33:12 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20BYUCamac?= =?UTF-8?q?hoLab/Photonics-Bootcamp@367ee226c1b8a5427d896988d32c0988b98f6b?= =?UTF-8?q?10=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...7ec9d6273a66cee4a8621048021573cda77d12.png | Bin 0 -> 12975 bytes ...cf7fc9711ae9df443b39ff96562fa47613df31.png | Bin 0 -> 12543 bytes ...18eb08f4cae62e6a4b0a95e4be1e379298b378.png | Bin 18874 -> 0 bytes ...9edec6dc7dbfabcadf0dd3dea898b99afe6fe2.png | Bin 19361 -> 0 bytes _sources/pages/mzi.ipynb | 84 ++++++------------ pages/directional_couplers.html | 4 +- pages/mzi.html | 64 ++++--------- searchindex.js | 2 +- 8 files changed, 47 insertions(+), 107 deletions(-) create mode 100644 _images/1bf7001c97363cb5f3fb2601b97ec9d6273a66cee4a8621048021573cda77d12.png create mode 100644 _images/6f55ba31bf0a482c807b04fc82cf7fc9711ae9df443b39ff96562fa47613df31.png delete mode 100644 _images/9a415e85d0c43a7a40bed466a818eb08f4cae62e6a4b0a95e4be1e379298b378.png delete mode 100644 _images/d30d68ddd43e49e0882b36f1269edec6dc7dbfabcadf0dd3dea898b99afe6fe2.png diff --git a/_images/1bf7001c97363cb5f3fb2601b97ec9d6273a66cee4a8621048021573cda77d12.png b/_images/1bf7001c97363cb5f3fb2601b97ec9d6273a66cee4a8621048021573cda77d12.png new file mode 100644 index 0000000000000000000000000000000000000000..de229f0b03b9ad2680fbc4c24f522e08c2171052 GIT binary patch literal 12975 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 duM9JYXKo*6)^D<-?y=aNzmxFq{{!eJZmj?S literal 0 HcmV?d00001 diff --git a/_images/6f55ba31bf0a482c807b04fc82cf7fc9711ae9df443b39ff96562fa47613df31.png b/_images/6f55ba31bf0a482c807b04fc82cf7fc9711ae9df443b39ff96562fa47613df31.png new file mode 100644 index 0000000000000000000000000000000000000000..742e63ab6d47133b4003a21514b2a70d698106bf GIT binary patch literal 12543 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 literal 0 HcmV?d00001 diff --git a/_images/9a415e85d0c43a7a40bed466a818eb08f4cae62e6a4b0a95e4be1e379298b378.png b/_images/9a415e85d0c43a7a40bed466a818eb08f4cae62e6a4b0a95e4be1e379298b378.png deleted file mode 100644 index 2259d120a4cc0ea5510eab5fa9b118b3befd6528..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18874 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 B;I04w diff --git a/_images/d30d68ddd43e49e0882b36f1269edec6dc7dbfabcadf0dd3dea898b99afe6fe2.png b/_images/d30d68ddd43e49e0882b36f1269edec6dc7dbfabcadf0dd3dea898b99afe6fe2.png deleted file mode 100644 index 43c706eb3c309e06335bb8006ca45a6c9b44a680..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19361 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" + "
" ] }, "metadata": {}, @@ -541,14 +521,11 @@ "source": [ "import gdsfactory as gf\n", "\n", - "PDK = gf.get_generic_pdk()\n", - "PDK.activate()\n", - "\n", "# The << is shorthand for c.add_ref()\n", "c = gf.Component(\"my_component\")\n", "mzi = c << gf.components.mzi(delta_length=0)\n", "\n", - "c.plot_matplotlib()" + "c.plot()" ] }, { @@ -640,22 +617,14 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 14, "metadata": {}, "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[32m2024-01-09 22:59:50.499\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mgdsfactory.technology.layer_views\u001b[0m:\u001b[36m__init__\u001b[0m:\u001b[36m785\u001b[0m - \u001b[1mImporting LayerViews from YAML file: '/home/sequoia/git/Photonics-Bootcamp/env/lib/python3.11/site-packages/gdsfactory/generic_tech/layer_views.yaml'.\u001b[0m\n", - "\u001b[32m2024-01-09 22:59:50.508\u001b[0m | \u001b[1mINFO \u001b[0m | \u001b[36mgdsfactory.pdk\u001b[0m:\u001b[36mactivate\u001b[0m:\u001b[36m258\u001b[0m - \u001b[1m'generic' PDK is now active\u001b[0m\n" - ] - }, { "data": { - "image/png": "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0CHW2qhaE4DcrnMwGJzQ/SYVVFatWoX7779/3Pt8+OGHmDNnzmR+7aSsXr0aK1euTFwPBALw+Xzw+Xzwer2G/d1CFAqFsGvXLjQ2NsLtdme7OXlN0zQopeDz+WBN95kivb1yKSmRDyhsaABKS9P7N3KEoXUGpM49PVJrmw2orwcK9LVjeK0JQG7XWR8ROZFJBZU777wTy5YtG/c+s2bNmtDvqqurwzvvvDNkW2dnZ+K2sTidTjhHOUKxWq05908yO72mrG1mGFZrmw3QABzuBoocQLAfKODeR0Of0zYboCzJWocGgAI+gOL7R2bkap0n2t5JBZXq6mpUV1efVIOGa2lpwb333ovDhw+jpqYGALB+/Xp4vV7MnTs3LX+DiCBDD0cGAH8IsAAIDQJV5fIZQJReTifQ1c9aE6WRYXNU2tracOzYMbS1tSEej2Pbtm0AgFNPPRVutxuXX3455s6dixtvvBEPPPAA/H4/vv3tb2PFihWj9pgQ0UlSCqguBiqOzzOyc3Vaw7DWRGlnWFC555578POf/zxxXT+L54033sAll1wCm82Gl19+GbfeeitaWlpQWlqKpUuX4vvf/75RTSIqXA474Dl+AJBy1hwZgLUmSivDgsozzzyDZ555Ztz7zJgxA//93/9tVBOIiIgox+XWzBsiIiIqKAwqREREZFoMKkRERGRaDCpERERkWgwqREREZFoMKkRERGRaDCpERERkWgwqREREZFoMKkRERGRaDCpERERkWgwqREREZFoMKkRERGRaDCpERERkWgwqREREZFoMKkRERGRaDCpERERkWgwqREREZFoMKkRERGRaDCpERERkWgwqREREZFoMKkRERGRaDCpERERkWgwqREREZFoMKkRERGRaDCpERERkWgwqREREZFoMKkRERGRaDCpERERkWgwqREREZFoMKkRERGRaDCpERERkWgwqREREZFoMKkRERGRaDCpERERkWoYFlf3792P58uVobm5GcXExTjnlFHz3u99FNBodcr/33nsPF198MVwuF3w+Hx544AGjmkREREQ5xm7UL/7oo4+gaRr+6Z/+Caeeeiref/993Hzzzejr68OPf/xjAEAgEMDll1+OxYsX44knnsD27dtx0003oby8HLfccotRTSMiIqIcYVhQueKKK3DFFVckrs+aNQs7d+7E448/nggqzz77LKLR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j9eTosutAS0iIiIqKAwqREREZFoMKjQmp9OJ7373u3A6ndluSt5jrTODdc4c1jozCqHOOT+ZloiIiPIXe1SIiIjItBhUiIiIyLQYVIiIiMi0GFSIiIjItBhUaEzr1q3DzJkz4XK5sHDhQrzzzjvZblJOW7t2Lc477zx4PB7U1NTgmmuuwc6dO4fcZ2BgACtWrMC0adPgdrtx3XXXobOzM0stzg/33XcfLBYLbr/99sQ21jl9Dh48iL/927/FtGnTUFxcjLPPPhtbtmxJ3K6Uwj333IP6+noUFxdj8eLF2LVrVxZbnHvi8Ti+853voLm5GcXFxTjllFPwgx/8YMhn5OR1nRXRKH75y18qh8OhnnrqKbVjxw518803q/LyctXZ2ZntpuWsJUuWqKefflq9//77atu2beov/uIvVFNTkwqFQon7fPWrX1U+n09t2LBBbdmyRV1wwQXqwgsvzGKrc9s777yjZs6cqebNm6e+/vWvJ7azzulx7NgxNWPGDLVs2TK1efNmtXfvXvXqq6+q3bt3J+5z3333qbKyMvXSSy+pP/3pT+rzn/+8am5uVv39/VlseW6599571bRp09TLL7+s9u3bp1544QXldrvVI488krhPPteZQYVGdf7556sVK1YkrsfjcdXQ0KDWrl2bxVbll8OHDysAauPGjUoppXp6elRRUZF64YUXEvf58MMPFQDV2tqarWbmrGAwqE477TS1fv169Wd/9meJoMI6p883v/lN9ZnPfGbM2zVNU3V1derBBx9MbOvp6VFOp1P927/9WyaamBeuuuoqddNNNw3Zdu2116obbrhBKZX/debQD40QjUaxdetWLF68OLHNarVi8eLFaG1tzWLL8ktvby8AoLKyEgCwdetWxGKxIXWfM2cOmpqaWPeTsGLFClx11VVD6gmwzun0n//5n1iwYAGuv/561NTU4NOf/jT++Z//OXH7vn374Pf7h9S6rKwMCxcuZK0n4cILL8SGDRvw8ccfAwD+9Kc/4fe//z2uvPJKAPlf55z/UEJKvyNHjiAej6O2tnbI9traWnz00UdZalV+0TQNt99+Oy666CKcddZZAAC/3w+Hw4Hy8vIh962trYXf789CK3PXL3/5S/zv//4v3n333RG3sc7ps3fvXjz++ONYuXIlvvWtb+Hdd9/F3//938PhcGDp0qWJeo72XsJaT9yqVasQCAQwZ84c2Gw2xONx3HvvvbjhhhsAIO/rzKBClAUrVqzA+++/j9///vfZbkreaW9vx9e//nWsX78eLpcr283Ja5qmYcGCBfjRj34EAPj0pz+N999/H0888QSWLl2a5dblj3//93/Hs88+i+eeew5nnnkmtm3bhttvvx0NDQ0FUWcO/dAIVVVVsNlsI86C6OzsRF1dXZZalT9uu+02vPzyy3jjjTfQ2NiY2F5XV4doNIqenp4h92fdJ2fr1q04fPgwzj33XNjtdtjtdmzcuBGPPvoo7HY7amtrWec0qa+vx9y5c4dsO+OMM9DW1gYAiXryvWRq7rrrLqxatQpf/OIXcfbZZ+PGG2/EHXfcgbVr1wLI/zozqNAIDocD8+fPx4YNGxLbNE3Dhg0b0NLSksWW5TalFG677Ta8+OKLeP3119Hc3Dzk9vnz56OoqGhI3Xfu3Im2tjbWfRIuu+wybN++Hdu2bUtcFixYgBtuuCHxPeucHhdddNGIU+w//vhjzJgxAwDQ3NyMurq6IbUOBALYvHkzaz0J4XAYVuvQ3bXNZoOmaQAKoM7Zns1L5vTLX/5SOZ1O9cwzz6gPPvhA3XLLLaq8vFz5/f5sNy1n3XrrraqsrEy9+eab6tChQ4lLOBxO3OerX/2qampqUq+//rrasmWLamlpUS0tLVlsdX5IPetHKdY5Xd555x1lt9vVvffeq3bt2qWeffZZVVJSon7xi18k7nPfffep8vJy9Zvf/Ea999576uqrr86b02YzZenSpWr69OmJ05N//etfq6qqKvWNb3wjcZ98rjODCo3pscceU01NTcrhcKjzzz9fbdq0KdtNymkARr08/fTTifv09/erv/u7v1MVFRWqpKRE/dVf/ZU6dOhQ9hqdJ4YHFdY5fX7729+qs846SzmdTjVnzhz1s5/9bMjtmqap73znO6q2tlY5nU512WWXqZ07d2aptbkpEAior3/966qpqUm5XC41a9Ysdffdd6tIJJK4Tz7X2aJUytJ2RERERCbCOSpERERkWgwqREREZFoMKkRERGRaDCpERERkWgwqREREZFoMKkRERGRaDCpERERkWgwqREREZFoMKkRERGRaDCpERERkWgwqREREZFoMKkRERGRa/z8XTKrCES/eCAAAAABJRU5ErkJggg==", + "image/png": "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", "text/plain": [ - "
" + "
" ] }, "metadata": {}, @@ -665,13 +634,10 @@ "source": [ "import gdsfactory as gf\n", "\n", - "PDK = gf.get_generic_pdk()\n", - "PDK.activate()\n", - "\n", "c = gf.Component(\"my_component\")\n", "mzi = c << gf.components.mzi(delta_length=15)\n", "\n", - "c.plot_matplotlib()" + "c.plot()" ] }, { @@ -744,7 +710,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.5" + "version": "3.11.7" }, "orig_nbformat": 4 }, diff --git a/pages/directional_couplers.html b/pages/directional_couplers.html index cdd9e3c..9bce10b 100644 --- a/pages/directional_couplers.html +++ b/pages/directional_couplers.html @@ -564,8 +564,8 @@

Coupling length and the gap between waveguides\(\Delta n\) gets larger, making the cross-over length shorter.

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/mzi.html b/pages/mzi.html index 27c52a2..20f7e8b 100644 --- a/pages/mzi.html +++ b/pages/mzi.html @@ -448,7 +448,7 @@

ModelsFile: ~/git/simphony/simphony/libraries/siepic/models.py +File: ~/miniconda3/envs/photonics/lib/python3.11/site-packages/simphony/libraries/siepic/models.py Type: function

@@ -581,34 +581,22 @@

Simulation (using callables) -
{'gc_in': {'wl': Array(1.55, dtype=float64),
+
{'gc_in': {'wl': 1.55, 'pol': 'te', 'thickness': 220.0, 'dwidth': 0},
+ 'splitter': {'wl': 1.55, 'pol': 'te', 'thickness': 220.0, 'width': 500.0},
+ 'long_wg': {'wl': 1.55,
   'pol': 'te',
-  'thickness': Array(220., dtype=float64),
-  'dwidth': Array(0., dtype=float64)},
- 'splitter': {'wl': Array(1.55, dtype=float64),
+  'length': 0.0,
+  'width': 500.0,
+  'height': 220.0,
+  'loss': 0.0},
+ 'short_wg': {'wl': 1.55,
   'pol': 'te',
-  'thickness': Array(220., dtype=float64),
-  'width': Array(500., dtype=float64)},
- 'long_wg': {'wl': Array(1.55, dtype=float64),
-  'pol': 'te',
-  'length': Array(0., dtype=float64),
-  'width': Array(500., dtype=float64),
-  'height': Array(220., dtype=float64),
-  'loss': Array(0., dtype=float64)},
- 'short_wg': {'wl': Array(1.55, dtype=float64),
-  'pol': 'te',
-  'length': Array(0., dtype=float64),
-  'width': Array(500., dtype=float64),
-  'height': Array(220., dtype=float64),
-  'loss': Array(0., dtype=float64)},
- 'combiner': {'wl': Array(1.55, dtype=float64),
-  'pol': 'te',
-  'thickness': Array(220., dtype=float64),
-  'width': Array(500., dtype=float64)},
- 'gc_out': {'wl': Array(1.55, dtype=float64),
-  'pol': 'te',
-  'thickness': Array(220., dtype=float64),
-  'dwidth': Array(0., dtype=float64)}}
+  'length': 0.0,
+  'width': 500.0,
+  'height': 220.0,
+  'loss': 0.0},
+ 'combiner': {'wl': 1.55, 'pol': 'te', 'thickness': 220.0, 'width': 500.0},
+ 'gc_out': {'wl': 1.55, 'pol': 'te', 'thickness': 220.0, 'dwidth': 0}}
 
@@ -654,23 +642,16 @@

Analysis of a balanced MZI
import gdsfactory as gf
 
-PDK = gf.get_generic_pdk()
-PDK.activate()
-
 # The << is shorthand for c.add_ref()
 c = gf.Component("my_component")
 mzi = c << gf.components.mzi(delta_length=0)
 
-c.plot_matplotlib()
+c.plot()
 

-
2024-01-09 23:00:01.222 | INFO     | gdsfactory.technology.layer_views:__init__:785 - Importing LayerViews from YAML file: '/home/sequoia/git/Photonics-Bootcamp/env/lib/python3.11/site-packages/gdsfactory/generic_tech/layer_views.yaml'.
-2024-01-09 23:00:01.227 | INFO     | gdsfactory.pdk:activate:258 - 'generic' PDK is now active
-
-
-../_images/d30d68ddd43e49e0882b36f1269edec6dc7dbfabcadf0dd3dea898b99afe6fe2.png +../_images/6f55ba31bf0a482c807b04fc82cf7fc9711ae9df443b39ff96562fa47613df31.png

There are there three different relevant amplitudes:

@@ -738,22 +719,15 @@

Analysis of imblanced MZI’s
import gdsfactory as gf
 
-PDK = gf.get_generic_pdk()
-PDK.activate()
-
 c = gf.Component("my_component")
 mzi = c << gf.components.mzi(delta_length=15)
 
-c.plot_matplotlib()
+c.plot()
 
-
2024-01-09 22:59:50.499 | INFO     | gdsfactory.technology.layer_views:__init__:785 - Importing LayerViews from YAML file: '/home/sequoia/git/Photonics-Bootcamp/env/lib/python3.11/site-packages/gdsfactory/generic_tech/layer_views.yaml'.
-2024-01-09 22:59:50.508 | INFO     | gdsfactory.pdk:activate:258 - 'generic' PDK is now active
-
-
-../_images/9a415e85d0c43a7a40bed466a818eb08f4cae62e6a4b0a95e4be1e379298b378.png +../_images/1bf7001c97363cb5f3fb2601b97ec9d6273a66cee4a8621048021573cda77d12.png
diff --git a/searchindex.js b/searchindex.js index a46abb7..cc2d0fe 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], "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 +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, 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, "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], "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, 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], "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, 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, 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, "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, 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], "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, 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, "0m": [18, 21, 39], "1minfo": [18, 39], "36mgdsfactori": 18, "36m__init__": 18, "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, 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, "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, "miniconda3": [21, 33, 39], "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, "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], "my_compon": 21, "delta_length": 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], "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, "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, "32m2024": 39, "01": [39, 44], "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