tidy3d.AbstractNear2FarData#

class tidy3d.AbstractNear2FarData#

Collection of radiation vectors in the frequency domain.

Parameters

monitor (Union[Near2FarAngleMonitor, Near2FarCartesianMonitor, Near2FarKSpaceMonitor]) –

Show JSON schema
{
   "title": "AbstractNear2FarData",
   "description": "Collection of radiation vectors in the frequency domain.\n\nParameters\n----------\nmonitor : Union[Near2FarAngleMonitor, Near2FarCartesianMonitor, Near2FarKSpaceMonitor]\n    ",
   "type": "object",
   "properties": {
      "monitor": {
         "title": "Monitor",
         "anyOf": [
            {
               "$ref": "#/definitions/Near2FarAngleMonitor"
            },
            {
               "$ref": "#/definitions/Near2FarCartesianMonitor"
            },
            {
               "$ref": "#/definitions/Near2FarKSpaceMonitor"
            }
         ]
      },
      "type": {
         "title": "Type",
         "default": "AbstractNear2FarData",
         "enum": [
            "AbstractNear2FarData"
         ],
         "type": "string"
      }
   },
   "required": [
      "monitor"
   ],
   "additionalProperties": false,
   "definitions": {
      "Medium": {
         "title": "Medium",
         "description": "Dispersionless medium.\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.\npermittivity : ConstrainedFloatValue = 1.0\n    [units = None (relative permittivity)].  Relative permittivity.\nconductivity : ConstrainedFloatValue = 0.0\n    [units = S/m].  Electric conductivity.  Defined such that the imaginary part of the complex permittivity at angular frequency omega is given by conductivity/omega.\n\nExample\n-------\n>>> dielectric = Medium(permittivity=4.0, name='my_medium')\n>>> eps = dielectric.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": "Medium",
               "enum": [
                  "Medium"
               ],
               "type": "string"
            },
            "permittivity": {
               "title": "Permittivity",
               "description": "Relative permittivity.",
               "default": 1.0,
               "minimum": 1.0,
               "units": "None (relative permittivity)",
               "type": "number"
            },
            "conductivity": {
               "title": "Conductivity",
               "description": "Electric conductivity.  Defined such that the imaginary part of the complex permittivity at angular frequency omega is given by conductivity/omega.",
               "default": 0.0,
               "minimum": 0.0,
               "units": "S/m",
               "type": "number"
            }
         },
         "additionalProperties": false
      },
      "Near2FarAngleMonitor": {
         "title": "Near2FarAngleMonitor",
         "description": ":class:`Monitor` that samples electromagnetic near fields in the frequency domain\nand invokes the computation of far fields at given observation angles.\n\nParameters\n----------\ncenter : Tuple[float, float, float] = (0.0, 0.0, 0.0)\n    [units = um].  Center of object in x, y, and z.\nsize : Tuple[NonNegativeFloat, NonNegativeFloat, NonNegativeFloat]\n    [units = um].  Size in x, y, and z directions.\nname : ConstrainedStrValue\n    Unique name for monitor.\nfreqs : Union[Tuple[float, ...], Array]\n    [units = Hz].  Array or list of frequencies stored by the field monitor.\nnormal_dir : Optional[Literal['+', '-']] = None\n    Direction of the surface monitor's normal vector w.r.t. the positive x, y or z unit vectors. Must be one of ``'+'`` or ``'-'``. Applies to surface monitors only, and defaults to ``'+'`` if not provided.\nexclude_surfaces : Optional[Tuple[Literal['x-', 'x+', 'y-', 'y+', 'z-', 'z+'], ...]] = None\n    Surfaces to exclude in the integration, if a volume monitor.\nfields : Tuple[Literal['Ntheta', 'Nphi', 'Ltheta', 'Lphi'], ...] = ['Ntheta', 'Nphi', 'Ltheta', 'Lphi']\n    Collection of radiation vector components to store in the monitor.\ncustom_origin : Optional[Tuple[float, float, float]] = None\n    [units = um].  Local origin used for defining observation points. If ``None``, uses the monitor's center.\nmedium : Medium = Medium(name=None, frequency_range=None, type='Medium', permittivity=1.0, conductivity=0.0)\n    Background medium in which to radiate near fields to far fields. If not provided, uses free space.\ntheta : Union[Tuple[float, ...], Array]\n    [units = rad].  Polar angles relative to ``local_origin`` at which to compute far fields.\nphi : Union[Tuple[float, ...], Array]\n    [units = rad].  Azimuth angles relative to ``local_origin`` at which to compute far fields.\n\nExample\n-------\n>>> monitor = Near2FarAngleMonitor(\n...     center=(1,2,3),\n...     size=(2,2,2),\n...     freqs=[250e12, 300e12],\n...     name='n2f_monitor',\n...     custom_origin=(1,2,3),\n...     phi=[0, np.pi/2],\n...     theta=np.linspace(-np.pi/2, np.pi/2, 100)\n...     )",
         "type": "object",
         "properties": {
            "type": {
               "title": "Type",
               "default": "Near2FarAngleMonitor",
               "enum": [
                  "Near2FarAngleMonitor"
               ],
               "type": "string"
            },
            "center": {
               "title": "Center",
               "description": "Center of object in x, y, and z.",
               "default": [
                  0.0,
                  0.0,
                  0.0
               ],
               "units": "um",
               "type": "array",
               "minItems": 3,
               "maxItems": 3,
               "items": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "number"
                  },
                  {
                     "type": "number"
                  }
               ]
            },
            "size": {
               "title": "Size",
               "description": "Size in x, y, and z directions.",
               "units": "um",
               "type": "array",
               "minItems": 3,
               "maxItems": 3,
               "items": [
                  {
                     "type": "number",
                     "minimum": 0
                  },
                  {
                     "type": "number",
                     "minimum": 0
                  },
                  {
                     "type": "number",
                     "minimum": 0
                  }
               ]
            },
            "name": {
               "title": "Name",
               "description": "Unique name for monitor.",
               "minLength": 1,
               "type": "string"
            },
            "freqs": {
               "title": "Frequencies",
               "description": "Array or list of frequencies stored by the field monitor.",
               "units": "Hz",
               "anyOf": [
                  {
                     "type": "array",
                     "items": {
                        "type": "number"
                     }
                  },
                  {
                     "title": "Array Like",
                     "description": "Accepts sequence (tuple, list, numpy array) and converts to tuple.",
                     "type": "tuple",
                     "properties": {},
                     "required": []
                  }
               ]
            },
            "normal_dir": {
               "title": "Normal vector orientation",
               "description": "Direction of the surface monitor's normal vector w.r.t. the positive x, y or z unit vectors. Must be one of ``'+'`` or ``'-'``. Applies to surface monitors only, and defaults to ``'+'`` if not provided.",
               "enum": [
                  "+",
                  "-"
               ],
               "type": "string"
            },
            "exclude_surfaces": {
               "title": "Excluded surfaces",
               "description": "Surfaces to exclude in the integration, if a volume monitor.",
               "type": "array",
               "items": {
                  "enum": [
                     "x-",
                     "x+",
                     "y-",
                     "y+",
                     "z-",
                     "z+"
                  ],
                  "type": "string"
               }
            },
            "fields": {
               "title": "Field Components",
               "description": "Collection of radiation vector components to store in the monitor.",
               "default": [
                  "Ntheta",
                  "Nphi",
                  "Ltheta",
                  "Lphi"
               ],
               "type": "array",
               "items": {
                  "enum": [
                     "Ntheta",
                     "Nphi",
                     "Ltheta",
                     "Lphi"
                  ],
                  "type": "string"
               }
            },
            "custom_origin": {
               "title": "Local origin",
               "description": "Local origin used for defining observation points. If ``None``, uses the monitor's center.",
               "units": "um",
               "type": "array",
               "minItems": 3,
               "maxItems": 3,
               "items": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "number"
                  },
                  {
                     "type": "number"
                  }
               ]
            },
            "medium": {
               "title": "Background medium",
               "description": "Background medium in which to radiate near fields to far fields. If not provided, uses free space.",
               "default": {
                  "name": null,
                  "frequency_range": null,
                  "type": "Medium",
                  "permittivity": 1.0,
                  "conductivity": 0.0
               },
               "allOf": [
                  {
                     "$ref": "#/definitions/Medium"
                  }
               ]
            },
            "theta": {
               "title": "Polar Angles",
               "description": "Polar angles relative to ``local_origin`` at which to compute far fields.",
               "units": "rad",
               "anyOf": [
                  {
                     "type": "array",
                     "items": {
                        "type": "number"
                     }
                  },
                  {
                     "title": "Array Like",
                     "description": "Accepts sequence (tuple, list, numpy array) and converts to tuple.",
                     "type": "tuple",
                     "properties": {},
                     "required": []
                  }
               ]
            },
            "phi": {
               "title": "Azimuth Angles",
               "description": "Azimuth angles relative to ``local_origin`` at which to compute far fields.",
               "units": "rad",
               "anyOf": [
                  {
                     "type": "array",
                     "items": {
                        "type": "number"
                     }
                  },
                  {
                     "title": "Array Like",
                     "description": "Accepts sequence (tuple, list, numpy array) and converts to tuple.",
                     "type": "tuple",
                     "properties": {},
                     "required": []
                  }
               ]
            }
         },
         "required": [
            "size",
            "name",
            "freqs",
            "theta",
            "phi"
         ],
         "additionalProperties": false
      },
      "Near2FarCartesianMonitor": {
         "title": "Near2FarCartesianMonitor",
         "description": ":class:`Monitor` that samples electromagnetic near fields in the frequency domain\nand invokes the computation of far fields on a Cartesian observation plane.\nThe far-field approximation is used, so results projected to points close to\nthe monitor's position, compared to its size, may not be accurate.\n\nParameters\n----------\ncenter : Tuple[float, float, float] = (0.0, 0.0, 0.0)\n    [units = um].  Center of object in x, y, and z.\nsize : Tuple[NonNegativeFloat, NonNegativeFloat, NonNegativeFloat]\n    [units = um].  Size in x, y, and z directions.\nname : ConstrainedStrValue\n    Unique name for monitor.\nfreqs : Union[Tuple[float, ...], Array]\n    [units = Hz].  Array or list of frequencies stored by the field monitor.\nnormal_dir : Optional[Literal['+', '-']] = None\n    Direction of the surface monitor's normal vector w.r.t. the positive x, y or z unit vectors. Must be one of ``'+'`` or ``'-'``. Applies to surface monitors only, and defaults to ``'+'`` if not provided.\nexclude_surfaces : Optional[Tuple[Literal['x-', 'x+', 'y-', 'y+', 'z-', 'z+'], ...]] = None\n    Surfaces to exclude in the integration, if a volume monitor.\nfields : Tuple[Literal['Ntheta', 'Nphi', 'Ltheta', 'Lphi'], ...] = ['Ntheta', 'Nphi', 'Ltheta', 'Lphi']\n    Collection of radiation vector components to store in the monitor.\ncustom_origin : Optional[Tuple[float, float, float]] = None\n    [units = um].  Local origin used for defining observation points. If ``None``, uses the monitor's center.\nmedium : Medium = Medium(name=None, frequency_range=None, type='Medium', permittivity=1.0, conductivity=0.0)\n    Background medium in which to radiate near fields to far fields. If not provided, uses free space.\nplane_axis : Literal[0, 1, 2]\n    Axis along which the observation plane is oriented.\nplane_distance : float\n    Signed distance of the observation plane along ``plane_axis`` w.r.t. ``local_origin``\nx : Union[Tuple[float, ...], Array]\n    [units = um].  Local x observation coordinates w.r.t. ``local_origin`` and ``plane_axis``. When ``plane_axis`` is 0, this corresponds to the global y axis. When ``plane_axis`` is 1, this corresponds to the global x axis. When ``plane_axis`` is 2, this corresponds to the global x axis. \ny : Union[Tuple[float, ...], Array]\n    [units = um].  Local y observation coordinates w.r.t. ``local_origin`` and ``plane_axis``. When ``plane_axis`` is 0, this corresponds to the global z axis. When ``plane_axis`` is 1, this corresponds to the global z axis. When ``plane_axis`` is 2, this corresponds to the global y axis. \n\nExample\n-------\n>>> monitor = Near2FarCartesianMonitor(\n...     center=(1,2,3),\n...     size=(2,2,2),\n...     freqs=[250e12, 300e12],\n...     name='n2f_monitor',\n...     custom_origin=(1,2,3),\n...     x=[-1, 0, 1],\n...     y=[-2, -1, 0, 1, 2],\n...     plane_axis=2,\n...     plane_distance=5\n...     )",
         "type": "object",
         "properties": {
            "type": {
               "title": "Type",
               "default": "Near2FarCartesianMonitor",
               "enum": [
                  "Near2FarCartesianMonitor"
               ],
               "type": "string"
            },
            "center": {
               "title": "Center",
               "description": "Center of object in x, y, and z.",
               "default": [
                  0.0,
                  0.0,
                  0.0
               ],
               "units": "um",
               "type": "array",
               "minItems": 3,
               "maxItems": 3,
               "items": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "number"
                  },
                  {
                     "type": "number"
                  }
               ]
            },
            "size": {
               "title": "Size",
               "description": "Size in x, y, and z directions.",
               "units": "um",
               "type": "array",
               "minItems": 3,
               "maxItems": 3,
               "items": [
                  {
                     "type": "number",
                     "minimum": 0
                  },
                  {
                     "type": "number",
                     "minimum": 0
                  },
                  {
                     "type": "number",
                     "minimum": 0
                  }
               ]
            },
            "name": {
               "title": "Name",
               "description": "Unique name for monitor.",
               "minLength": 1,
               "type": "string"
            },
            "freqs": {
               "title": "Frequencies",
               "description": "Array or list of frequencies stored by the field monitor.",
               "units": "Hz",
               "anyOf": [
                  {
                     "type": "array",
                     "items": {
                        "type": "number"
                     }
                  },
                  {
                     "title": "Array Like",
                     "description": "Accepts sequence (tuple, list, numpy array) and converts to tuple.",
                     "type": "tuple",
                     "properties": {},
                     "required": []
                  }
               ]
            },
            "normal_dir": {
               "title": "Normal vector orientation",
               "description": "Direction of the surface monitor's normal vector w.r.t. the positive x, y or z unit vectors. Must be one of ``'+'`` or ``'-'``. Applies to surface monitors only, and defaults to ``'+'`` if not provided.",
               "enum": [
                  "+",
                  "-"
               ],
               "type": "string"
            },
            "exclude_surfaces": {
               "title": "Excluded surfaces",
               "description": "Surfaces to exclude in the integration, if a volume monitor.",
               "type": "array",
               "items": {
                  "enum": [
                     "x-",
                     "x+",
                     "y-",
                     "y+",
                     "z-",
                     "z+"
                  ],
                  "type": "string"
               }
            },
            "fields": {
               "title": "Field Components",
               "description": "Collection of radiation vector components to store in the monitor.",
               "default": [
                  "Ntheta",
                  "Nphi",
                  "Ltheta",
                  "Lphi"
               ],
               "type": "array",
               "items": {
                  "enum": [
                     "Ntheta",
                     "Nphi",
                     "Ltheta",
                     "Lphi"
                  ],
                  "type": "string"
               }
            },
            "custom_origin": {
               "title": "Local origin",
               "description": "Local origin used for defining observation points. If ``None``, uses the monitor's center.",
               "units": "um",
               "type": "array",
               "minItems": 3,
               "maxItems": 3,
               "items": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "number"
                  },
                  {
                     "type": "number"
                  }
               ]
            },
            "medium": {
               "title": "Background medium",
               "description": "Background medium in which to radiate near fields to far fields. If not provided, uses free space.",
               "default": {
                  "name": null,
                  "frequency_range": null,
                  "type": "Medium",
                  "permittivity": 1.0,
                  "conductivity": 0.0
               },
               "allOf": [
                  {
                     "$ref": "#/definitions/Medium"
                  }
               ]
            },
            "plane_axis": {
               "title": "Observation plane axis",
               "description": "Axis along which the observation plane is oriented.",
               "enum": [
                  0,
                  1,
                  2
               ],
               "type": "integer"
            },
            "plane_distance": {
               "title": "Observation plane signed distance",
               "description": "Signed distance of the observation plane along ``plane_axis`` w.r.t. ``local_origin``",
               "type": "number"
            },
            "x": {
               "title": "Local x observation coordinates",
               "description": "Local x observation coordinates w.r.t. ``local_origin`` and ``plane_axis``. When ``plane_axis`` is 0, this corresponds to the global y axis. When ``plane_axis`` is 1, this corresponds to the global x axis. When ``plane_axis`` is 2, this corresponds to the global x axis. ",
               "units": "um",
               "anyOf": [
                  {
                     "type": "array",
                     "items": {
                        "type": "number"
                     }
                  },
                  {
                     "title": "Array Like",
                     "description": "Accepts sequence (tuple, list, numpy array) and converts to tuple.",
                     "type": "tuple",
                     "properties": {},
                     "required": []
                  }
               ]
            },
            "y": {
               "title": "Local y observation coordinates",
               "description": "Local y observation coordinates w.r.t. ``local_origin`` and ``plane_axis``. When ``plane_axis`` is 0, this corresponds to the global z axis. When ``plane_axis`` is 1, this corresponds to the global z axis. When ``plane_axis`` is 2, this corresponds to the global y axis. ",
               "units": "um",
               "anyOf": [
                  {
                     "type": "array",
                     "items": {
                        "type": "number"
                     }
                  },
                  {
                     "title": "Array Like",
                     "description": "Accepts sequence (tuple, list, numpy array) and converts to tuple.",
                     "type": "tuple",
                     "properties": {},
                     "required": []
                  }
               ]
            }
         },
         "required": [
            "size",
            "name",
            "freqs",
            "plane_axis",
            "plane_distance",
            "x",
            "y"
         ],
         "additionalProperties": false
      },
      "Near2FarKSpaceMonitor": {
         "title": "Near2FarKSpaceMonitor",
         "description": ":class:`Monitor` that samples electromagnetic near fields in the frequency domain\nand invokes the computation of far fields on an observation plane defined in k-space.\n\nParameters\n----------\ncenter : Tuple[float, float, float] = (0.0, 0.0, 0.0)\n    [units = um].  Center of object in x, y, and z.\nsize : Tuple[NonNegativeFloat, NonNegativeFloat, NonNegativeFloat]\n    [units = um].  Size in x, y, and z directions.\nname : ConstrainedStrValue\n    Unique name for monitor.\nfreqs : Union[Tuple[float, ...], Array]\n    [units = Hz].  Array or list of frequencies stored by the field monitor.\nnormal_dir : Optional[Literal['+', '-']] = None\n    Direction of the surface monitor's normal vector w.r.t. the positive x, y or z unit vectors. Must be one of ``'+'`` or ``'-'``. Applies to surface monitors only, and defaults to ``'+'`` if not provided.\nexclude_surfaces : Optional[Tuple[Literal['x-', 'x+', 'y-', 'y+', 'z-', 'z+'], ...]] = None\n    Surfaces to exclude in the integration, if a volume monitor.\nfields : Tuple[Literal['Ntheta', 'Nphi', 'Ltheta', 'Lphi'], ...] = ['Ntheta', 'Nphi', 'Ltheta', 'Lphi']\n    Collection of radiation vector components to store in the monitor.\ncustom_origin : Optional[Tuple[float, float, float]] = None\n    [units = um].  Local origin used for defining observation points. If ``None``, uses the monitor's center.\nmedium : Medium = Medium(name=None, frequency_range=None, type='Medium', permittivity=1.0, conductivity=0.0)\n    Background medium in which to radiate near fields to far fields. If not provided, uses free space.\nu_axis : Literal[0, 1, 2]\n    Axis along which the observation plane is oriented.\nux : Union[Tuple[float, ...], Array]\n    Local x component of wave vectors on the observation plane, relative to ``local_origin`` and oriented with respect to ``u_axis``, normalized by (2*pi/lambda) where lambda is the wavelength associated with the background medium.\nuy : Union[Tuple[float, ...], Array]\n    Local y component of wave vectors on the observation plane, relative to ``local_origin`` and oriented with respect to ``u_axis``, normalized by (2*pi/lambda) where lambda is the wavelength associated with the background medium.\n\nExample\n-------\n>>> monitor = Near2FarKSpaceMonitor(\n...     center=(1,2,3),\n...     size=(2,2,2),\n...     freqs=[250e12, 300e12],\n...     name='n2f_monitor',\n...     custom_origin=(1,2,3),\n...     u_axis=2,\n...     ux=[1,2],\n...     uy=[3,4,5]\n...     )",
         "type": "object",
         "properties": {
            "type": {
               "title": "Type",
               "default": "Near2FarKSpaceMonitor",
               "enum": [
                  "Near2FarKSpaceMonitor"
               ],
               "type": "string"
            },
            "center": {
               "title": "Center",
               "description": "Center of object in x, y, and z.",
               "default": [
                  0.0,
                  0.0,
                  0.0
               ],
               "units": "um",
               "type": "array",
               "minItems": 3,
               "maxItems": 3,
               "items": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "number"
                  },
                  {
                     "type": "number"
                  }
               ]
            },
            "size": {
               "title": "Size",
               "description": "Size in x, y, and z directions.",
               "units": "um",
               "type": "array",
               "minItems": 3,
               "maxItems": 3,
               "items": [
                  {
                     "type": "number",
                     "minimum": 0
                  },
                  {
                     "type": "number",
                     "minimum": 0
                  },
                  {
                     "type": "number",
                     "minimum": 0
                  }
               ]
            },
            "name": {
               "title": "Name",
               "description": "Unique name for monitor.",
               "minLength": 1,
               "type": "string"
            },
            "freqs": {
               "title": "Frequencies",
               "description": "Array or list of frequencies stored by the field monitor.",
               "units": "Hz",
               "anyOf": [
                  {
                     "type": "array",
                     "items": {
                        "type": "number"
                     }
                  },
                  {
                     "title": "Array Like",
                     "description": "Accepts sequence (tuple, list, numpy array) and converts to tuple.",
                     "type": "tuple",
                     "properties": {},
                     "required": []
                  }
               ]
            },
            "normal_dir": {
               "title": "Normal vector orientation",
               "description": "Direction of the surface monitor's normal vector w.r.t. the positive x, y or z unit vectors. Must be one of ``'+'`` or ``'-'``. Applies to surface monitors only, and defaults to ``'+'`` if not provided.",
               "enum": [
                  "+",
                  "-"
               ],
               "type": "string"
            },
            "exclude_surfaces": {
               "title": "Excluded surfaces",
               "description": "Surfaces to exclude in the integration, if a volume monitor.",
               "type": "array",
               "items": {
                  "enum": [
                     "x-",
                     "x+",
                     "y-",
                     "y+",
                     "z-",
                     "z+"
                  ],
                  "type": "string"
               }
            },
            "fields": {
               "title": "Field Components",
               "description": "Collection of radiation vector components to store in the monitor.",
               "default": [
                  "Ntheta",
                  "Nphi",
                  "Ltheta",
                  "Lphi"
               ],
               "type": "array",
               "items": {
                  "enum": [
                     "Ntheta",
                     "Nphi",
                     "Ltheta",
                     "Lphi"
                  ],
                  "type": "string"
               }
            },
            "custom_origin": {
               "title": "Local origin",
               "description": "Local origin used for defining observation points. If ``None``, uses the monitor's center.",
               "units": "um",
               "type": "array",
               "minItems": 3,
               "maxItems": 3,
               "items": [
                  {
                     "type": "number"
                  },
                  {
                     "type": "number"
                  },
                  {
                     "type": "number"
                  }
               ]
            },
            "medium": {
               "title": "Background medium",
               "description": "Background medium in which to radiate near fields to far fields. If not provided, uses free space.",
               "default": {
                  "name": null,
                  "frequency_range": null,
                  "type": "Medium",
                  "permittivity": 1.0,
                  "conductivity": 0.0
               },
               "allOf": [
                  {
                     "$ref": "#/definitions/Medium"
                  }
               ]
            },
            "u_axis": {
               "title": "Observation plane axis",
               "description": "Axis along which the observation plane is oriented.",
               "enum": [
                  0,
                  1,
                  2
               ],
               "type": "integer"
            },
            "ux": {
               "title": "Normalized kx",
               "description": "Local x component of wave vectors on the observation plane, relative to ``local_origin`` and oriented with respect to ``u_axis``, normalized by (2*pi/lambda) where lambda is the wavelength associated with the background medium.",
               "anyOf": [
                  {
                     "type": "array",
                     "items": {
                        "type": "number"
                     }
                  },
                  {
                     "title": "Array Like",
                     "description": "Accepts sequence (tuple, list, numpy array) and converts to tuple.",
                     "type": "tuple",
                     "properties": {},
                     "required": []
                  }
               ]
            },
            "uy": {
               "title": "Normalized ky",
               "description": "Local y component of wave vectors on the observation plane, relative to ``local_origin`` and oriented with respect to ``u_axis``, normalized by (2*pi/lambda) where lambda is the wavelength associated with the background medium.",
               "anyOf": [
                  {
                     "type": "array",
                     "items": {
                        "type": "number"
                     }
                  },
                  {
                     "title": "Array Like",
                     "description": "Accepts sequence (tuple, list, numpy array) and converts to tuple.",
                     "type": "tuple",
                     "properties": {},
                     "required": []
                  }
               ]
            }
         },
         "required": [
            "size",
            "name",
            "freqs",
            "u_axis",
            "ux",
            "uy"
         ],
         "additionalProperties": false
      }
   }
}

