ModifiedWaveguideGratingPeriod¶
-
class
picazzo3.wg.grating.cell.
ModifiedWaveguideGratingPeriod
(*args, **kwargs)¶ Period for a waveguide with modified parameters. The base definition is taken from the wg_template which is used for the ports. The modify_waveguide_parameters property then creates the blocks with modified widths, by adapting the properties of the individual waveguide template.
Parameters: modified_waveguide_parameters: optional
Dict of the parameters of the waveguide template that should be modified for the different sections of the Grating Period.
n_o_sections: int and number > 0, optional
Number of sections in the grating period
wg_template: PCell and _WaveguideTemplate, optional
Waveguide template of start and end of the period (and ports)
cell_instances: _PCellInstanceDict, optional
name: optional
The unique name of the pcell
wg_templates: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>, locked
Views
-
Layout
¶ Parameters: view_name: str, optional
The name of the view
section_lengths: list<number >= 0>, optional
List of lengths for the waveguide templates
length: float and Real, number and number >= 0, optional
Length of the grating period.
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
""" In this example we build a grating from a modified slot waveguide. Starting from the basic slot waveguide template, we define grating period sections with different slot width and core width. """ from technologies import silicon_photonics from ipkiss3 import all as i3 from picazzo3.wg.grating import WaveguideUniformGrating, ModifiedWaveguideGratingPeriod from picazzo3.traces.slot_wg import SlotWaveguideTemplate t = SlotWaveguideTemplate(name="slot_t") t.Layout(core_width=0.6, slot_width=0.15, cladding_width=3.0) period = ModifiedWaveguideGratingPeriod(name="period", wg_template=t, n_o_sections=5) # we modify the core width and the slot width period.Layout(section_lengths=[0.1, 0.1, 0.3, 0.1, 0.1], modified_waveguide_parameters={'slot_width': [0.15, 0.18, 0.20, 0.18, 0.15], 'core_width': [0.6, 0.59, 0.58, 0.59, 0.6]}) grating = WaveguideUniformGrating(name="my_grating_modifiedwg", period_cell=period, n_o_periods=12) layout = grating.Layout() layout.visualize()
-