MMI2x2Tapered
- class picazzo3.filters.mmi.cell.MMI2x2Tapered
- MMI with one access waveguide and two output waveguides and with tapers that symmetrically distributed. This is usually useful when the MMI is used as a 2x2 splitter or a crossing. - 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 
- 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 ipkiss3 import all as i3 from picazzo3.filters.mmi.cell import MMI2x2Tapered 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_access_template = WireWaveguideTemplate() mmi_access_template.Layout(core_width=1.0, cladding_width=5.0) MMI = MMI2x2Tapered( mmi_trace_template=mmi_trace_template, input_trace_template=mmi_access_template, output_trace_template=mmi_access_template, trace_template=i3.TECH.PCELLS.WG.DEFAULT, ) layout = MMI.Layout(transition_length=5.0, length=10.0, trace_spacing=2.0) layout.visualize(annotate=True) 