tidy3d.Lorentz#

class tidy3d.Lorentz#

A dispersive medium described by the Lorentz model. The frequency-dependence of the complex-valued permittivity is described by:

Parameters
  • name (Optional[str] = None) – Optional unique name for medium.

  • frequency_range (Optional[Tuple[float, float]] = None) – [units = (Hz, Hz)]. Optional range of validity for the medium.

  • eps_inf (float = 1.0) – [units = None (relative permittivity)]. Relative permittivity at infinite frequency (\(\epsilon_\infty\)).

  • coeffs (Tuple[Tuple[float, float, float], ...]) – [units = (None (relative permittivity), Hz, Hz)]. List of (\(\Delta\epsilon_i, f_i, \delta_i\)) values for model.

Note

\[\epsilon(f) = \epsilon_\infty + \sum_i \frac{\Delta\epsilon_i f_i^2}{f_i^2 - 2jf\delta_i - f^2}\]

Example

>>> lorentz_medium = Lorentz(eps_inf=2.0, coeffs=[(1,2,3), (4,5,6)])
>>> eps = lorentz_medium.eps_model(200e12)

Show JSON schema
{
   "title": "Lorentz",
   "description": "A dispersive medium described by the Lorentz model.\nThe frequency-dependence of the complex-valued permittivity is described by:\n\nParameters\n----------\nname : Optional[str] = None\n    Optional unique name for medium.\nfrequency_range : Optional[Tuple[float, float]] = None\n    [units = (Hz, Hz)].  Optional range of validity for the medium.\neps_inf : float = 1.0\n    [units = None (relative permittivity)].  Relative permittivity at infinite frequency (:math:`\\epsilon_\\infty`).\ncoeffs : Tuple[Tuple[float, float, float], ...]\n    [units = (None (relative permittivity), Hz, Hz)].  List of (:math:`\\Delta\\epsilon_i, f_i, \\delta_i`) values for model.\n\nNote\n----\n.. math::\n\n    \\epsilon(f) = \\epsilon_\\infty + \\sum_i\n    \\frac{\\Delta\\epsilon_i f_i^2}{f_i^2 - 2jf\\delta_i - f^2}\n\nExample\n-------\n>>> lorentz_medium = Lorentz(eps_inf=2.0, coeffs=[(1,2,3), (4,5,6)])\n>>> eps = lorentz_medium.eps_model(200e12)",
   "type": "object",
   "properties": {
      "name": {
         "title": "Name",
         "description": "Optional unique name for medium.",
         "type": "string"
      },
      "frequency_range": {
         "title": "Frequency Range",
         "description": "Optional range of validity for the medium.",
         "units": [
            "Hz",
            "Hz"
         ],
         "type": "array",
         "minItems": 2,
         "maxItems": 2,
         "items": [
            {
               "type": "number"
            },
            {
               "type": "number"
            }
         ]
      },
      "type": {
         "title": "Type",
         "default": "Lorentz",
         "enum": [
            "Lorentz"
         ],
         "type": "string"
      },
      "eps_inf": {
         "title": "Epsilon at Infinity",
         "description": "Relative permittivity at infinite frequency (:math:`\\epsilon_\\infty`).",
         "default": 1.0,
         "units": "None (relative permittivity)",
         "type": "number"
      },
      "coeffs": {
         "title": "Epsilon at Infinity",
         "description": "List of (:math:`\\Delta\\epsilon_i, f_i, \\delta_i`) values for model.",
         "units": [
            "None (relative permittivity)",
            "Hz",
            "Hz"
         ],
         "type": "array",
         "items": {
            "type": "array",
            "minItems": 3,
            "maxItems": 3,
            "items": [
               {
                  "type": "number"
               },
               {
                  "type": "number"
               },
               {
                  "type": "number"
               }
            ]
         }
      }
   },
   "required": [
      "coeffs"
   ],
   "additionalProperties": false
}

attribute coeffs: Tuple[Tuple[float, float, float], ...] [Required]#

List of (\(\Delta\epsilon_i, f_i, \delta_i\)) values for model.

attribute eps_inf: float = 1.0#

Relative permittivity at infinite frequency (\(\epsilon_\infty\)).

eps_model(frequency: float) complex#

New eps_model function.

property pole_residue#

Representation of Medium as a pole-residue model.