mxpic.components.primitives.spiral#
Spiral_Cicle_MM#
- 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#
- 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#
- 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_rectangleConvenience 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#
- 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:
objectParametric 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_bendis 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.
Noneinheritswidth(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;
Nonederives fromxs(default is None).w_bend_port (float or None, optional) – Width inside the outermost bends;
Noneinheritswidth(default is None).Ltp_port (float, optional) – Length of straight tapers that adapt
widthtow_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#
- 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:
objectCircular 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#
- 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:
objectRectangular 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
widthwhen 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)#