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
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.
angle_step: float and number > 0, optional
angle step for rounding
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
adds rectangular blocks in the bends to avoid as much as possible non-manhattan angles
rounding algorithm used to generate the bends. Can be circular, spline, …
view_name: str, optional
The name of the view
shape: Shape, optional
Shape of the ring
shape_position: Coord2, optional
Translation of the shape.
When True, the Ring area will be covered by i3.Rectangles on all cover layers of the ring waveguide template.
list of coupler transformations
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
Number of grid cells per design unit
Ratio of grid cell and design unit
Shapes of the ring segments. Locked, as there is only 1 ring segment. Use ‘shape’ instead
unit: float and number > 0, locked
design unit. Extracted by default from TECH.METRICS.UNIT
""" 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") wg_t.Layout(core_width=0.45) shape = i3.ShapeCross(box_size=26.0, thickness=13.0) ring = RingRoundedShape(name="my_roundedring", ring_trace_template=wg_t) layout = ring.Layout(shape=shape, bend_radius=3.0) layout.visualize()