Numerical Precision Problems

Under certain circumstances you may notice that your Sonnet results are noisy at the low frequency portion of your simulation. This can be caused by numerical precision issues in the EM analysis. In the graph below, the data looks smooth at the higher frequencies, but looks noisy at lower frequencies.

Low frequency precision problems

If you are using an ABS sweep, then the EM analysis may require a lot more frequency points to resolve the noise in the data. In the graph below, the ABS algorithm required additional discrete frequency points to resolve the noisy data.

ABS

You may also notice noisy current density plots. When precision problems occur, the low frequency current density plots are usually spotted and make no sense. In the current density plots below, the left plot is at high frequency and the right plot is at low frequency.

Current Densities

Cause

The reason Sonnet has precision problems at low frequency is because Sonnet is based on the method of moments technique (like most other planar solvers). At low frequency, the number of significant digits required for calculations to fill the moment matrix becomes very large, exceeding the computer limits for the double-precision arithmetic which Sonnet uses by default. This introduces numerical precision error into the calculations, producing noisy simulation results and spotty current density data.

Workarounds

The first step you should take is to determine if the anomalies you are seeing are due to this numerical precision problem or something else. The best way to do this is to enable compute currents (see EM Options) and re-simulate. Then view the current density at your lowest frequency. If the current density is spotted as mentioned above, then your circuit is probably suffering from precision problems.

Once you suspect your project has precision problems, you should follow one or more of these steps to eliminate the problem:

  1. Use a larger cell size: In general, the minimum frequency at which numerical precision problems occur is inversely proportional to the cell size. So, for example, if you double your cell size, the lowest frequency at which you can trust is approximately halved.
  2. Use ABS to extrapolate a DC point: Often, users will simulate at a very low frequency because they want to approximate DC. A better approach is to use an ABS Sweep, and set the first frequency to 0.0. Sonnet will simulate at higher frequency values which are not affected by the numerical precision error, and then use ABS to extrapolate to DC. This method has proven to give much better results than attempting to simulate at a very low frequency.
  3. Change your Precision setting: If you are running with the single precision option, you use double precision instead. See EM Options for details. If you are running with double precision, then you may want to try quad-precision. Quad precision lowers the minimum frequency at which precision problems occur.