|
KiCad PCB EDA Suite
|
Kramers-Kronig-consistent wideband dielectric model after Djordjevic et al. More...
#include <dielectric_djordjevic_sarkar.h>
Public Member Functions | |
| void | Fit (double aEpsRSpec, double aTanDSpec, double aFSpec, double aF1=1.0e3, double aF2=1.0e12) |
| Fit the model from a single (epsR, tan delta) datapoint at f_spec. | |
| std::complex< double > | ComplexEpsilonAt (double aF) const |
| Complex relative permittivity at aF. Imag part is non-positive (loss). | |
| double | EpsilonRealAt (double aF) const |
| Real part of relative permittivity at aF. | |
| double | TanDeltaAt (double aF) const |
| Loss tangent tan delta = -Im(eps) / Re(eps) at aF. | |
| double | GetEpsilonInf () const |
| double | GetM () const |
| bool | IsLossless () const |
Private Attributes | |
| double | m_epsInf = 1.0 |
| double | m_m = 0.0 |
| double | m_f1 = 1.0e3 |
| double | m_f2 = 1.0e12 |
| bool | m_lossless = true |
Kramers-Kronig-consistent wideband dielectric model after Djordjevic et al.
("Wideband frequency-domain characterization of FR-4 and time-domain causality", IEEE Trans. EMC 43(4), 2001). Equivalent closed form to the Svensson-Djordjevic expression used by scikit-rf (skrf/media/definedAEpTandZ0.py : djordjevicsvensson).
The caller supplies a single measurement triple (epsR, tan delta, f_spec) and a bandwidth [f1, f2] over which the loss tangent is approximately constant. Fit() computes the two model parameters (eps_inf, m) once; subsequent queries are a single complex-log evaluation with no iteration.
Definition at line 42 of file dielectric_djordjevic_sarkar.h.
| std::complex< double > DIELECTRIC_DJORDJEVIC_SARKAR::ComplexEpsilonAt | ( | double | aF | ) | const |
Complex relative permittivity at aF. Imag part is non-positive (loss).
Definition at line 65 of file dielectric_djordjevic_sarkar.cpp.
References m_epsInf, m_f1, m_f2, m_lossless, and m_m.
Referenced by EpsilonRealAt(), and TanDeltaAt().
| double DIELECTRIC_DJORDJEVIC_SARKAR::EpsilonRealAt | ( | double | aF | ) | const |
Real part of relative permittivity at aF.
Definition at line 77 of file dielectric_djordjevic_sarkar.cpp.
References ComplexEpsilonAt().
| void DIELECTRIC_DJORDJEVIC_SARKAR::Fit | ( | double | aEpsRSpec, |
| double | aTanDSpec, | ||
| double | aFSpec, | ||
| double | aF1 = 1.0e3, | ||
| double | aF2 = 1.0e12 ) |
Fit the model from a single (epsR, tan delta) datapoint at f_spec.
The default bandwidth [1 kHz, 1 THz] matches Djordjevic 2001.
| std::invalid_argument | if f1 <= 0, f2 <= f1, or f_spec is outside [f1, f2]. |
Definition at line 29 of file dielectric_djordjevic_sarkar.cpp.
References m_epsInf, m_f1, m_f2, m_lossless, and m_m.
Referenced by TRANSLINE_CALCULATION_BASE::UpdateDielectricModel().
|
inline |
Definition at line 64 of file dielectric_djordjevic_sarkar.h.
References m_epsInf.
|
inline |
Definition at line 65 of file dielectric_djordjevic_sarkar.h.
References m_m.
|
inline |
Definition at line 66 of file dielectric_djordjevic_sarkar.h.
References m_lossless.
| double DIELECTRIC_DJORDJEVIC_SARKAR::TanDeltaAt | ( | double | aF | ) | const |
Loss tangent tan delta = -Im(eps) / Re(eps) at aF.
Definition at line 83 of file dielectric_djordjevic_sarkar.cpp.
References ComplexEpsilonAt(), and m_lossless.
|
private |
Definition at line 69 of file dielectric_djordjevic_sarkar.h.
Referenced by ComplexEpsilonAt(), Fit(), and GetEpsilonInf().
|
private |
Definition at line 71 of file dielectric_djordjevic_sarkar.h.
Referenced by ComplexEpsilonAt(), and Fit().
|
private |
Definition at line 72 of file dielectric_djordjevic_sarkar.h.
Referenced by ComplexEpsilonAt(), and Fit().
|
private |
Definition at line 75 of file dielectric_djordjevic_sarkar.h.
Referenced by ComplexEpsilonAt(), Fit(), IsLossless(), and TanDeltaAt().
|
private |
Definition at line 70 of file dielectric_djordjevic_sarkar.h.
Referenced by ComplexEpsilonAt(), Fit(), and GetM().