DoubleSpiralWithInCouplingRounded

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

Rounded double spiral class with both access waveguides on the outside of the spiral. In coupling waveguides are added to the spiral, one at the east side and one at the west side. 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

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.

rounding_algorithm: optional

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

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.

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

spiral_center: locked

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

cell = DoubleSpiralWithInCouplingRounded(n_o_loops=3, trace_template=i3.TECH.PCELLS.WG.DEFAULT)
layout = cell.Layout(inner_size=(30.0, 30.0),
                     incoupling_length=10.0,
                     bend_radius=3.0,
                     manhattan=False,
                     spacing=5.0)

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