Fields
  • monitor (Union[tidy3d.components.monitor.Near2FarAngleMonitor, tidy3d.components.monitor.Near2FarCartesianMonitor, tidy3d.components.monitor.Near2FarKSpaceMonitor])

attribute monitor: Union[tidy3d.components.monitor.Near2FarAngleMonitor, tidy3d.components.monitor.Near2FarCartesianMonitor, tidy3d.components.monitor.Near2FarKSpaceMonitor] [Required]#
static car_2_sph(x: float, y: float, z: float) Tuple[float, float, float]#

Convert Cartesian to spherical coordinates.

Parameters
  • x (float) – x coordinate relative to local_origin.

  • y (float) – y coordinate relative to local_origin.

  • z (float) – z coordinate relative to local_origin.

Returns

r, theta, and phi coordinates relative to local_origin.

Return type

Tuple[float, float, float]

static eta(frequency: float, medium: tidy3d.components.medium.Medium) complex#

Returns the complex wave impedance associated with the background medium.

static k(frequency: float, medium: tidy3d.components.medium.Medium) complex#

Returns the complex wave number associated with the background medium.

static kspace_2_sph(ux, uy, axis) Tuple[float, float]#

Convert normalized k-space coordinates to angles.

Parameters
  • ux (float) – normalized kx coordinate.

  • uy (float) – normalized ky coordinate.

  • axis (int) – axis along which the observation plane is oriented.

