Technolgy file archetecture revised with dictionary input method

This commit is contained in:
=
2026-06-07 17:07:20 +08:00
parent 8a17f1dde0
commit 54d20eb154
163 changed files with 5948 additions and 1297 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+33 -3
View File
@@ -364,14 +364,46 @@
<h2 id="C">C</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="mxpic/components/primitives/active/dev_ps.html#mxpic.components.primitives.active.dev_ps.PS_PIN.cell">cell (mxpic.components.primitives.active.dev_ps.PS_PIN attribute)</a>
<li><a href="mxpic/components/composites/LoopMirror.html#mxpic.components.composites.LoopMirror.LoopMirror.cell">cell (mxpic.components.composites.LoopMirror.LoopMirror attribute)</a>
<ul>
<li><a href="mxpic/components/composites/MZI.html#mxpic.components.composites.MZI.MZI.cell">(mxpic.components.composites.MZI.MZI attribute)</a>
</li>
<li><a href="mxpic/components/composites/MZI.html#mxpic.components.composites.MZI.MZI_2st_ubend.cell">(mxpic.components.composites.MZI.MZI_2st_ubend attribute)</a>
</li>
<li><a href="mxpic/components/composites/MZI.html#mxpic.components.composites.MZI.MZI_Butterfly.cell">(mxpic.components.composites.MZI.MZI_Butterfly attribute)</a>
</li>
<li><a href="mxpic/components/composites/MZI.html#mxpic.components.composites.MZI.MZI_Eubend.cell">(mxpic.components.composites.MZI.MZI_Eubend attribute)</a>
</li>
<li><a href="mxpic/components/composites/MZI.html#mxpic.components.composites.MZI.MZI_NS.cell">(mxpic.components.composites.MZI.MZI_NS attribute)</a>
</li>
<li><a href="mxpic/components/composites/MZI.html#mxpic.components.composites.MZI.MZI_NS_ubend.cell">(mxpic.components.composites.MZI.MZI_NS_ubend attribute)</a>
</li>
<li><a href="mxpic/components/composites/MZI.html#mxpic.components.composites.MZI.MZI_Ubend.cell">(mxpic.components.composites.MZI.MZI_Ubend attribute)</a>
</li>
<li><a href="mxpic/components/composites/MZI_mesh.html#mxpic.components.composites.MZI_mesh.AMZI_W.cell">(mxpic.components.composites.MZI_mesh.AMZI_W attribute)</a>
</li>
<li><a href="mxpic/components/composites/MZI_mesh.html#mxpic.components.composites.MZI_mesh.MZI_mesh_Parl.cell">(mxpic.components.composites.MZI_mesh.MZI_mesh_Parl attribute)</a>
</li>
<li><a href="mxpic/components/composites/MZI_mesh.html#mxpic.components.composites.MZI_mesh.MZI_mesh_Tri.cell">(mxpic.components.composites.MZI_mesh.MZI_mesh_Tri attribute)</a>
</li>
<li><a href="mxpic/components/composites/MZI_mesh.html#mxpic.components.composites.MZI_mesh.MZI_mesh_U.cell">(mxpic.components.composites.MZI_mesh.MZI_mesh_U attribute)</a>
</li>
<li><a href="mxpic/components/composites/MZI_mesh.html#mxpic.components.composites.MZI_mesh.UMat_2x2_S.cell">(mxpic.components.composites.MZI_mesh.UMat_2x2_S attribute)</a>
</li>
<li><a href="mxpic/components/composites/MZI_mesh.html#mxpic.components.composites.MZI_mesh.W_waveguide.cell">(mxpic.components.composites.MZI_mesh.W_waveguide attribute)</a>
</li>
<li><a href="mxpic/components/composites/SptTree.html#mxpic.components.composites.SptTree.SplittingTree.cell">(mxpic.components.composites.SptTree.SplittingTree attribute)</a>
</li>
<li><a href="mxpic/components/primitives/active/dev_ps.html#mxpic.components.primitives.active.dev_ps.PS_PIN.cell">(mxpic.components.primitives.active.dev_ps.PS_PIN attribute)</a>
</li>
<li><a href="mxpic/components/primitives/pic/spiral.html#mxpic.components.primitives.pic.spiral.spiral_circle.cell">(mxpic.components.primitives.pic.spiral.spiral_circle attribute)</a>
</li>
<li><a href="mxpic/components/primitives/spiral.html#mxpic.components.primitives.spiral.spiral_circle.cell">(mxpic.components.primitives.spiral.spiral_circle attribute)</a>
</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="mxpic/components/geometry/rings.html#mxpic.components.geometry.rings.circle">circle (class in mxpic.components.geometry.rings)</a>
</li>
<li><a href="mxpic/components/geometry/curves.html#mxpic.components.geometry.curves.Clothoid">Clothoid (class in mxpic.components.geometry.curves)</a>
@@ -386,8 +418,6 @@
</ul></li>
<li><a href="mxpic/components/primitives/pic/cross.html#mxpic.components.primitives.pic.cross.Cross">Cross (class in mxpic.components.primitives.pic.cross)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="mxpic/components/primitives/pic/cross.html#mxpic.components.primitives.pic.cross.Cross_Sine">Cross_Sine (class in mxpic.components.primitives.pic.cross)</a>
</li>
<li><a href="mxpic/components/primitives/passive/crows.html#mxpic.components.primitives.passive.crows.CROW_AED">CROW_AED (class in mxpic.components.primitives.passive.crows)</a>
+30 -1
View File
@@ -375,12 +375,38 @@
<section id="module-mxpic.components.composites.LoopMirror">
<span id="mxpic-components-composites-loopmirror"></span><h1>mxpic.components.composites.LoopMirror<a class="headerlink" href="#module-mxpic.components.composites.LoopMirror" title="Link to this heading">#</a></h1>
<p>Loop mirror composite layouts.</p>
<section id="loopmirror">
<h2>LoopMirror<a class="headerlink" href="#loopmirror" title="Link to this heading">#</a></h2>
<dl class="py class">
<dt class="sig sig-object py" id="mxpic.components.composites.LoopMirror.LoopMirror">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.composites.LoopMirror.</span></span><span class="sig-name descname"><span class="pre">LoopMirror</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">xs_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'strip'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.45</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Radius</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">20</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">angle</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">45</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sharp_patch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">BS</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.LoopMirror.LoopMirror" title="Link to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Loop mirror reflector built from a beam splitter and return bend.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>xs_wg</strong> (<em>str</em><em>, </em><em>optional</em>) Waveguide cross-section name.</p></li>
<li><p><strong>w_wg</strong> (<em>float</em><em>, </em><em>optional</em>) Optical waveguide width in microns.</p></li>
<li><p><strong>Radius</strong> (<em>float</em><em>, </em><em>optional</em>) Bend radius used for the loop mirror routing.</p></li>
<li><p><strong>angle</strong> (<em>float</em><em>, </em><em>optional</em>) Bend angle in degrees for the side bends.</p></li>
<li><p><strong>sharp_patch</strong> (<em>bool</em><em>, </em><em>optional</em>) Add cladding patch geometry around sharp loop features.</p></li>
<li><p><strong>BS</strong> (<em>Any</em><em>, </em><em>optional</em>) Beam splitter object or cell. If not provided, a default directional
coupler is generated.</p></li>
</ul>
</dd>
</dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="mxpic.components.composites.LoopMirror.LoopMirror.cell">
<span class="sig-name descname"><span class="pre">cell</span></span><a class="headerlink" href="#mxpic.components.composites.LoopMirror.LoopMirror.cell" title="Link to this definition">#</a></dt>
<dd><p>Generated loop mirror layout cell.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>nazca.Cell</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
@@ -434,7 +460,10 @@
<nav class="bd-toc-nav page-toc" aria-labelledby="pst-page-navigation-heading-2">
<ul class="visible nav section-nav flex-column">
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#loopmirror">LoopMirror</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.LoopMirror.LoopMirror"><code class="docutils literal notranslate"><span class="pre">LoopMirror</span></code></a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.LoopMirror.LoopMirror"><code class="docutils literal notranslate"><span class="pre">LoopMirror</span></code></a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.LoopMirror.LoopMirror.cell"><code class="docutils literal notranslate"><span class="pre">LoopMirror.cell</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
+291 -6
View File
@@ -375,12 +375,54 @@
<section id="module-mxpic.components.composites.MZI">
<span id="mxpic-components-composites-mzi"></span><h1>mxpic.components.composites.MZI<a class="headerlink" href="#module-mxpic.components.composites.MZI" title="Link to this heading">#</a></h1>
<p>Mach-Zehnder interferometer composite layouts.</p>
<section id="mzi">
<h2>MZI<a class="headerlink" href="#mzi" title="Link to this heading">#</a></h2>
<dl class="py class">
<dt class="sig sig-object py" id="mxpic.components.composites.MZI.MZI">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.composites.MZI.</span></span><span class="sig-name descname"><span class="pre">MZI</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'strip'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.45</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dL_Amzi</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_arm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">150</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">R_bend</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">D_arm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">75</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">D_port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_arm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_heater</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'heater'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_heater</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Ltp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">15</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_metal</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'metal'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_metal</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">via_h2m</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">isl</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">outer_isl</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dual_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_patch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">BS</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">BS2</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sharp_patch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_pins</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.MZI.MZI" title="Link to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Mach-Zehnder interferometer with optional heaters and isolation.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> (<em>str</em><em>, </em><em>optional</em>) Nazca cell name. If omitted, the generated cell is not instantiated.</p></li>
<li><p><strong>xs_wg</strong> (<em>str</em><em>, </em><em>optional</em>) Optical waveguide cross-section name.</p></li>
<li><p><strong>w_wg</strong> (<em>float</em><em>, </em><em>optional</em>) Input and output waveguide width in microns.</p></li>
<li><p><strong>dL_Amzi</strong> (<em>float</em><em>, </em><em>optional</em>) Differential arm length for asymmetric MZI operation.</p></li>
<li><p><strong>L_arm</strong> (<em>int</em><em>, </em><em>optional</em>) Nominal straight arm length.</p></li>
<li><p><strong>R_bend</strong> (<em>int</em><em>, </em><em>optional</em>) Bend radius used by internal routing.</p></li>
<li><p><strong>D_arm</strong> (<em>int</em><em>, </em><em>optional</em>) Vertical distance between interferometer arms.</p></li>
<li><p><strong>D_port</strong> (<em>Any</em><em>, </em><em>optional</em>) Output port pitch. If omitted, the beam splitter port pitch is used.</p></li>
<li><p><strong>w_arm</strong> (<em>float</em><em>, </em><em>optional</em>) Internal arm waveguide width.</p></li>
<li><p><strong>xs_heater</strong> (<em>str</em><em>, </em><em>optional</em>) Heater cross-section name.</p></li>
<li><p><strong>w_heater</strong> (<em>float</em><em>, </em><em>optional</em>) Heater width. Use 0 to disable heater drawing.</p></li>
<li><p><strong>Ltp</strong> (<em>int</em><em>, </em><em>optional</em>) Taper length between bus and arm widths.</p></li>
<li><p><strong>xs_metal</strong> (<em>str</em><em>, </em><em>optional</em>) Metal routing cross-section name.</p></li>
<li><p><strong>w_metal</strong> (<em>float</em><em>, </em><em>optional</em>) Metal routing width.</p></li>
<li><p><strong>via_h2m</strong> (<em>Any</em><em>, </em><em>optional</em>) Heater-to-metal via object or cell.</p></li>
<li><p><strong>isl</strong> (<em>Any</em><em>, </em><em>optional</em>) Isolation trench object or cell.</p></li>
<li><p><strong>outer_isl</strong> (<em>bool</em><em>, </em><em>optional</em>) Add outer isolation structures.</p></li>
<li><p><strong>dual_ht</strong> (<em>bool</em><em>, </em><em>optional</em>) Add heaters on both arms.</p></li>
<li><p><strong>L_patch</strong> (<em>float</em><em>, </em><em>optional</em>) Straight patch length at routing interfaces.</p></li>
<li><p><strong>BS</strong> (<em>Any</em><em>, </em><em>optional</em>) First beam splitter cell or object. If omitted, a default DC is used.</p></li>
<li><p><strong>BS2</strong> (<em>Any</em><em>, </em><em>optional</em>) Second beam splitter cell or object. If omitted, <code class="docutils literal notranslate"><span class="pre">BS</span></code> is reused.</p></li>
<li><p><strong>sharp_patch</strong> (<em>bool</em><em>, </em><em>optional</em>) Add cladding patches around sharp geometry features.</p></li>
<li><p><strong>show_pins</strong> (<em>bool</em><em>, </em><em>optional</em>) Show Nazca pin stubs in the generated layout.</p></li>
</ul>
</dd>
</dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="mxpic.components.composites.MZI.MZI.cell">
<span class="sig-name descname"><span class="pre">cell</span></span><a class="headerlink" href="#mxpic.components.composites.MZI.MZI.cell" title="Link to this definition">#</a></dt>
<dd><p>Generated MZI layout cell.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>nazca.Cell</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
@@ -390,6 +432,46 @@
<dt class="sig sig-object py" id="mxpic.components.composites.MZI.MZI_NS">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.composites.MZI.</span></span><span class="sig-name descname"><span class="pre">MZI_NS</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">BS</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_wg</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Ln</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Ls</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Ltp</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">R_bend</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_wg</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_patch</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">D_arm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">40</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L12</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_heater</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">via_h2m</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">isl</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_pins</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">D_port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sharp_patch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dual_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.MZI.MZI_NS" title="Link to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Nested-straight MZI composite with taperable arm widths.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> (<em>str</em>) Nazca cell name.</p></li>
<li><p><strong>BS</strong> (<em>Any</em>) Beam splitter cell or object used at both splitter positions.</p></li>
<li><p><strong>xs_wg</strong> (<em>str</em>) Optical waveguide cross-section name.</p></li>
<li><p><strong>w1</strong> (<em>float</em>) Input/output waveguide width.</p></li>
<li><p><strong>w2</strong> (<em>float</em>) Internal arm waveguide width.</p></li>
<li><p><strong>L0</strong> (<em>Any</em>) Input/output straight section length.</p></li>
<li><p><strong>Ln</strong> (<em>Any</em>) Length of the nominal arm section.</p></li>
<li><p><strong>Ls</strong> (<em>Any</em>) Length of the shifted arm section.</p></li>
<li><p><strong>Ltp</strong> (<em>Any</em>) Taper length between <code class="docutils literal notranslate"><span class="pre">w1</span></code> and <code class="docutils literal notranslate"><span class="pre">w2</span></code>.</p></li>
<li><p><strong>R_bend</strong> (<em>Any</em>) Bend radius used by the arm routing.</p></li>
<li><p><strong>w_wg</strong> (<em>float</em>) Optical waveguide width used for ports and routing.</p></li>
<li><p><strong>L_patch</strong> (<em>Any</em>) Straight patch length at routing interfaces.</p></li>
<li><p><strong>D_arm</strong> (<em>int</em><em>, </em><em>optional</em>) Vertical distance between interferometer arms.</p></li>
<li><p><strong>L12</strong> (<em>Any</em><em>, </em><em>optional</em>) Optional length between the first and second beam splitter regions.</p></li>
<li><p><strong>w_heater</strong> (<em>float</em><em>, </em><em>optional</em>) Heater width. Use 0 to disable heater drawing.</p></li>
<li><p><strong>L_ht</strong> (<em>Any</em><em>, </em><em>optional</em>) Heater length override.</p></li>
<li><p><strong>via_h2m</strong> (<em>Any</em><em>, </em><em>optional</em>) Heater-to-metal via object or cell.</p></li>
<li><p><strong>isl</strong> (<em>Any</em><em>, </em><em>optional</em>) Isolation trench object or cell.</p></li>
<li><p><strong>show_pins</strong> (<em>bool</em><em>, </em><em>optional</em>) Show Nazca pin stubs in the generated layout.</p></li>
<li><p><strong>D_port</strong> (<em>Any</em><em>, </em><em>optional</em>) Output port pitch override.</p></li>
<li><p><strong>sharp_patch</strong> (<em>bool</em><em>, </em><em>optional</em>) Add cladding patches around sharp geometry features.</p></li>
<li><p><strong>dual_ht</strong> (<em>bool</em><em>, </em><em>optional</em>) Add heaters on both arms.</p></li>
</ul>
</dd>
</dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="mxpic.components.composites.MZI.MZI_NS.cell">
<span class="sig-name descname"><span class="pre">cell</span></span><a class="headerlink" href="#mxpic.components.composites.MZI.MZI_NS.cell" title="Link to this definition">#</a></dt>
<dd><p>Generated nested-straight MZI layout cell.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>nazca.Cell</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
@@ -399,6 +481,45 @@
<dt class="sig sig-object py" id="mxpic.components.composites.MZI.MZI_NS_ubend">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.composites.MZI.</span></span><span class="sig-name descname"><span class="pre">MZI_NS_ubend</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">BS</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_wg</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Ln</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Ls</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Ltp</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">R_bend</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_wg</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_patch</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L12</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">via_h2m</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">isl</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_pins</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">D_port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sharp_patch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dual_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.MZI.MZI_NS_ubend" title="Link to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Nested-straight MZI composite using U-bend arm routing.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> (<em>str</em>) Nazca cell name.</p></li>
<li><p><strong>BS</strong> (<em>Any</em>) Beam splitter cell or object used at both splitter positions.</p></li>
<li><p><strong>xs_wg</strong> (<em>str</em>) Optical waveguide cross-section name.</p></li>
<li><p><strong>w1</strong> (<em>float</em>) Input/output waveguide width.</p></li>
<li><p><strong>w2</strong> (<em>float</em>) Internal arm waveguide width.</p></li>
<li><p><strong>L0</strong> (<em>Any</em>) Input/output straight section length.</p></li>
<li><p><strong>Ln</strong> (<em>Any</em>) Length of the nominal arm section.</p></li>
<li><p><strong>Ls</strong> (<em>Any</em>) Length of the shifted arm section.</p></li>
<li><p><strong>Ltp</strong> (<em>Any</em>) Taper length between <code class="docutils literal notranslate"><span class="pre">w1</span></code> and <code class="docutils literal notranslate"><span class="pre">w2</span></code>.</p></li>
<li><p><strong>R_bend</strong> (<em>Any</em>) Bend radius used by the U-bends.</p></li>
<li><p><strong>w_wg</strong> (<em>float</em>) Optical waveguide width used for ports and routing.</p></li>
<li><p><strong>L_patch</strong> (<em>Any</em>) Straight patch length at routing interfaces.</p></li>
<li><p><strong>L12</strong> (<em>Any</em><em>, </em><em>optional</em>) Optional length between splitter regions.</p></li>
<li><p><strong>w_ht</strong> (<em>float</em><em>, </em><em>optional</em>) Heater width. Use 0 to disable heater drawing.</p></li>
<li><p><strong>L_ht</strong> (<em>int</em><em>, </em><em>optional</em>) Heater length override.</p></li>
<li><p><strong>via_h2m</strong> (<em>Any</em><em>, </em><em>optional</em>) Heater-to-metal via object or cell.</p></li>
<li><p><strong>isl</strong> (<em>Any</em><em>, </em><em>optional</em>) Isolation trench object or cell.</p></li>
<li><p><strong>show_pins</strong> (<em>bool</em><em>, </em><em>optional</em>) Show Nazca pin stubs in the generated layout.</p></li>
<li><p><strong>D_port</strong> (<em>Any</em><em>, </em><em>optional</em>) Output port pitch override.</p></li>
<li><p><strong>sharp_patch</strong> (<em>bool</em><em>, </em><em>optional</em>) Add cladding patches around sharp geometry features.</p></li>
<li><p><strong>dual_ht</strong> (<em>bool</em><em>, </em><em>optional</em>) Add heaters on both arms.</p></li>
</ul>
</dd>
</dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="mxpic.components.composites.MZI.MZI_NS_ubend.cell">
<span class="sig-name descname"><span class="pre">cell</span></span><a class="headerlink" href="#mxpic.components.composites.MZI.MZI_NS_ubend.cell" title="Link to this definition">#</a></dt>
<dd><p>Generated U-bend MZI layout cell.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>nazca.Cell</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
@@ -408,6 +529,43 @@
<dt class="sig sig-object py" id="mxpic.components.composites.MZI.MZI_2st_ubend">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.composites.MZI.</span></span><span class="sig-name descname"><span class="pre">MZI_2st_ubend</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">BS1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">BS2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">BS3</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_wg</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Ln1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Ls1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Ln2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Ls2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Ltp</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">R_bend</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_wg</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_patch</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">via_h2m</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">isl</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L12</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.MZI.MZI_2st_ubend" title="Link to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Two-stage U-bend MZI composite with three beam splitters.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> (<em>str</em>) Nazca cell name.</p></li>
<li><p><strong>BS1</strong> (<em>Any</em>) Beam splitter cells or objects for the three splitter stages.</p></li>
<li><p><strong>BS2</strong> (<em>Any</em>) Beam splitter cells or objects for the three splitter stages.</p></li>
<li><p><strong>BS3</strong> (<em>Any</em>) Beam splitter cells or objects for the three splitter stages.</p></li>
<li><p><strong>xs_wg</strong> (<em>str</em>) Optical waveguide cross-section name.</p></li>
<li><p><strong>w1</strong> (<em>float</em>) Input/output waveguide width.</p></li>
<li><p><strong>w2</strong> (<em>float</em>) Internal arm waveguide width.</p></li>
<li><p><strong>L0</strong> (<em>Any</em>) Input/output straight section length.</p></li>
<li><p><strong>Ln1</strong> (<em>Any</em>) Nominal and shifted arm lengths for the first stage.</p></li>
<li><p><strong>Ls1</strong> (<em>Any</em>) Nominal and shifted arm lengths for the first stage.</p></li>
<li><p><strong>Ln2</strong> (<em>Any</em>) Nominal and shifted arm lengths for the second stage.</p></li>
<li><p><strong>Ls2</strong> (<em>Any</em>) Nominal and shifted arm lengths for the second stage.</p></li>
<li><p><strong>Ltp</strong> (<em>Any</em>) Taper length between <code class="docutils literal notranslate"><span class="pre">w1</span></code> and <code class="docutils literal notranslate"><span class="pre">w2</span></code>.</p></li>
<li><p><strong>R_bend</strong> (<em>Any</em>) Bend radius used by U-bend routing.</p></li>
<li><p><strong>w_wg</strong> (<em>float</em>) Optical waveguide width used for ports and routing.</p></li>
<li><p><strong>L_patch</strong> (<em>Any</em>) Straight patch length at routing interfaces.</p></li>
<li><p><strong>via_h2m</strong> (<em>Any</em><em>, </em><em>optional</em>) Heater-to-metal via object or cell.</p></li>
<li><p><strong>isl</strong> (<em>Any</em><em>, </em><em>optional</em>) Isolation trench object or cell.</p></li>
<li><p><strong>L12</strong> (<em>Any</em><em>, </em><em>optional</em>) Optional length between beam splitter regions.</p></li>
</ul>
</dd>
</dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="mxpic.components.composites.MZI.MZI_2st_ubend.cell">
<span class="sig-name descname"><span class="pre">cell</span></span><a class="headerlink" href="#mxpic.components.composites.MZI.MZI_2st_ubend.cell" title="Link to this definition">#</a></dt>
<dd><p>Generated two-stage MZI layout cell.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>nazca.Cell</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
@@ -417,6 +575,38 @@
<dt class="sig sig-object py" id="mxpic.components.composites.MZI.MZI_Eubend">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.composites.MZI.</span></span><span class="sig-name descname"><span class="pre">MZI_Eubend</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">BS</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_arm</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_wg</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_arm</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dL_Amzi</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_patch</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_wg</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Rmax</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">30</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Rmin</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dL</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_arm_min</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_pins</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sharp_patch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.MZI.MZI_Eubend" title="Link to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Euler U-bend MZI composite for compact asymmetric routing.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> (<em>str</em>) Nazca cell name.</p></li>
<li><p><strong>BS</strong> (<em>Any</em>) Beam splitter cell or object.</p></li>
<li><p><strong>w_arm</strong> (<em>float</em>) Internal arm waveguide width.</p></li>
<li><p><strong>w_wg</strong> (<em>float</em>) Input/output waveguide width.</p></li>
<li><p><strong>L_arm</strong> (<em>Any</em>) Nominal straight arm length.</p></li>
<li><p><strong>dL_Amzi</strong> (<em>float</em>) Differential length for asymmetric MZI operation.</p></li>
<li><p><strong>L_patch</strong> (<em>Any</em>) Straight patch length at routing interfaces.</p></li>
<li><p><strong>xs_wg</strong> (<em>str</em>) Optical waveguide cross-section name.</p></li>
<li><p><strong>Rmax</strong> (<em>int</em><em>, </em><em>optional</em>) Maximum Euler bend radius.</p></li>
<li><p><strong>Rmin</strong> (<em>int</em><em>, </em><em>optional</em>) Minimum Euler bend radius.</p></li>
<li><p><strong>dL</strong> (<em>float</em><em>, </em><em>optional</em>) Length-search resolution for the Euler compensation.</p></li>
<li><p><strong>w_arm_min</strong> (<em>float</em><em>, </em><em>optional</em>) Minimum arm width used during tapering.</p></li>
<li><p><strong>show_pins</strong> (<em>bool</em><em>, </em><em>optional</em>) Show Nazca pin stubs in the generated layout.</p></li>
<li><p><strong>sharp_patch</strong> (<em>bool</em><em>, </em><em>optional</em>) Add cladding patches around sharp geometry features.</p></li>
</ul>
</dd>
</dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="mxpic.components.composites.MZI.MZI_Eubend.cell">
<span class="sig-name descname"><span class="pre">cell</span></span><a class="headerlink" href="#mxpic.components.composites.MZI.MZI_Eubend.cell" title="Link to this definition">#</a></dt>
<dd><p>Generated Euler U-bend MZI layout cell.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>nazca.Cell</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
@@ -426,6 +616,41 @@
<dt class="sig sig-object py" id="mxpic.components.composites.MZI.MZI_Ubend">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.composites.MZI.</span></span><span class="sig-name descname"><span class="pre">MZI_Ubend</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">BS</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_arm</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'strip'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_arm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_tp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">R_bend</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.45</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_patch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">via_h2m</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">isl</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_pins</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">D_port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sharp_patch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dual_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.MZI.MZI_Ubend" title="Link to this definition">#</a></dt>
<dd><p>Bases: <a class="reference internal" href="#mxpic.components.composites.MZI.MZI_NS_ubend" title="mxpic.components.composites.MZI.MZI_NS_ubend"><code class="xref py py-class docutils literal notranslate"><span class="pre">MZI_NS_ubend</span></code></a></p>
<p>Convenience U-bend MZI wrapper with default width handling.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> (<em>str</em>) Nazca cell name.</p></li>
<li><p><strong>BS</strong> (<em>Any</em>) Beam splitter cell or object.</p></li>
<li><p><strong>L_arm</strong> (<em>Any</em>) Nominal arm length.</p></li>
<li><p><strong>xs_wg</strong> (<em>str</em><em>, </em><em>optional</em>) Optical waveguide cross-section name.</p></li>
<li><p><strong>w_arm</strong> (<em>float</em><em>, </em><em>optional</em>) Internal arm waveguide width.</p></li>
<li><p><strong>L_tp</strong> (<em>int</em><em>, </em><em>optional</em>) Taper length between bus and arm widths.</p></li>
<li><p><strong>R_bend</strong> (<em>int</em><em>, </em><em>optional</em>) Bend radius used by U-bend routing.</p></li>
<li><p><strong>w_wg</strong> (<em>float</em><em>, </em><em>optional</em>) Input/output waveguide width.</p></li>
<li><p><strong>L_patch</strong> (<em>float</em><em>, </em><em>optional</em>) Straight patch length at routing interfaces.</p></li>
<li><p><strong>w_ht</strong> (<em>float</em><em>, </em><em>optional</em>) Heater width. Use 0 to disable heater drawing.</p></li>
<li><p><strong>L_ht</strong> (<em>int</em><em>, </em><em>optional</em>) Heater length override.</p></li>
<li><p><strong>via_h2m</strong> (<em>Any</em><em>, </em><em>optional</em>) Heater-to-metal via object or cell.</p></li>
<li><p><strong>isl</strong> (<em>Any</em><em>, </em><em>optional</em>) Isolation trench object or cell.</p></li>
<li><p><strong>show_pins</strong> (<em>bool</em><em>, </em><em>optional</em>) Show Nazca pin stubs in the generated layout.</p></li>
<li><p><strong>D_port</strong> (<em>Any</em><em>, </em><em>optional</em>) Output port pitch override.</p></li>
<li><p><strong>sharp_patch</strong> (<em>bool</em><em>, </em><em>optional</em>) Add cladding patches around sharp geometry features.</p></li>
<li><p><strong>dual_ht</strong> (<em>bool</em><em>, </em><em>optional</em>) Add heaters on both arms.</p></li>
</ul>
</dd>
</dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="mxpic.components.composites.MZI.MZI_Ubend.cell">
<span class="sig-name descname"><span class="pre">cell</span></span><a class="headerlink" href="#mxpic.components.composites.MZI.MZI_Ubend.cell" title="Link to this definition">#</a></dt>
<dd><p>Generated U-bend MZI layout cell.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>nazca.Cell</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
@@ -435,6 +660,47 @@
<dt class="sig sig-object py" id="mxpic.components.composites.MZI.MZI_Butterfly">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.composites.MZI.</span></span><span class="sig-name descname"><span class="pre">MZI_Butterfly</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'strip'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.45</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dL_AMZI</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_arm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">150</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_inner</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">R_bend</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">D_port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_arm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1.0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'heater'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Ltp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">15</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_metal</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'metal'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_metal</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">via_h2m</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">isl</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">outer_isl</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dual_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_patch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">BS</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">BS2</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sharp_patch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_pins</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.MZI.MZI_Butterfly" title="Link to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Butterfly-style MZI composite with compact folded arms.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> (<em>str</em><em>, </em><em>optional</em>) Nazca cell name. If omitted, the generated cell is not instantiated.</p></li>
<li><p><strong>xs_wg</strong> (<em>str</em><em>, </em><em>optional</em>) Optical waveguide cross-section name.</p></li>
<li><p><strong>w_wg</strong> (<em>float</em><em>, </em><em>optional</em>) Input and output waveguide width in microns.</p></li>
<li><p><strong>dL_AMZI</strong> (<em>float</em><em>, </em><em>optional</em>) Differential arm length for asymmetric MZI operation.</p></li>
<li><p><strong>L_arm</strong> (<em>int</em><em>, </em><em>optional</em>) Nominal straight arm length.</p></li>
<li><p><strong>L_inner</strong> (<em>int</em><em>, </em><em>optional</em>) Inner straight section length used by the butterfly fold.</p></li>
<li><p><strong>R_bend</strong> (<em>int</em><em>, </em><em>optional</em>) Bend radius used by internal routing.</p></li>
<li><p><strong>D_port</strong> (<em>Any</em><em>, </em><em>optional</em>) Output port pitch. If omitted, beam splitter pitch is used.</p></li>
<li><p><strong>w_arm</strong> (<em>float</em><em>, </em><em>optional</em>) Internal arm waveguide width.</p></li>
<li><p><strong>xs_ht</strong> (<em>str</em><em>, </em><em>optional</em>) Heater cross-section name.</p></li>
<li><p><strong>w_ht</strong> (<em>float</em><em>, </em><em>optional</em>) Heater width. Use 0 to disable heater drawing.</p></li>
<li><p><strong>Ltp</strong> (<em>int</em><em>, </em><em>optional</em>) Taper length between bus and arm widths.</p></li>
<li><p><strong>xs_metal</strong> (<em>str</em><em>, </em><em>optional</em>) Metal routing cross-section name.</p></li>
<li><p><strong>w_metal</strong> (<em>float</em><em>, </em><em>optional</em>) Metal routing width.</p></li>
<li><p><strong>via_h2m</strong> (<em>Any</em><em>, </em><em>optional</em>) Heater-to-metal via object or cell.</p></li>
<li><p><strong>isl</strong> (<em>Any</em><em>, </em><em>optional</em>) Isolation trench object or cell.</p></li>
<li><p><strong>outer_isl</strong> (<em>bool</em><em>, </em><em>optional</em>) Add outer isolation structures.</p></li>
<li><p><strong>dual_ht</strong> (<em>bool</em><em>, </em><em>optional</em>) Add heaters on both arms.</p></li>
<li><p><strong>L_patch</strong> (<em>float</em><em>, </em><em>optional</em>) Straight patch length at routing interfaces.</p></li>
<li><p><strong>BS</strong> (<em>Any</em><em>, </em><em>optional</em>) First beam splitter cell or object. If omitted, a default DC is used.</p></li>
<li><p><strong>BS2</strong> (<em>Any</em><em>, </em><em>optional</em>) Second beam splitter cell or object. If omitted, <code class="docutils literal notranslate"><span class="pre">BS</span></code> is reused.</p></li>
<li><p><strong>sharp_patch</strong> (<em>bool</em><em>, </em><em>optional</em>) Add cladding patches around sharp geometry features.</p></li>
<li><p><strong>show_pins</strong> (<em>bool</em><em>, </em><em>optional</em>) Show Nazca pin stubs in the generated layout.</p></li>
</ul>
</dd>
</dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="mxpic.components.composites.MZI.MZI_Butterfly.cell">
<span class="sig-name descname"><span class="pre">cell</span></span><a class="headerlink" href="#mxpic.components.composites.MZI.MZI_Butterfly.cell" title="Link to this definition">#</a></dt>
<dd><p>Generated butterfly MZI layout cell.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>nazca.Cell</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="mxpic.components.composites.MZI.MZI_Butterfly.generate_gds">
<span class="sig-name descname"><span class="pre">generate_gds</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">show_pin</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.MZI.MZI_Butterfly.generate_gds" title="Link to this definition">#</a></dt>
@@ -498,31 +764,50 @@
<nav class="bd-toc-nav page-toc" aria-labelledby="pst-page-navigation-heading-2">
<ul class="visible nav section-nav flex-column">
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#mzi">MZI</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI"><code class="docutils literal notranslate"><span class="pre">MZI</span></code></a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI"><code class="docutils literal notranslate"><span class="pre">MZI</span></code></a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI.cell"><code class="docutils literal notranslate"><span class="pre">MZI.cell</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#mzi-ns">MZI_NS</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI_NS"><code class="docutils literal notranslate"><span class="pre">MZI_NS</span></code></a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI_NS"><code class="docutils literal notranslate"><span class="pre">MZI_NS</span></code></a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI_NS.cell"><code class="docutils literal notranslate"><span class="pre">MZI_NS.cell</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#mzi-ns-ubend">MZI_NS_ubend</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI_NS_ubend"><code class="docutils literal notranslate"><span class="pre">MZI_NS_ubend</span></code></a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI_NS_ubend"><code class="docutils literal notranslate"><span class="pre">MZI_NS_ubend</span></code></a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI_NS_ubend.cell"><code class="docutils literal notranslate"><span class="pre">MZI_NS_ubend.cell</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#mzi-2st-ubend">MZI_2st_ubend</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI_2st_ubend"><code class="docutils literal notranslate"><span class="pre">MZI_2st_ubend</span></code></a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI_2st_ubend"><code class="docutils literal notranslate"><span class="pre">MZI_2st_ubend</span></code></a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI_2st_ubend.cell"><code class="docutils literal notranslate"><span class="pre">MZI_2st_ubend.cell</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#mzi-eubend">MZI_Eubend</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI_Eubend"><code class="docutils literal notranslate"><span class="pre">MZI_Eubend</span></code></a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI_Eubend"><code class="docutils literal notranslate"><span class="pre">MZI_Eubend</span></code></a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI_Eubend.cell"><code class="docutils literal notranslate"><span class="pre">MZI_Eubend.cell</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#mzi-ubend">MZI_Ubend</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI_Ubend"><code class="docutils literal notranslate"><span class="pre">MZI_Ubend</span></code></a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI_Ubend"><code class="docutils literal notranslate"><span class="pre">MZI_Ubend</span></code></a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI_Ubend.cell"><code class="docutils literal notranslate"><span class="pre">MZI_Ubend.cell</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#mzi-butterfly">MZI_Butterfly</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI_Butterfly"><code class="docutils literal notranslate"><span class="pre">MZI_Butterfly</span></code></a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI_Butterfly.cell"><code class="docutils literal notranslate"><span class="pre">MZI_Butterfly.cell</span></code></a></li>
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI_Butterfly.generate_gds"><code class="docutils literal notranslate"><span class="pre">MZI_Butterfly.generate_gds()</span></code></a></li>
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI.MZI_Butterfly.generate_test_gds"><code class="docutils literal notranslate"><span class="pre">MZI_Butterfly.generate_test_gds()</span></code></a></li>
</ul>
+249 -2
View File
@@ -375,12 +375,48 @@
<section id="module-mxpic.components.composites.MZI_mesh">
<span id="mxpic-components-composites-mzi-mesh"></span><h1>mxpic.components.composites.MZI_mesh<a class="headerlink" href="#module-mxpic.components.composites.MZI_mesh" title="Link to this heading">#</a></h1>
<p>Mach-Zehnder interferometer mesh composite layouts.</p>
<section id="w-waveguide">
<h2>W_waveguide<a class="headerlink" href="#w-waveguide" title="Link to this heading">#</a></h2>
<dl class="py class">
<dt class="sig sig-object py" id="mxpic.components.composites.MZI_mesh.W_waveguide">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.composites.MZI_mesh.</span></span><span class="sig-name descname"><span class="pre">W_waveguide</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">xs_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'strip'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.45</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">R_bend</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dL</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">20</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">80</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_heater</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'heater'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2.5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_metal</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'metal'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_metal</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">6</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">via_h2m</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">isl</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">n_bends</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">3</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_pins</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ISL_UPPER</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ISL_LOWER</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_patch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.25</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reverse</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.MZI_mesh.W_waveguide" title="Link to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>W-shaped waveguide phase shifter section.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>xs_wg</strong> (<em>str</em><em>, </em><em>optional</em>) Waveguide cross-section name.</p></li>
<li><p><strong>w_wg</strong> (<em>float</em><em>, </em><em>optional</em>) Optical waveguide width in microns.</p></li>
<li><p><strong>R_bend</strong> (<em>int</em><em>, </em><em>optional</em>) Bend radius used by W-shaped routing.</p></li>
<li><p><strong>dL</strong> (<em>float</em><em>, </em><em>optional</em>) Vertical excursion of the W routing.</p></li>
<li><p><strong>L_wg</strong> (<em>int</em><em>, </em><em>optional</em>) Total phase shifter waveguide length.</p></li>
<li><p><strong>xs_heater</strong> (<em>str</em><em>, </em><em>optional</em>) Heater cross-section name.</p></li>
<li><p><strong>w_ht</strong> (<em>float</em><em>, </em><em>optional</em>) Heater width. Use 0 to disable heater geometry.</p></li>
<li><p><strong>xs_metal</strong> (<em>str</em><em>, </em><em>optional</em>) Metal routing cross-section name.</p></li>
<li><p><strong>w_metal</strong> (<em>float</em><em>, </em><em>optional</em>) Metal routing width.</p></li>
<li><p><strong>via_h2m</strong> (<em>Any</em><em>, </em><em>optional</em>) Heater-to-metal via object or cell.</p></li>
<li><p><strong>isl</strong> (<em>Any</em><em>, </em><em>optional</em>) Optional isolation helper.</p></li>
<li><p><strong>n_bends</strong> (<em>int</em><em>, </em><em>optional</em>) Number of W bend periods.</p></li>
<li><p><strong>show_pins</strong> (<em>bool</em><em>, </em><em>optional</em>) Show Nazca pin stubs in the generated layout.</p></li>
<li><p><strong>ISL_UPPER</strong> (<em>bool</em><em>, </em><em>optional</em>) Enable upper isolation placement when used.</p></li>
<li><p><strong>ISL_LOWER</strong> (<em>bool</em><em>, </em><em>optional</em>) Enable lower isolation placement when used.</p></li>
<li><p><strong>L_patch</strong> (<em>float</em><em>, </em><em>optional</em>) Straight patch length at bend interfaces.</p></li>
<li><p><strong>reverse</strong> (<em>bool</em><em>, </em><em>optional</em>) Swap optical input/output pin naming.</p></li>
</ul>
</dd>
</dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="mxpic.components.composites.MZI_mesh.W_waveguide.cell">
<span class="sig-name descname"><span class="pre">cell</span></span><a class="headerlink" href="#mxpic.components.composites.MZI_mesh.W_waveguide.cell" title="Link to this definition">#</a></dt>
<dd><p>Generated W-waveguide layout cell.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>nazca.Cell</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="mxpic.components.composites.MZI_mesh.W_waveguide.generate_gds">
<span class="sig-name descname"><span class="pre">generate_gds</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">show_pins</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.MZI_mesh.W_waveguide.generate_gds" title="Link to this definition">#</a></dt>
@@ -395,6 +431,46 @@
<dt class="sig sig-object py" id="mxpic.components.composites.MZI_mesh.UMat_2x2_S">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.composites.MZI_mesh.</span></span><span class="sig-name descname"><span class="pre">UMat_2x2_S</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'unit_mesh_2x2'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">BS</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'strip'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_arm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">80</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">D_arm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">50</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.45</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">R_bend</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">6</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_arm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Ltp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">15</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_heater</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'heater'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bend_heaters</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dL_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">30</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dL_AMZI</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_heater</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_metal</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'metal'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2.5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_metal</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">8</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">via_h2m</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">isl</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">ht_same_side</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port_align</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_pins</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.MZI_mesh.UMat_2x2_S" title="Link to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Standard 2x2 MZI mesh unit with phase shifter routing.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> (<em>str</em><em>, </em><em>optional</em>) Nazca cell name.</p></li>
<li><p><strong>BS</strong> (<em>Any</em><em>, </em><em>optional</em>) Beam splitter cell or object. If omitted, a default DC is generated.</p></li>
<li><p><strong>xs_wg</strong> (<em>str</em><em>, </em><em>optional</em>) Optical waveguide cross-section name.</p></li>
<li><p><strong>L_arm</strong> (<em>int</em><em>, </em><em>optional</em>) Straight arm length between beam splitters.</p></li>
<li><p><strong>D_arm</strong> (<em>int</em><em>, </em><em>optional</em>) Vertical spacing between MZI arms.</p></li>
<li><p><strong>w_wg</strong> (<em>float</em><em>, </em><em>optional</em>) Input/output waveguide width.</p></li>
<li><p><strong>R_bend</strong> (<em>int</em><em>, </em><em>optional</em>) Routing bend radius.</p></li>
<li><p><strong>w_arm</strong> (<em>float</em><em>, </em><em>optional</em>) Internal arm width. If omitted, <code class="docutils literal notranslate"><span class="pre">w_wg</span></code> is used.</p></li>
<li><p><strong>Ltp</strong> (<em>int</em><em>, </em><em>optional</em>) Taper length between bus and arm widths.</p></li>
<li><p><strong>xs_heater</strong> (<em>str</em><em>, </em><em>optional</em>) Heater cross-section name.</p></li>
<li><p><strong>bend_heaters</strong> (<em>bool</em><em>, </em><em>optional</em>) Route heaters along bent arms.</p></li>
<li><p><strong>dL_ht</strong> (<em>float</em><em>, </em><em>optional</em>) Heater routing vertical offset.</p></li>
<li><p><strong>dL_AMZI</strong> (<em>float</em><em>, </em><em>optional</em>) Differential length added for AMZI behavior.</p></li>
<li><p><strong>L_heater</strong> (<em>Any</em><em>, </em><em>optional</em>) Optional explicit heater length.</p></li>
<li><p><strong>xs_metal</strong> (<em>str</em><em>, </em><em>optional</em>) Metal routing cross-section name.</p></li>
<li><p><strong>w_ht</strong> (<em>float</em><em>, </em><em>optional</em>) Heater width.</p></li>
<li><p><strong>w_metal</strong> (<em>float</em><em>, </em><em>optional</em>) Metal routing width.</p></li>
<li><p><strong>via_h2m</strong> (<em>Any</em><em>, </em><em>optional</em>) Heater-to-metal via object or cell.</p></li>
<li><p><strong>isl</strong> (<em>Any</em><em>, </em><em>optional</em>) Isolation helper object or cell.</p></li>
<li><p><strong>ht_same_side</strong> (<em>bool</em><em>, </em><em>optional</em>) Place both heater contacts on the same side.</p></li>
<li><p><strong>port_align</strong> (<em>bool</em><em>, </em><em>optional</em>) Align optical ports to a common grid.</p></li>
<li><p><strong>show_pins</strong> (<em>bool</em><em>, </em><em>optional</em>) Show Nazca pin stubs in the generated layout.</p></li>
</ul>
</dd>
</dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="mxpic.components.composites.MZI_mesh.UMat_2x2_S.cell">
<span class="sig-name descname"><span class="pre">cell</span></span><a class="headerlink" href="#mxpic.components.composites.MZI_mesh.UMat_2x2_S.cell" title="Link to this definition">#</a></dt>
<dd><p>Generated 2x2 unit mesh layout cell.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>nazca.Cell</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="mxpic.components.composites.MZI_mesh.UMat_2x2_S.generate_gds">
<span class="sig-name descname"><span class="pre">generate_gds</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">show_pins</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.MZI_mesh.UMat_2x2_S.generate_gds" title="Link to this definition">#</a></dt>
@@ -409,6 +485,47 @@
<dt class="sig sig-object py" id="mxpic.components.composites.MZI_mesh.MZI_mesh_U">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.composites.MZI_mesh.</span></span><span class="sig-name descname"><span class="pre">MZI_mesh_U</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">BS</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'strip'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_arm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">80</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">D_arm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">50</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.45</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">n_ports</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">8</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">R_bend</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">6</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_compensate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">R_compensate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">mesh_type</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'triangle'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_heater</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'heater'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bend_heaters</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dL_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">30</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_metal</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'metal'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2.5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_metal</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">8</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_arm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Ltp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">via_h2m</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">isl</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port_align</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_heater</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_pins</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.MZI_mesh.MZI_mesh_U" title="Link to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Universal MZI mesh built from repeated 2x2 MZI units.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>BS</strong> (<em>Any</em><em>, </em><em>optional</em>) Beam splitter cell or object used by unit cells.</p></li>
<li><p><strong>xs_wg</strong> (<em>str</em><em>, </em><em>optional</em>) Optical waveguide cross-section name.</p></li>
<li><p><strong>L_arm</strong> (<em>int</em><em>, </em><em>optional</em>) Straight arm length in each unit MZI.</p></li>
<li><p><strong>D_arm</strong> (<em>int</em><em>, </em><em>optional</em>) Vertical spacing between MZI arms.</p></li>
<li><p><strong>w_wg</strong> (<em>float</em><em>, </em><em>optional</em>) Input/output waveguide width.</p></li>
<li><p><strong>n_ports</strong> (<em>int</em><em>, </em><em>optional</em>) Number of mesh ports.</p></li>
<li><p><strong>R_bend</strong> (<em>int</em><em>, </em><em>optional</em>) Routing bend radius.</p></li>
<li><p><strong>L_compensate</strong> (<em>int</em><em>, </em><em>optional</em>) Length used for compensation routing.</p></li>
<li><p><strong>R_compensate</strong> (<em>int</em><em>, </em><em>optional</em>) Bend radius used by compensation routing.</p></li>
<li><p><strong>mesh_type</strong> (<em>str</em><em>, </em><em>optional</em>) Mesh topology name, such as <code class="docutils literal notranslate"><span class="pre">&quot;triangle&quot;</span></code> or <code class="docutils literal notranslate"><span class="pre">&quot;parallelogram&quot;</span></code>.</p></li>
<li><p><strong>xs_heater</strong> (<em>str</em><em>, </em><em>optional</em>) Heater cross-section name.</p></li>
<li><p><strong>bend_heaters</strong> (<em>bool</em><em>, </em><em>optional</em>) Route heaters along bent arms.</p></li>
<li><p><strong>dL_ht</strong> (<em>float</em><em>, </em><em>optional</em>) Heater routing vertical offset.</p></li>
<li><p><strong>xs_metal</strong> (<em>str</em><em>, </em><em>optional</em>) Metal routing cross-section name.</p></li>
<li><p><strong>w_ht</strong> (<em>float</em><em>, </em><em>optional</em>) Heater width.</p></li>
<li><p><strong>w_metal</strong> (<em>float</em><em>, </em><em>optional</em>) Metal routing width.</p></li>
<li><p><strong>w_arm</strong> (<em>float</em><em>, </em><em>optional</em>) Internal arm width. If omitted, <code class="docutils literal notranslate"><span class="pre">w_wg</span></code> is used.</p></li>
<li><p><strong>Ltp</strong> (<em>int</em><em>, </em><em>optional</em>) Taper length between bus and arm widths.</p></li>
<li><p><strong>via_h2m</strong> (<em>Any</em><em>, </em><em>optional</em>) Heater-to-metal via object or cell.</p></li>
<li><p><strong>isl</strong> (<em>Any</em><em>, </em><em>optional</em>) Isolation helper object or cell.</p></li>
<li><p><strong>port_align</strong> (<em>bool</em><em>, </em><em>optional</em>) Align optical ports to a common grid.</p></li>
<li><p><strong>L_heater</strong> (<em>Any</em><em>, </em><em>optional</em>) Optional explicit heater length.</p></li>
<li><p><strong>show_pins</strong> (<em>bool</em><em>, </em><em>optional</em>) Show Nazca pin stubs in the generated layout.</p></li>
</ul>
</dd>
</dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="mxpic.components.composites.MZI_mesh.MZI_mesh_U.cell">
<span class="sig-name descname"><span class="pre">cell</span></span><a class="headerlink" href="#mxpic.components.composites.MZI_mesh.MZI_mesh_U.cell" title="Link to this definition">#</a></dt>
<dd><p>Generated universal MZI mesh layout cell.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>nazca.Cell</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="mxpic.components.composites.MZI_mesh.MZI_mesh_U.generate_gds">
<span class="sig-name descname"><span class="pre">generate_gds</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">show_pins</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.MZI_mesh.MZI_mesh_U.generate_gds" title="Link to this definition">#</a></dt>
@@ -423,6 +540,46 @@
<dt class="sig sig-object py" id="mxpic.components.composites.MZI_mesh.AMZI_W">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.composites.MZI_mesh.</span></span><span class="sig-name descname"><span class="pre">AMZI_W</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'AMZI_W'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">BS</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'strip'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">D_arm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">50</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.45</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">R_bend</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">6</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">n_bend</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">3</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_arm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Ltp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">15</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_heater</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'heater'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dL_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">30</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dL_AMZI</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_heater</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_metal</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'metal'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2.5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_metal</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">8</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">D_port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">via_h2m</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">isl</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port_align</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_patch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.25</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_pins</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.MZI_mesh.AMZI_W" title="Link to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Asymmetric MZI with W-shaped phase shifter arms.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> (<em>str</em><em>, </em><em>optional</em>) Nazca cell name.</p></li>
<li><p><strong>BS</strong> (<em>Any</em><em>, </em><em>optional</em>) Beam splitter cell or object. If omitted, a default DC is generated.</p></li>
<li><p><strong>xs_wg</strong> (<em>str</em><em>, </em><em>optional</em>) Optical waveguide cross-section name.</p></li>
<li><p><strong>D_arm</strong> (<em>int</em><em>, </em><em>optional</em>) Vertical spacing between MZI arms.</p></li>
<li><p><strong>w_wg</strong> (<em>float</em><em>, </em><em>optional</em>) Input/output waveguide width.</p></li>
<li><p><strong>R_bend</strong> (<em>int</em><em>, </em><em>optional</em>) Routing bend radius.</p></li>
<li><p><strong>n_bend</strong> (<em>int</em><em>, </em><em>optional</em>) Number of W-shaped bend periods.</p></li>
<li><p><strong>w_arm</strong> (<em>float</em><em>, </em><em>optional</em>) Internal arm width. If omitted, <code class="docutils literal notranslate"><span class="pre">w_wg</span></code> is used.</p></li>
<li><p><strong>Ltp</strong> (<em>int</em><em>, </em><em>optional</em>) Taper length between bus and arm widths.</p></li>
<li><p><strong>xs_heater</strong> (<em>str</em><em>, </em><em>optional</em>) Heater cross-section name.</p></li>
<li><p><strong>dL_ht</strong> (<em>float</em><em>, </em><em>optional</em>) Heater routing vertical offset.</p></li>
<li><p><strong>dL_AMZI</strong> (<em>float</em><em>, </em><em>optional</em>) Differential length added for AMZI behavior.</p></li>
<li><p><strong>L_heater</strong> (<em>Any</em><em>, </em><em>optional</em>) Optional explicit heater length.</p></li>
<li><p><strong>xs_metal</strong> (<em>str</em><em>, </em><em>optional</em>) Metal routing cross-section name.</p></li>
<li><p><strong>w_ht</strong> (<em>float</em><em>, </em><em>optional</em>) Heater width.</p></li>
<li><p><strong>w_metal</strong> (<em>float</em><em>, </em><em>optional</em>) Metal routing width.</p></li>
<li><p><strong>D_port</strong> (<em>Any</em><em>, </em><em>optional</em>) Output port pitch override.</p></li>
<li><p><strong>via_h2m</strong> (<em>Any</em><em>, </em><em>optional</em>) Heater-to-metal via object or cell.</p></li>
<li><p><strong>isl</strong> (<em>Any</em><em>, </em><em>optional</em>) Isolation helper object or cell.</p></li>
<li><p><strong>port_align</strong> (<em>bool</em><em>, </em><em>optional</em>) Align optical ports to a common grid.</p></li>
<li><p><strong>L_patch</strong> (<em>float</em><em>, </em><em>optional</em>) Straight patch length at routing interfaces.</p></li>
<li><p><strong>show_pins</strong> (<em>bool</em><em>, </em><em>optional</em>) Show Nazca pin stubs in the generated layout.</p></li>
</ul>
</dd>
</dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="mxpic.components.composites.MZI_mesh.AMZI_W.cell">
<span class="sig-name descname"><span class="pre">cell</span></span><a class="headerlink" href="#mxpic.components.composites.MZI_mesh.AMZI_W.cell" title="Link to this definition">#</a></dt>
<dd><p>Generated asymmetric W-MZI layout cell.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>nazca.Cell</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="mxpic.components.composites.MZI_mesh.AMZI_W.generate_gds">
<span class="sig-name descname"><span class="pre">generate_gds</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">show_pins</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.MZI_mesh.AMZI_W.generate_gds" title="Link to this definition">#</a></dt>
@@ -442,6 +599,46 @@
<dt class="sig sig-object py" id="mxpic.components.composites.MZI_mesh.MZI_mesh_Parl">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.composites.MZI_mesh.</span></span><span class="sig-name descname"><span class="pre">MZI_mesh_Parl</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">BS</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'strip'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_arm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">80</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">D_arm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">50</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.45</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">n_ports</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">8</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">R_bend</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">6</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_compensate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">R_compensate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_heater</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'heater'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bend_heaters</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dL_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_metal</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'metal'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2.5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_metal</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">8</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_ram</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.45</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Ltp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">15</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">via_h2m</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">isl</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_heater</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port_align</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_pins</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.MZI_mesh.MZI_mesh_Parl" title="Link to this definition">#</a></dt>
<dd><p>Bases: <a class="reference internal" href="#mxpic.components.composites.MZI_mesh.MZI_mesh_U" title="mxpic.components.composites.MZI_mesh.MZI_mesh_U"><code class="xref py py-class docutils literal notranslate"><span class="pre">MZI_mesh_U</span></code></a></p>
<p>Parallelogram MZI mesh topology wrapper.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>BS</strong> (<em>Any</em><em>, </em><em>optional</em>) Beam splitter cell or object used by unit cells.</p></li>
<li><p><strong>xs_wg</strong> (<em>str</em><em>, </em><em>optional</em>) Optical waveguide cross-section name.</p></li>
<li><p><strong>L_arm</strong> (<em>int</em><em>, </em><em>optional</em>) Straight arm length in each unit MZI.</p></li>
<li><p><strong>D_arm</strong> (<em>int</em><em>, </em><em>optional</em>) Vertical spacing between MZI arms.</p></li>
<li><p><strong>w_wg</strong> (<em>float</em><em>, </em><em>optional</em>) Input/output waveguide width.</p></li>
<li><p><strong>n_ports</strong> (<em>int</em><em>, </em><em>optional</em>) Number of mesh ports.</p></li>
<li><p><strong>R_bend</strong> (<em>int</em><em>, </em><em>optional</em>) Routing bend radius.</p></li>
<li><p><strong>L_compensate</strong> (<em>int</em><em>, </em><em>optional</em>) Length used for compensation routing.</p></li>
<li><p><strong>R_compensate</strong> (<em>int</em><em>, </em><em>optional</em>) Bend radius used by compensation routing.</p></li>
<li><p><strong>xs_heater</strong> (<em>str</em><em>, </em><em>optional</em>) Heater cross-section name.</p></li>
<li><p><strong>bend_heaters</strong> (<em>bool</em><em>, </em><em>optional</em>) Route heaters along bent arms.</p></li>
<li><p><strong>dL_ht</strong> (<em>float</em><em>, </em><em>optional</em>) Heater routing vertical offset.</p></li>
<li><p><strong>xs_metal</strong> (<em>str</em><em>, </em><em>optional</em>) Metal routing cross-section name.</p></li>
<li><p><strong>w_ht</strong> (<em>float</em><em>, </em><em>optional</em>) Heater width.</p></li>
<li><p><strong>w_metal</strong> (<em>float</em><em>, </em><em>optional</em>) Metal routing width.</p></li>
<li><p><strong>w_ram</strong> (<em>float</em><em>, </em><em>optional</em>) Internal arm width passed to the unit mesh generator.</p></li>
<li><p><strong>Ltp</strong> (<em>int</em><em>, </em><em>optional</em>) Taper length between bus and arm widths.</p></li>
<li><p><strong>via_h2m</strong> (<em>Any</em><em>, </em><em>optional</em>) Heater-to-metal via object or cell.</p></li>
<li><p><strong>isl</strong> (<em>Any</em><em>, </em><em>optional</em>) Isolation helper object or cell.</p></li>
<li><p><strong>L_heater</strong> (<em>Any</em><em>, </em><em>optional</em>) Optional explicit heater length.</p></li>
<li><p><strong>port_align</strong> (<em>bool</em><em>, </em><em>optional</em>) Align optical ports to a common grid.</p></li>
<li><p><strong>show_pins</strong> (<em>bool</em><em>, </em><em>optional</em>) Show Nazca pin stubs in the generated layout.</p></li>
</ul>
</dd>
</dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="mxpic.components.composites.MZI_mesh.MZI_mesh_Parl.cell">
<span class="sig-name descname"><span class="pre">cell</span></span><a class="headerlink" href="#mxpic.components.composites.MZI_mesh.MZI_mesh_Parl.cell" title="Link to this definition">#</a></dt>
<dd><p>Generated parallelogram MZI mesh layout cell.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>nazca.Cell</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
@@ -451,6 +648,46 @@
<dt class="sig sig-object py" id="mxpic.components.composites.MZI_mesh.MZI_mesh_Tri">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.composites.MZI_mesh.</span></span><span class="sig-name descname"><span class="pre">MZI_mesh_Tri</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">BS</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'strip'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_arm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">80</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">D_arm</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">50</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_wg</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.45</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">n_ports</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">8</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">R_bend</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">6</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_compensate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">R_compensate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_heater</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'heater'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bend_heaters</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dL_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs_metal</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'metal'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_ht</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2.5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_metal</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">8</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_ram</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.45</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Ltp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">15</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">via_h2m</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">isl</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">L_heater</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port_align</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_pins</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.MZI_mesh.MZI_mesh_Tri" title="Link to this definition">#</a></dt>
<dd><p>Bases: <a class="reference internal" href="#mxpic.components.composites.MZI_mesh.MZI_mesh_U" title="mxpic.components.composites.MZI_mesh.MZI_mesh_U"><code class="xref py py-class docutils literal notranslate"><span class="pre">MZI_mesh_U</span></code></a></p>
<p>Triangular MZI mesh topology wrapper.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>BS</strong> (<em>Any</em><em>, </em><em>optional</em>) Beam splitter cell or object used by unit cells.</p></li>
<li><p><strong>xs_wg</strong> (<em>str</em><em>, </em><em>optional</em>) Optical waveguide cross-section name.</p></li>
<li><p><strong>L_arm</strong> (<em>int</em><em>, </em><em>optional</em>) Straight arm length in each unit MZI.</p></li>
<li><p><strong>D_arm</strong> (<em>int</em><em>, </em><em>optional</em>) Vertical spacing between MZI arms.</p></li>
<li><p><strong>w_wg</strong> (<em>float</em><em>, </em><em>optional</em>) Input/output waveguide width.</p></li>
<li><p><strong>n_ports</strong> (<em>int</em><em>, </em><em>optional</em>) Number of mesh ports.</p></li>
<li><p><strong>R_bend</strong> (<em>int</em><em>, </em><em>optional</em>) Routing bend radius.</p></li>
<li><p><strong>L_compensate</strong> (<em>int</em><em>, </em><em>optional</em>) Length used for compensation routing.</p></li>
<li><p><strong>R_compensate</strong> (<em>int</em><em>, </em><em>optional</em>) Bend radius used by compensation routing.</p></li>
<li><p><strong>xs_heater</strong> (<em>str</em><em>, </em><em>optional</em>) Heater cross-section name.</p></li>
<li><p><strong>bend_heaters</strong> (<em>bool</em><em>, </em><em>optional</em>) Route heaters along bent arms.</p></li>
<li><p><strong>dL_ht</strong> (<em>float</em><em>, </em><em>optional</em>) Heater routing vertical offset.</p></li>
<li><p><strong>xs_metal</strong> (<em>str</em><em>, </em><em>optional</em>) Metal routing cross-section name.</p></li>
<li><p><strong>w_ht</strong> (<em>float</em><em>, </em><em>optional</em>) Heater width.</p></li>
<li><p><strong>w_metal</strong> (<em>float</em><em>, </em><em>optional</em>) Metal routing width.</p></li>
<li><p><strong>w_ram</strong> (<em>float</em><em>, </em><em>optional</em>) Internal arm width passed to the unit mesh generator.</p></li>
<li><p><strong>Ltp</strong> (<em>int</em><em>, </em><em>optional</em>) Taper length between bus and arm widths.</p></li>
<li><p><strong>via_h2m</strong> (<em>Any</em><em>, </em><em>optional</em>) Heater-to-metal via object or cell.</p></li>
<li><p><strong>isl</strong> (<em>Any</em><em>, </em><em>optional</em>) Isolation helper object or cell.</p></li>
<li><p><strong>L_heater</strong> (<em>Any</em><em>, </em><em>optional</em>) Optional explicit heater length.</p></li>
<li><p><strong>port_align</strong> (<em>bool</em><em>, </em><em>optional</em>) Align optical ports to a common grid.</p></li>
<li><p><strong>show_pins</strong> (<em>bool</em><em>, </em><em>optional</em>) Show Nazca pin stubs in the generated layout.</p></li>
</ul>
</dd>
</dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="mxpic.components.composites.MZI_mesh.MZI_mesh_Tri.cell">
<span class="sig-name descname"><span class="pre">cell</span></span><a class="headerlink" href="#mxpic.components.composites.MZI_mesh.MZI_mesh_Tri.cell" title="Link to this definition">#</a></dt>
<dd><p>Generated triangular MZI mesh layout cell.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>nazca.Cell</p>
</dd>
</dl>
</dd></dl>
</dd></dl>
</section>
@@ -505,6 +742,7 @@
<ul class="visible nav section-nav flex-column">
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#w-waveguide">W_waveguide</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI_mesh.W_waveguide"><code class="docutils literal notranslate"><span class="pre">W_waveguide</span></code></a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI_mesh.W_waveguide.cell"><code class="docutils literal notranslate"><span class="pre">W_waveguide.cell</span></code></a></li>
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI_mesh.W_waveguide.generate_gds"><code class="docutils literal notranslate"><span class="pre">W_waveguide.generate_gds()</span></code></a></li>
</ul>
</li>
@@ -512,6 +750,7 @@
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#umat-2x2-s">UMat_2x2_S</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI_mesh.UMat_2x2_S"><code class="docutils literal notranslate"><span class="pre">UMat_2x2_S</span></code></a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI_mesh.UMat_2x2_S.cell"><code class="docutils literal notranslate"><span class="pre">UMat_2x2_S.cell</span></code></a></li>
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI_mesh.UMat_2x2_S.generate_gds"><code class="docutils literal notranslate"><span class="pre">UMat_2x2_S.generate_gds()</span></code></a></li>
</ul>
</li>
@@ -519,6 +758,7 @@
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#mzi-mesh-u">MZI_mesh_U</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI_mesh.MZI_mesh_U"><code class="docutils literal notranslate"><span class="pre">MZI_mesh_U</span></code></a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI_mesh.MZI_mesh_U.cell"><code class="docutils literal notranslate"><span class="pre">MZI_mesh_U.cell</span></code></a></li>
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI_mesh.MZI_mesh_U.generate_gds"><code class="docutils literal notranslate"><span class="pre">MZI_mesh_U.generate_gds()</span></code></a></li>
</ul>
</li>
@@ -526,6 +766,7 @@
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#amzi-w">AMZI_W</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI_mesh.AMZI_W"><code class="docutils literal notranslate"><span class="pre">AMZI_W</span></code></a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI_mesh.AMZI_W.cell"><code class="docutils literal notranslate"><span class="pre">AMZI_W.cell</span></code></a></li>
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI_mesh.AMZI_W.generate_gds"><code class="docutils literal notranslate"><span class="pre">AMZI_W.generate_gds()</span></code></a></li>
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI_mesh.AMZI_W.generate_test_gds"><code class="docutils literal notranslate"><span class="pre">AMZI_W.generate_test_gds()</span></code></a></li>
</ul>
@@ -533,11 +774,17 @@
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#mzi-mesh-parl">MZI_mesh_Parl</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI_mesh.MZI_mesh_Parl"><code class="docutils literal notranslate"><span class="pre">MZI_mesh_Parl</span></code></a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI_mesh.MZI_mesh_Parl"><code class="docutils literal notranslate"><span class="pre">MZI_mesh_Parl</span></code></a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI_mesh.MZI_mesh_Parl.cell"><code class="docutils literal notranslate"><span class="pre">MZI_mesh_Parl.cell</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#mzi-mesh-tri">MZI_mesh_Tri</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI_mesh.MZI_mesh_Tri"><code class="docutils literal notranslate"><span class="pre">MZI_mesh_Tri</span></code></a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI_mesh.MZI_mesh_Tri"><code class="docutils literal notranslate"><span class="pre">MZI_mesh_Tri</span></code></a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.MZI_mesh.MZI_mesh_Tri.cell"><code class="docutils literal notranslate"><span class="pre">MZI_mesh_Tri.cell</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
+23 -34
View File
@@ -375,51 +375,39 @@
<section id="module-mxpic.components.composites.SptTree">
<span id="mxpic-components-composites-spttree"></span><h1>mxpic.components.composites.SptTree<a class="headerlink" href="#module-mxpic.components.composites.SptTree" title="Link to this heading">#</a></h1>
<p>Optical splitting tree composite layouts.</p>
<section id="splittingtree">
<h2>SplittingTree<a class="headerlink" href="#splittingtree" title="Link to this heading">#</a></h2>
<dl class="py class">
<dt class="sig sig-object py" id="mxpic.components.composites.SptTree.SplittingTree">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.composites.SptTree.</span></span><span class="sig-name descname"><span class="pre">SplittingTree</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ybranch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">output_number</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">16</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">bend_radius</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">output_pitch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_pins</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.SptTree.SplittingTree" title="Link to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Class for generating splitting tree.</p>
<dl class="simple">
<dt>Paras:</dt><dd><ol class="arabic simple">
<li><dl class="simple">
<dt>ybranch [class] (Default None)</dt><dd><ul class="simple">
<li><p>length (Default: 28) Length of the ybranch</p></li>
<li><p>width (Default: 2) Pitch between two output waveguides</p></li>
<li><p>w_wg (Default: 0.45) Width of output waveguide</p></li>
<li><dl class="simple">
<dt>cell (Default: box)</dt><dd><ul>
<li><p>a1 [Pin] Input waveguide</p></li>
<li><p>b1 [Pin] Output waveguide1</p></li>
<li><p>b2 [Pin] Output waveguide2</p></li>
<p>Binary splitter tree built from repeated Y-branch cells.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>ybranch</strong> (<em>Any</em><em>, </em><em>optional</em>) Y-branch object with a <code class="docutils literal notranslate"><span class="pre">cell</span></code> attribute and <code class="docutils literal notranslate"><span class="pre">a1</span></code>, <code class="docutils literal notranslate"><span class="pre">b1</span></code>, and
<code class="docutils literal notranslate"><span class="pre">b2</span></code> pins. If omitted, a simple box-based Y-branch is generated.</p></li>
<li><p><strong>output_number</strong> (<em>int</em><em>, </em><em>optional</em>) Number of output channels. Values are coerced to the nearest lower
power of two when needed.</p></li>
<li><p><strong>bend_radius</strong> (<em>int</em><em>, </em><em>optional</em>) Bend radius used to route between splitter levels.</p></li>
<li><p><strong>output_pitch</strong> (<em>Any</em><em>, </em><em>optional</em>) Output channel pitch in microns. If omitted, the Y-branch output
pitch is used.</p></li>
<li><p><strong>show_pins</strong> (<em>bool</em><em>, </em><em>optional</em>) Show Nazca pin stubs in the generated layout.</p></li>
</ul>
</dd>
</dl>
</li>
</ul>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>output_number [-] (Default: 16)</dt><dd><p>Number of output channels(Need to be 2^N)</p>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>bend_radius [um] (Default: 10)</dt><dd><p>Bend radius used to connect the different layer of Y branch</p>
</dd>
</dl>
</li>
<li><dl class="simple">
<dt>output_pitch [um] (Default: None)</dt><dd><p>Can define the pitch of output channel(If ==None, then pitch=self.width, which is the minimum pitch)</p>
</dd>
</dl>
</li>
</ol>
<dl class="py attribute">
<dt class="sig sig-object py" id="mxpic.components.composites.SptTree.SplittingTree.cell">
<span class="sig-name descname"><span class="pre">cell</span></span><a class="headerlink" href="#mxpic.components.composites.SptTree.SplittingTree.cell" title="Link to this definition">#</a></dt>
<dd><p>Generated splitting tree layout cell.</p>
<dl class="field-list simple">
<dt class="field-odd">Type<span class="colon">:</span></dt>
<dd class="field-odd"><p>nazca.Cell</p>
</dd>
</dl>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="mxpic.components.composites.SptTree.SplittingTree.generate_gds">
<span class="sig-name descname"><span class="pre">generate_gds</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.composites.SptTree.SplittingTree.generate_gds" title="Link to this definition">#</a></dt>
@@ -480,6 +468,7 @@
<ul class="visible nav section-nav flex-column">
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#splittingtree">SplittingTree</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.SptTree.SplittingTree"><code class="docutils literal notranslate"><span class="pre">SplittingTree</span></code></a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.SptTree.SplittingTree.cell"><code class="docutils literal notranslate"><span class="pre">SplittingTree.cell</span></code></a></li>
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.composites.SptTree.SplittingTree.generate_gds"><code class="docutils literal notranslate"><span class="pre">SplittingTree.generate_gds()</span></code></a></li>
</ul>
</li>
+8 -1
View File
@@ -303,7 +303,13 @@
<li class="toctree-l1"><a class="reference internal" href="../gds_devices.html">mxpic.components.gds_devices</a></li>
<li class="toctree-l1"><a class="reference internal" href="../pins.html">mxpic.components.pins</a></li>
<li class="toctree-l1"><a class="reference internal" href="../routing.html">mxpic.components.routing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../structures.html">mxpic.components.structures</a></li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../geometry/index.html">Geometry</a><details><summary><span class="toctree-toggle" role="presentation"><i class="fa-solid fa-chevron-down"></i></span></summary><ul>
<li class="toctree-l2"><a class="reference internal" href="../geometry/polygons.html">mxpic.components.geometry.polygons</a></li>
<li class="toctree-l2"><a class="reference internal" href="../geometry/rings.html">mxpic.components.geometry.rings</a></li>
<li class="toctree-l2"><a class="reference internal" href="../geometry/curves.html">mxpic.components.geometry.curves</a></li>
<li class="toctree-l2"><a class="reference internal" href="../geometry/racetrack.html">mxpic.components.geometry.racetrack</a></li>
</ul>
</details></li>
</ul>
</div>
</nav></div>
@@ -369,6 +375,7 @@
<section id="module-mxpic.components.composites.advance">
<span id="mxpic-components-composites-advance"></span><h1>mxpic.components.composites.advance<a class="headerlink" href="#module-mxpic.components.composites.advance" title="Link to this heading">#</a></h1>
<p>Convenience exports for advanced ring and CROW composite building blocks.</p>
</section>
BIN
View File
Binary file not shown.
+1 -1
View File
File diff suppressed because one or more lines are too long