tidy3d.Sellmeier#

class tidy3d.Sellmeier#

A dispersive medium described by the Sellmeier model. The frequency-dependence of the refractive index 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.

  • coeffs (Tuple[Tuple[float, pydantic.types.PositiveFloat], ...]) – [units = (None, um^2)]. List of Sellmeier (\(B_i, C_i\)) coefficients.

Note

\[n(\lambda)^2 = 1 + \sum_i \frac{B_i \lambda^2}{\lambda^2 - C_i}\]

Example

>>> sellmeier_medium = Sellmeier(coeffs=[(1,2), (3,4)])
>>> eps = sellmeier_medium.eps_model(200e12)

Show JSON schema
{
   "title": "Sellmeier",
   "description": "A dispersive medium described by the Sellmeier model.\nThe frequency-dependence of the refractive index 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.\ncoeffs : Tuple[Tuple[float, pydantic.types.PositiveFloat], ...]\n    [units = (None, um^2)].  List of Sellmeier (:math:`B_i, C_i`) coefficients.\n\nNote\n----\n.. math::\n\n    n(\\lambda)^2 = 1 + \\sum_i \\frac{B_i \\lambda^2}{\\lambda^2 - C_i}\n\nExample\n-------\n>>> sellmeier_medium = Sellmeier(coeffs=[(1,2), (3,4)])\n>>> eps = sellmeier_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": "Sellmeier",
         "enum": [
            "Sellmeier"
         ],
         "type": "string"
      },
      "coeffs": {
         "title": "Coefficients",
         "description": "List of Sellmeier (:math:`B_i, C_i`) coefficients.",
         "units": [
            null,
            "um^2"
         ],
         "type": "array",
         "items": {
            "type": "array",
            "minItems": 2,
            "maxItems": 2,
            "items": [
               {
                  "type": "number"
               },
               {
                  "type": "number",
                  "exclusiveMinimum": 0
               }
            ]
         }
      }
   },
   "required": [
      "coeffs"
   ],
   "additionalProperties": false
}

attribute coeffs: Tuple[Tuple[float, pydantic.types.PositiveFloat], ...] [Required]#

List of Sellmeier (\(B_i, C_i\)) coefficients.

eps_model(frequency: float) complex#

New eps_model function.

classmethod from_dispersion(n: float, freq: float, dn_dwvl: float = 0, **kwargs)#

Convert n and wavelength dispersion dn_dwvl values at frequency freq to a single-pole Sellmeier medium.

Parameters
  • n (float) – Real part of refractive index. Must be larger than or equal to one.

  • dn_dwvl (float = 0) – Derivative of the refractive index with wavelength (1/um). Must be negative.

  • frequency (float) – Frequency to evaluate permittivity at (Hz).

Returns

medium containing the corresponding permittivity and conductivity.

Return type

Medium

property pole_residue#

Representation of Medium as a pole-residue model.