class picazzo3.wg.dircoup.cell.StraightDirectionalCoupler

A directional coupler consisting of 2 parallel (horizontal) straight waveguides.

trace_template1: PCell and _WaveguideTemplate

waveguide template used by the south arm of the directional coupler

trace_template2: PCell and _WaveguideTemplate

waveguide template used by the north arm of the directional coupler. If not set, it defaults to the template of the south arm

wg1a: PCell

South-west waveguide

wg1b: PCell

South-east waveguide

wg2a: PCell

North-west waveguide

wg2b: PCell

North-east waveguide

coupler_length: float and Real, number and number >= 0

length of the directional coupler

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

The unique name of the pcell

Other Parameters
n_inputs: int and number > 0, locked

Number of input channels.

n_outputs: int and number > 0, locked

Number of output channels.


class Layout
straight_extensions: Coord2 and number >= 0

additional lengths of the couplers at start and end

coupler_spacing: float

Spacing between the two waveguide centerlines.

wg1a_shape: Shape

Shape for the south-west part of the waveguide

wg1b_shape: Shape

Shape for the south-east part of the waveguide

wg2a_shape: Shape

Shape for the north-west part of the waveguide

wg2b_shape: Shape

Shape for the north-east part of the waveguide

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


from technologies import silicon_photonics  # noqa: F401
from ipkiss3 import all as i3
from picazzo3.wg.dircoup import StraightDirectionalCoupler
from picazzo3.traces.wire_wg.trace import WireWaveguideTemplate

wg_t = WireWaveguideTemplate(name="my_wg_template1")
wg_t.Layout(core_width=0.550, cladding_width=i3.TECH.WG.CLADDING_WIDTH, core_process=i3.TECH.PROCESS.WG)

C = StraightDirectionalCoupler(name="my_dircoup1", trace_template1=wg_t, coupler_length=6.0)
layout = C.Layout(coupler_spacing=0.7)