Returns

theta and phi coordinates relative to local_origin.

Return type

Tuple[float, float]

static nk(frequency: float, medium: tidy3d.components.medium.Medium) Tuple[float, float]#

Returns the real and imaginary parts of the background medium’s refractive index.

normalize(source_spectrum_fn: Callable[[float], complex]) tidy3d.components.data.monitor_data_n2f.AbstractNear2FarData#

Return copy of self after normalization is applied using source spectrum function.

static sph_2_car(r, theta, phi) Tuple[float, float, float]#

Convert spherical to Cartesian coordinates.

Parameters
  • r (float) – radius.

  • theta (float) – polar angle (rad) downward from x=y=0 line.

  • phi (float) – azimuthal (rad) angle from y=z=0 line.

Returns

x, y, and z coordinates relative to local_origin.

Return type

Tuple[float, float, float]

static sph_2_car_field(f_r, f_theta, f_phi, theta, phi) Tuple[complex, complex, complex]#

Convert vector field components in spherical coordinates to cartesian.

Parameters
  • f_r (float) – radial component of the vector field.

  • f_theta (float) – polar angle component of the vector fielf.

  • f_phi (float) – azimuthal angle component of the vector field.

  • theta (float) – polar angle (rad) of location of the vector field.

  • phi (float) – azimuthal angle (rad) of location of the vector field.

Returns

x, y, and z components of the vector field in cartesian coordinates.

Return type

Tuple[float, float, float]

property field_components: Dict[str, tidy3d.components.data.data_array.DataArray]#

Maps the field components to thier associated data.