tidy3d.plugins.Near2FarSurface#

class tidy3d.plugins.Near2FarSurface#

Data structure to store surface monitor data with associated surface current densities.

Parameters
  • monitor (FieldMonitor = None) – FieldMonitor on which near fields will be sampled and integrated.

  • normal_dir (Literal['+', '-'] = None) – Direction of the surface monitor’s normal vector w.r.t. the positive x, y or z unit vectors. Must be one of ‘+’ or ‘-‘.

Show JSON schema
{
   "title": "Near2FarSurface",
   "description": "Data structure to store surface monitor data with associated surface current densities.\n\nParameters\n----------\nmonitor : FieldMonitor = None\n    :class:`.FieldMonitor` on which near fields will be sampled and integrated.\nnormal_dir : Literal['+', '-'] = None\n    :class:`.Direction` of the surface monitor's normal vector w.r.t. the positive x, y or z unit vectors. Must be one of '+' or '-'.",
   "type": "object",
   "properties": {
      "monitor": {
         "title": "Field monitor",
         "description": ":class:`.FieldMonitor` on which near fields will be sampled and integrated.",
         "allOf": [
            {
               "$ref": "#/definitions/FieldMonitor"
            }
         ]
      },
      "normal_dir": {
         "title": "Normal vector orientation",
         "description": ":class:`.Direction` of the surface monitor's normal vector w.r.t. the positive x, y or z unit vectors. Must be one of '+' or '-'.",
         "enum": [
            "+",
            "-"
         ],
         "type": "string"
      },
      "type": {
         "title": "Type",
         "default": "Near2FarSurface",
         "enum": [
            "Near2FarSurface"
         ],
         "type": "string"
      }
   },
   "required": [
      "monitor",
      "normal_dir"
   ],
   "additionalProperties": false,
   "definitions": {
      "NumpyArray": {
         "title": "NumpyArray",
         "description": "Wrapper around numpy arrays that has a well defined json schema.",
         "type": "object",
         "properties": {
            "data_list": {
               "title": "Data List",
               "type": "array",
               "items": {}
            }
         },
         "required": [
            "data_list"
         ]
      },
      "FieldMonitor": {
         "title": "FieldMonitor",
         "description": ":class:`Monitor` that records electromagnetic fields in the frequency domain.\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] = None\n    [units = um].  Size in x, y, and z directions.\nname : ConstrainedStrValue = None\n    Unique name for monitor.\nfreqs : Union[List[float], tidynumpy, NumpyArray, List] = None\n    [units = Hz].  Array or list of frequencies stored by the field monitor.\nfields : List[Literal['Ex', 'Ey', 'Ez', 'Hx', 'Hy', 'Hz']] = ['Ex', 'Ey', 'Ez', 'Hx', 'Hy', 'Hz']\n    Collection of field components to store in the monitor.\n\nExample\n-------\n>>> monitor = FieldMonitor(\n...     center=(1,2,3),\n...     size=(2,2,2),\n...     fields=['Hx'],\n...     freqs=[250e12, 300e12],\n...     name='steady_state_monitor')",
         "type": "object",
         "properties": {
            "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"
                  }
               ]
            },
            "type": {
               "title": "Type",
               "default": "FieldMonitor",
               "enum": [
                  "FieldMonitor"
               ],
               "type": "string"
            },
            "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": "NumpyArray",
                     "description": "Wrapper around numpy arrays that has a well defined json schema.",
                     "type": "object",
                     "properties": {
                        "data_list": {
                           "title": "Data List",
                           "type": "array",
                           "items": {}
                        }
                     },
                     "required": [
                        "data_list"
                     ]
                  },
                  {
                     "$ref": "#/definitions/NumpyArray"
                  },
                  {
                     "type": "array",
                     "items": {}
                  }
               ]
            },
            "fields": {
               "title": "Field Components",
               "description": "Collection of field components to store in the monitor.",
               "default": [
                  "Ex",
                  "Ey",
                  "Ez",
                  "Hx",
                  "Hy",
                  "Hz"
               ],
               "type": "array",
               "items": {
                  "enum": [
                     "Ex",
                     "Ey",
                     "Ez",
                     "Hx",
                     "Hy",
                     "Hz"
                  ],
                  "type": "string"
               }
            }
         },
         "required": [
            "size",
            "name",
            "freqs"
         ],
         "additionalProperties": false
      }
   }
}

Fields
  • monitor (tidy3d.components.monitor.FieldMonitor)

  • normal_dir (Literal['+', '-'])

attribute monitor: tidy3d.components.monitor.FieldMonitor [Required]#

FieldMonitor on which near fields will be sampled and integrated.

Validated by
  • is_plane

attribute normal_dir: Literal['+', '-'] [Required]#

Direction of the surface monitor’s normal vector w.r.t. the positive x, y or z unit vectors. Must be one of ‘+’ or ‘-‘.

property axis: Literal[0, 1, 2]#

Returns the Axis normal to this surface.