WaveguideNonUniformGrating¶
-
class
picazzo3.wg.grating.cell.
WaveguideNonUniformGrating
(*args, **kwargs)¶ Waveguide with inline, non-uniform grating. The grating periods are described as individual cells, and they are concatenated into a grating.
Parameters: period_cells: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’> and List with type restriction, allowed types: <class ‘picazzo3.wg.grating.cell._WaveguideGratingPeriod’>, optional
cell_instances: _PCellInstanceDict, optional
name: optional
The unique name of the pcell
Views
-
Layout
¶ Parameters: view_name: str, optional
The name of the view
grids_per_unit: locked
Number of grid cells per design unit
units_per_grid: locked
Ratio of grid cell and design unit
grid: float and number > 0, locked
design grid. Extracted by default from TECH.METRICS.GRID
unit: float and number > 0, locked
design unit. Extracted by default from TECH.METRICS.UNIT
Examples
""" How to create a fully customized non-uniform grating using 3 different unit cells constructed from two waveguide templates. """ from technologies import silicon_photonics from ipkiss3 import all as i3 from picazzo3.wg.grating import WaveguideNonUniformGrating, WaveguideSectionsGratingPeriod from picazzo3.traces.wire_wg import WireWaveguideTemplate from picazzo3.traces.slot_wg import SlotWaveguideTemplate # 2 templates to make a single period unit cell t1 = WireWaveguideTemplate(name="wire_t") t1.Layout(core_width=0.6, cladding_width=3.0) t2 = SlotWaveguideTemplate(name="slot_t") t2.Layout(core_width=0.6, slot_width=0.15, cladding_width=3.0) # 3 different grating period unit cells period1 = WaveguideSectionsGratingPeriod(name="period1", wg_templates=[t1, t2, t1]) period1.Layout(section_lengths=[0.2, 0.3, 0.2]) period2 = WaveguideSectionsGratingPeriod(name="period2", wg_templates=[t1, t2, t1]) period2.Layout(section_lengths=[0.13, 0.4, 0.13]) period3 = WaveguideSectionsGratingPeriod(name="period3", wg_templates=[t1, t2, t1]) period3.Layout(section_lengths=[0.11, 0.5, 0.11]) # a nonuniform grating with different starting and ending cells (apodized) grating = WaveguideNonUniformGrating(name="my_nonuniform_grating", period_cells=[period1, period2, period3, period3, period3, period3, period3, period3, period3, period3, period3, period3, period3, period3, period2, period1 ]) layout = grating.Layout() layout.visualize()
-