MMI
- class picazzo3.filters.mmi.cell.MMI
Rectangular multimode interferometer, generated from a waveguide template
- Parameters:
- output_trace_templates: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>
List of the output trace templates.
- input_trace_templates: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>
List of the input trace templates.
- mmi_trace_template: PCell and _WaveguideTemplate
Trace template used for the MMI section
- name: String that contains only ISO/IEC 8859-1 (extended ASCII py3) or pure ASCII (py2) characters
The unique name of the pcell
- Other Parameters:
- mmi_trace: PCell, locked
Trace of the MMI section
- n_outputs: int and number > 0, locked
Number of output channels.
- n_inputs: int and number > 0, locked
Number of input channels.
Views
- class Layout
Layoutview of the MMI. It is built from the MMI waveguide over a certain length and ports at the input_y_positions and output_y_positions.
- Parameters:
- length: float and number > 0
Length of the MMI
- output_y_positions: list<Real, number>
Positions in the y direction at the output where ports are be added
- input_y_positions: list<Real, number>
Positions in the y direction at the input where ports are be added
- view_name: String that contains only alphanumeric characters from the ASCII set or contains _$. ASCII set is extended on PY3.
The name of the view
Examples
import si_fab.all as pdk # noqa: F401 from ipkiss3 import all as i3 from picazzo3.filters.mmi.cell import MMI from picazzo3.traces.wire_wg.trace import WireWaveguideTemplate mmi_trace_template = WireWaveguideTemplate() mmi_trace_template.Layout(core_width=6.0, cladding_width=10.0) MMI = MMI( mmi_trace_template=mmi_trace_template, input_trace_templates=[i3.TECH.PCELLS.WG.DEFAULT], output_trace_templates=[i3.TECH.PCELLS.WG.DEFAULT], ) layout = MMI.Layout(length=10.0, input_y_positions=[0.0], output_y_positions=[0.0]) layout.visualize(annotate=True)