tidy3d.plugins.dispersion.FastDispersionFitter#
- class FastDispersionFitter[source]#
Bases:
DispersionFitter
Tool for fitting refractive index data to get a dispersive medium described by
PoleResidue
model.- Parameters:
wvl_um (Attribute:
wvl_um
) –Type
ArrayLike[dtype=float, ndim=1]
Default
Units
um
Description
Wavelength data in micrometers.
n_data (Attribute:
n_data
) –Type
ArrayLike[dtype=float, ndim=1]
Default
Description
Real part of the complex index of refraction.
k_data (Attribute:
k_data
) –Type
Optional[ArrayLike[dtype=float, ndim=1]]
Default
= None
Description
Imaginary part of the complex index of refraction.
wvl_range (Attribute:
wvl_range
) –Type
Tuple[float, float]
Default
= (None, None)
Units
um
Description
Truncate the wavelength, n and k data to the wavelength range ‘[wvl_min, wvl_max]’ for fitting.
Attributes
Methods
fit
([min_num_poles, max_num_poles, eps_inf, ...])Fit data using a fast fitting algorithm.
- fit(min_num_poles=1, max_num_poles=5, eps_inf=None, tolerance_rms=1e-05, advanced_param=None)[source]#
Fit data using a fast fitting algorithm.
Note
The algorithm is described in:
B. Gustavsen and A. Semlyen, "Rational approximation of frequency domain responses by vector fitting," IEEE Trans. Power. Deliv. 14, 3 (1999). B. Gustavsen, "Improving the pole relocation properties of vector fitting," IEEE Trans. Power Deliv. 21, 3 (2006). B. Gustavsen, "Enforcing Passivity for Admittance Matrices Approximated by Rational Functions," IEEE Trans. Power Syst. 16, 1 (2001).
Note
The fit is performed after weighting the real and imaginary parts, so the RMS error is also weighted accordingly. By default, the weights are chosen based on typical values of the data. To change this behavior, use ‘AdvancedFastFitterParam.weights’.
- Parameters:
min_num_poles (PositiveInt, optional) – Minimum number of poles in the model.
max_num_poles (PositiveInt, optional) – Maximum number of poles in the model.
eps_inf (float, optional) – Value of eps_inf to use in fit. If None, then eps_inf is also fit. Note: fitting eps_inf is not guaranteed to yield a global optimum, so the result may occasionally be better with a fixed value of eps_inf.
tolerance_rms (float, optional) – Weighted RMS error below which the fit is successful and the result is returned.
advanced_param (
AdvancedFastFitterParam
, optional) – Advanced parameters for fitting.
- Returns:
Best fitting result: (dispersive medium, weighted RMS error).
- Return type:
Tuple[
PoleResidue
, float]
- __hash__()#
Hash method.