Skip to content

stencil.mmi

mmi(
length,
width,
num_ports,
port_length,
port_width,
tapered_width=None,
port_separation=None,
)

Create an MxN MMI.

Args

  • length (float): MMI length.
  • width (float): MMI length.
  • num_ports (int | Sequence[int]): Number of ports on either side of the MMI.
  • port_length (float | Sequence[float]): Length of the port sections.
  • port_width (float | Sequence[float]): Width of the MMI ports.
  • tapered_width (float | Sequence[float] | None): Width of the port sections at the MMI boundary.
  • port_separation (float | Sequence[float] | None): Distance between port centers.

Note

Arguments num_ports, port_separation, port_length, port_width, and tapered_width can be either a sequence of 2 values (one for each MMI side) or a single value (for both sides).

Returns

list[Rectangle | Polygon]: MMI structures.

Example

>>> mmi_1x2 = pf.stencil.mmi(
... 6, 2, (1, 2), port_length=1.0, port_width=0.5, tapered_width=0.7
... )
>>> component = pf.Component().add(*mmi_1x2)

mmi