DoubleSpiralWithInCouplingRounded

class picazzo3.wg.spirals.cell.DoubleSpiralWithInCouplingRounded

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

Number of loops in the spiral

trace_template: PCell and _TraceTemplate

Trace template used in the chain.

name: String that contains only ISO/IEC 8859-1 (extended ASCII py3) or pure ASCII (py2) characters

The unique name of the pcell

Other Parameters
n_o_traces: int and number > 0, locked

Total number of traces used in the spiral.

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

Views

class Layout
Parameters
incoupling_length: float and Real, number and number >= 0

length of the incoupling section.

stub_direction: List with value restriction, allowed values: [‘H’, ‘V’]
flatten: ( bool, bool_, bool or int )

If true the instances are flattened

shapes: list

List of shapes used to build the traces

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

spacing between the individual loops.

inner_size: Coord2 and number >= 0

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

view_name: String that contains only alphanumeric characters from the ASCII set or contains _$. ASCII set is extended on PY3.

The name of the view

manhattan: ( bool, bool_, bool or int )

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

angle_step: float and number > 0

Angle step for rounding.

bend_radius: float and number > 0

Bend radius for the auto-generated bends.

rounding_algorithm:

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

Other Parameters
spiral_center: locked
auto_transform: locked

Examples

from technologies import silicon_photonics  # noqa: F401
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(annotate=True)
../../../../_images/picazzo3-wg-spirals-cell-DoubleSpiralWithInCouplingRounded-1.png