ubcpdk.components.ring_double_heater

ubcpdk.components.ring_double_heater#

ubcpdk.components.ring_double_heater(gap: float = 0.2, radius: float = 10.0, length_x: float = 1.0, *, length_y: float = 0.2, coupler_ring: ComponentSpec = <function coupler_ring>, coupler_ring_top: ComponentSpec | None = None, straight: ComponentSpec = <function straight>, bend: ComponentSpec = 'bend_euler', cross_section_heater: CrossSectionSpec = 'heater_metal', cross_section_waveguide_heater: CrossSectionSpec = 'strip_heater_metal', cross_section: CrossSectionSpec = 'strip', via_stack: ComponentSpec = 'via_stack_heater_mtop', port_orientation: float | None = None, via_stack_offset: Float2 = (1, 0), with_drop: bool = True) Component#

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 – gap between for coupler.

  • radius – for the bend and coupler.

  • length_x – ring coupler length.

  • length_y – vertical straight length.

  • coupler_ring – ring coupler spec.

  • coupler_ring_top – ring coupler spec for coupler away from vias (defaults to coupler_ring)

  • straight – straight spec.

  • bend – bend spec.

  • cross_section_heater – for heater.

  • cross_section_waveguide_heater – for waveguide with heater.

  • cross_section – for regular waveguide.

  • via_stack – for heater to routing metal.

  • port_orientation – for electrical ports to promote from via_stack.

  • via_stack_offset – x,y offset for via_stack.

  • with_drop – adds drop ports.

     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