Waveguides

Waveguide

modes.waveguide.waveguide(x_step=0.02, y_step=0.02, thickness=0.22, width=0.5, slab_thickness=0, sub_thickness=0.5, sub_width=2.0, clad_thickness=[0.5], n_sub=<function sio2>, n_wg=<function si>, n_slab=None, n_clads=[<function sio2>], wavelength=1.55, angle=90.0)[source]

Return waveguide structure

Parameters
  • x_step (float) – x grid step (um)

  • y_step (float) – y grid step (um)

  • thickness (float) – waveguide thickness (um)

  • width (float) – 0.5 (um)

  • slab_thickness (float) – 0 (um)

  • sub_width (float) – 2.0 related to the total simulation width (um)

  • sub_thickness (float) – 0.5 bottom simulation margin (um)

  • clad_thickness (List[float]) – [0.5] List of claddings (top simulation margin)

  • n_sub (Union[Callable, float]) – substrate index material

  • n_wg (Union[Callable, float]) – core waveguide index material

  • n_slab (Union[Callable, float, None]) – optional slab index. Defaults to n_wg.

  • n_clads (List[Union[Callable, float]]) – list of cladding refractive index or function [sio2]

  • wavelength (float) – 1.55 wavelength (um)

  • angle (float) – 90 sidewall angle with respect to normal (degrees)

_________________________________

                                clad_thickness
       width
     <---------->
      ___________    _ _ _ _ _ _
     |           |
_____|           |____          |
                                thickness
slab_thickness                     |
_______________________ _ _ _ _ __

sub_thickness
_________________________________
<------------------------------->
             sub_width

To define a waveguide we need to define:

  • the material functions or refractive indices of box, waveguide and clad

  • thickness of each material

  • x and y_steps for structure grid

  • sidewall angle (degrees)

  • wavelength that can be used in case the refractive index are a function of the wavelength

Where all units are in um

import modes as ms

wg = ms.waveguide(width=0.5, thickness=0.22, slab_thickness=0.09, angle=80)
ms.write_material_index(wg)

(Source code)

Return type

RidgeWaveguide

Waveguide Array (coupled waveguides)

modes.waveguide.waveguide_array(wg_gaps, widths, x_step=0.02, y_step=0.02, thickness=0.22, slab_thickness=0, sub_thickness=0.5, sub_width=2.0, clad_thickness=[0.5], n_sub=<function sio2>, n_wg=<function si>, n_slab=None, n_clads=[<function sio2>], wavelength=1.55, angle=90.0)[source]

Returns a evanescent coupled waveguides

                                                         clad_thickness
       widths[0]   wg_gaps[0]  widths[1]
     <-----------><----------><----------->   _ _ _ _ _ _
      ___________              ___________               |
     |           |            |           |              |
_____|           |____________|           |____          |
                                                         thickness
slab_thickness                                           |
________________________________________________ _ _ _ _ |

sub_thickness
__________________________________________________________

<-------------------------------------------------------->
                     sub_width

To define a waveguide we need to define

Parameters
  • wg_gaps (List[float]) – between waveguides

  • widths (List[float]) – of each waveguide (list)

  • x_step (float) – grid x step (um)

  • y_step (float) – grid y step(um)

  • n_sub (Callable) – substrate refractive index value or function(wavelength)

  • n_wg (Callable) – waveguide refractive index value or function(wavelength)

  • n_clads (List[Callable]) – waveguide refractive index value or function(wavelength)

  • n_slab (Union[Callable, float, None]) – optional slab index. Defaults to n_wg.

  • slab_thickness (int) – slab thickness (um)

  • sub_thickness (float) – substrate thickness (um)

  • clad_thickness (List[float]) – cladding thickness (um)

  • wavelength (float) – in um

  • angle (float) – sidewall angle in degrees

Where all units are in um

import modes as ms

wg_array = ms.waveguide_array(wg_gaps=[0.2], widths=[0.5, 0.5], slab_thickness=0.09)
ms.write_material_index(wg_array)

(Source code)

Return type

WgArray