tidy3d.PoleResidue#

class tidy3d.PoleResidue#

A dispersive medium described by the pole-residue pair 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\)).

  • poles (Tuple[Tuple[Union[tidy3d.components.types.tidycomplex, tidy3d.components.types.ComplexNumber], Union[tidy3d.components.types.tidycomplex, tidy3d.components.types.ComplexNumber]], ...] = ()) – [units = (rad/sec, rad/sec)]. Tuple of complex-valued (\(a_i, c_i\)) poles for the model.

Note

\[\epsilon(\omega) = \epsilon_\infty - \sum_i \left[\frac{c_i}{j \omega + a_i} + \frac{c_i^*}{j \omega + a_i^*}\right]\]

Example

>>> pole_res = PoleResidue(eps_inf=2.0, poles=[((1+2j), (3+4j)), ((5+6j), (7+8j))])
>>> eps = pole_res.eps_model(200e12)

Show JSON schema
{
   "title": "PoleResidue",
   "description": "A dispersive medium described by the pole-residue pair 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`).\npoles : Tuple[Tuple[Union[tidy3d.components.types.tidycomplex, tidy3d.components.types.ComplexNumber], Union[tidy3d.components.types.tidycomplex, tidy3d.components.types.ComplexNumber]], ...] = ()\n    [units = (rad/sec, rad/sec)].  Tuple of complex-valued (:math:`a_i, c_i`) poles for the model.\n\nNote\n----\n.. math::\n\n    \\epsilon(\\omega) = \\epsilon_\\infty - \\sum_i\n    \\left[\\frac{c_i}{j \\omega + a_i} +\n    \\frac{c_i^*}{j \\omega + a_i^*}\\right]\n\nExample\n-------\n>>> pole_res = PoleResidue(eps_inf=2.0, poles=[((1+2j), (3+4j)), ((5+6j), (7+8j))])\n>>> eps = pole_res.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": "PoleResidue",
         "enum": [
            "PoleResidue"
         ],
         "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"
      },
      "poles": {
         "title": "Poles",
         "description": "Tuple of complex-valued (:math:`a_i, c_i`) poles for the model.",
         "default": [],
         "units": [
            "rad/sec",
            "rad/sec"
         ],
         "type": "array",
         "items": {
            "type": "array",
            "minItems": 2,
            "maxItems": 2,
            "items": [
               {
                  "anyOf": [
                     {
                        "title": "ComplexNumber",
                        "description": "Complex number with a well defined schema.",
                        "type": "object",
                        "properties": {
                           "real": {
                              "title": "Real",
                              "type": "number"
                           },
                           "imag": {
                              "title": "Imag",
                              "type": "number"
                           }
                        },
                        "required": [
                           "real",
                           "imag"
                        ]
                     },
                     {
                        "$ref": "#/definitions/ComplexNumber"
                     }
                  ]
               },
               {
                  "anyOf": [
                     {
                        "title": "ComplexNumber",
                        "description": "Complex number with a well defined schema.",
                        "type": "object",
                        "properties": {
                           "real": {
                              "title": "Real",
                              "type": "number"
                           },
                           "imag": {
                              "title": "Imag",
                              "type": "number"
                           }
                        },
                        "required": [
                           "real",
                           "imag"
                        ]
                     },
                     {
                        "$ref": "#/definitions/ComplexNumber"
                     }
                  ]
               }
            ]
         }
      }
   },
   "additionalProperties": false,
   "definitions": {
      "ComplexNumber": {
         "title": "ComplexNumber",
         "description": "Complex number with a well defined schema.",
         "type": "object",
         "properties": {
            "real": {
               "title": "Real",
               "type": "number"
            },
            "imag": {
               "title": "Imag",
               "type": "number"
            }
         },
         "required": [
            "real",
            "imag"
         ]
      }
   }
}

Fields
  • eps_inf (float)

  • poles (Tuple[Tuple[Union[tidy3d.components.types.tidycomplex, tidy3d.components.types.ComplexNumber], Union[tidy3d.components.types.tidycomplex, tidy3d.components.types.ComplexNumber]], ...])

attribute eps_inf: float = 1.0#

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

attribute poles: Tuple[Tuple[Union[tidy3d.components.types.tidycomplex, tidy3d.components.types.ComplexNumber], Union[tidy3d.components.types.tidycomplex, tidy3d.components.types.ComplexNumber]], ...] = ()#

Tuple of complex-valued (\(a_i, c_i\)) poles for the model.

eps_model(frequency: float) complex#

New eps_model function.

property pole_residue#

Representation of Medium as a pole-residue model.