RibMMI2x2Tapered
- class picazzo3.filters.mmi_rib.cell.RibMMI2x2Tapered
 Rib 2x2 MMI with symmetrically distributed access templates and with tapers.
- Parameters:
 - output_trace_template: PCell
 Output trace template.
- input_trace_template: PCell
 Input trace template.
- mmi_trace_template: PCell and _WaveguideTemplate
 Trace template used for the MMI section
- trace_template: ( PCell and _WaveguideTemplate ), *None allowed*
 Template for all ports, defaults to TECH.PCELLS.WG.DEFAULT.When set to None, the waveguide templates of the ports will be used.
- transition_database: AutoTransitionDatabase
 AutoTransitionDatabase in which the correct transition between the two trace templates can be looked up.
- transitions: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>
 List of transitions that is used on this MMI. By default Autotracetransition is used on all the transitions
- port_labels: ( List with type restriction, allowed types: <class ‘str’> ), *None allowed*
 Labels of the ports to be processed. Set to None to process all ports.
- external_port_names: str
 Dictionary for remapping of the port names of the contents to the external ports
- 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
- output_trace_templates: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>, locked
 List of the output trace templates.
- input_trace_templates: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>, locked
 List of the input trace templates.
- n_outputs: int and number > 0, locked
 Number of output channels.
- n_inputs: int and number > 0, locked
 Number of input channels.
- trace_templates: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>, locked
 list of templates to apply to all ports
- contents: PCell, locked
 Contains the base MMI without the tapers
Views
- class Layout
 - Parameters:
 - trace_spacing: float and int, float, integer, floating and number >= 0
 Offset between the traces at the input and the output
- rib_cover_purpose: PatternPurpose
 Drawing purpose for covering the mmi and rib-only part of the tapers
- extra_line_thickness: float and int, float, integer, floating and number >= 0
 Extra width added to minimum_space to calculate the width of the line correction (usually you do not have to modify this)
- minimum_space: float and number > 0
 Minimum space between the tapers needed for the line corrections to be added (usually you do not have to modify this)
- transition_length: ( float and int, float, integer, floating and number >= 0 ), *None allowed*
 Length of the transition. Set to None to take the standard transition length.
- zero_length_if_identical:
 uses a zero-length transition if the trace templates are identical
- flatten_transitions:
 if true, flattens the transitions one level
- straight_extension: ( Coord2 and number >= 0 ), *None allowed*
 Tuple: straight extensions of the transitions. Set to None to take the standard straight extensions
- length: float and number > 0
 Length of the MMI
- contents_transformation: GenericNoDistortTransform
 transformation to apply to the contents
- flatten_contents:
 if True, it will insert the contents as elements in the layout, rather than as an Instance
- 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
- Other Parameters:
 - output_y_positions: list<int, float, integer, floating>, locked
 Positions in the y direction at the output where access waveguides are be added
- input_y_positions: list<int, float, integer, floating>, locked
 Positions in the y direction at the input where ports are be added
- transition_lengths: locked
 
Examples
import si_fab.all as pdk # noqa: F401 from picazzo3.filters.mmi_rib.cell import RibMMI2x2Tapered from picazzo3.traces.rib_wg import RibWaveguideTemplate from picazzo3.traces.wire_wg.trace import WireWaveguideTemplate mmi_trace_template = RibWaveguideTemplate() mmi_trace_template.Layout(core_width=10.0, cladding_width=25.0) mmi_wav_template = WireWaveguideTemplate() mmi_wav_template.Layout(core_width=1.0, cladding_width=5.0) mmi_access_template = RibWaveguideTemplate() mmi_access_template.Layout(core_width=2.0, cladding_width=15.0) MMI = RibMMI2x2Tapered( mmi_trace_template=mmi_trace_template, input_trace_template=mmi_access_template, output_trace_template=mmi_access_template, trace_template=mmi_wav_template, ) layout = MMI.Layout(transition_length=5.0, length=10.0, trace_spacing=2.0) layout.visualize(annotate=True)