{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Micro Ring Resonator (MRR)\n", "\n", "**We use SiEPIC EBeam library in this tutorial.**\n", "\n", " This notebook walks through the process of setting up and simulating a micro ring resonator device using the OPICS package. \n", "\n", " A ring resonator consists of an optical waveguide which is looped back on itself, such that a resonance occurs when the optical path length of the resonator is exactly a whole number of wavelengths. In simple terms, an all pass ring resonator can be thought of consisting input/output components, evanescent coupling region like a directional coupler, and a waveguide (as shown below).\n", "" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "import time\n", "import warnings\n", "import numpy as np\n", "from opics.globals import c\n", "from opics import Network\n", "import opics\n", "\n", "freq = np.linspace(c * 1e6 / 1.5, c * 1e6 / 1.6, 2000)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Import component library\n", "Import `ebeam` library from `libraries` module." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "ebeam = opics.libraries.ebeam" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Define network \n", "Create an instance of `Network` class, which is used to add, connect, and simulate circuit components. " ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "circuit_name = \"mrr\"\n", "circuit = opics.Network(circuit_name)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Add circuit components\n", "Add grating couplers, evanescent coupler (e.g. directional coupler halfring), and a waveguide. You can define custom frequency data points for a component as well (see the example for output_GC)." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "\n", "input_gc = circuit.add_component(ebeam.GC(freq))\n", "output_gc = circuit.add_component(ebeam.GC(freq))\n", "wg = circuit.add_component(ebeam.Waveguide(freq, np.pi*5e-6))\n", "dc_halfring = circuit.add_component(ebeam.DC_halfring(freq))\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Define circuit connectivity\n", "\n", "In this section, we define the component connections. The connections are defined using `Network.connect`, e.g.`Network.connect(component1, component1_port, component2, component2_port)`" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "#connect components\n", "circuit.connect(input_gc, 1, dc_halfring, 0)\n", "circuit.connect(dc_halfring, 1, wg, 0)\n", "circuit.connect(wg, 1, dc_halfring, 3)\n", "circuit.connect(dc_halfring,2, output_gc,1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Simulate the circuit" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "simulation finished in 0.05s\n" ] } ], "source": [ "warnings.filterwarnings('ignore') #ignore all/complex number warnings from numpy or scipy\n", "sim_start = time.time()\n", "\n", "#simulate network\n", "circuit.simulate_network()\n", "\n", "print(\"simulation finished in %ss\"%(str(round(time.time()-sim_start,2))))\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualize the simulation result" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "output_type": "display_data", "data": { "text/plain": "
", "image/svg+xml": "\r\n\r\n\r\n \r\n \r\n \r\n \r\n 2021-05-17T10:17:23.945720\r\n image/svg+xml\r\n \r\n \r\n Matplotlib v3.4.1, https://matplotlib.org/\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", "image/png": "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\n" }, "metadata": { "needs_background": "light" } } ], "source": [ "circuit.sim_result.plot_sparameters(show_freq = False, scale=\"abs_sq\", ports = [[1,0], [0,0]])" ] } ], "metadata": { "kernelspec": { "name": "python394jvsc74a57bd0685064360cf8fb3dd2ac6619375ad82f7f7939c99d45d4878c68397f21c4c2c4", "display_name": "Python 3.9.4 64-bit ('opics': conda)" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.4" }, "metadata": { "interpreter": { "hash": "685064360cf8fb3dd2ac6619375ad82f7f7939c99d45d4878c68397f21c4c2c4" } } }, "nbformat": 4, "nbformat_minor": 4 }