class picazzo3.fibcoup.uniform.cell.UniformLineGrating(*args, **kwargs)

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


inclination: float

out-of-plane angle of the grating coupler

socket: PCell and WgSocket

socket of the fiber coupler

grating: PCell

grating of this fiber coupler

trace_template: PCell and _TraceTemplate

trace template for the socket waveguide


The unique name of the pcell



grating_transformation: GenericNoDistortTransform

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

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

process: ProcessLayer

process layer for the grating

purpose: PatternPurpose

drawing purpose for the grating lines

view_name: str and ( Alphanumeric string or Contains _$ )

The name of the view

socket_length: float and number > 0

length of the straight waveguide socket

socket_transformation: GenericNoDistortTransform


# Creation of a uniform grating coupler with a taper.
from technologies import silicon_photonics
from ipkiss3 import all as i3
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 = FGC.Layout(period=0.8,

# 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)