Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Svensson/Djordjevic Dispersion #1179

Closed
Vinc0110 opened this issue Apr 14, 2020 · 6 comments
Closed

Svensson/Djordjevic Dispersion #1179

Vinc0110 opened this issue Apr 14, 2020 · 6 comments

Comments

@Vinc0110
Copy link

Vinc0110 commented Apr 14, 2020

Hi everyone,

For circuit board EM simulations below 100 GHz the substrate dispersion in other simulators is often modeled using a wideband Debye model (a.k.a Svensson/Djordjevic model). As that model is derived from an infinite series of resonances, I tried fitting a finite number of Lorentzian oscillators for the substrate susceptibility in Meep:

Figure_1

That implementation seems to work (if the Dourant factor is adjusted properly), but even a relatively small number of oscillators (6-8) already slows down the simulation significantly.

Now my question: Would it be a big effort to extend Meep and implement the Svensson/Djordjevic model? I'm not an expert here, but wouldn't that be more efficient than my poor-man's approach using all those Lorentzians?

The Djordjevic paper:
https://doi.org/10.1109/15.974647

A nice presentation with some more background information, see slide 31 and above:
https://www.simberian.com/Presentations/Tutorial_A_Material_World_Final.pdf

Regards,
Vincent

@smartalecH
Copy link
Collaborator

Once #920 is fixed it can efficiently model any realistic susceptibility, including Debye poles.

@smartalecH
Copy link
Collaborator

Also keep in mind that what you've described is extremely broadband. Typically we can just fit a pseudo material to our band of interest. The more terms you add, the longer your simulation will take (and more memory consumption).

The IIR filter approach can efficiently model the response because you have flexibility (as many poles and zeros as you want). It's often still better to split your susceptibilities into multiple terms (i.e. multiple biquad filters) for stability's sake.

Once we have more time we can debug that last issue with the current PR.

@stevengj
Copy link
Collaborator

Can a single Meep simulation really cover 8 orders of magnitude in frequency? This would also entail 8 orders of magnitude in wavelength, which seems to imply an unreasonable cell size.

If you only fit ε(ω) for the specific bandwidth of a given simulation, the problem becomes much easier.

@Vinc0110
Copy link
Author

Vinc0110 commented Apr 15, 2020

The huge bandwidth from 10 kHz to 1 THz is just a typical example for the validity range of the permittivity model, which I wanted to reproduce in a Meep simulation. I somehow assumed Meep would still only calculate the values that are actually required for the frequency sweep with a certain (much narrower) bandwidth.

For instance, a typical circuit board simulation might only cover 500 MHz to 10 GHz, which seems to work. I would use a Gaussian source at about 5 GHz with a width of almost 5 GHz, say 4.5 GHz width. In that case, I'd expect that Meep only calculates the permittivity for that frequency range. Of course, it would do so with the Lorentzians at higher and lower frequencies in my model, but it would not actually calculate the permittivity values at those out-of-band frequencies. Isn't that the case? Or are these calculations really that expensive?

As you suggested, I'm also trying to fit the wideband model using only in-band Lorentzians:
Figure_2

The result is not exactly the same, but it might be good enough. I need to run a few more simulations to see how much this reduction is saving in the total simulation time.

Naively, I thought it would be just a matter of implementing the equation for the Svensson/Djordjevic model, just like the equation with the series of Lorentzian resonances has been implemented for the permittivity dispersion. I'm probably missing some insight into the details, as @smartalecH was mentioning IIR filters for this purpose.

@stevengj
Copy link
Collaborator

stevengj commented Apr 15, 2020

I somehow assumed Meep would still only calculate the values that are actually required for the frequency sweep with a certain (much narrower) bandwidth.

The solution of Maxwell's equations (and hence Meep) only depends on the permittivity values that are in the bandwidth that is actually used. But Meep doesn't calculate permittivity values explicitly — it is a time-domain simulation algorithm, which is why you need to fit permittivity data to some model that can be implemented efficiently in the time domain (as an FIR or IIR filter, a.k.a. an "auxiliary differential equation", a special case of which is a Lorentzian fit).

That's why you can't just supply an arbitrary permittivity model as-is, whether it be experimental data or the Svensson/Djordevic model (which contains a log-frequency function that does not have a nice representation in the time domain as far as I know).

#920 will automate the fitting process to a certain extent — it will allow you to supply an arbitrary frequency dependence, a desired bandwidth, and an accuracy tolerance or frequency resolution, and then it will perform a fit. But even then some user judgement is required.

@stevengj
Copy link
Collaborator

Closing as this model does not seem implementable in the time domain.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants