mxpic.components.primitives.spiral#

Spiral_Cicle_MM#

../../../_images/Spiral_Cicle_MM.png
class mxpic.components.primitives.spiral.Spiral_Cicle_MM(name=None, Dmin=50, width=2, w_port=0.45, w_bend_center=1, gap=1, cycles=20, xs='strip', layer=None, Lport=10, res=0.5, rib2strip=True, port_angle=180, show_pins=False, sharp_patch=True, strict_condition=False)#

Bases: spiral_circle

Parameters:
  • name (str or None, optional) – Nazca cell name (default is None).

  • Dmin (float, optional) – Minimum inner diameter in microns (default is 50).

  • width (float, optional) – Nominal waveguide width (default is 2).

  • w_port (float, optional) – Output-port width after the final taper (default is 0.45).

  • w_bend_center (float, optional) – Waveguide width within the central attachment bend (default is 1).

  • gap (float, optional) – Spacing between adjacent turns (default is 1).

  • cycles (float, optional) – Number of half-turns (π radians) (default is 20).

  • xs (str, optional) – Cross-section key (default is “strip”).

  • layer (str or None, optional) – Override polygon layer (default is None).

  • Lport (float, optional) – Length of straight port extensions (default is 10).

  • res (float, optional) – Arc-length sampling step (default is 0.5).

  • rib2strip (bool, optional) – Insert rib-to-strip transitions at the ports (default is True).

  • port_angle (float, optional) – Output bend angle in degrees (default is 180).

  • show_pins (bool, optional) – Draw Nazca stub markers when True (default is False).

  • sharp_patch (bool, optional) – Add chamfer polygons when True (default is True).

  • strict_condition (bool, optional) – Enforce constant-spacing constraints when True (default is False).

Spiral_Cicle_STD#

../../../_images/Spiral_Cicle_STD.png
class mxpic.components.primitives.spiral.Spiral_Cicle_STD(name=None, Dmin=50, width=2, w_port=0.45, gap=1, cycles=20, xs='strip', layer=None, Lport=10, res=0.5, rib2strip=True, port_angle=180, show_pins=False, sharp_patch=True, strict_condition=False)#

Bases: spiral_circle

Parameters:
  • name (str or None, optional) – Nazca cell name (default is None).

  • Dmin (float, optional) – Minimum inner diameter in microns (default is 50).

  • width (float, optional) – Waveguide width throughout the spiral (default is 2).

  • w_port (float, optional) – Output-port width after the final taper (default is 0.45).

  • gap (float, optional) – Spacing between adjacent turns (default is 1).

  • cycles (float, optional) – Number of half-turns (π radians) (default is 20).

  • xs (str, optional) – Cross-section key (default is “strip”).

  • layer (str or None, optional) – Override polygon layer (default is None).

  • Lport (float, optional) – Length of straight port extensions (default is 10).

  • res (float, optional) – Arc-length sampling step (default is 0.5).

  • rib2strip (bool, optional) – Insert rib-to-strip transitions at the ports (default is True).

  • port_angle (float, optional) – Output bend angle in degrees (default is 180).

  • show_pins (bool, optional) – Draw Nazca stub markers when True (default is False).

  • sharp_patch (bool, optional) – Add chamfer polygons when True (default is True).

  • strict_condition (bool, optional) – Enforce constant-spacing constraints when True (default is False).

Spiral_Rect_STD#

mxpic/components/primitives/Spiral_Rect_STD.png
class mxpic.components.primitives.spiral.Spiral_Rect_STD(name=None, Dmin=50, R_bend=10, Lmin=50, width=2, w_port=0.45, gap=1, cycles=20, xs='strip', layer=None, Lport=10, in_out_align=True, res=0.5, cell_xs_transition=None, port_angle=180, show_pins=False, sharp_patch=True)#

Bases: spiral_rectangle

Convenience preset for rectangular spirals that share a single bend radius.

