Source code for piel.models.frequency.photonic.grating_coupler
"""
Translated from https://github.com/flaport/sax or https://github.com/flaport/photontorch/tree/master
"""
import jax.numpy as jnp
__all__ = ["grating_coupler_simple"]
[docs]def grating_coupler_simple(R=0.0, R_in=0.0, Tmax=1.0, bandwidth=0.06e-6, wl0=1.55e-6):
# Constants
fwhm2sigma = 1.0 / (2 * jnp.sqrt(2 * jnp.log(2)))
# Compute sigma
sigma = fwhm2sigma * bandwidth
# Assume the wavelength of the environment matches the center wavelength of the grating coupler
wls = wl0
# Compute loss
loss = jnp.sqrt(Tmax * jnp.exp(-((wl0 - wls) ** 2) / (2 * sigma**2)))
# Create scattering dictionary
sdict = {
("in0", "out1"): loss,
("in1", "out0"): loss,
("in0", "out0"): R_in,
("in1", "out1"): R,
}
return sdict