Skip to content

Commit

Permalink
Deploying to gh-pages from @ 664a747 🚀
Browse files Browse the repository at this point in the history
  • Loading branch information
Andeloth committed Feb 12, 2024
1 parent 1447734 commit a6a438d
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 35 deletions.
31 changes: 6 additions & 25 deletions _sources/pages/scattering_parameters.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -42,22 +42,16 @@
"S-Parameters are used in circuit-level simulation software, e.g. simphony, sax, Lumerical Interconnect, etc."
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## TODO: Demonstration of using simphony to simulate a circuit quickly using s-parameters\n"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
"## How to find S-Parameters for an arbitrary device using a meep simulation\n",
"\n",
"In this section we'll demonstrate how to find the s-params for any device using a meep simulation. We'll show both 2D and 3D simulations, but keep in mind that 2D s-params are not very accurate. We'll run through the steps using gdsfactory's default 2x2 mmi, and explain on the way how the principles can be applied to any component. There are other ways to find s-parameters, and another method is shown on the [Gds To Meep](/pages/gds_to_meep) page"
"In this section we'll demonstrate how to find the s-params for any device using a meep simulation. We'll show both 2D and 3D simulations, but keep in mind that 2D s-params are not very accurate, but the simulations run much faster. It is often recommended to set up the simulation in 2D to ensure everything works, then extend the simulation into 3D to run the final simulations. This can save us a lot of debugging time since the 2D simulations run faster.\n",
"\n",
"We'll run through the steps using gdsfactory's default 2x2 mmi, and explain on the way how the principles can be applied to any component. There are other ways to find s-parameters, and another method is shown on the [Gds To Meep](/pages/gds_to_meep) page"
]
},
{
Expand All @@ -67,7 +61,7 @@
"source": [
"### Step 1 - Import Geometry\n",
"\n",
"For our simulation, it makes life easy if we add all of our sources and detectors into our gds before we import it into meep. For this tutorial I have already done this. For your simulations, you can modify your gds file directly in Klayout if you like a GUI, or you can use gdsfactory itself. If you like, you can also use meep to do the same thing, but I won't be showing how to do that here. This tutorial is adapted from the [GDSII Import](https://meep.readthedocs.io/en/latest/Python_Tutorials/GDSII_Import/) tutorial on the meep documentation\n",
"If we have a gds of the device t can make life easy if we add all of our sources and detectors into our gds before we import it into meep. For this tutorial I have already done this. For your simulations, you can modify your gds file directly in Klayout if you like a GUI, or you can use gdsfactory itself. If you like, you can also use meep to do the same thing, but I won't be showing how to do that here. This tutorial is adapted from the [GDSII Import](https://meep.readthedocs.io/en/latest/Python_Tutorials/GDSII_Import/) tutorial on the meep documentation\n",
"\n",
"Here is a picture of the gds we will be using. \n",
"\n",
Expand Down Expand Up @@ -684,23 +678,10 @@
]
},
{
"cell_type": "code",
"execution_count": null,
"cell_type": "markdown",
"metadata": {},
"outputs": [
{
"ename": "",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001b[1;31mFailed to start the Kernel. \n",
"\u001b[1;31mKernel Python 3.9.6 is not usable. Check the Jupyter output tab for more information. \n",
"\u001b[1;31mView Jupyter <a href='command:jupyter.viewOutput'>log</a> for further details."
]
}
],
"source": [
"\n"
"## Import the generated s-matrix to be used in simphony"
]
},
{
Expand Down
4 changes: 2 additions & 2 deletions pages/directional_couplers.html
Original file line number Diff line number Diff line change
Expand Up @@ -566,8 +566,8 @@ <h3>Coupling length and the gap between waveguides<a class="headerlink" href="#c
\]</div>
<p>Because of this difference in propagation constants, the modes travel at different speeds down the waveguide and so the field intensity oscillates between the two waveguides. This is called beating. One beat is equivalent to the coupling length, or cross-over length, and it is the length it takes for all of the power from one waveguide to be coupled into the other. As the gap between the waveguides gets smaller, the beating gets faster since <span class="math notranslate nohighlight">\(\Delta n\)</span> gets larger, making the cross-over length shorter.</p>
<p>This cross-over length <span class="math notranslate nohighlight">\(L\)</span>, that gives 100% power transfer is found with:</p>
<div class="amsmath math notranslate nohighlight" id="equation-65b7c554-86ab-45ff-ade9-d9018a6361ff">
<span class="eqno">(2)<a class="headerlink" href="#equation-65b7c554-86ab-45ff-ade9-d9018a6361ff" title="Permalink to this equation">#</a></span>\[\begin{align}
<div class="amsmath math notranslate nohighlight" id="equation-c2323d73-4e45-44c6-99be-e1d7cf16c967">
<span class="eqno">(2)<a class="headerlink" href="#equation-c2323d73-4e45-44c6-99be-e1d7cf16c967" title="Permalink to this equation">#</a></span>\[\begin{align}
L_{\text{cross-over}} = \frac {\lambda}{2\Delta n} \nonumber
\end{align}\]</div>
<p>This is found from determining what length when multiplied by the propagation constants makes the phase difference <span class="math notranslate nohighlight">\(\pi\)</span>:</p>
Expand Down
15 changes: 8 additions & 7 deletions pages/scattering_parameters.html
Original file line number Diff line number Diff line change
Expand Up @@ -315,14 +315,14 @@ <h2> Contents </h2>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#why-are-s-parameters-useful">Why are S-Parameters useful?</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#todo-demonstration-of-using-simphony-to-simulate-a-circuit-quickly-using-s-parameters">TODO: Demonstration of using simphony to simulate a circuit quickly using s-parameters</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#how-to-find-s-parameters-for-an-arbitrary-device-using-a-meep-simulation">How to find S-Parameters for an arbitrary device using a meep simulation</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#step-1-import-geometry">Step 1 - Import Geometry</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#step-2-run-simulation-for-a-single-source">Step 2: Run simulation for a single source</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#step-3-run-the-same-simulation-for-each-of-the-other-ports">Step 3: Run the same simulation for each of the other ports</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#s-parameters-across-different-frequencies">S-Parameters across different Frequencies</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#import-the-generated-s-matrix-to-be-used-in-simphony">Import the generated s-matrix to be used in simphony</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#references">References</a></li>
</ul>
</nav>
Expand Down Expand Up @@ -352,15 +352,13 @@ <h2>Why are S-Parameters useful?<a class="headerlink" href="#why-are-s-parameter
</ul>
<p>S-Parameters are used in circuit-level simulation software, e.g. simphony, sax, Lumerical Interconnect, etc.</p>
</section>
<section id="todo-demonstration-of-using-simphony-to-simulate-a-circuit-quickly-using-s-parameters">
<h2>TODO: Demonstration of using simphony to simulate a circuit quickly using s-parameters<a class="headerlink" href="#todo-demonstration-of-using-simphony-to-simulate-a-circuit-quickly-using-s-parameters" title="Permalink to this heading">#</a></h2>
</section>
<section id="how-to-find-s-parameters-for-an-arbitrary-device-using-a-meep-simulation">
<h2>How to find S-Parameters for an arbitrary device using a meep simulation<a class="headerlink" href="#how-to-find-s-parameters-for-an-arbitrary-device-using-a-meep-simulation" title="Permalink to this heading">#</a></h2>
<p>In this section we’ll demonstrate how to find the s-params for any device using a meep simulation. We’ll show both 2D and 3D simulations, but keep in mind that 2D s-params are not very accurate. We’ll run through the steps using gdsfactory’s default 2x2 mmi, and explain on the way how the principles can be applied to any component. There are other ways to find s-parameters, and another method is shown on the <a class="reference internal" href="gds_to_meep.html"><span class="doc std std-doc">Gds To Meep</span></a> page</p>
<p>In this section we’ll demonstrate how to find the s-params for any device using a meep simulation. We’ll show both 2D and 3D simulations, but keep in mind that 2D s-params are not very accurate, but the simulations run much faster. It is often recommended to set up the simulation in 2D to ensure everything works, then extend the simulation into 3D to run the final simulations. This can save us a lot of debugging time since the 2D simulations run faster.</p>
<p>We’ll run through the steps using gdsfactory’s default 2x2 mmi, and explain on the way how the principles can be applied to any component. There are other ways to find s-parameters, and another method is shown on the <a class="reference internal" href="gds_to_meep.html"><span class="doc std std-doc">Gds To Meep</span></a> page</p>
<section id="step-1-import-geometry">
<h3>Step 1 - Import Geometry<a class="headerlink" href="#step-1-import-geometry" title="Permalink to this heading">#</a></h3>
<p>For our simulation, it makes life easy if we add all of our sources and detectors into our gds before we import it into meep. For this tutorial I have already done this. For your simulations, you can modify your gds file directly in Klayout if you like a GUI, or you can use gdsfactory itself. If you like, you can also use meep to do the same thing, but I won’t be showing how to do that here. This tutorial is adapted from the <a class="reference external" href="https://meep.readthedocs.io/en/latest/Python_Tutorials/GDSII_Import/">GDSII Import</a> tutorial on the meep documentation</p>
<p>If we have a gds of the device t can make life easy if we add all of our sources and detectors into our gds before we import it into meep. For this tutorial I have already done this. For your simulations, you can modify your gds file directly in Klayout if you like a GUI, or you can use gdsfactory itself. If you like, you can also use meep to do the same thing, but I won’t be showing how to do that here. This tutorial is adapted from the <a class="reference external" href="https://meep.readthedocs.io/en/latest/Python_Tutorials/GDSII_Import/">GDSII Import</a> tutorial on the meep documentation</p>
<p>Here is a picture of the gds we will be using.</p>
<p><img alt="Image of splitter file" src="https://raw.githubusercontent.com/BYUCamachoLab/Photonics-Bootcamp/main/book/images/Notebook_Images/mmi2x2_gds_with_ports.png"/></p>
<p>I’ve added a box around the entire component (in purple) which will become the simulation region, and 8 lines, 2 on each end that will become the sources and detectors. I also added straight waveguides on the ports of the gdsfactory mmi so that my ports could be exactly where the light would enter and exit the component in an actual circuit. My sources are then slightly outside the mmi, in the waveguides.</p>
Expand Down Expand Up @@ -843,6 +841,9 @@ <h3>S-Parameters across different Frequencies<a class="headerlink" href="#s-para
<p>For most applications, you’ll want to know the S-parameters across a range of frequencies. This can be done using the simulations created here. When we get the S-parameters using the sim.get_eigenmode_coefficients().alpha[] we get a matrix. The first entry in the matrix specifies the wavelength. For brevities sake, we won’t show that here, but a good exercise would be to find and plot the s-paramters across a range of frequencies for the component shown here.</p>
</section>
</section>
<section id="import-the-generated-s-matrix-to-be-used-in-simphony">
<h2>Import the generated s-matrix to be used in simphony<a class="headerlink" href="#import-the-generated-s-matrix-to-be-used-in-simphony" title="Permalink to this heading">#</a></h2>
</section>
<section id="references">
<h2>References<a class="headerlink" href="#references" title="Permalink to this heading">#</a></h2>
<p><a class="reference external" href="https://www.mathworks.com/discovery/s-parameter.html">MathWorks: What are S-Parameters</a></p>
Expand Down Expand Up @@ -902,14 +903,14 @@ <h2>References<a class="headerlink" href="#references" title="Permalink to this
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#why-are-s-parameters-useful">Why are S-Parameters useful?</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#todo-demonstration-of-using-simphony-to-simulate-a-circuit-quickly-using-s-parameters">TODO: Demonstration of using simphony to simulate a circuit quickly using s-parameters</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#how-to-find-s-parameters-for-an-arbitrary-device-using-a-meep-simulation">How to find S-Parameters for an arbitrary device using a meep simulation</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#step-1-import-geometry">Step 1 - Import Geometry</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#step-2-run-simulation-for-a-single-source">Step 2: Run simulation for a single source</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#step-3-run-the-same-simulation-for-each-of-the-other-ports">Step 3: Run the same simulation for each of the other ports</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#s-parameters-across-different-frequencies">S-Parameters across different Frequencies</a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#import-the-generated-s-matrix-to-be-used-in-simphony">Import the generated s-matrix to be used in simphony</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#references">References</a></li>
</ul>
</nav></div>
Expand Down
2 changes: 1 addition & 1 deletion searchindex.js

Large diffs are not rendered by default.

0 comments on commit a6a438d

Please sign in to comment.