Parameters:
  • name (str or None, optional) – Nazca cell name (default is None).

  • Dmin (float, optional) – Minimum inner spacing between the first pair of bends (default is 50).

  • R_bend (float, optional) – Bend radius applied to every corner (default is 10).

  • Lmin (float, optional) – Straight length of the innermost segment (default is 50).

  • width (float, optional) – Waveguide width throughout the spiral (default is 2).

  • w_port (float, optional) – IO waveguide width after the final taper (default is 0.45).

  • gap (float, optional) – Spacing between successive turns (default is 1).

  • cycles (float, optional) – Number of rectangular loops (default is 20).

  • xs (str, optional) – Cross-section key (default is “strip”).

  • layer (str or None, optional) – Override polygon layer (default is None).

  • Lport (float, optional) – Length of straight port extensions (default is 10).

  • in_out_align (bool, optional) – Align input/output along the same axis when port_angle=180 (default is True).

  • res (float, optional) – Arc-length sampling resolution (default is 0.5).

  • cell_xs_transition (nd.Cell or object, optional) – Transition cell appended at the ports (default is None).

  • port_angle (float, optional) – Output bend angle in degrees (default is 180).

  • show_pins (bool, optional) – Draw Nazca stub markers when True (default is False).

  • sharp_patch (bool, optional) – Insert chamfer helpers when True (default is True).

spiral#

../../../_images/spiral.png
class mxpic.components.primitives.spiral.spiral(name=None, shape='circle', Dmin=50, R_bend=10, Rmin_euler=10, Lmin=50, width=2, w_port=0.45, w_bend_center=1, Rmin_bend_center=10, gap=1, cycles=20, xs='strip', layer=None, w_bend_port=None, Ltp_port=10, res=0.5, cell_transition=None, port_angle=180, Euler_bend=False, show_pins=False, sharp_patch=True, sample_build=False)#

Bases: object

Parametric waveguide spiral supporting circular or rectangular footprints.

Parameters:
  • name (str, optional) – Nazca cell name (default is None).

  • shape (str, optional) – Footprint style used for the spiral path, circular or rectangular (default is “circle”).

  • Dmin (float, optional) – Minimum inner diameter in microns; sets the first loop radius (default is 50).

  • R_bend (float, optional) – Bend radius in microns for rectangular implementations (default is 10).

  • Rmin_euler (float, optional) – Minimum radius inside Euler bends when Euler_bend is True (default is 10).

  • Lmin (float, optional) – Straight length in microns used by the innermost rectangular loop (default is 50).

  • width (float, optional) – Nominal waveguide width inside the spiral body (default is 2).

  • w_port (float, optional) – Output-port width in microns. None inherits width (default is 0.45).

  • w_bend_center (float, optional) – Waveguide width used in the central attachment bends (default is 1).

  • Rmin_bend_center (float, optional) – Minimum radius for the attachment bends (default is 10).

  • gap (float, optional) – Spacing between adjacent turns in microns (default is 1).

  • cycles (float, optional) – Number of half-turns (π radians) laid out in the spiral (default is 20).

  • xs (str, optional) – Cross-section key for the entire structure (default is “strip”).

  • layer (str, optional) – Override layer for polygons; None derives from xs (default is None).

  • w_bend_port (float or None, optional) – Width inside the outermost bends; None inherits width (default is None).

  • Ltp_port (float, optional) – Length of straight tapers that adapt width to w_port (default is 10).

  • res (float, optional) – Arc-length sampling step (µm) used for polygon tessellation (default is 0.5).

  • cell_transition (nazca.Cell, optional) – Insert XS transitions cell to strip when connecting ports (default is None).

  • port_angle (float, optional) – Output-port deflection angle in degrees, measured from +x (default is 180).

  • Euler_bend (bool, optional) – Use Euler/Clothoid bends at the center instead of circular bends (default is False).

  • show_pins (bool, optional) – Draw Nazca stub markers when True (default is False).

  • sharp_patch (bool, optional) – Add chamfer helper polygons when True (default is True).

generate_gds(show_pins)#

spiral_circle#

../../../_images/spiral_circle.png
class mxpic.components.primitives.spiral.spiral_circle(name=None, Dmin=50, width=2, w_port=0.45, w_bend_center=1, gap=1, cycles=20, xs='strip', layer=None, Lport=10, res=0.5, rib2strip=True, port_angle=180, Euler_Sbend=False, show_pins=False, sharp_patch=True, strict_condition=False, R_ratio_mamnual=None)#

Bases: object

Circular spiral with optional internal Euler S-bends and port transitions.

