ubcpdk.cells.ring_double_heater

ubcpdk.cells.ring_double_heater#

ubcpdk.cells.ring_double_heater(gap=0.2, gap_top=None, gap_bot=None, radius=10.0, length_x=2.0, length_y=0.01, coupler_ring='coupler_ring', coupler_ring_top=None, straight='straight', bend='bend_euler', cross_section_heater='heater_metal', cross_section_waveguide_heater='strip_heater_metal', cross_section='strip', via_stack='via_stack_heater_mtop', port_orientation=None, via_stack_offset=(1, 0), via_stack_size=(4, 4), length_extension=None)[source]#

Returns a double bus ring with heater on top.

two couplers (ct: top, cb: bottom) connected with two vertical straights (sl: left, sr: right)

Parameters:
  • gap (float) – gap between for coupler.

  • gap_top (float | None) – gap for the top coupler. Defaults to gap.

  • gap_bot (float | None) – gap for the bottom coupler. Defaults to gap.

  • radius (float) – for the bend and coupler.

  • length_x (float) – ring coupler length.

  • length_y (float) – vertical straight length.

  • coupler_ring (str | Callable[[...], Component] | dict[str, Any] | DKCell) – ring coupler spec.

  • coupler_ring_top (str | Callable[[...], Component] | dict[str, Any] | DKCell | None) – ring coupler spec for coupler away from vias (defaults to coupler_ring)

  • straight (str | Callable[[...], Component] | dict[str, Any] | DKCell) – straight spec.

  • bend (str | Callable[[...], Component] | dict[str, Any] | DKCell) – bend spec.

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

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

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

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

  • port_orientation (float | None) – for electrical ports to promote from via_stack.

  • via_stack_size (tuple[float, float]) – size of via_stack.

  • via_stack_offset (tuple[float, float]) – x,y offset for via_stack.

  • with_drop – adds drop ports.

  • length_extension (float | None) – straight length extension at the end of the coupler bottom ports. None defaults to 3.0 + radius.

Return type:

Component

     o2──────▲─────────o3
             │gap_top
     xx──────▼─────────xxx
    xxx                   xxx
  xxx                       xxx
 xx                           xxx
 x                             xxx
xx                              xx▲
xx                              xx│length_y
xx                              xx▼
xx                             xx
 xx          length_x          x
  xx     ◄───────────────►    x
   xx                       xxx
     xx                   xxx
      xxx──────▲─────────xxx
               │gap
       o1──────▼─────────o4