{
  "title": "Scene",
  "public_path": "flex_rf.tidy3d.Scene",
  "lookup_path": "tidy3d.Scene",
  "slug": "flex_rf/tidy3d/Scene",
  "public_url": "/rf/latest/autogenerated/flex_rf/tidy3d/scene/",
  "object_kind": "class",
  "introduction": "Contains generic information about the geometry and medium properties common to all types of\nsimulations.",
  "notes": "",
  "examples": "```python\nsim = Scene(\n    structures=[\n        Structure(\n            geometry=Box(size=(1, 1, 1), center=(0, 0, 0)),\n            medium=Medium(permittivity=2.0),\n        ),\n    ],\n    medium=Medium(permittivity=3.0),\n)\n```",
  "references": "",
  "signature": "class Scene(Tidy3dBaseModel)",
  "source": {
    "path": "flex/public/tidy3d/tidy3d/components/scene.py",
    "url": "",
    "lineno": 107,
    "endlineno": 2252
  },
  "bases": [
    "Tidy3dBaseModel"
  ],
  "parameter_rows": [
    {
      "name": "medium",
      "annotation": "MultiPhysicsMediumType3D",
      "default": "factory: Medium",
      "description": "Background medium of scene, defaults to vacuum if not specified.",
      "origin": "declared"
    },
    {
      "name": "structures",
      "annotation": "tuple[Structure, ...] | None",
      "default": "()",
      "description": "Tuple of structures present in scene. Note: In regions of spatial overlap between structures, material properties are dictated by structure of higher priority. The priority for structure of `priority=None` is set automatically based on `structure_priority_mode`. For structures of equal priority, the structure added later to the structure list takes precedence.",
      "origin": "declared"
    },
    {
      "name": "structure_priority_mode",
      "annotation": "PriorityMode",
      "default": "'equal'",
      "description": "This field only affects structures of `priority=None`. If `equal`, the priority of those structures is set to 0; if `conductor`, the priority of structures made of `LossyMetalMedium` is set to 90, `PECMedium` to 100, and others to 0.",
      "origin": "declared"
    },
    {
      "name": "plot_length_units",
      "annotation": "LengthUnit | None",
      "default": "'μm'",
      "description": "When set to a supported `LengthUnit`, plots will be produced with proper scaling of axes and include the desired unit specifier in labels.",
      "origin": "declared"
    },
    {
      "name": "attrs",
      "annotation": "dict",
      "default": "factory: dict",
      "description": "Dictionary storing arbitrary metadata for a Tidy3D object. This dictionary can be freely used by the user for storing data without affecting the operation of Tidy3D as it is not used internally. Note that, unlike regular Tidy3D fields, `attrs` are mutable. For example, the following is allowed for setting an `attr` `obj.attrs['foo'] = bar`. Also note that Tidy3D will raise a `TypeError` if `attrs` contain objects that can not be serialized. One can check if `attrs` are serializable by calling `obj.model_dump_json()`.",
      "origin": "inherited"
    }
  ],
  "members": [
    {
      "name": "all_structures",
      "kind": "function",
      "signature": "all_structures()",
      "description": "List of all structures in the simulation including the background."
    },
    {
      "name": "background_structure",
      "kind": "function",
      "signature": "background_structure()",
      "description": "Returns structure representing the background of the `Scene`."
    },
    {
      "name": "bounds",
      "kind": "function",
      "signature": "bounds()",
      "description": "Automatically defined scene's bounds based on present structures. Infinite dimensions are ignored. If the scene contains no structures, the bounds are set to (-1, -1, -1), (1, 1, 1). Similarly, if along a given axis all structures extend infinitely, the bounds along that axis are set from -1 to 1."
    },
    {
      "name": "box",
      "kind": "function",
      "signature": "box()",
      "description": "Automatically defined scene's `Box`."
    },
    {
      "name": "center",
      "kind": "function",
      "signature": "center()",
      "description": "Automatically defined scene's center."
    },
    {
      "name": "doping_absolute_minimum",
      "kind": "function",
      "signature": "doping_absolute_minimum()",
      "description": "Get the absolute minimum values of the doping concentrations."
    },
    {
      "name": "doping_bounds",
      "kind": "function",
      "signature": "doping_bounds()",
      "description": "Get the maximum and minimum of the doping"
    },
    {
      "name": "eps_bounds",
      "kind": "function",
      "signature": "eps_bounds(freq: float | None = None, eps_component: str | None = None)",
      "description": "Compute range of (real) permittivity present in the scene at frequency \"freq\"."
    },
    {
      "name": "heat_charge_property_bounds",
      "kind": "function",
      "signature": "heat_charge_property_bounds(property: str)",
      "description": "Compute range of the heat-charge simulation property present in the scene."
    },
    {
      "name": "heat_conductivity_bounds",
      "kind": "function",
      "signature": "heat_conductivity_bounds()",
      "description": "Compute range of thermal conductivities present in the scene."
    },
    {
      "name": "intersecting_media",
      "kind": "function",
      "signature": "intersecting_media(test_object: Box, structures: tuple[Structure, ...])",
      "description": "From a given list of structures, returns a set of `AbstractMedium` associated with those structures that intersect with the `test_object`, if it is a surface, or its surfaces, if it is a volume."
    },
    {
      "name": "intersecting_structures",
      "kind": "function",
      "signature": "intersecting_structures(test_object: Box, structures: tuple[Structure, ...])",
      "description": "From a given list of structures, returns a list of `Structure` that intersect with the `test_object`, if it is a surface, or its surfaces, if it is a volume."
    },
    {
      "name": "medium_map",
      "kind": "function",
      "signature": "medium_map()",
      "description": "Returns dict mapping medium to index in material. `medium_map[medium]` returns unique global index of `AbstractMedium` in scene."
    },
    {
      "name": "mediums",
      "kind": "function",
      "signature": "mediums()",
      "description": "Returns set of distinct `AbstractMedium` in scene."
    },
    {
      "name": "perturbed_mediums_copy",
      "kind": "function",
      "signature": "perturbed_mediums_copy(temperature: CustomSpatialDataType | None = None, electron_density: CustomSpatialDataType | None = None, hole_density: CustomSpatialDataType | None = None, interp_method: InterpMethod = 'linear')",
      "description": "Return a copy of the scene with heat and/or charge data applied to all mediums that have perturbation models specified. That is, such mediums will be replaced with spatially dependent custom mediums that reflect perturbation effects. Any of temperature, electron_density, and hole_density can be `None`. All provided fields must have identical coords."
    },
    {
      "name": "plot",
      "kind": "function",
      "signature": "plot(x: float | None = None, y: float | None = None, z: float | None = None, ax: Ax = None, hlim: tuple[float, float] | None = None, vlim: tuple[float, float] | None = None, fill_structures: bool = True, **patch_kwargs: Any)",
      "description": "Plot each of scene's components on a plane defined by one nonzero x,y,z coordinate."
    },
    {
      "name": "plot_3d",
      "kind": "function",
      "signature": "plot_3d(width: int = 800, height: int = 800)",
      "description": "Render 3D plot of `Scene` (in jupyter notebook only). Parameters ---------- width : float = 800 width of the 3d view dom's size height : float = 800 height of the 3d view dom's size"
    },
    {
      "name": "plot_eps",
      "kind": "function",
      "signature": "plot_eps(x: float | None = None, y: float | None = None, z: float | None = None, freq: float | None = None, alpha: float | None = None, ax: Ax = None, hlim: tuple[float, float] | None = None, vlim: tuple[float, float] | None = None, eps_lim: tuple[float | None, float | None] = (None, None), scale: PlotScale = 'lin')",
      "description": "Plot each of scene's components on a plane defined by one nonzero x,y,z coordinate. The permittivity is plotted in grayscale based on its value at the specified frequency."
    },
    {
      "name": "plot_heat_charge_property",
      "kind": "function",
      "signature": "plot_heat_charge_property(x: float | None = None, y: float | None = None, z: float | None = None, alpha: float | None = None, cbar: bool = True, property: str = 'heat_conductivity', ax: Ax = None, hlim: tuple[float, float] | None = None, vlim: tuple[float, float] | None = None)",
      "description": "Plot each of scebe's components on a plane defined by one nonzero x,y,z coordinate. The thermal conductivity is plotted in grayscale based on its value."
    },
    {
      "name": "plot_heat_conductivity",
      "kind": "function",
      "signature": "plot_heat_conductivity(x: float | None = None, y: float | None = None, z: float | None = None, alpha: float | None = None, cbar: bool = True, ax: Ax = None, hlim: tuple[float, float] | None = None, vlim: tuple[float, float] | None = None)",
      "description": "Plot each of scebe's components on a plane defined by one nonzero x,y,z coordinate. The thermal conductivity is plotted in grayscale based on its value."
    },
    {
      "name": "plot_structures",
      "kind": "function",
      "signature": "plot_structures(x: float | None = None, y: float | None = None, z: float | None = None, ax: Ax = None, hlim: tuple[float, float] | None = None, vlim: tuple[float, float] | None = None, fill: bool = True)",
      "description": "Plot each of scene's structures on a plane defined by one nonzero x,y,z coordinate."
    },
    {
      "name": "plot_structures_eps",
      "kind": "function",
      "signature": "plot_structures_eps(x: float | None = None, y: float | None = None, z: float | None = None, freq: float | None = None, alpha: float | None = None, cbar: bool = True, reverse: bool = False, eps_lim: tuple[float | None, float | None] = (None, None), scale: PlotScale = 'lin', ax: Ax = None, hlim: tuple[float, float] | None = None, vlim: tuple[float, float] | None = None, grid: Grid = None, eps_component: PermittivityComponent | None = None)",
      "description": "Plot each of scene's structures on a plane defined by one nonzero x,y,z coordinate. The permittivity is plotted in grayscale based on its value at the specified frequency."
    },
    {
      "name": "plot_structures_heat_charge_property",
      "kind": "function",
      "signature": "plot_structures_heat_charge_property(x: float | None = None, y: float | None = None, z: float | None = None, alpha: float | None = None, cbar: bool = True, property: str = 'heat_conductivity', reverse: bool = False, ax: Ax = None, hlim: tuple[float, float] | None = None, vlim: tuple[float, float] | None = None)",
      "description": "Plot each of scene's structures on a plane defined by one nonzero x,y,z coordinate. The thermal conductivity is plotted in grayscale based on its value."
    },
    {
      "name": "plot_structures_heat_conductivity",
      "kind": "function",
      "signature": "plot_structures_heat_conductivity(x: float | None = None, y: float | None = None, z: float | None = None, alpha: float | None = None, cbar: bool = True, reverse: bool = False, ax: Ax = None, hlim: tuple[float, float] | None = None, vlim: tuple[float, float] | None = None)",
      "description": "Plot each of scene's structures on a plane defined by one nonzero x,y,z coordinate. The thermal conductivity is plotted in grayscale based on its value."
    },
    {
      "name": "plot_structures_property",
      "kind": "function",
      "signature": "plot_structures_property(x: float | None = None, y: float | None = None, z: float | None = None, freq: float | None = None, alpha: float | None = None, cbar: bool = True, reverse: bool = False, limits: tuple[float | None, float | None] = (None, None), scale: PlotScale = 'lin', ax: Ax = None, hlim: tuple[float, float] | None = None, vlim: tuple[float, float] | None = None, grid: Grid = None, property: Literal['eps', 'doping', 'N_a', 'N_d'] = 'eps', eps_component: PermittivityComponent | None = None)",
      "description": "Plot each of scene's structures on a plane defined by one nonzero x,y,z coordinate. The permittivity is plotted in grayscale based on its value at the specified frequency."
    },
    {
      "name": "size",
      "kind": "function",
      "signature": "size()",
      "description": "Automatically defined scene's size."
    },
    {
      "name": "sorted_structures",
      "kind": "function",
      "signature": "sorted_structures()",
      "description": "Returns a list of sorted structures based on their priority.In the sorted list, latter added structures take higher priority."
    }
  ],
  "group": "flex_rf.tidy3d"
}
