KiCad PCB EDA Suite
Loading...
Searching...
No Matches
DIELECTRIC_DJORDJEVIC_SARKAR Class Reference

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
 

Detailed Description

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.

Member Function Documentation

◆ ComplexEpsilonAt()

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().

◆ EpsilonRealAt()

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().

◆ Fit()

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.

Exceptions
std::invalid_argumentif 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().

◆ GetEpsilonInf()

double DIELECTRIC_DJORDJEVIC_SARKAR::GetEpsilonInf ( ) const
inline

Definition at line 64 of file dielectric_djordjevic_sarkar.h.

References m_epsInf.

◆ GetM()

double DIELECTRIC_DJORDJEVIC_SARKAR::GetM ( ) const
inline

Definition at line 65 of file dielectric_djordjevic_sarkar.h.

References m_m.

◆ IsLossless()

bool DIELECTRIC_DJORDJEVIC_SARKAR::IsLossless ( ) const
inline

Definition at line 66 of file dielectric_djordjevic_sarkar.h.

References m_lossless.

◆ TanDeltaAt()

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.

Member Data Documentation

◆ m_epsInf

double DIELECTRIC_DJORDJEVIC_SARKAR::m_epsInf = 1.0
private

Definition at line 69 of file dielectric_djordjevic_sarkar.h.

Referenced by ComplexEpsilonAt(), Fit(), and GetEpsilonInf().

◆ m_f1

double DIELECTRIC_DJORDJEVIC_SARKAR::m_f1 = 1.0e3
private

Definition at line 71 of file dielectric_djordjevic_sarkar.h.

Referenced by ComplexEpsilonAt(), and Fit().

◆ m_f2

double DIELECTRIC_DJORDJEVIC_SARKAR::m_f2 = 1.0e12
private

Definition at line 72 of file dielectric_djordjevic_sarkar.h.

Referenced by ComplexEpsilonAt(), and Fit().

◆ m_lossless

bool DIELECTRIC_DJORDJEVIC_SARKAR::m_lossless = true
private

Definition at line 75 of file dielectric_djordjevic_sarkar.h.

Referenced by ComplexEpsilonAt(), Fit(), IsLossless(), and TanDeltaAt().

◆ m_m

double DIELECTRIC_DJORDJEVIC_SARKAR::m_m = 0.0
private

Definition at line 70 of file dielectric_djordjevic_sarkar.h.

Referenced by ComplexEpsilonAt(), Fit(), and GetM().


The documentation for this class was generated from the following files: