class picazzo3.wg.grating.cell.WaveguideUniformGrating

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

n_o_periods: int and number > 0

The number of periods

period_cell: PCell and _WaveguideGratingPeriod

The unit cell of the grating

name: String that contains only ISO/IEC 8859-1 (extended ASCII py3) or pure ASCII (py2) characters

The unique name of the pcell


class Layout
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


"""How to create a uniform grating with a custom unit cell."""
from technologies import silicon_photonics  # noqa: F401
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()