gplugins.modes.find_modes_waveguide#
- gplugins.modes.find_modes_waveguide(tol: float = 1e-06, wavelength: float = 1.55, mode_number: int = 1, parity=0, cache_path: str | Path | None = PosixPath('/home/runner/.gdsfactory/modes'), overwrite: bool = False, single_waveguide: bool = True, **kwargs) dict[int, Mode] [source]#
Computes mode effective and group index for a rectangular waveguide.
- Parameters:
tol – tolerance when finding modes.
wavelength – wavelength in um.
mode_number – mode order of the first mode.
parity – mp.ODD_Y mp.EVEN_X for TE, mp.EVEN_Y for TM.
cache_path – path to cache folder. None to disable caching.
overwrite – forces simulating again.
single_waveguide – if True, compute a single waveguide. False computes a coupler.
- Keyword Arguments:
core_width – core_width (um) for the symmetric case.
gap – for the case of only two waveguides.
core_widths – list or tuple of waveguide widths.
gaps – list or tuple of waveguide gaps.
core_thickness – wg height (um).
slab_thickness – thickness for the waveguide slab.
core_material – core material refractive index.
clad_material – clad material refractive index.
nslab – Optional slab material refractive index. Defaults to core_material.
ymargin – margin in y.
sz – simulation region thickness (um).
resolution – resolution (pixels/um).
nmodes – number of modes.
sidewall_angles – waveguide sidewall angle (radians), tapers from core_width at top of slab, upwards, to top of waveguide.
Returns: Dict[mode_number, Mode]
compute mode_number lowest frequencies as a function of k. Also display “parities”, i.e. whether the mode is symmetric or anti_symmetric through the y=0 and z=0 planes. mode_solver.run(mpb.display_yparities, mpb.display_zparities)
Above, we outputted the dispersion relation: frequency (omega) as a function of wavevector kx (beta). Alternatively, you can compute beta for a given omega – for example, you might want to find the modes and wavevectors at a fixed wavelength of 1.55 microns. You can do that using the find_k function:
single_waveguide=True
__________________________ | | | width | <----------> | ___________ _ _ _ | | | | sz|_____| |_______| | core_material | core_thickness |slab_thickness nslab | |_________________________| | | clad_material |__________________________ <------------------------> sy
single_waveguide=False
_____________________________________________________ | | | widths[0] widths[1] | <----------> gaps[0] <----------> | ___________ <-------------> ___________ _ | | | | | | sz|_____| |_______________| |_____| | core_material | core_thickness |slab_thickness nslab | |___________________________________________________| | |<---> <---> |ymargin clad_material ymargin |____________________________________________________ <---------------------------------------------------> sy