Is it possible to use real parameters to fit dispersive material? #1528
-
Hi everyone, I have read the source code in the fit material part. This project use CCPRP to fit dispersive material, and the fit parameters are complex number. When using these parameters in FDTD, it will be slow (because one complex number multiplication is equivalent to four real number multiplications). So I am asking is it possible to use real parameters to fit dispersive material? Or, how to use complex numbers for FDTD calculations without loss of efficiency? Any help will be appreciated, thank you! |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
If there is, we would certainly like to know about it. :) FDTD is actually memory bound. So thinking about it in terms of "one complex number multiplication is equivalent to four real number multiplications" ins't really correct. The question is how many auxiliary currents you need to read and write from memory, per grid point in a dispersive medium, per pole. The innovation of the CCPR paper was that it is a more general approach than e.g. Lorentzian poles, while requiring the same number of auxiliary currents. So it is more expressive at the same cost. But yeah, we are not aware of anything better. |
Beta Was this translation helpful? Give feedback.
I understand what you are driving at, but really it turns out that FLOPs basically don't matter. All that matters is how many reads and writes from memory you need to do. This is always true on GPU and also on CPU if using a parallel FDTD that utilizes all cores. The only case in which you will be compute limited instead of memory limited (in which case the number of multiplications / additions you need to do will matter) is if you're running e.g. on a single CPU core and utilizing the entire CPU bandwidth. We actually have a draft of an article explaining some of this, but it's not really new knowledge, it has been discussed in other sources too.
So the answer to your question is already…