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.