Guilin Sun
Ansys Employee

Hi Mikhailo, you have asked a very good and subtle question. I happend to be in developing FDTD algorithms years ago and would be happy to share some insights for you.

First, your test result that the simulated speed is slower than the physical speed is correct ! This is because, after discretization, it creates numerical dispersion, meaning v_simulated is not equal to v_theory. Please refer to this link: getnumericalpermittivity - Script command

You can read some FDTD books, or publications regarding to this.

The numerical dispersion is the theoretical error of the method, similar to other source of errors for other algorithm. It does not mean FDTD is bad. Every algorithm has numerical errors. The best part for FDTD is, as long as other settings are proper such as PML, the numerical disperison error can tend to be zero.

As for the pulse amplitude, because of the numerical dispersion which also causes group dispersion, the pulse is spreading wider at longger distance. So the amplitude becomes smaller, which is correct, and does not violates the energy conservation. If you check the field amplitude or power transmission, it will be correct, since the temporal part is normalized out.


I hope this helps.