tidy3d.plugins.AdvancedFitterParam#

class tidy3d.plugins.AdvancedFitterParam#

Advanced fitter parameters

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 pole frequency a in the model PoleResidue (The default ‘None’ will trigger automatic setup based on the frequency range of interest).

  • bound_eps_inf (ConstrainedFloatValue = 1.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.

Show JSON schema
{
   "title": "AdvancedFitterParam",
   "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 pole frequency ``a`` in the model :class:`.PoleResidue` (The default 'None' will trigger automatic setup based on the frequency range of interest).\nbound_eps_inf : ConstrainedFloatValue = 1.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.",
   "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 pole frequency ``a`` 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_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": 1.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"
      },
      "type": {
         "title": "Type",
         "default": "AdvancedFitterParam",
         "enum": [
            "AdvancedFitterParam"
         ],
         "type": "string"
      }
   },
   "additionalProperties": false
}

Fields
  • bound_amp (pydantic.types.NonNegativeFloat)

  • bound_eps_inf (float)

  • bound_f (pydantic.types.NonNegativeFloat)

  • constraint (Literal['hard', 'soft'])

  • nlopt_maxeval (pydantic.types.PositiveInt)

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 = 1.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 pole frequency a in the model PoleResidue (The default ‘None’ will trigger automatic setup based on the frequency range of interest).

Constraints
  • minimum = 0

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