UniformLineGrating

class picazzo3.fibcoup.uniform.cell.UniformLineGrating

Uniform 1D fiber coupler grating consisting of identical grating lines, on a straight waveguide socket

Parameters:
inclination: float

out-of-plane angle of the grating coupler

grating: PCell

grating of this fiber coupler

trace_template: PCell and _TraceTemplate

trace template for the socket waveguide

socket: PCell and WgSocket

socket of the fiber coupler

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

The unique name of the pcell

Views

class Layout
Parameters:
n_o_periods: int and number > 0

number of periods of the grating

origin: Coord2

local origin of the grating (first trench)

period: float and number > 0

period of the grating

purpose: PatternPurpose

drawing purpose for the grating lines

process: ProcessLayer

process layer for the grating

line_length: float and number > 0

length of the grating trenches (perpendicular to the socket waveguide)

line_width: float and number > 0

width of the grating trenches, drawn in the given layer

grating_transformation: GenericNoDistortTransform
socket_length: float and number > 0

length of the straight waveguide socket

socket_transformation: GenericNoDistortTransform
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

# Creation of a uniform grating coupler with a taper.
import si_fab.all as pdk  # noqa: F401
from picazzo3.traces.wire_wg import WireWaveguideTemplate
from picazzo3.fibcoup.uniform import UniformLineGrating

# Creating the trace template for the grating area
wg_coupler = WireWaveguideTemplate()
wg_coupler.Layout(core_width=15.0, cladding_width=18.0)

FGC = UniformLineGrating(trace_template=wg_coupler)
FGC.Layout(period=0.8, line_width=0.4, line_length=18.0, n_o_periods=24)

# Adding taper to the fibergrating coupler.

# trace template for the connecting waveguide.
wg_t = WireWaveguideTemplate()
wg_t.Layout(core_width=0.5, cladding_width=4.0)

from picazzo3.container.transition_ports import AutoTransitionPorts

Tapered_FCG = AutoTransitionPorts(contents=FGC, port_labels=["out"], trace_template=wg_t)
Tapered_FCG.Layout().visualize(annotate=True)
../../../../../_images/picazzo3-fibcoup-uniform-cell-UniformLineGrating-1.png