{ "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": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " ____ ____ _______________\n", " / __ \\/ __ \\/ _/ ____/ ___/\n", " / / / / /_/ // // / \\__ \\\n", "/ /_/ / ____// // /___ ___/ /\n", "\\____/_/ /___/\\____//____/\n", "\n", "OPICS version 0.3.1\n" ] } ], "source": [ "import time, warnings\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import opics" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Import component library\n", "Import `ebeam` library from `libs` module." ] }, { "cell_type": "code", "execution_count": 2, "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": 3, "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": 4, "metadata": {}, "outputs": [], "source": [ "\n", "input_gc = circuit.add_component(ebeam.GC)\n", "output_gc = circuit.add_component(ebeam.GC)\n", "wg = circuit.add_component(ebeam.Waveguide, params=dict(length=np.pi*5e-6))\n", "dc_halfring = circuit.add_component(ebeam.DC_halfring)\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": 5, "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": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "simulation finished in 0.01s\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))))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualize the simulation result" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "circuit.sim_result.plot_sparameters(show_freq = False, scale=\"abs_sq\", ports = [[1,0], [0,0]])" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "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.8.8" } }, "nbformat": 4, "nbformat_minor": 4 }