ubcpdk.components.ring_single_heater#
- ubcpdk.components.ring_single_heater(gap: float = 0.2, radius: float = 10.0, length_x: float = 4.0, length_y: float = 0.6, *, coupler_ring: ComponentSpec = <function coupler_ring>, bend: ComponentSpec = <function bend_euler>, bend_coupler: ComponentFactory | None = <function bend_euler>, straight: ComponentFactory = <function straight>, cross_section_waveguide_heater: CrossSectionSpec = 'xs_sc_heater_metal', cross_section: CrossSectionSpec = CrossSection(sections=(Section(width=0.5, offset=0.0, insets=None, layer='WG', port_names=('o1', 'o2'), port_types=('optical', 'optical'), name='_default', hidden=False, simplify=None, width_function=None, offset_function=None), ), components_along_path=(), radius=10.0, radius_min=5.0, bbox_layers=None, bbox_offsets=None), via_stack: ComponentSpec = functools.partial(<function via_stack>, size=(10, 10), layers=((11, 0), (12, 0)), vias=(None, None)), port_orientation: float | Float2 | None = None, via_stack_offset: Float2 = (0, 0)) Component #
Returns a single ring with heater on top.
ring coupler (cb: bottom) connects to two vertical straights (sl: left, sr: right), two bends (bl, br) and horizontal straight (wg: top)
- 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 function.
bend – 90 degrees bend function.
straight – straight function.
cross_section_waveguide_heater – for heater.
cross_section – for regular waveguide.
via_stack – for heater to routing metal.
port_orientation – for electrical ports to promote from via_stack. Tuple allows the left and right contacts to be defined differently.
via_stack_offset – x,y offset for via_stack.
xxxxxxxxxxxxx xxxxx xxxx 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──────▼─────────o2