Transmission Results Greater Than One
Occasionally the results of an FDTD simulation will show normalized transmission values greater than one, which is, in general, incorrect for linear simulations. In this post I will discuss a few of the more common causes of this issue and how they can be fixed.
Note that while this post specifically addresses transmission values greater than one, the issues discussed here can also be sources of inaccurate transmission results in general. If you suspect that your transmission results are inaccurate, you should consider if these issues are relevant for your simulation.
Simulation Ends Before Autoshutoff Minimum Reached
One of the more common causes of this issue is the simulation ending before the light leaves the simulation region. This is generally the most common cause of transmission results greater than one, and is particularly relevant for resonator structures.
In most cases, we would like the simulation to end when it reaches the “autoshutoff minimum”, which is a measure of the energy left in the simulation region. However, the simulation can also end when the “simulation time” is reached, while there is still a significant amount of energy left in the simulation. This causes artifacts in the transmission spectra which appear as “oscillations” or “ripples” that can increase the transmission to values greater than one. For example, here are the transmission results for a varFDTD ring resonator simulation with different simulation times:
You can see how your simulation is ending by looking at the “Simulation status” result of the FDTD solver object after the simulation is run. A result of 1 indicates the simulation ran for the full simulation time and 2 indicates that the simulation ended by reaching the autoshutoff minimum. The FDTD solver object also provides an “autoshutoff level” result, which plots the autoshutoff level vs. computation time, that you can use to view the autoshutoff level. You can also see how the simulation ended by looking at the log file.
If your simulation is ending because the simulation time is being reached, increase the simulation time until the simulation is able to reach the autoshutoff level. If the autoshutoff level is reached and the problem persists, you may have to decrease the autoshutoff level as well. Both the simulation time and the autoshutoff levels are properties of the FDTD Solver object.
Purcell Enhancement of Dipole Sources
The source power used to normalize transmission results when dipole sources are used is the power emitted by the dipole in a homogeneous environment. Due to Purcell enhancement, the power emitted by the dipole may change if it is placed inside a more complex environment. Note that this is not an error, because the actual power emitted by the dipole is changing.
You can renormalize your results using the “dipolepower” script command, which will return the actual power emitted by the dipole:
Here the “sourcepower” command returns the power emitted by the dipole in a homogeneous medium (which is used to normalize the transmission results by default) and “f” is a vector of frequencies. Note that in dispersive materials with a non-zero imaginary part of the permittivity or with a very high mesh density, the “dipolepower” command will return incorrect results, and a box of monitors around the dipole must be used to obtain the power emitted by the dipole.
Dipoles in non-homogeneous materials
dipolepower script command
Improper Source Injection
Various errors can occur when sources inject the input pulses into the simulation domain. Scattering can occur at the injection plane, in particular for mode sources, broadband sources or sources at an angle. This can also happen when using an imported source with an electric field profile that does not propagate properly.
This scattering can throw off the power normalization used for the transmission measurements, leading to inaccurate results. Similar to the Purcell enhancement of dipole sources, if fields are reflected back into the source plane they can interfere with the injection of the source pulse, affecting the transmission result normalization.
You can often fix source injection errors by moving the source away from any reflecting surfaces , adding a monitor in front of the source to measure the actual power emitted by the source and renormalizing your results, or increasing the span of your source objects to avoid truncating the source fields.
Source injection errors
Imported source errors
Reflections from PML Boundaries
Ideally PML boundaries will absorb all of the light incident upon them. However, this may not always be the case, for various reasons. Light reflected from PML boundaries can cause transmission values greater than one. This can also happen if you are using stabilized PML boundaries, which are less efficient than the standard PML BCs.
If you suspect that the PML boundaries are not properly absorbing the light in your simulation, increase the number of layers in the PML boundaries . If your simulation is periodic or you are using a source with a high angle of injection, use the steep angle PML profile for your boundaries.
Choosing the PML profile
Materials With Gain
If the materials in your simulation have gain the total power in the simulation can increase beyond what was added by the source. This can cause the power transmitted through the monitors to be greater than one. If you don’t intend to have materials with gain, check the material fits in the Material Explorer to make sure that the imaginary part of the permittivity of your materials is not negative.
Modifying material fits
TFSF Source Normalization
The TFSF source normalization works differently than the other sources, which can result in transmission results greater than one. Note that this is not necessarily an error, however typically cross-section results are used with TFSF sources rather than results normalized to the source power.
Understanding source normalization for the TFSF source
Tips and best practices for using the TFSF source
If your simulation is diverging, typically it will diverge beyond the autoshutoff max and the simulation will end, with an error notification. However, it is possible that your simulation is diverging without passing the autoshutoff max, which will not be automatically detected by the software. To check to see if this is happening, you can chech the FDTD solver’s “autoshutoff level” result to see the amount of energy in the simulation as a function of time. If it is increasing, this could be caused by a diverging simulation.
Fixing diverging simulations.