week4 home exercise
October 18, 2017
1EEET2392 - Week 3 Home Exercise
Due date: Friday August 18 at 23.59. Late submission will be penalized at 5% of the total availablemarks per 6 hours for up to 48 hours. Submission more than 48 hours after the dealine will not be marked.
In this home exercise you will define and simulate a directional coupler based on silicon rib waveguides as illustrated in the below picture
Remember to run the next cell first to setup your simulation environment
In [ ]: # You need to run this cell first to setup the simulation environment
%matplotlibinline
import matplotlib.pyplot as plt
import numpy as np
import reme
wavelength = 1.55e-6
reme.set_wavelength(wavelength)
reme.set_max_waveguide_modes(2)
2Task 1 (2 points):
Define a waveguide with two rib cores with the following parameters:
•Silica substrate thickness: t_substrate = 0.5 mm
•Silicon core thickness: t_core = 220 nm
•Air cladding thickness: t_cladding = 0.5 mm
•Etching depth: d_etch = 70 nm
•Rib core width: w_core = 0.6 mm
•Gap between two cores: w_gap = 0.4 mm
•Cladding width: w_clad = 1 mm
Then visualise the waveguide.
The waveguide needs to be enclosed within PEC boundaries (ie use set_left_boundary(rem.PEC)
and set_right_boundary(rem.PEC) methods, see the lecture notebook)
Remember to remove all existing code and enter your code into the below cell
In [ ]: # YOUR CODE HERE
raise NotImplementedError()
1
2.1Task 2 (2 points)
Simulate the even and odd super modes of the coupler waveguide and plot the mode fields of the two supermodes.
Remember to remove all existing code and enter your code into the below cell
In [ ]: # YOUR CODE HERE
raise NotImplementedError()
2.2Task 3 (2 points)
Calculate the coupling length of the coupler
Remember to remove all existing code and enter your code into the below cell
In [ ]: # YOUR CODE HERE
raise NotImplementedError()
2.3Task 4 (4 points)
Define and simulate a coupler with the length of the coupler equal to half of the coupling length. The coupler device need to have two ports at the right to monitor the output power in each
waveguide. NOTE: Use2.7as the initial guess value when finding the mode of the port waveguide. The coupler is excited with the even and odd supermode equally, half power in each mode. At the end of the simulation:
•Print the output power in each monitor ports.
•Plot the field on the YZ plane at the middle of the silicon core layer
•Plot the field on the XY plane at the end of the coupler
In [ ]: # YOUR CODE HERE
raise NotImplementedError()
2.4Bonus task:
You will get bonus marks (up to 3 points) if you peform the following tasks.
In the below example you will see how a directional coupler with two parallel straight waveg-uides are defined in IPKISS.
In [ ]: # Import technology and required modules
import technologies.silicon_photonics
import ipkiss3.all as i3
from picazzo3.traces.rib_wg import RibWaveguideTemplate
#Length of coupler is 20 um length = 20
#1. Define and visualize rib waveguide template rib_wg_t = RibWaveguideTemplate()
rib_wg_t_layout = rib_wg_t.Layout(core_width=w_core*1e6, cladding_width=4.0)
2
rib_wg_t_layout.cross_section().visualize()
# 2. Define two straight waveguides
rib_wg1 = i3.Waveguide(trace_template=rib_wg_t)
rib_wg1_layout = rib_wg1.Layout(shape=[(0, 0), (length, 0)])
rib_wg2 = i3.Waveguide(trace_template=rib_wg_t)
rib_wg2_layout = rib_wg2.Layout(shape=[(0, 0), (length, 0)])
#Put two waveguide together into a PCell (You will learn about PCell in week 6) coupler = i3.LayoutCell()
coupler_layout = coupler.Layout(elements=[i3.SRef(rib_wg1, position=(0, 0)),
i3.SRef(rib_wg2, position=(0, w_core*1e6 + w_g
coupler_layout.visualize_2d()
2.4.1Your bonus task:
Can you define a coupler with input and output bend sections in IPKISS? Assuming that the separations between input and output waveguides are 3 mm and the lengths of the bend sections are 5 mm.
In [ ]: # YOUR CODE HERE
raise NotImplementedError()
3Feedback:
Do you have any feedbacks/comments for this week class?
YOUR ANSWER HERE
3