ubcpdk.components.ring_single_heater#
- ubcpdk.components.ring_single_heater(gap: float = 0.2, radius: float = 10.0, length_x: float = 1.0, length_y: float = 0.01, *, 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 = False) 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