WaveguideSideGratingPeriod
- class picazzo3.wg.grating.cell.WaveguideSideGratingPeriod
Period for a waveguide with side gratings. The base definition is taken from the wg_template which is used for the ports. The widths property then creates the blocks with modified widths, based on the original. (another parameter can be adapted by changing the property width_parameter_name)
- Parameters:
- n_o_sections: int and number > 0
Number of sections in the grating period
- wg_template: PCell and _WaveguideTemplate
Waveguide template of start and end of the period (and ports)
- 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:
- modified_waveguide_parameters: locked
- wg_templates: List with type restriction, allowed types: <class ‘ipkiss3.pcell.cell.pcell.PCell’>, locked
Views
- class Layout
- Parameters:
- relative_widths: ( bool, bool_ or int )
If True, the values of the width are relative to the original value.
- width_parameter_name: String that contains only alphanumeric characters from the ASCII set or contains _$. ASCII set is extended on PY3.
Name of the property of the waveguide template that is to be adjusted by the values in ‘widths’.
- widths: list<Real, number>
The modified widths of the waveguide core. If ‘relative_widths’ is True, the values are relative to the original core width. It is also possible to adjust another parameter than ‘core_width’ by overriding the ‘width_parameter_name’.
- section_lengths: list<number >= 0>
List of lengths for the waveguide templates
- length: float and Real, number and number >= 0
Length of the grating period.
- 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
"""We make a grating based on a wire waveguide and modify the width of the core to create side gratings: """ import si_fab.all as pdk # noqa: F401 from picazzo3.wg.grating import WaveguideUniformGrating, WaveguideSideGratingPeriod period = WaveguideSideGratingPeriod(n_o_sections=3) # we modify the width with +/- 50nm # relative to the original core width period.Layout(section_lengths=[0.1, 0.13, 0.1], widths=[-0.05, +0.05, -0.05], relative_widths=True) grating = WaveguideUniformGrating(name="my_side_grating", period_cell=period, n_o_periods=12) layout = grating.Layout() layout.visualize(annotate=True)