Motivation
One can only find analytical solutions to the modes of a waveguide for only a few specific and relatively simple dielectric waveguide structures, and even then, the solutions may end with transcendental solutions. For an arbitrary shaped waveguide, we need to use numerical methods to find the waveguide modes. Likely the simplest numerical method of doing so is the finite difference method (FDM).
The Method
The FDM modesolver is obtained by taking the frequency domain Helmholtz equation,
$$ \nabla^2 U+(n^2-n_{eff}^2) k_0^2 U=0 $$
discretizing it on a finite grid, and the problem as a matrix (eigen-) problem. The FDM modesolving algorithm takes the waveguide refractive index structure and mode wavelength as input parameters, and produces a set of modal fields and modal effective indices as output. For derivations and implementations, refer to Resources below.
Resources
- Larry Coldren’s “Diode Lasers and Photonic Integrated Circuits” has a good derivation of the FDM modesolver algorithm in Appendix 17
- Code for Coldren’s book, including the FDM modesolver
- WGMODES: A 2D Eigenmode solver with vectorial field support and for non-uniform index grids, written in MATLAB
- WGMODES.jl: Julia port of the MATLAB WGMODES code
- FDMModes.jl: Julia FDM mode-solver
- MS thesis that derives, implements, and applies 1D FDM: “Semiconductor Laser Mode Engineering via Waveguide Index Structuring”