This mode solver uses a magnetic field based formulation of the difference equations to convert the mode solving problem into a problem of finding eigenvectors of a large system of linear equations. The formulation is due to Lüsse [1]. Once the linear system is found from this formulation, the modes can be found by finding eigenvectors, and for this we use the Implicitly Restarted Arnoldi Method (IRAM), as implemented by ARPACK [2]. In OptiMode, the boundary condition applied at the edges of the calculation window can be of the Dirichlet type (magnetic field goes to zero at the window boundaries), or the user can select “Transparent Boundary Conditions” (TBC). In the TBC case, the algorithm will try to match the optical field at the boundary to a plane wave with propagation constant constructed from the approximate modal field available at intermediate stages of the simulation. This propagation constant is complex, so it should be able to accommodate leaking radiation as well as the more common exponential decay of the field.

The operation of the IRAM and the TBC are controlled from settings parameters in OptiMode. These parameters are found in the FD tab of the Solver Parameters dialog box (Fig. 2). The parameters for TBC are Fourier Limit and Change Limit. The parameters that control the eigenvector solving are Tolerance, Max. Steps, Preview Mode, Skip Value, and Dimension of the Krylov Subspace. This technical background is intended to explain what these parameters mean and how they influence the mode solving. The values of the parameters are pre-set to values that seem to work well for most cases. However, there could be exceptional cases in which the user will need to modify those parameters. This technical background is provided to help the user understand what these parameters do and what might happen if they are changed.

We provide a summary of the Lüsse formulation of the finite difference equations for optical magnetic field. Then we show an overview of how the IRAM works, not in great detail, but simply enough to show the meaning of the OptiMode Settings parameters. Then we show how the TBC is constructed, so that the relevant OptiMode Settings parameters can be understood.