piel.models.physical.photonic.mzi
=================================

.. py:module:: piel.models.physical.photonic.mzi


Attributes
----------

.. autoapisummary::

   piel.models.physical.photonic.mzi.mzi1x2
   piel.models.physical.photonic.mzi.mzi2x2_2x2
   piel.models.physical.photonic.mzi.mzi2x2_2x2_phase_shifter


Functions
---------

.. autoapisummary::

   piel.models.physical.photonic.mzi.mzi


Module Contents
---------------

.. py:function:: mzi(delta_length: float = 10.0, length_y: float = 2.0, length_x: float | None = 0.1, bend: gdsfactory.typings.ComponentSpec = bend_euler, straight: gdsfactory.typings.ComponentSpec = straight_function, straight_y: gdsfactory.typings.ComponentSpec | None = None, straight_x_top: gdsfactory.typings.ComponentSpec | None = None, straight_x_bot: gdsfactory.typings.ComponentSpec | None = None, extend_ports_straight_x: float | None = None, splitter: gdsfactory.typings.ComponentSpec = 'mmi1x2', combiner: gdsfactory.typings.ComponentSpec | None = None, with_splitter: bool = True, port_e1_splitter: str = 'o2', port_e0_splitter: str = 'o3', port_e1_combiner: str = 'o2', port_e0_combiner: str = 'o3', nbends: int = 2, cross_section: gdsfactory.typings.CrossSectionSpec = 'xs_sc', cross_section_x_top: gdsfactory.typings.CrossSectionSpec | None = None, cross_section_x_bot: gdsfactory.typings.CrossSectionSpec | None = None, mirror_bot: bool = False, add_optical_ports_arms: bool = False, add_electrical_ports_bot: bool = True, min_length: float = 0.01) -> gdsfactory.component.Component

   Mzi.

   :param delta_length: bottom arm vertical extra length.
   :param length_y: vertical length for both and top arms.
   :param length_x: horizontal length. None uses to the straight_x_bot/top defaults.
   :param bend: 90 degrees bend library.
   :param straight: straight function.
   :param straight_y: straight for length_y and delta_length.
   :param straight_x_top: top straight for length_x.
   :param straight_x_bot: bottom straight for length_x.
   :param extend_ports_straight_x: optional extend connection for straight_x_bot/top.
   :param splitter: splitter function.
   :param combiner: combiner function.
   :param with_splitter: if False removes splitter.
   :param port_e1_splitter: east top splitter port.
   :param port_e0_splitter: east bot splitter port.
   :param port_e1_combiner: east top combiner port.
   :param port_e0_combiner: east bot combiner port.
   :param nbends: from straight top/bot to combiner (at least 2).
   :param cross_section: for routing (sxtop/sxbot to combiner).
   :param cross_section_x_top: optional top cross_section (defaults to cross_section).
   :param cross_section_x_bot: optional bottom cross_section (defaults to cross_section).
   :param mirror_bot: if true, mirrors the bottom arm.
   :param add_optical_ports_arms: add all other optical connection in the arms
                                  with top_ and bot_ prefix.
   :param add_electrical_ports_bot: add electrical connection to the bottom arm.
   :param min_length: minimum length for the straight_x_bot/top.

   .. code::

                      b2______b3
                     |  sxtop  |
             straight_y        |
                     |         |
                     b1        b4
           splitter==|         |==combiner
                     b5        b8
                     |         |
             straight_y        |
                     |         |
       delta_length/2          |
                     |         |
                    b6__sxbot__b7
                         Lx


.. py:data:: mzi1x2

.. py:data:: mzi2x2_2x2

.. py:data:: mzi2x2_2x2_phase_shifter

