TemplatedWaveguideBundle

class picazzo3.wg.bundle.cell.TemplatedWaveguideBundle

Waveguide bundle based on a list of Trace templates.

Parameters
trace_templates: list

templates to use for each of the traces

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
traces: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>, locked

the traces in this bundle

Views

class Layout
Parameters
shapes: list and List with type restriction, allowed types: <class ‘ipkiss.geometry.shape.Shape’>

shapes of the traces

area_layer_on: ( bool, bool_, bool or int )

When True, the entire bundle area will be covered by all the cover layers.

trace_transformations: list and List with type restriction, allowed types: <class ‘ipkiss.geometry.transform.Transform’>

transformations to be applied to each of the traces

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)

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

Examples

from technologies import silicon_photonics  # noqa: F401
import ipkiss3.all as i3
from picazzo3.wg.bundle import TemplatedWaveguideBundle
from picazzo3.traces.wire_wg.trace import WireWaveguideTemplate

wg_t = WireWaveguideTemplate()
wg_t.Layout(core_width=0.550, cladding_width=i3.TECH.WG.CLADDING_WIDTH, core_process=i3.TECH.PROCESS.WG)
shape = i3.Shape([(0.0, 0.0), (20.0, 5.0)])
trace_tfs = [i3.Translation(translation=(0.0, 10.0 * i)) for i in range(5)]
C = TemplatedWaveguideBundle(trace_templates=[wg_t] * 5)
lay = C.Layout(trace_transformations=trace_tfs, shapes=[shape] * 5)
lay.visualize(annotate=True)
../../../../_images/picazzo3-wg-bundle-cell-TemplatedWaveguideBundle-1.png
from technologies import silicon_photonics  # noqa: F401
import ipkiss3.all as i3
from picazzo3.wg.bundle import TemplatedWaveguideBundle
from picazzo3.traces.wire_wg.trace import WireWaveguideTemplate

wg_t = WireWaveguideTemplate()
wg_t.Layout(core_width=0.550, cladding_width=i3.TECH.WG.CLADDING_WIDTH, core_process=i3.TECH.PROCESS.WG)
shapes = [i3.Shape([(0.0, 0.0), (20.0 + 2 * i, 5.0 + 2 * i)]) for i in range(5)]
trace_tfs = [i3.Translation(translation=(0.0, 10.0 * i)) for i in range(5)]
C = TemplatedWaveguideBundle(trace_templates=[wg_t] * 5)
lay = C.Layout(trace_transformations=trace_tfs, shapes=shapes)
lay.visualize(annotate=True)
../../../../_images/picazzo3-wg-bundle-cell-TemplatedWaveguideBundle-2.png