class picazzo3.filters.ring.cell.RingRoundedShape(*args, **kwargs)

A ring resonator based on a rounded shape, without couplers.

The Layout takes a shape, and a trace template. The trace template is turned into a RoundedTraceTemplate with the user supplied bend_radius and rounding_algorithm.

By default, this ring has no couplers. you can supply the couplers manually as a list of child cells through the property ‘couplers’, or you can subclass this PCell to define the couplers internally.


ring_trace_template: PCell and _WaveguideTemplate, optional

Trace template for the ring waveguide

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

list of coupler PCells

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

list of Ring PCells

cell_instances: _PCellInstanceDict, optional

name: optional

The unique name of the pcell

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

Trace templates for the ring segments. Locked, as there is only one segment in this Ring. Use ‘ring_trace_template’ instead.

See also

RingTraces, RingShape, RingRect



angle_step: float and number > 0, optional

angle step for rounding

coupler_parameters: optional

Parameters for the couplers. This is a list of dicts, and the length of the list should be the same as the number of couplers

grid: float and number > 0, optional

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

grids_per_unit: optional

Number of grid cells per design unit

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, …

units_per_grid: optional

Ratio of grid cell and design unit

view_name: str, optional

The name of the view

shape: Shape, optional

Shape of the ring

shape_position: Coord2, optional

Translation of the shape.

area_layer_on: optional

When True, the Ring area will be covered by i3.Rectangles on all cover layers of the ring waveguide template.

coupler_transformations: optional

list of coupler transformations

unit: float and number > 0, optional

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

bend_radius: float and number > 0, optional

bend radius for the auto-generated bends

shapes: locked

Shapes of the ring segments. Locked, as there is only 1 ring segment. Use ‘shape’ instead


""" This example demonstrates a generic ring consisting of a user-defined control shape
which is drawn by rounding using the provided trace template with a given bend radius
from technologies import silicon_photonics
from ipkiss3 import all as i3
from picazzo3.filters.ring import RingRoundedShape
from picazzo3.traces.wire_wg.trace import WireWaveguideTemplate

wg_t = WireWaveguideTemplate(name="wg_template_2")

shape = i3.ShapeCross(box_size=26.0, thickness=13.0)

ring = RingRoundedShape(name="my_roundedring",
layout = ring.Layout(shape=shape,