RingRectSBendNotchFilter¶
-
class
picazzo3.filters.ring.cell.
RingRectSBendNotchFilter
(*args, **kwargs)¶ Rectangular Ring resonator with one bus waveguide, which is placed on the South side of the ring. The shape of the bus waveguide bends away from the ring, and then again horizontally, with an S-bend.
The ring shape is a rounded rectangle of which the bend radius can be specified, as well as the horizontal and vertical straight sections. it is also possible to specify the rounding algorithm of the bends.
The waveguide template of the ring and the couplers can be chosen independently.
Parameters: coupler_trace_templates: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>
list of trace_templates for the ring couplers. By default the same template as the ring is taken
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:
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.
See also
Views
-
Layout
¶ Parameters: angle_step: float and number > 0
Angle step for rounding.
coupler_angles: list<[0,90]>
coupler_lengths: list<number >= 0>
straight lengths of the couplers. if None, same lengths as the ring will be used
coupler_parameters:
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
manhattan: ( bool, bool_, bool or int )
Adds rectangular blocks in the bends to avoid as much as possible non-manhattan angles.
shape_position: Coord2
Translation of the shape.
view_name: str and ( Alphanumeric string or Contains _$ )
The name of the view
coupler_sbend_straights: list<number >= 0>
coupler_radii: list<number >= 0>
radii of the couplers. if None, same radius as the ring will be used
coupler_rounding_algorithms:
rounding algorithm of the couplers. if None, same radius as the ring will be used
coupler_offsets: list<Real, number>
list of offsets of the ring couplers along the centerline
coupler_spacings: list<Real, number>
list of centerline-to-centerline spacings of the ring couplers.When negative, the ring and coupler waveguide will cross, which ispossible when the ring traces template and the coupler trace templateare on different process layers (vertical couplers)
straights: Coord2
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.
coupler_transformations:
list of coupler transformations
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: shape: locked
shapes: locked
Shapes of the ring segments. Locked, as there is only 1 ring segment. Use ‘shape’ instead
Examples
from technologies import silicon_photonics from picazzo3.filters.ring import RingRectSBendNotchFilter import ipkiss3.all as i3 ring = RingRectSBendNotchFilter(name="my_ring12") layout = ring.Layout(straights=(i3.TECH.WG.SHORT_STRAIGHT, i3.TECH.WG.SHORT_STRAIGHT+3.0), coupler_sbend_straights = [6.0], manhattan=True, area_layer_on=False ) layout.visualize(annotate=True)
-