Coupler2x1

class picazzo3.logical.coupler.cell.Coupler2x1(*args, **kwargs)

A logical 2x1 reciprocal waveguide coupler.

Transmissions and reflections and backcoupling can be set using the properties to arbitrary values without any enforcement of passivity.

Properties dealing with tranmission: straight_coupling1, straight_coupling2 Properties dealing with reflection: reflection_out1, reflection_in1, reflection_in2 Properties dealing with back coupling: back_coupling

The default behaviour of the coupler model assumes symmetry that allows the permutations (in1 with in2) in the first place. If your component uses this symmetry, properties only have to be specified for in1 and out, the ones relating to in2 will be assuming this symmetry.

In the second place the coupler model assumes symmetry that allows the permutation of output ports with input ports.

Parameters:

cell_instances: _PCellInstanceDict, optional

name: optional

The unique name of the pcell

n_inputs: int and number > 0, locked

Number of input channels.

n_outputs: int and number > 0, locked

Number of output channels.