SingleSpiralRounded

class picazzo3.wg.spirals.cell.SingleSpiralRounded(*args, **kwargs)

Rounded single spiral class going from the inside to the outside. The trace template provided in the property trace_template is used to build a chain of waveguides. All the rounding properties can be set at the layout level.

Parameters:

n_o_loops: int and number > 0, optional

Number of loops in the spiral

trace_template: PCell and _TraceTemplate, optional

Trace template used in the chain.

cell_instances: _PCellInstanceDict, optional

name: optional

The unique name of the pcell

traces: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>, locked

n_o_traces: int and number > 0, locked

Total number of traces used in the spiral.

Views

Layout
Parameters:

angle_step: float and number > 0, optional

angle step for rounding

manhattan: optional

adds rectangular blocks in the bends to avoid as much as possible non-manhattan angles

rounding_algorithm: optional

rounding algorithm used to generate the bends. Can be circular, spline, …

view_name: str, optional

The name of the view

inner_size: Coord2, optional

Inner size of the the spiral, defaults to 3 * spacing + 2 * bend_radius, in each direction

spacing: float and Real, number and number >= 0, optional

spacing between the individual loops.

spiral_center: Coord2, optional

locatation of the center of the spiral.

shapes: list, optional

List of shapes used to build the traces

flatten: optional

If true the instances are flattened

bend_radius: float and number > 0, optional

bend radius for the auto-generated bends

grid: float and number > 0, locked

design grid. Extracted by default from TECH.METRICS.GRID

grids_per_unit: locked

Number of grid cells per design unit

units_per_grid: locked

Ratio of grid cell and design unit

auto_transform: locked

unit: float and number > 0, locked

design unit. Extracted by default from TECH.METRICS.UNIT

Examples

from technologies import silicon_photonics
from picazzo3.wg.spirals import SingleSpiralRounded
from ipkiss3 import all as i3

cell = SingleSpiralRounded(n_o_loops=5, trace_template=i3.TECH.PCELLS.WG.DEFAULT)
layout = cell.Layout(inner_size=(30.0, 30.0),
                     bend_radius=3.0,
                     manhattan=True,
                     spacing=5.0,
                     spiral_center=(2, 1))

layout.visualize()
../../../../_images/picazzo3-wg-spirals-cell-SingleSpiralRounded-1.png