gap_func_antisymmetric#

gap_func_antisymmetric(wl: Union[float, jax.Array, numpy.ndarray, numpy.bool_, numpy.number, bool, int, complex] = 1.55, width: float = 500.0, thickness: float = 220.0, gap: Callable[[float], float] = 100.0, zmin: float = 0.0, zmax: float = 100.0, arc1: float = 10000.0, arc2: float = 10000.0, arc3: float = 10000.0, arc4: float = 10000.0, sw_angle: Union[float, numpy.ndarray] = 90) Dict[Tuple[str, str], jaxtyping.Complex[Array, '...']][source]#

Antisymmetric directional coupler, meaning both waveguides are differently shaped.

A gap function describing the vertical distance between the two waveguides at any horizontal point, and arc lengths from each port to the coupling point, describe the shape of the device.

Ports are numbered as:

|       2---\      /---4       |
|            ------            |
|            ------            |
|       1---/      \---3       |
Parameters
  • width (float) – Width of waveguides in nanometers (valid from 400 to 600).

  • thickness (float) – Thickness of waveguides in nanometers (valid from 180 to 240).

  • gap (callable) – Gap function along the waveguide, values it returns must be in nanometers (and must always be greater than 100).

  • zmin (float) – Real number at which to begin integration of gap function.

  • zmax (float) – Real number at which to end integration of gap function.

  • arc1 (float) – Arc length from port 1 to minimum coupling point in nanometers.

  • arc2 (float) – Arc length from port 2 to minimum coupling point in nanometers.

  • arc3 (float) – Arc length from port 3 to minimum coupling point in nanometers.

  • arc4 (float) – Arc length from port 4 to minimum coupling point in nanometers.

  • sw_angle (float, optional) – Sidewall angle of waveguide from horizontal in degrees (valid from 80 to 90, defaults to 90).