FixedLengthSpiral

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

Spiral with incoupling sections that calculates its length. The total length is set by the property total_length and the inner size of the spiral will be adapted so that the total length of the spiral (including the incoupling sections) would be equal to total_length. The way this inner size is calculated can set using properties in the Layout view.

Parameters:

total_length: float and number > 0, optional

Total design length of the spiral.

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

The inner size of the spiral is calculated by assuming a minimal inner_size and growing it in either the direction set by growth_direction. An error is raised when that is impossible to do with the set number of loops.

Parameters:

growth_direction: optional

stub_direction: optional

view_name: str, optional

The name of the view

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

length of the incoupling section.

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

spacing between the individual loops.

shapes: list, optional

List of shapes used to build the traces

flatten: optional

If true the instances are flattened

grids_per_unit: locked

Number of grid cells per design unit

inner_size: locked

units_per_grid: locked

Ratio of grid cell and design unit

spiral_center: locked

auto_transform: locked

grid: float and number > 0, locked

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

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 FixedLengthSpiral
from ipkiss3 import all as i3

cell = FixedLengthSpiral(total_length=4000, n_o_loops=6, trace_template=i3.TECH.PCELLS.WG.DEFAULT)

layout = cell.Layout(incoupling_length=10.0,
                     spacing=4,
                     stub_direction="H",  # either H or V
                     growth_direction="V"  # either H or V
                     )

# Checking if the trace length is indeed correct
print layout.trace_length()

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