tidy3d.Box
tidy3d.Box#
- class tidy3d.Box#
- Rectangular prism.
Also base class for
Simulation
,Monitor
, andSource
.
- Parameters
center (Tuple[float, float, float] = (0.0, 0.0, 0.0)) – [units = um]. Center of object in x, y, and z.
size (Tuple[NonNegativeFloat, NonNegativeFloat, NonNegativeFloat]) – [units = um]. Size in x, y, and z directions.
Example
>>> b = Box(center=(1,2,3), size=(2,2,2))
Show JSON schema
{ "title": "Box", "description": "Rectangular prism.\n Also base class for :class:`Simulation`, :class:`Monitor`, and :class:`Source`.\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.\n\nExample\n-------\n>>> b = Box(center=(1,2,3), size=(2,2,2))", "type": "object", "properties": { "type": { "title": "Type", "default": "Box", "enum": [ "Box" ], "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 } ] } }, "required": [ "size" ], "additionalProperties": false }
- attribute size: Tuple[pydantic.types.NonNegativeFloat, pydantic.types.NonNegativeFloat, pydantic.types.NonNegativeFloat] [Required]#
Size in x, y, and z directions.
- classmethod from_bounds(rmin: Tuple[float, float, float], rmax: Tuple[float, float, float], **kwargs)#
Constructs a
Box
from minimum and maximum coordinate bounds- Parameters
rmin (Tuple[float, float, float]) – (x, y, z) coordinate of the minimum values.
rmax (Tuple[float, float, float]) – (x, y, z) coordinate of the maximum values.
Example
>>> b = Box.from_bounds(rmin=(-1, -2, -3), rmax=(3, 2, 1))
- inside(x, y, z) bool #
Returns
True
if point(x,y,z)
inside volume of geometry.- Parameters
x (float) – Position of point in x direction.
y (float) – Position of point in y direction.
z (float) – Position of point in z direction.
- Returns
Whether point
(x,y,z)
is inside geometry.- Return type
bool
- intersections(x: Optional[float] = None, y: Optional[float] = None, z: Optional[float] = None)#
Returns shapely geometry at plane specified by one non None value of x,y,z.
- Parameters
x (float = None) – Position of plane in x direction, only one of x,y,z can be specified to define plane.
y (float = None) – Position of plane in y direction, only one of x,y,z can be specified to define plane.
z (float = None) – Position of plane in z direction, only one of x,y,z can be specified to define plane.
- Returns
List of 2D shapes that intersect plane. For more details refer to Shapely’s Documentaton.
- Return type
List[shapely.geometry.base.BaseGeometry]
- classmethod surfaces(size: Tuple[pydantic.types.NonNegativeFloat, pydantic.types.NonNegativeFloat, pydantic.types.NonNegativeFloat], center: Tuple[float, float, float], **kwargs)#
Returns a list of 6
Box
instances corresponding to each surface of a 3D volume. The output surfaces are stored in the order [x-, x+, y-, y+, z-, z+], where x, y, and z denote which axis is perpendicular to that surface, while “-” and “+” denote the direction of the normal vector of that surface. If a name is provided, each output surface’s name will be that of the provided name appended with the above symbols. E.g., if the provided name is “box”, the x+ surfaces’s name will be “box_x+”.- Parameters
size (Tuple[float, float, float]) – Size of object in x, y, and z directions.
center (Tuple[float, float, float]) – Center of object in x, y, and z.
Example
>>> b = Box.surfaces(size=(1, 2, 3), center=(3, 2, 1))
- property bounds: Tuple[Tuple[float, float, float], Tuple[float, float, float]]#
Returns bounding box min and max coordinates.
- Returns
Min and max bounds packaged as
(minx, miny, minz), (maxx, maxy, maxz)
.- Return type
Tuple[float, float, float], Tuple[float, float float]