sipkit package#

Submodules#

sipkit.effective_index module#

sipkit.effective_index.neff(width: float, wavelength: float) float | list[float][source]#

Gets Effective Index value by using corresponding parameters. This is a JAX compatible function. JIT is enabled.

Parameters:
  • width (float) – Waveguide width in microns. (0.24 - 0.7) Scalar or list

  • wavelength (float) – Wavelength in microns. (1.2 - 1.7) Scalar or list

Returns:

Effective Index value(s).

Examples

>>> neff(0.5, 1.5)
array(2.)
>>> neff(0.5, [1.5, 1.6])
array([2. , 2.1])
>>> neff([0.5, 0.6], 1.5)
array([2. , 1.9])
>>> neff([0.5, 0.6], [1.5, 1.6])
array([[2. , 2.1],
>>> neff(0.5, [[1.5, 1.6], [1.7, 1.8]])
array([[2. , 2.1],
       [1.9, 2. ]])
>>> neff([[0.5, 0.6], [0.7, 0.8]], 1.5)
array([[2. , 1.9],
       [1.8, 1.7]])
>>> waveguide_width = jnp.array([0.5, 0.6])
>>> wavelength = np.array([1.5, 1.6, 1.7])
>>> waveguide_width, wavelength = np.meshgrid(waveguide_width, wavelength)
>>> neff(waveguide_width, wavelength)
array([[2. , 2.1],
       [1.9, 2. ],
       [1.8, 1.9]])
sipkit.effective_index.neff_te0(width: float, wavelength: float) float | list[float][source]#

Gets Effective Index value of TE0 by using corresponding parameters. This is a JAX compatible function. JIT is enabled.

Parameters:
  • width (float) – Waveguide width in microns. (0.24 - 0.7) Scalar or list

  • wavelength (float) – Wavelength in microns. (1.2 - 1.7) Scalar or list

Returns:

Effective Index value(s).

sipkit.effective_index.neff_te1(width: float, wavelength: float) float | list[float][source]#

Gets Effective Index value of TE1 by using corresponding parameters. This is a JAX compatible function. JIT is enabled.

Parameters:
  • width (float) – Waveguide width in microns. (0.24 - 0.7) Scalar or list

  • wavelength (float) – Wavelength in microns. (1.2 - 1.7) Scalar or list

Returns:

Effective Index value(s).

sipkit.effective_index.neff_te2(width: float, wavelength: float) float | list[float][source]#

Gets Effective Index value of TE2 by using corresponding parameters. This is a JAX compatible function. JIT is enabled.

Parameters:
  • width (float) – Waveguide width in microns. (0.24 - 0.7) Scalar or list

  • wavelength (float) – Wavelength in microns. (1.2 - 1.7) Scalar or list

Returns:

Effective Index value(s).

sipkit.effective_index.neff_tm0(width: float, wavelength: float) float | list[float][source]#

Gets Effective Index value of TM0 by using corresponding parameters. This is a JAX compatible function. JIT is enabled.

Parameters:
  • width (float) – Waveguide width in microns. (0.24 - 0.7) Scalar or list

  • wavelength (float) – Wavelength in microns. (1.2 - 1.7) Scalar or list

Returns:

Effective Index value(s).

sipkit.effective_index.neff_tm1(width: float, wavelength: float) float | list[float][source]#

Gets Effective Index value of TM1 by using corresponding parameters. This is a JAX compatible function. JIT is enabled.

Parameters:
  • width (float) – Waveguide width in microns. (0.24 - 0.7) Scalar or list

  • wavelength (float) – Wavelength in microns. (1.2 - 1.7) Scalar or list

Returns:

Effective Index value(s).

sipkit.group_index module#

sipkit.group_index.ng(width: float, wavelength: float) jaxlib.xla_extension.DeviceArray | jaxlib.xla_extension.Array[source]#

Group Index of light at a specified wavelength in a waveguide with a specified width.

Parameters:
  • width (float) – Waveguide width in microns. (0.24 - 0.7) Scalar

  • wavelength (float) – Wavelength in microns. (1.2 - 1.7) Scalar

Returns:

Group Index value.

Examples

>>> group_index(0.5, 1.5)
Array(0.5, dtype=float32)

sipkit.permittivity module#

sipkit.permittivity.perm_oxide(wavelength: float | list[float]) jaxlib.xla_extension.DeviceArray | jaxlib.xla_extension.Array[source]#

Permittivity value of SiO2 at given wavelength.

Parameters:

wavelength (float) – Wavelength in microns. (1.2 - 1.7) float or list

Returns:

Permittivity value(s).

Examples

>>> perm_oxide(1.5)
3.44
>>> perm_oxide([1.5, 1.6])
[3.44, 3.44]
sipkit.permittivity.perm_si(wavelength: float | list[float]) jaxlib.xla_extension.DeviceArray | jaxlib.xla_extension.Array[source]#

Permittivity value of Si at given wavelength.

Parameters:

wavelength (float) – Wavelength in microns. (1.2 - 1.7) float or list

Returns:

Permittivity value(s).

Examples

>>> perm_si(1.5)
11.68
>>> perm_si([1.5, 1.6])
[11.68, 11.68]