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, optional

out-of-plane angle of the grating coupler

socket: PCell and WgSocket, optional

socket of the fiber coupler

grating: PCell, optional

grating of this fiber coupler

trace_template: PCell and _TraceTemplate, optional

trace template for the socket waveguide

cell_instances: _PCellInstanceDict, optional

name: optional

The unique name of the pcell



grating_transformation: GenericNoDistortTransform, optional

line_length: float and number > 0, optional

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

line_width: float and number > 0, optional

width of the grating trenches, drawn in the given layer

n_o_periods: int and number > 0, optional

number of periods of the grating

origin: Coord2, optional

local origin of the grating (first trench)

period: float and number > 0, optional

period of the grating

process: ProcessLayer, optional

process layer for the grating

purpose: PatternPurpose, optional

drawing purpose for the grating lines

view_name: str, optional

The name of the view

socket_length: float and number > 0, optional

length of the straight waveguide socket

socket_transformation: GenericNoDistortTransform, optional

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


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