ubcpdk.components.ring_single#
- ubcpdk.components.ring_single(gap: float = 0.2, radius: float = 10.0, length_x: float = 4.0, length_y: float = 0.6, *, coupler_ring: ComponentFactory = <function coupler_ring>, bend: ComponentFactory = <function bend_euler_sc>, bend_coupler: ComponentFactory | None = <function bend_euler>, straight: ComponentFactory = <function straight>, 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), pass_cross_section_to_bend: bool = False) Component #
Returns a single ring.
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 spec.
bend – 90 degrees bend spec.
bend_coupler – optional bend for coupler.
straight – straight spec.
cross_section – cross_section spec.
pass_cross_section_to_bend – pass cross_section to bend.
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