Porting from Ipkiss 3.4 to Ipkiss 3.5¶
Replacing ExpandedWaveguide by TaperedWaveguide¶
As mentioned in the changelog,
i3.TaperedWaveguide has been added to the product.
TaperedWaveguide will fully replace the
TaperedWaveguide is more flexible, and will also yield a valid result in situations where ExpandedWaveguide failed.
You can refactor your code to use
TaperedWaveguide by replacing i3.ExpandedWaveguide by i3.TaperedWaveguide.
TaperedWaveguide expects two trace_templates, where straight_trace_template points to the straight sections and trace_template points to the start, end and bend sections. They are both required properties.
from technologies import silicon_photonics import ipkiss3.all as i3 from picazzo3.traces.wire_wg import WireWaveguideTemplate wg_tmpl = WireWaveguideTemplate() wg_tmpl.Layout(core_width=0.45) wg_tt = i3.ExpandedWaveguideTemplate(trace_template=wg_tmpl) wg_tt.Layout(bend_radius=5.0, taper_length=10.0, expanded_width=1.6) wg = i3.ExpandedWaveguide(trace_template=wg_tt) lay = wg.Layout(shape=[(0, 0), (30, 0), (30, 30)]) lay.visualize() lay.visualize_2d()
This now becomes:
from technologies import silicon_photonics import ipkiss3.all as i3 from picazzo3.traces.wire_wg import WireWaveguideTemplate wg_tmpl = WireWaveguideTemplate() wg_tmpl.Layout(core_width=0.45) wg_tmpl_wide = WireWaveguideTemplate() wg_tmpl_wide.Layout(core_width=1.6) wg = i3.TaperedWaveguide(trace_template=wg_tmpl, straight_trace_template=wg_tmpl_wide) lay = wg.Layout(shape=[(0, 0), (30, 0), (30, 30)], bend_radius=5.0, taper_length=10.0) lay.visualize() lay.visualize_2d()
You can also define a TaperedWaveguideTemplate, see the example in the sample gallery: Spiral with Tapered Waveguides and Spline Bends.
IPKISS AWG Designer¶
Since the IPKISS 3.5.0 release, the IPKISS AWG Designer (previously known as Filter Toolbox - AWG Designer) is part of the ‘IPKISS Photonics Design Platform’. The AWG Designer benefits from many improvements, changes are documented in the main changelog. But this also means that some small changes need to be made to the user code.
For more information about backwards incompatibilities in IPKISS 3.5.0 see Known backwards incompatibilities 3.5.0.
The following will explain how to migrate from Filter Toolbox 1.2 to IPKISS AWG Designer 3.5.
Because of the name change, the name of the module has also been changed from filter_tb to awg_designer.
Instead of importing the module with
import filter_tb.all as filters, we now import via
import awg_designer.all as awg.
Some older aperture classes are now legacy classes and we recommend to refrain from using them in the future. These legacy classes are:
The aperture class that should be used is
Multiple functions were introduced to help compose star couplers. The steps to create a star coupler are now:
- Add dummy apertures (
- Generate the aperture mounting, positioning the apertures in a Rowland or confocal configuration (
- Generate a contour drawing for the free propagation region (
- Compose the star coupler and inspect.
The multi-apertures needed to create a star coupler are calculated with
awg_designer.all.get_star_coupler_apertures() given the lists of single apertures.
The function also returns their transformations (the input side will be mirrored compared to the array side).
The last function (
awg_designer.all.get_star_coupler_extended_contour()) is an improved version of the default function (get_hull_shape) to calculate the free propagation region contour shape which fits the slab area.
Arrayed Waveguide Gratings¶
A new class
awg_designer.all.ArrayedWaveguideGrating for composing an AWG that consist of 2 star couplers and a waveguide array was introduced.
The waveguide array can be made with, for instance, the new
awg_designer.all.RectangularWaveguideArray or the new
ArrayedWaveguideGrating is renamed to
RectangularExpandedAWG inherit from
If in the past you created your own AWG classes that inherit from the original
ArrayedWaveguideGrating, you need
to change this inheritance and inherit from
More information on the use of the new
- ArrayedWaveguideGrating API reference.
- Check out the tutorial on Luceda Academy.
- Check out the AWG samples in the sample gallery that use the new
Improvements in the CAMFR engine will affect the calculations of the aperture field profiles, for more information see Known backwards incompatibilities 3.5.0.
PDKs will be supported on the latest AWG Designer.