sipkit package

Submodules

sipkit.command_line module

sipkit.command_line.main()[source]

Print out content in README.md :return:

sipkit.command_line.readme()[source]

Read README.md :return:

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]) float | list[float][source]

Permittivity value of SiO2 at given wavelength.

Parameters:

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

Returns:

Permittivity value(s).

Raises:

ValueError – If wavelength is not between 1.2-1.7 microns.

Examples

>>> perm_oxide(1.5)
3.44
>>> perm_oxide([1.5, 1.6])
[3.44, 3.44]
>>> perm_oxide(1.8)
Traceback (most recent call last):
    ...
ValueError: Wavelength must be between 1.2-1.7 micron
sipkit.permittivity.perm_si(wavelength: float | list[float]) float | list[float][source]

Permittivity value of Si at given wavelength.

Parameters:

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

Returns:

Permittivity value(s).

Raises:

ValueError – If wavelength is not between 1.2-1.7 microns.

Examples

>>> perm_si(1.5)
11.68
>>> perm_si([1.5, 1.6])
[11.68, 11.68]
>>> perm_si(1.8)
Traceback (most recent call last):
    ...
ValueError: Wavelength must be between 1.2-1.7 micron

sipkit.read_data module

sipkit.util module

Module contents