WaveguideSideBlockGratingPeriod¶
-
class
picazzo3.wg.grating.cell.
WaveguideSideBlockGratingPeriod
(*args, **kwargs)¶ Period for a waveguide with blocks on the side. The base definition is taken from the wg_template which is used for the ports.
Parameters: wg_template: PCell and _WaveguideTemplate
Waveguide template of start and end of the period (and ports)
name:
The unique name of the pcell
Views
-
Layout
¶ Parameters: block_height: float and number > 0
The height of the side block, perpendicular to the waveguide direction. By default, it extends up to the edge of the cladding.
block_layer: __Layer__
Layer on which the blocks should be drawn. By default, the core layer of the waveguide is used.
block_offset: float and Real, number and number >= 0
The offset from the waveguide center line to the block’s edge closest to the waveguide core. By default, the core width is used.
block_width: float and number > 0
The width of the block along the waveguide direction. If ‘relative_block_width’ is True (default), this is expressed as a fraction of the period length (fill factor).
relative_block_width: ( bool, bool_, bool or int )
If True, the block width is expressed as a fraction of the length.
view_name: str and ( Alphanumeric string or Contains _$ )
The name of the view
length: float and Real, number and number >= 0
Length of the grating period.
Examples
""" We make a grating with blocks on the side. """ from technologies import silicon_photonics from ipkiss3 import all as i3 from picazzo3.wg.grating import WaveguideUniformGrating, WaveguideSideBlockGratingPeriod from picazzo3.traces.wire_wg import WireWaveguideTemplate t1 = WireWaveguideTemplate(name="wire_t") t1.Layout(core_width=0.6, cladding_width=3.0) period = WaveguideSideBlockGratingPeriod(name="period_sb", wg_template=t1) period.Layout(length=0.31) # use defaults period.CircuitModel(reflection=0.2) grating = WaveguideUniformGrating(name="my_sideblock_grating", period_cell=period, n_o_periods=12) layout = grating.Layout() layout.visualize(annotate=True)
-