ubcpdk.components.spiral

ubcpdk.components.spiral#

ubcpdk.components.spiral(N: int = 6, x_inner_length_cutback: float = 300.0, x_inner_offset: float = 0.0, y_straight_inner_top: float = 0.0, xspacing: float = 3.0, yspacing: float = 3.0, bend: ComponentSpec = <function bend_euler>, length: float | None = None, cross_section: CrossSectionSpec = 'xs_sc', with_inner_ports: bool = False, y_straight_outer_offset: float = 0.0, inner_loop_spacing_offset: float = 0.0, mirror_straight: bool = False, **kwargs) Component#

Returns spiral with input and output ports outside the spiral.

Parameters:
  • N – number of loops.

  • x_inner_length_cutback – x inner length.

  • x_inner_offset – x inner offset.

  • y_straight_inner_top – y straight inner top.

  • xspacing – center to center x-spacing.

  • yspacing – center to center y-spacing.

  • bend – function.

  • length – length in um, it is the approximates total length.

  • cross_section – spec.

  • with_inner_ports – if True, removes the internal S-bend and exposes new ports

  • y_straight_outer_offset – amount to add/remove to the last points at the outer output of the spiral

  • inner_loop_spacing_offset – extra difference between the inner ports

  • mirror_straight – if True, mirrors the straight cross section in round_corners (can help when xs is asymmetric)

  • kwargs – cross_section settings.