Parameters
• bound_amp (Optional[NonNegativeFloat] = None) – [units = Hz]. Upper bound of real and imagniary part of oscillator strength `c` in the model `PoleResidue` (The default ‘None’ will trigger automatic setup based on the frequency range of interest).

• bound_f (Optional[NonNegativeFloat] = None) – [units = Hz]. Upper bound of real and imaginary part of `a` that corresponds to pole damping rate and frequency in the model `PoleResidue` (The default ‘None’ will trigger automatic setup based on the frequency range of interest).

• bound_f_lower (NonNegativeFloat = 0.0) – [units = Hz]. Lower bound of imaginary part of `a` that corresponds to pole frequency in the model `PoleResidue`.

• bound_eps_inf (ConstrainedFloatValue = 10.0) – Upper bound of epsilon at infinity frequency. It must be no less than 1.

• constraint (Literal['hard', 'soft'] = hard) – Stability constraint: ‘hard’ constraints are generally recommended since they are faster to compute per iteration, and they often require fewer iterations to converge since the search space is smaller. But sometimes the search space is so restrictive that all good solutions are missed, then please try the ‘soft’ constraints for larger search space. However, both constraints improve stability equally well.

• nlopt_maxeval (PositiveInt = 5000) – Number of iterations in each inner optimization.

• random_seed (Optional[ConstrainedIntValue] = 0) – The fitting tool performs global optimizations with random starting coefficients. With the same random seed, one obtains identical results when re-running the fitter; on the other hand, if one wants to re-run the fitter several times to obtain the best results, the value of the seed should be changed, or set to `None` so that the starting coefficients are different each time.

Show JSON schema
```{
"description": "Advanced fitter parameters\n\nParameters\n----------\nbound_amp : Optional[NonNegativeFloat] = None\n    [units = Hz].  Upper bound of real and imagniary part of oscillator strength ``c`` in the model :class:`.PoleResidue` (The default 'None' will trigger automatic setup based on the frequency range of interest).\nbound_f : Optional[NonNegativeFloat] = None\n    [units = Hz].  Upper bound of real and imaginary part of ``a`` that corresponds to pole damping rate and frequency in the model :class:`.PoleResidue` (The default 'None' will trigger automatic setup based on the frequency range of interest).\nbound_f_lower : NonNegativeFloat = 0.0\n    [units = Hz].  Lower bound of imaginary part of ``a`` that corresponds to pole frequency in the model :class:`.PoleResidue`.\nbound_eps_inf : ConstrainedFloatValue = 10.0\n    Upper bound of epsilon at infinity frequency. It must be no less than 1.\nconstraint : Literal['hard', 'soft'] = hard\n    Stability constraint: 'hard' constraints are generally recommended since they are faster to compute per iteration, and they often require fewer iterations to converge since the search space is smaller. But sometimes the search space is so restrictive that all good solutions are missed, then please try the 'soft' constraints for larger search space. However, both constraints improve stability equally well.\nnlopt_maxeval : PositiveInt = 5000\n    Number of iterations in each inner optimization.\nrandom_seed : Optional[ConstrainedIntValue] = 0\n    The fitting tool performs global optimizations with random starting coefficients. With the same random seed, one obtains identical results when re-running the fitter; on the other hand, if one wants to re-run the fitter several times to obtain the best results, the value of the seed should be changed, or set to  ``None`` so that the starting coefficients are different each time. ",
"type": "object",
"properties": {
"bound_amp": {
"title": "Upper bound of oscillator strength",
"description": "Upper bound of real and imagniary part of oscillator strength ``c`` in the model :class:`.PoleResidue` (The default 'None' will trigger automatic setup based on the frequency range of interest).",
"units": "Hz",
"minimum": 0,
"type": "number"
},
"bound_f": {
"title": "Upper bound of pole frequency",
"description": "Upper bound of real and imaginary part of ``a`` that corresponds to pole damping rate and frequency in the model :class:`.PoleResidue` (The default 'None' will trigger automatic setup based on the frequency range of interest).",
"units": "Hz",
"minimum": 0,
"type": "number"
},
"bound_f_lower": {
"title": "Lower bound of pole frequency",
"description": "Lower bound of imaginary part of ``a`` that corresponds to pole frequency in the model :class:`.PoleResidue`.",
"default": 0.0,
"units": "Hz",
"minimum": 0,
"type": "number"
},
"bound_eps_inf": {
"title": "Upper bound of epsilon at infinity frequency",
"description": "Upper bound of epsilon at infinity frequency. It must be no less than 1.",
"default": 10.0,
"minimum": 1,
"type": "number"
},
"constraint": {
"title": "Type of constraint for stability",
"description": "Stability constraint: 'hard' constraints are generally recommended since they are faster to compute per iteration, and they often require fewer iterations to converge since the search space is smaller. But sometimes the search space is so restrictive that all good solutions are missed, then please try the 'soft' constraints for larger search space. However, both constraints improve stability equally well.",
"default": "hard",
"enum": [
"hard",
"soft"
],
"type": "string"
},
"nlopt_maxeval": {
"title": "Number of inner iterations",
"description": "Number of iterations in each inner optimization.",
"default": 5000,
"exclusiveMinimum": 0,
"type": "integer"
},
"random_seed": {
"title": "Random seed for starting coefficients",
"description": "The fitting tool performs global optimizations with random starting coefficients. With the same random seed, one obtains identical results when re-running the fitter; on the other hand, if one wants to re-run the fitter several times to obtain the best results, the value of the seed should be changed, or set to  ``None`` so that the starting coefficients are different each time. ",
"default": 0,
"exclusiveMaximum": 4294967296,
"minimum": 0,
"type": "integer"
},
"type": {
"title": "Type",
"enum": [
],
"type": "string"
}
},
}
```

attribute bound_amp: pydantic.types.NonNegativeFloat = None#

Upper bound of real and imagniary part of oscillator strength `c` in the model `PoleResidue` (The default ‘None’ will trigger automatic setup based on the frequency range of interest).

Constraints
• minimum = 0

attribute bound_eps_inf: float = 10.0#

Upper bound of epsilon at infinity frequency. It must be no less than 1.

Constraints
• minimum = 1

attribute bound_f: pydantic.types.NonNegativeFloat = None#

Upper bound of real and imaginary part of `a` that corresponds to pole damping rate and frequency in the model `PoleResidue` (The default ‘None’ will trigger automatic setup based on the frequency range of interest).

Constraints
• minimum = 0

attribute bound_f_lower: pydantic.types.NonNegativeFloat = 0.0#

Lower bound of imaginary part of `a` that corresponds to pole frequency in the model `PoleResidue`.

Constraints
• minimum = 0

Validated by
• `_validate_lower_frequency_bound`

attribute constraint: Literal['hard', 'soft'] = 'hard'#

Stability constraint: ‘hard’ constraints are generally recommended since they are faster to compute per iteration, and they often require fewer iterations to converge since the search space is smaller. But sometimes the search space is so restrictive that all good solutions are missed, then please try the ‘soft’ constraints for larger search space. However, both constraints improve stability equally well.

attribute nlopt_maxeval: pydantic.types.PositiveInt = 5000#

Number of iterations in each inner optimization.

Constraints
• exclusiveMinimum = 0

attribute random_seed: Optional[int] = 0#

The fitting tool performs global optimizations with random starting coefficients. With the same random seed, one obtains identical results when re-running the fitter; on the other hand, if one wants to re-run the fitter several times to obtain the best results, the value of the seed should be changed, or set to `None` so that the starting coefficients are different each time.

Constraints
• exclusiveMaximum = 4294967296

• minimum = 0