ubcpdk.cells.spiral_racetrack

ubcpdk.cells.spiral_racetrack#

ubcpdk.cells.spiral_racetrack(min_radius=None, straight_length=20.0, spacings=(2, 2, 3, 3, 2, 2), straight='straight', bend='bend_euler', bend_s='bend_s', cross_section='strip', cross_section_s=None, extra_90_deg_bend=False, allow_min_radius_violation=False)[source]#

Returns Racetrack-Spiral.

Parameters:
  • min_radius (float | None) – smallest radius in um.

  • straight_length (float) – length of the straight segments in um.

  • spacings (Sequence[float]) – space between the center of neighboring waveguides in um.

  • straight (str | Callable[[...], Component] | dict[str, Any] | DKCell) – factory to generate the straight segments.

  • bend (str | Callable[[...], Component] | dict[str, Any] | DKCell) – factory to generate the bend segments.

  • bend_s (str | Callable[[...], Component] | dict[str, Any] | DKCell) – factory to generate the s-bend segments.

  • cross_section (CrossSection | str | dict[str, Any] | Callable[[...], CrossSection] | SymmetricalCrossSection | DCrossSection) – cross-section of the waveguides.

  • cross_section_s (CrossSection | str | dict[str, Any] | Callable[[...], CrossSection] | SymmetricalCrossSection | DCrossSection | None) – cross-section of the s bend waveguide (optional).

  • extra_90_deg_bend (bool) – if True, we add an additional straight + 90 degree bent at the output, so the output port is looking down.

  • allow_min_radius_violation (bool) – if True, will allow the s-bend to have a smaller radius than the minimum radius.

Return type:

Component