- class picazzo3.filters.ring.cell.RingShape¶
Ring Resonator made of a single trace along an arbitrary shape.
The user supplies a Trace Template, as well as a shape to the Layout, from which the ring resonator waveguides are drawn.
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
Trace template for the ring waveguide
- couplers: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>
list of coupler PCells
- ring_segments: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>
list of Ring PCells
- 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
- 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.
- class Layout¶
- shape: Shape
Shape of the ring
- shape_position: Coord2
Translation of the shape.
- area_layer_on: ( bool, bool_, bool or int )
When True, the Ring area will be covered by i3.Rectangles on all cover layers of the ring waveguide template.
list of coupler transformations
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
- 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
- Other Parameters
- 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 shape which is drawn using the provided trace template. """ from technologies import silicon_photonics # noqa: F401 from ipkiss3 import all as i3 from picazzo3.filters.ring import RingShape from picazzo3.traces.wire_wg.trace import WireWaveguideTemplate shape = i3.ShapeRegularPolygon(radius=10.0, n_o_sides=8) wg = WireWaveguideTemplate(name="wire_wg_template_1") wg.Layout(core_width=0.7) ring = RingShape(name="my_ringshape", ring_trace_template=wg) layout = ring.Layout(shape=shape) layout.visualize(annotate=True)