There is no perfect algorithm and will almost certainly never will be because there will always be one algorithm better for one application and another for a different one. To choose the most suitable software you need to be aware of the fundamental differences of each algorithm for your application.
There are 3 main algorithms for the simulation of passive photonic devices:
- BPM (Beam Propagation Method)
- EME (Eigenmode Expansion)
- FDTD (Finite Difference Time Domain)
Each of the above algorithms have their own strengths and weaknesses.
The most widely used time domain algorithm today, however BPM's popularity comes mainly from the fact that it is a simple technique that is easily to implement into either "off the shelf" software or in-house code. BPM redcues Maxwell's Equations to a more simple parabolic form based on two assumptions (1) that the refractive index profile changes only gradually, and (2) light is traveling approximately along the Z-axis. When these conditions are not met the algorithm becomes untrustworthy.
Strengths: Easy to use, familar, good for large low index structures such as AWGs, Mach Zhender interferometers, can model non-linear effects easily, can use absorbing boundary conditions easily, can model dispersive materials easily.
Weaknesses: Approximate solution, is not suitable for high index strutures, is not suitable for high NA simulations, is not bi-directional (no reflection calculation), can not handle mized polarization, can not handle metal structures, calculation speed scales linearly with size.
Applications: Small NA, low refractive index contrast Tapers, couplers, splitters and AWGs
The basis behind the EME method is the decomposition of the electromagnetic field in terms of a sum of local eigenmodes. This approach has been widely developed by Photon Design as an alternative to the BPM method. It is a frequency domain, fully vectorial, bi-directional algorithm with the main approximation being only the finite number of local eigenmodes used.
Strengths: Bi-directional, rigorous Maxwell solver, can solve for all inputs simulaneously, calculation speed increase is sub-linear with device length, can model high index structures, can handle high NA simulations, algorithm is polarization agnostic, can handle dispersive materials, can handle metals, understands "modes" inherently, frequency domain algorithm is suitable for resonant cavities, gives the user more information than just transmission and reflection coefficients.
Weaknesses: Less of a "black box" approach than BPM or FDTD, algorithm scales poorly with cross-section area, can not handle non-linearity, absorbing boundary conditions work only with some mode solvers.
Applications: Tapers, couplers, splitters, fibers, fiber-waveguide coupling, nanowires, gratings, bends, thin films, resonant cavities
FDTD is fast becoming the mode widely used algorithm in passive photonics today. It is a brute force finite-difference discretization of Maxwell's Equations in time and space. Given enough computer power it can model virtually any type and size of structure. The trouble is that it need significant computer power to simulate anything larger than a few 10s of microns in size.
Strengths: Omni-directional algorithm, rigorous Maxwell solver, Polarization agnositic, can handle all reflections, can model metals acurately, can model non-linearity, can use absorbing boundary conditions easily.
Weaknesses: Speed and memory-use scales with volume of simulation area, is typically much slower and uses significantly more memory than BPM and EME methods. Can not model dispersive materials well, does not give the user much information other than amount of flux passing through user defined positions.
Applications: Short length tapers, nanowires, photonic crystals, short length gratings, waveguides, small radius ring resonators
Modeling Active devices
Active components can not be easily modelled using frequency domain algorithms and a circuit including active elements must be simulated in the time domain. A powerful technique for doing this is the Time Domain Travelling Wave (TWTD) algorithm, which Photon Design has pioneered over a number of years and have now developed into a flexible photonic circuit simulator PICWave.
The TWTD method is a time domain algorithm rather like FDTD but with much larger time and space steps. The cost is of course that it can only model fields propagating in +z or –z directions. However just like FDTD it can propagate many wavelengths at one time.
Noise sources such as from spontaneous emission can be readily supported and propagated through the circuit, therefore the algorithm can realistically model real devices.