How to use BFAST:
the new feature is now done in the sources. Plane wave sources have a new choice of “plane wave type” which can be Bloch/periodic, bfast or diffracting. Just choose “BFAST” and it will work.
BFAST FDTD is fundamentally different from standard FDTD because the core electromagnetic field update equations are changed, in addition to the boundary condition. As a result, there are some limitations:
The time step, dt, must be reduced compared to standard FDTD as the angle of incidence increases in order to preserve numerical stability. As a result, steep angle simulations will take more time to run. For this reason, it is important to consider if BFAST is the right method for your application. If your bandwidth is small, or your angle of incidence is low, you may get faster results by using Bloch boundaries conditions. Certainly, if you are only looking for results at a single wavelength, you should use Bloch boundary conditions.
Nonlinear materials are not compatible with the split field method. As a result, nonlinear and all flexible
material plugin materials will not function using BFAST. However, graphene may be used.
Injection above the critical angles for total internal reflection (TIR) is not allowed. There is no possible
stable time step dt in this case. For example, injecting light at 50 degrees in glass that is incident on a glass/air interface is not stable. However, if you are injecting light in a lower index medium onto a higher index medium, then it is allowed. For example, if you are injecting light from glass onto a higher index substrate, such as silicon, then you can use BFAST – however, the value of “bfast alpha” should be set equal to the smallest refractive index used anywhere in your simulation.
BFAST is more unstable numerically from standard FDTD. There are several sources of instability and most problems can be solved by adjusting certain settings. Most problems and their solutions are listed here:
Dispersive media can become unstable much more easily. These problems can typically be fixed by reducing the “dt multiplier”. This multiplier is an additional factor that is applied to the usual FDTD BFAST time step over the theoretically stable limit – which is already less than conventional FDTD. If you are only using dielectric media, you can consider setting this value to 1, thereby gaining a factor of 2 in simulation speed over the default setting of 0.5. However, the default value of 0.5 is stable for most dispersive media.
When using dispersive media, the numerical stability is greatly increased by using a uniform mesh over the
dispersive materials in the direction transverse to the source injection axis. In most cases, the automatic mesh generation will create a mesh that satisfies this requirement but there can be exceptions. For example, when considering the scattering of a gold particle on a surface, as shown below for a 2D simulation, automatic mesh generation will generate a uniform mesh that extends at least 1*dx outside of the gold region and this will ensure stability in most cases. However, if the substrate is also dispersive, as shown in the final figure, the simulation can become unstable because the x mesh is graded in dispersive media. In this case, a mesh override region should be used to force a uniform mesh in x – but does not have to force a uniform mesh in y.