class picazzo3.traces.rib_wg.RibWaveguideTemplate(*args, **kwargs)

This waveguide is a (shallow etched) rib waveguide, with no specific bound in the slab.

_______________|           |________________   



The unique name of the pcell



cladding_width: float and number > 0

total width of the waveguide with cladding

control_shape_layer: __Layer__

layer on which the control shape is drawn

core_process: ProcessLayer

process of the rib

core_width: float and number > 0

width of the rib

view_name: str and ( Alphanumeric string or Contains _$ )

The name of the view

windows: List with type restriction, allowed types: <class ‘ipkiss3.pcell.trace.window.window._TraceWindow’>

List of Trace Windows that know how to draw themselves relative to the shape of the Trace

cover_layers: List with type restriction, allowed types: <class ‘ipkiss.primitives.layer.Layer’>

layers that can be used to generate additional coverage of the trace (e.g. manhattan corners)

cladding_process: ProcessLayer

process for the waveguide cladding, defaults to the core process

cladding_purpose: PatternPurpose

drawing purpose layer for the cladding

core_purpose: PatternPurpose

drawing purpose for the waveguide core

core_layer: __Layer__

layer used to define the core of the waveguide

pin_shape: Shape

shape to be used for the pins

trace_template_for_ports: _TraceTemplate.Layout

Trace template to be used for the ports. Default = this template

draw_control_shape: ( bool, bool_, bool or int )

draws the control shape on top of the waveguide

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


""" This example shows how you use the template to directly create a rib waveguide PCell
and its layout. """
from technologies import silicon_photonics
from ipkiss3 import all as i3
from picazzo3.traces.rib_wg.trace import RibWaveguideTemplate
wg_t = RibWaveguideTemplate(name="my_rib_wg_template1")
            cladding_width=2 * 3.0 + 0.47,

wg = wg_t(name="my_rib_waveguide1")
layout = wg.Layout(shape=[(0.0, 0.0), (10.0, 0.0)])