Singularity correction is a meshing option that accurately captures highly varying fields at the edges of both good conductor and PEC geometry.


Patch antenna fields.

Electromagnetic fields have high spatial variation near metallic edges, particularly when those edges comprise an antenna or transmission line. Discretization errors occur in these regions because numerical techniques assume a linear field transition between neighboring cells. There are two available methods for resolving the fields: cell size reduction and singularity correction.

Reducing the cell size near conductor edges is a straightforward method for increasing accuracy. Smaller cell sizes help resolve field variation, but can negatively impact simulation time due to a smaller timestep and larger memory requirement. PrOGrid's boundary refinement ratio reduces the cell size at geometry edges.

The singularity correction method is more sophisticated and adjusts the electric and magnetic field values adjacent to metallic edges during timestepping. These adjustments are based on analytic models of electromagnetic fields at infinitely sharp edges where singularities occur [1] - [2].


  1. J. Meixner, "The behavior of electromagnetic fields at edges," IEEE Trans. Ant. Prop., vol. AP-20, no. 4, pp. 442-446, July 1972.
  2. J. Van Bladel, Singular Electromagnetic Fields and Sources, Oxford, 1991.


Screenshot of right-click menu for a part.

Users can enable singularity correction for a part, multiple parts, or an assembly by right-clicking on the desired object in the Project Tree, and selecting Gridding/MeshingEnable singularity correction. The option to Disable singularity correction is also available through this right-click menu.

Screenshot of meshing properties editor.

Users can also access the singularity correction option by right-clicking on a part in the Project Tree and selecting Gridding/MeshingMeshing Properties to open the Meshing Properties Editor. Checking and unchecking the Apply singularity correction setting enables and disables singularity correction, respectively.

Screenshot of Part's List.

To verify that singularity correction is enabled for a part, right-click on Parts in the Project Tree and select View Parts List (All Parts) to open the Parts List - Parts editor. A singularity correction icon appears in the row of a part for which singularity correction is enabled.


Singularity correction should be enabled for critical, metallic design components in which strong and rapidly varying electric and magnetic fields are expected, such as antennas, transmission lines, and resonators. Automatic fixed point detection should also be enabled for such parts in order to place grid lines on the conductor edges.

As with many computational features, there is a certain degree of tradeoff between accuracy and performance. Generally, singularity correction enhances accuracy in the vicinity of every edge it is applied to, but results in a modest computational expense incurred by XF's meshing algorithm and FDTD engine. In most cases, this cost is more than compensated for with quality results from a coarser FDTD grid than would be possible without singularity correction enabled.


Singularity correction is available only for parts assigned either a PEC or good conductor material definition, and is only applied to part edges that are straight and axis-aligned over their entire length. Additionally, straight, axis-aligned edges must reside on an electric grid line in order for singularity correction to be applied during timestepping. Therefore, it is important to also enable automatic fixed point detection for any geometric object for which singularity correction is desired.

The following edges are not subject to singularity correction:

60 GHz Example

To demonstrate singularity correction, S11 is computed for a 60 GHz microstrip antenna.

60 GHz microstrip antenna.

A 50 Ohm microstrip connected to a nodal waveguide port feeds the antenna, and a broadband waveform excites the waveguide port corresponding to a frequency range of interest of 52 - 68 GHz. The transmission line, radiators, and parasitic element are all metallic and consist of axis-aligned edges that fall on gridlines, making them candidates for singularity correction.

Three simulations are run with varied grid settings. The cells per wavelength determines the maximum cell size in the space and throughout the dielectric based on the frequency range of interest. The boundary refinement ratio determines the minimum cell size in the space and reduces the cell sizes around the conductor edges where there is high field variation. Each simulation utilizes a single NVIDIA K80 GPU.

Simulation 1 Simulation 2 Simulation 3
Singularity correction enabled False True False
Cells per wavelength 60 60 150
Boundary refinement ratio 7 7 9
Maximum cell size (um) 73.3 73.3 29.4
Minimum cell size (um) 9.2 9.2 3.3
Memory requirement (MB) 274.6 274.7 1,184.4
Run time 11 min 57 sec 17 min 3 sec 1 hr 52 min
60 GHz microstrip antenna.

The grid definition is identical between simulations 1 and 2. The impact of enabling singularity correction is apparent in the shift of the null to the higher frequency. Simulations 2 and 3 produce similar results, however simulation 3 requires a much finer grid resolution because singularity correction is disabled.

In conclusion, the application of singularity correction improves the accuracy of FDTD simulations, allowing coarser and more efficient grids to be utilized.