MZIWithCells¶
- class picazzo3.filters.mzi.cell.MZIWithCells(*args, **kwargs)¶
An MZI which contains another cell in one or both arms.
- Parameters
- arm1_contents: ( PCell ), *None allowed*
Cell to place in the SOUTH arm. Use None when only a waveguide is required.
- arm1_contents_port_names: String that contains only alphanumeric characters from the ASCII set or contains _$. ASCII set is extended on PY3. and length == 2
port names for the contents ports in arm1. Default = (‘in’, ‘out’)
- arm2_contents: ( PCell ), *None allowed*
Cell to place in the NORTH arm. Use None when only a waveguide is required.
- arm2_contents_port_names: String that contains only alphanumeric characters from the ASCII set or contains _$. ASCII set is extended on PY3. and length == 2
port names for the contents ports in arm2. Default = (‘in’, ‘out’)
- auto_transition: ( bool, bool_, bool or int )
if True, splitter and combiner are transitioned to the correct waveguide template
- trace_template: PCell and _WaveguideTemplate
- arm1: PCell and MZIArm
The South arm of the MZI
- arm1_port_names: String that contains only alphanumeric characters from the ASCII set or contains _$. ASCII set is extended on PY3. and length == 2
port names for the south arm ports connected to splitter and combiner. Default = (‘in’, ‘out’)
- arm2: PCell and MZIArm
The North arm of the MZI
- arm2_port_names: String that contains only alphanumeric characters from the ASCII set or contains _$. ASCII set is extended on PY3. and length == 2
port names for the north arm ports connected to splitter and combiner. Default = (‘in’, ‘out’)
- combiner: PCell
The combiner of the MZI
- combiner_port_names: String that contains only alphanumeric characters from the ASCII set or contains _$. ASCII set is extended on PY3. and length == 2
port names for the combiner ports to the arms. Default = (‘in1’, ‘in2’)
- splitter: PCell
The splitter of the MZI
- splitter_port_names: String that contains only alphanumeric characters from the ASCII set or contains _$. ASCII set is extended on PY3. and length == 2
port names for the splitter ports to the arms. Default = (‘out1’, ‘out2’)
- external_port_names: str
Map of the free instance terms/ports to the names of external terms/ports.Format is a dict {‘inst:term’ : ‘new_term_name’}.If a term/port is not listed, the format instname_portname will be used
- 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
- child_cells: locked
- links: locked
Examples
from technologies import silicon_photonics # noqa: F401 from picazzo3.filters.mzi import MZIWithCells from picazzo3.wg.dircoup import BendDirectionalCoupler from picazzo3.filters.ring import RingRectNotchFilter split = BendDirectionalCoupler(name="my_splitter_7") split.Layout(bend_angle=30.0) ring = RingRectNotchFilter(name="my_ring_8") mzi = MZIWithCells( name="my_mzi_cells_1", splitter=split, combiner=split, arm1_contents=ring, arm1_contents_port_names=["in", "out"], ) layout = mzi.Layout(extra_length=-50.0) layout.visualize(annotate=True)
Views
- Layout = <class 'picazzo3.filters.mzi.cell.MZIWithCells.Layout'>¶