ubcpdk.cells.straight_heater_meander

ubcpdk.cells.straight_heater_meander#

ubcpdk.cells.straight_heater_meander(length=320.0, heater_width=2.5, spacing=2, cross_section='strip', layer_heater='M1_HEATER', via_stack='via_stack_heater_mtop', n=3, port_orientation1=None, port_orientation2=None, radius=None)[source]#

Returns a meander based heater.

based on SungWon Chung, Makoto Nakai, and Hossein Hashemi, Low-power thermo-optic silicon modulator for large-scale photonic integrated systems Opt. Express 27, 13430-13459 (2019) https://www.osapublishing.org/oe/abstract.cfm?URI=oe-27-9-13430

Parameters:
  • length (float) – phase shifter length.

  • heater_width (float) – width of the heater.

  • spacing (float) – waveguide spacing (center to center).

  • cross_section (CrossSection | str | dict[str, Any] | Callable[[...], CrossSection] | SymmetricalCrossSection | DCrossSection) – for waveguide.

  • layer_heater (tuple[int, int] | str | int | LayerEnum) – for top heater, if None, it does not add a heater.

  • via_stack (str | Callable[[...], Component] | dict[str, Any] | DKCell | None) – for the heater to via_stack metal.

  • n (int | None) – number of meanders.

  • port_orientation1 (float | None) – orientation of the first port. None for all orientations.

  • port_orientation2 (float | None) – orientation of the second port. None for all orientations.

  • radius (float | None) – radius of the meander.

Return type:

Component