Optical Eigenmode Solver for Dielectric Waveguides

NEW (2.0.0):  Python Module

waveguide-mode

Above: Example of optical mode profile calculated with modesolver

Features

  • Complete, documented source code is provided
  • Includes scalar, semivectorial and full-vector versions
  • Full vector version can determine all three field components of both H and E
  • Supports anisotropic materials, with non-diagonal permittivity matrices(Caveat: one principal axis must point in z-direction.)
  • Allows non-uniform mesh sizes (both full-vector and semivectorial)
  • Incorporates perfectly-matched boundary conditions, using complex coordinate stretching
  • Provides tools for describing all of the most common rectangular waveguides
  • Many examples provided

A screenshot of typical output from the program is available here.

Download

New:  We have released a new version of the modesolver (2.0.0), now implemented as a Python module:

https://github.com/thomas-e-murphy/modesolver

Or, you can install the package directly, using:

pip install git+https://github.com/thomas-e-murphy/modesolver.git

The original MATLAB version is also still available as well:

The software and associated utilities are written entirely as MATLAB scripts (m-files). To install, create a directory and unzip all of the files into it. It is recommended that you add this directory and the “tools” subdirectory to your MATLAB path so that you can invoke the modesolver from other directories.

modesolver-2011-04-22 (34 KB)

Citation

For details about the algorithm used in this modesolver, please refer to (or cite!) our article published in the Journal of Lightwave Technology:

A. B. Fallahkhair, K. S. Li and T. E. Murphy, “Vector Finite Difference Modesolver for Anisotropic Dielectric Waveguides“, J. Lightwave Technol. 26(11), 1423-1431, (2008).