Parameters:
  • name (str or None, optional) – Nazca cell name (default is None).

  • Dmin (float, optional) – Minimum inner diameter in microns (default is 50).

  • width (float, optional) – Nominal waveguide width (default is 2).

  • w_port (float, optional) – Output-port width after the final taper (default is 0.45).

  • w_bend_center (float, optional) – Waveguide width within the central attachment bend (default is 1).

  • gap (float, optional) – Spacing between adjacent turns (default is 1).

  • cycles (float, optional) – Number of half-turns (π radians) (default is 20).

  • xs (str, optional) – Cross-section key (default is “strip”).

  • layer (str or None, optional) – Override layer for polygons (default is None).

  • Lport (float, optional) – Length of straight sections appended to each port (default is 10).

  • res (float, optional) – Arc-length sampling step (default is 0.5).

  • rib2strip (bool, optional) – Insert rib-to-strip transitions at the ports (default is True).

  • port_angle (float, optional) – Output bend angle in degrees (default is 180).

  • Euler_Sbend (bool, optional) – Use optimized Euler S-bends at the center (default is False).

  • show_pins (bool, optional) – Draw Nazca stub markers when True (default is False).

  • sharp_patch (bool, optional) – Add chamfer polygons when True (default is True).

  • strict_condition (bool, optional) – Enforce constant spacing by matching the conchoid tilt exactly (default is False).

  • R_ratio_mamnual (tuple or None, optional) – Manually override the radius ratios used in Euler S-bends; expected form (Rc_ratio, Rm_ratio, tilt).

cell#

Optimizing the bend radius for the minimum and central

generate_gds(show_pins)#
opt_euler(R, R0)#

spiral_rectangle#

mxpic/components/primitives/spiral_rectangle.png
class mxpic.components.primitives.spiral.spiral_rectangle(name=None, Dmin=50, Rmax_bend=10, Rmin_bend=10, wmin_bend=10, Lmin=50, width=2, w_port=0.45, gap=1, cycles=20, xs='strip', layer=None, w_bend_port=None, Lport=10, Ltp=10, res=0.5, cell_xs_transition=None, port_angle=180, show_pins=False, sharp_patch=True, in_out_align=True, Lpatch=0.05, sample_build=False)#

Bases: object

Rectangular spiral with optional cross-section transitions and alignment control.

Parameters:
  • name (str or None, optional) – Nazca cell name (default is None).

  • Dmin (float, optional) – Minimum vertical separation between the first pair of bends (default is 50).

  • Rmax_bend (float, optional) – Maximum radius used inside Clothoid bends (default is 10).

  • Rmin_bend (float, optional) – Minimum radius reached inside Clothoid bends (default is 10).

  • wmin_bend (float, optional) – Minimum waveguide width inside bends (default is 10).

  • Lmin (float, optional) – Straight length of the innermost segment (default is 50).

  • width (float, optional) – Nominal waveguide width along the spiral (default is 2).

  • w_port (float, optional) – IO waveguide width after the final taper (default is 0.45).

  • gap (float, optional) – Spacing between successive turns (default is 1).

  • cycles (float, optional) – Number of rectangular loops (default is 20).

  • xs (str, optional) – Cross-section key (default is “strip”).

  • layer (str, optional) – Override polygon layer (default is None).

  • w_bend_port (float or None, optional) – Bend waveguide width; inherits width when None (default is None).

  • Lport (float, optional) – Length of straight sections appended at each port (default is 10).

  • Ltp (float, optional) – Taper length that converts bend width to width (default is 10).

  • res (float, optional) – Arc-length sampling resolution (default is 0.5).

  • cell_xs_transition (nd.Cell or object, optional) – Pre-built cell that performs cross-section transitions after the ports (default is None).

  • port_angle (float, optional) – Output bend angle in degrees (default is 180).

  • show_pins (bool, optional) – Draw Nazca stub markers when True (default is False).

  • sharp_patch (bool, optional) – Insert chamfer helpers when True (default is True).

  • in_out_align (bool, optional) – If True, align input/output along the same axis when port_angle=180 (default is True).

  • Lpatch (float, optional) – Small straight length inserted before/after bends to ease Boolean ops (default is 0.05).

generate_gds(show_pins)#