EMode Guide


EMode is in beta development and rigorous testing is ongoing.

User profile login: run EModeLogin from the start menu or the command line. Entering your username and password will save your EMode user profile.


Many functions, input parameters, and variables have been changed starting with EMode version 0.0.5-b3. While these changes are reflected in the current documentation above, a comprehensive list of individual changes can be found here: EMode 0.0.5-b3 Updates.


  • Finite difference method

  • Scattering loss

  • Bend modes

  • (A)symmetries

  • Perfectly matched layers

  • Sub-pixel averaging

  • Anisotropic materials

  • Magnetic materials

  • Non-uniform meshing

Finite difference method

The finite difference method (FDM) is used to solve the waveguide eigenmodes. The electric and magnetics fields are solved in a Yee grid, and they are subsequently interpolated to common grid points. Features are added to support subpixel averaging, bend modes, anisotropic materials, non-uniform meshing, and mode symmetries.

  1. Zhu and T. G. Brown, ‘’Full-vectorial finite-difference analysis of microstructured optical fibers,’’ Opt. Express 10, 853 (2002).

Boundary conditions

Symmetric or asymmetric boundary conditions can be applied to the south and west sides of the simulation window. By explicitly setting the (a)symmetry with an ‘S’ or ‘A’, the refractive index profile is forced to be symmetric in the specified vertical or horizontal direction. Another option is to set the boundary condition to ‘TE’ or ‘TM’ and the solver will decide if vertical, horizontal, or both symmetries exist in the specified refractive index profile. These options will choose the appropriate ‘S’ or ‘A’ boundaries to solve the fundamental TE or TM mode with the maximum available symmetry.


Shapes define the refractive index profile of the waveguide and a meshing algorithm using contour-path effective permittivities is implemented. On the Yee grid, the permittivity and permeability arrays are unique for each x, y, and z direction. The plot of the refractive index shows the exact shapes that are defined, and the actual permittivity and permeability arrays are available using the get method. Calculated fields correspond to the center points of the meshed grid (x and y), while the edges of the mesh are defined by the parameters x_edge and y_edge.

  1. Mohammadi, H. Nadgaran, and M. Agio, ‘’Contour-path effective permittivities for the two-dimensional finite-difference time-domain method,’’ Opt. Express 13, 10367 (2005).

Non-uniform mesh

A non-uniform mesh can be specified to increase the grid spacing in the perimeter area of the simulation window. This is helpful to reduce the simulation time when using a fine grid mesh. The primary simulation window is defined by the window_width, window_height, x_resolution, and y_resolution parameters. To add a non-uniform grid, the parameters expansion_size and expansion_resolution must be defined. Expanded regions taper the resolution from the primary window to a maximum value of the expansion_resolution. However, the tapering is terminated if the expansion_size is reached before the resolution has reached the expansion_resolution value. Unique values for the expansion_size can be defined for each edge of the simulation window. The user must investigate convergence of the effective index and loss values by varying the window size, expanded area size, and grid resolutions.

Citing EMode

If you use EMode for design or analysis in a publication, please use the following citation.

EMode (version 0.0.6-b4) [Software] from EMode Photonix. Available at emodephotonix.com.