tidy3d.plugins.StableDispersionFitter
tidy3d.plugins.StableDispersionFitter#
- class tidy3d.plugins.StableDispersionFitter#
Stable fitter based on web service
- Parameters
wvl_um (Union[Tuple[float, ...], Array]) – [units = um]. Wavelength data in micrometers.
n_data (Union[Tuple[float, ...], Array]) – Real part of the complex index of refraction.
k_data (Union[Tuple[float, ...], Array] = None) – Imaginary part of the complex index of refraction.
wvl_range (Tuple[float, float] = (None, None)) – [units = um]. Truncate the wavelength-nk data to wavelength range [wvl_min,wvl_max] for fitting
Show JSON schema
{ "title": "StableDispersionFitter", "description": "Stable fitter based on web service\n\nParameters\n----------\nwvl_um : Union[Tuple[float, ...], Array]\n [units = um]. Wavelength data in micrometers.\nn_data : Union[Tuple[float, ...], Array]\n Real part of the complex index of refraction.\nk_data : Union[Tuple[float, ...], Array] = None\n Imaginary part of the complex index of refraction.\nwvl_range : Tuple[float, float] = (None, None)\n [units = um]. Truncate the wavelength-nk data to wavelength range [wvl_min,wvl_max] for fitting", "type": "object", "properties": { "wvl_um": { "title": "Wavelength data", "description": "Wavelength data in micrometers.", "units": "um", "anyOf": [ { "type": "array", "items": { "type": "number" } }, { "title": "Array Like", "description": "Accepts sequence (tuple, list, numpy array) and converts to tuple.", "type": "tuple", "properties": {}, "required": [] } ] }, "n_data": { "title": "Index of refraction data", "description": "Real part of the complex index of refraction.", "anyOf": [ { "type": "array", "items": { "type": "number" } }, { "title": "Array Like", "description": "Accepts sequence (tuple, list, numpy array) and converts to tuple.", "type": "tuple", "properties": {}, "required": [] } ] }, "k_data": { "title": "Extinction coefficient data", "description": "Imaginary part of the complex index of refraction.", "anyOf": [ { "type": "array", "items": { "type": "number" } }, { "title": "Array Like", "description": "Accepts sequence (tuple, list, numpy array) and converts to tuple.", "type": "tuple", "properties": {}, "required": [] } ] }, "wvl_range": { "title": "Wavelength range [wvl_min,wvl_max] for fitting", "description": "Truncate the wavelength-nk data to wavelength range [wvl_min,wvl_max] for fitting", "default": [ null, null ], "units": "um", "type": "array", "minItems": 2, "maxItems": 2, "items": [ { "type": "number" }, { "type": "number" } ] }, "type": { "title": "Type", "default": "StableDispersionFitter", "enum": [ "StableDispersionFitter" ], "type": "string" } }, "required": [ "wvl_um", "n_data" ], "additionalProperties": false }
- Fields
k_data (Union[Tuple[float, ...], tidy3d.components.types.Array])
n_data (Union[Tuple[float, ...], tidy3d.components.types.Array])
wvl_range (Tuple[Optional[float], Optional[float]])
wvl_um (Union[Tuple[float, ...], tidy3d.components.types.Array])
- attribute k_data: Union[Tuple[float, ...], tidy3d.components.types.Array] = None#
Imaginary part of the complex index of refraction.
- Validated by
_kdata_setup_and_length_match
- attribute n_data: Union[Tuple[float, ...], tidy3d.components.types.Array] [Required]#
Real part of the complex index of refraction.
- Validated by
_ndata_length_match_wvl
- attribute wvl_range: Tuple[Optional[float], Optional[float]] = (None, None)#
Truncate the wavelength-nk data to wavelength range [wvl_min,wvl_max] for fitting
- attribute wvl_um: Union[Tuple[float, ...], tidy3d.components.types.Array] [Required]#
Wavelength data in micrometers.
- Validated by
_setup_wvl
- fit(num_poles: pydantic.types.PositiveInt = 1, num_tries: pydantic.types.PositiveInt = 50, tolerance_rms: pydantic.types.NonNegativeFloat = 0.01, advanced_param: tidy3d.plugins.dispersion.fit_web.AdvancedFitterParam = AdvancedFitterParam(bound_amp=None, bound_f=None, bound_eps_inf=1.0, constraint='hard', nlopt_maxeval=5000, type='AdvancedFitterParam')) Tuple[tidy3d.components.medium.PoleResidue, float] #
Fits data a number of times and returns best results.
- Parameters
num_poles (PositiveInt, optional) – Number of poles in the model.
num_tries (PositiveInt, optional) – Number of optimizations to run with random initial guess.
tolerance_rms (NonNegativeFloat, optional) – RMS error below which the fit is successful and the result is returned.
advanced_param (
AdvancedFitterParam
, optional) – Other advanced parameters.
- Returns
Best results of multiple fits: (dispersive medium, RMS error).
- Return type
Tuple[
PoleResidue
, float]