mxpic.components.composites.MZI#
Mach-Zehnder interferometer composite layouts.
MZI#
- class mxpic.components.composites.MZI.MZI(name=None, xs_wg='strip', w_wg=0.45, dL_Amzi=0, L_arm=150, R_bend=10, D_arm=75, D_port=None, w_arm=1.0, xs_heater='heater', w_heater=0, Ltp=15, xs_metal='metal', w_metal=10, via_h2m=None, isl=None, outer_isl=True, dual_ht=True, L_patch=0.5, BS=None, BS2=None, sharp_patch=True, show_pins=False)#
Bases:
objectMach-Zehnder interferometer with optional heaters and isolation.
- Parameters:
name (str, optional) – Nazca cell name. If omitted, the generated cell is not instantiated.
xs_wg (str, optional) – Optical waveguide cross-section name.
w_wg (float, optional) – Input and output waveguide width in microns.
dL_Amzi (float, optional) – Differential arm length for asymmetric MZI operation.
L_arm (int, optional) – Nominal straight arm length.
R_bend (int, optional) – Bend radius used by internal routing.
D_arm (int, optional) – Vertical distance between interferometer arms.
D_port (Any, optional) – Output port pitch. If omitted, the beam splitter port pitch is used.
w_arm (float, optional) – Internal arm waveguide width.
xs_heater (str, optional) – Heater cross-section name.
w_heater (float, optional) – Heater width. Use 0 to disable heater drawing.
Ltp (int, optional) – Taper length between bus and arm widths.
xs_metal (str, optional) – Metal routing cross-section name.
w_metal (float, optional) – Metal routing width.
via_h2m (Any, optional) – Heater-to-metal via object or cell.
isl (Any, optional) – Isolation trench object or cell.
outer_isl (bool, optional) – Add outer isolation structures.
dual_ht (bool, optional) – Add heaters on both arms.
L_patch (float, optional) – Straight patch length at routing interfaces.
BS (Any, optional) – First beam splitter cell or object. If omitted, a default DC is used.
BS2 (Any, optional) – Second beam splitter cell or object. If omitted,
BSis reused.sharp_patch (bool, optional) – Add cladding patches around sharp geometry features.
show_pins (bool, optional) – Show Nazca pin stubs in the generated layout.
- cell#
Generated MZI layout cell.
- Type:
nazca.Cell
MZI_NS#
- class mxpic.components.composites.MZI.MZI_NS(name, BS, xs_wg, w1, w2, L0, Ln, Ls, Ltp, R_bend, w_wg, L_patch, D_arm=40, L12=None, w_heater=0, L_ht=None, via_h2m=None, isl=None, show_pins=False, D_port=None, sharp_patch=True, dual_ht=False)#
Bases:
objectNested-straight MZI composite with taperable arm widths.
- Parameters:
name (str) – Nazca cell name.
BS (Any) – Beam splitter cell or object used at both splitter positions.
xs_wg (str) – Optical waveguide cross-section name.
w1 (float) – Input/output waveguide width.
w2 (float) – Internal arm waveguide width.
L0 (Any) – Input/output straight section length.
Ln (Any) – Length of the nominal arm section.
Ls (Any) – Length of the shifted arm section.
Ltp (Any) – Taper length between
w1andw2.R_bend (Any) – Bend radius used by the arm routing.
w_wg (float) – Optical waveguide width used for ports and routing.
L_patch (Any) – Straight patch length at routing interfaces.
D_arm (int, optional) – Vertical distance between interferometer arms.
L12 (Any, optional) – Optional length between the first and second beam splitter regions.
w_heater (float, optional) – Heater width. Use 0 to disable heater drawing.
L_ht (Any, optional) – Heater length override.
via_h2m (Any, optional) – Heater-to-metal via object or cell.
isl (Any, optional) – Isolation trench object or cell.
show_pins (bool, optional) – Show Nazca pin stubs in the generated layout.
D_port (Any, optional) – Output port pitch override.
sharp_patch (bool, optional) – Add cladding patches around sharp geometry features.
dual_ht (bool, optional) – Add heaters on both arms.
- cell#
Generated nested-straight MZI layout cell.
- Type:
nazca.Cell
MZI_NS_ubend#
- class mxpic.components.composites.MZI.MZI_NS_ubend(name, BS, xs_wg, w1, w2, L0, Ln, Ls, Ltp, R_bend, w_wg, L_patch, L12=None, w_ht=0, L_ht=0, via_h2m=None, isl=None, show_pins=False, D_port=None, sharp_patch=True, dual_ht=False)#
Bases:
objectNested-straight MZI composite using U-bend arm routing.
- Parameters:
name (str) – Nazca cell name.
BS (Any) – Beam splitter cell or object used at both splitter positions.
xs_wg (str) – Optical waveguide cross-section name.
w1 (float) – Input/output waveguide width.
w2 (float) – Internal arm waveguide width.
L0 (Any) – Input/output straight section length.
Ln (Any) – Length of the nominal arm section.
Ls (Any) – Length of the shifted arm section.
Ltp (Any) – Taper length between
w1andw2.R_bend (Any) – Bend radius used by the U-bends.
w_wg (float) – Optical waveguide width used for ports and routing.
L_patch (Any) – Straight patch length at routing interfaces.
L12 (Any, optional) – Optional length between splitter regions.
w_ht (float, optional) – Heater width. Use 0 to disable heater drawing.
L_ht (int, optional) – Heater length override.
via_h2m (Any, optional) – Heater-to-metal via object or cell.
isl (Any, optional) – Isolation trench object or cell.
show_pins (bool, optional) – Show Nazca pin stubs in the generated layout.
D_port (Any, optional) – Output port pitch override.
sharp_patch (bool, optional) – Add cladding patches around sharp geometry features.
dual_ht (bool, optional) – Add heaters on both arms.
- cell#
Generated U-bend MZI layout cell.
- Type:
nazca.Cell
MZI_2st_ubend#
- class mxpic.components.composites.MZI.MZI_2st_ubend(name, BS1, BS2, BS3, xs_wg, w1, w2, L0, Ln1, Ls1, Ln2, Ls2, Ltp, R_bend, w_wg, L_patch, via_h2m=None, isl=None, L12=None)#
Bases:
objectTwo-stage U-bend MZI composite with three beam splitters.
- Parameters:
name (str) – Nazca cell name.
BS1 (Any) – Beam splitter cells or objects for the three splitter stages.
BS2 (Any) – Beam splitter cells or objects for the three splitter stages.
BS3 (Any) – Beam splitter cells or objects for the three splitter stages.
xs_wg (str) – Optical waveguide cross-section name.
w1 (float) – Input/output waveguide width.
w2 (float) – Internal arm waveguide width.
L0 (Any) – Input/output straight section length.
Ln1 (Any) – Nominal and shifted arm lengths for the first stage.
Ls1 (Any) – Nominal and shifted arm lengths for the first stage.
Ln2 (Any) – Nominal and shifted arm lengths for the second stage.
Ls2 (Any) – Nominal and shifted arm lengths for the second stage.
Ltp (Any) – Taper length between
w1andw2.R_bend (Any) – Bend radius used by U-bend routing.
w_wg (float) – Optical waveguide width used for ports and routing.
L_patch (Any) – Straight patch length at routing interfaces.
via_h2m (Any, optional) – Heater-to-metal via object or cell.
isl (Any, optional) – Isolation trench object or cell.
L12 (Any, optional) – Optional length between beam splitter regions.
- cell#
Generated two-stage MZI layout cell.
- Type:
nazca.Cell
MZI_Eubend#
- class mxpic.components.composites.MZI.MZI_Eubend(name, BS, w_arm, w_wg, L_arm, dL_Amzi, L_patch, xs_wg, Rmax=30, Rmin=10, dL=0.1, w_arm_min=None, show_pins=False, sharp_patch=True)#
Bases:
objectEuler U-bend MZI composite for compact asymmetric routing.
- Parameters:
name (str) – Nazca cell name.
BS (Any) – Beam splitter cell or object.
w_arm (float) – Internal arm waveguide width.
w_wg (float) – Input/output waveguide width.
L_arm (Any) – Nominal straight arm length.
dL_Amzi (float) – Differential length for asymmetric MZI operation.
L_patch (Any) – Straight patch length at routing interfaces.
xs_wg (str) – Optical waveguide cross-section name.
Rmax (int, optional) – Maximum Euler bend radius.
Rmin (int, optional) – Minimum Euler bend radius.
dL (float, optional) – Length-search resolution for the Euler compensation.
w_arm_min (float, optional) – Minimum arm width used during tapering.
show_pins (bool, optional) – Show Nazca pin stubs in the generated layout.
sharp_patch (bool, optional) – Add cladding patches around sharp geometry features.
- cell#
Generated Euler U-bend MZI layout cell.
- Type:
nazca.Cell
MZI_Ubend#
- class mxpic.components.composites.MZI.MZI_Ubend(name, BS, L_arm, xs_wg='strip', w_arm=1.0, L_tp=10, R_bend=10, w_wg=0.45, L_patch=0.5, w_ht=0, L_ht=0, via_h2m=None, isl=None, show_pins=False, D_port=None, sharp_patch=True, dual_ht=False)#
Bases:
MZI_NS_ubendConvenience U-bend MZI wrapper with default width handling.
- Parameters:
name (str) – Nazca cell name.
BS (Any) – Beam splitter cell or object.
L_arm (Any) – Nominal arm length.
xs_wg (str, optional) – Optical waveguide cross-section name.
w_arm (float, optional) – Internal arm waveguide width.
L_tp (int, optional) – Taper length between bus and arm widths.
R_bend (int, optional) – Bend radius used by U-bend routing.
w_wg (float, optional) – Input/output waveguide width.
L_patch (float, optional) – Straight patch length at routing interfaces.
w_ht (float, optional) – Heater width. Use 0 to disable heater drawing.
L_ht (int, optional) – Heater length override.
via_h2m (Any, optional) – Heater-to-metal via object or cell.
isl (Any, optional) – Isolation trench object or cell.
show_pins (bool, optional) – Show Nazca pin stubs in the generated layout.
D_port (Any, optional) – Output port pitch override.
sharp_patch (bool, optional) – Add cladding patches around sharp geometry features.
dual_ht (bool, optional) – Add heaters on both arms.
- cell#
Generated U-bend MZI layout cell.
- Type:
nazca.Cell
MZI_Butterfly#
- class mxpic.components.composites.MZI.MZI_Butterfly(name=None, xs_wg='strip', w_wg=0.45, dL_AMZI=0, L_arm=150, L_inner=10, R_bend=10, D_port=None, w_arm=1.0, xs_ht='heater', w_ht=0, Ltp=15, xs_metal='metal', w_metal=10, via_h2m=None, isl=None, outer_isl=True, dual_ht=True, L_patch=0.5, BS=None, BS2=None, sharp_patch=True, show_pins=False)#
Bases:
objectButterfly-style MZI composite with compact folded arms.
- Parameters:
name (str, optional) – Nazca cell name. If omitted, the generated cell is not instantiated.
xs_wg (str, optional) – Optical waveguide cross-section name.
w_wg (float, optional) – Input and output waveguide width in microns.
dL_AMZI (float, optional) – Differential arm length for asymmetric MZI operation.
L_arm (int, optional) – Nominal straight arm length.
L_inner (int, optional) – Inner straight section length used by the butterfly fold.
R_bend (int, optional) – Bend radius used by internal routing.
D_port (Any, optional) – Output port pitch. If omitted, beam splitter pitch is used.
w_arm (float, optional) – Internal arm waveguide width.
xs_ht (str, optional) – Heater cross-section name.
w_ht (float, optional) – Heater width. Use 0 to disable heater drawing.
Ltp (int, optional) – Taper length between bus and arm widths.
xs_metal (str, optional) – Metal routing cross-section name.
w_metal (float, optional) – Metal routing width.
via_h2m (Any, optional) – Heater-to-metal via object or cell.
isl (Any, optional) – Isolation trench object or cell.
outer_isl (bool, optional) – Add outer isolation structures.
dual_ht (bool, optional) – Add heaters on both arms.
L_patch (float, optional) – Straight patch length at routing interfaces.
BS (Any, optional) – First beam splitter cell or object. If omitted, a default DC is used.
BS2 (Any, optional) – Second beam splitter cell or object. If omitted,
BSis reused.sharp_patch (bool, optional) – Add cladding patches around sharp geometry features.
show_pins (bool, optional) – Show Nazca pin stubs in the generated layout.
- cell#
Generated butterfly MZI layout cell.
- Type:
nazca.Cell
- generate_gds(show_pin=False)#
- generate_test_gds(dXgc2gc, dYgc2gc, gc, w_wg=0.5, R_bend=10, name=None)#