WaveguideUniformGrating

class picazzo3.wg.grating.cell.WaveguideUniformGrating(*args, **kwargs)

Waveguide with inline, uniform grating. The grating consists of a Child cell with the period, which is repeated to create the grating.

Parameters:

n_o_periods: int and number > 0, optional

The number of periods

period_cell: PCell and _WaveguideGratingPeriod, optional

The unit cell of the grating

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 uniform grating with a custom unit cell.
"""
from technologies import silicon_photonics
from ipkiss3 import all as i3
from picazzo3.wg.grating import WaveguideUniformGrating, WaveguideSectionsGratingPeriod
from picazzo3.traces.wire_wg import WireWaveguideTemplate
from picazzo3.traces.slot_wg import SlotWaveguideTemplate

# 2 templates to make a single period
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)

period = WaveguideSectionsGratingPeriod(name="period",
                                        wg_templates=[t1, t2, t1])
period.Layout(section_lengths=[0.11, 0.5, 0.11])

grating = WaveguideUniformGrating(name="my_uniform_grating",
                                  period_cell=period,
                                  n_o_periods=12)
layout = grating.Layout()

layout.visualize()
../../../../_images/picazzo3-wg-grating-cell-WaveguideUniformGrating-1.png