# tidy3d.Grid#

class tidy3d.Grid#

Contains all information about the spatial positions of the FDTD grid.

Parameters

boundaries (Coords) – x,y,z coordinates of the boundaries between cells, defining the FDTD grid.

Example

```>>> x = np.linspace(-1, 1, 10)
>>> y = np.linspace(-1, 1, 11)
>>> z = np.linspace(-1, 1, 12)
>>> coords = Coords(x=x, y=y, z=z)
>>> grid = Grid(boundaries=coords)
>>> centers = grid.centers
>>> sizes = grid.sizes
>>> yee_grid = grid.yee
```

Show JSON schema
```{
"title": "Grid",
"description": "Contains all information about the spatial positions of the FDTD grid.\n\nParameters\n----------\nboundaries : Coords\n    x,y,z coordinates of the boundaries between cells, defining the FDTD grid.\n\nExample\n-------\n>>> x = np.linspace(-1, 1, 10)\n>>> y = np.linspace(-1, 1, 11)\n>>> z = np.linspace(-1, 1, 12)\n>>> coords = Coords(x=x, y=y, z=z)\n>>> grid = Grid(boundaries=coords)\n>>> centers = grid.centers\n>>> sizes = grid.sizes\n>>> yee_grid = grid.yee",
"type": "object",
"properties": {
"boundaries": {
"title": "Boundary Coordinates",
"description": "x,y,z coordinates of the boundaries between cells, defining the FDTD grid.",
"allOf": [
{
"\$ref": "#/definitions/Coords"
}
]
},
"type": {
"title": "Type",
"default": "Grid",
"enum": [
"Grid"
],
"type": "string"
}
},
"required": [
"boundaries"
],
"definitions": {
"Coords": {
"title": "Coords",
"description": "Holds data about a set of x,y,z positions on a grid.\n\nParameters\n----------\nx : Array\n    1-dimensional array of x coordinates.\ny : Array\n    1-dimensional array of y coordinates.\nz : Array\n    1-dimensional array of z coordinates.\n\nExample\n-------\n>>> x = np.linspace(-1, 1, 10)\n>>> y = np.linspace(-1, 1, 11)\n>>> z = np.linspace(-1, 1, 12)\n>>> coords = Coords(x=x, y=y, z=z)",
"type": "object",
"properties": {
"x": {
"title": "Array Like",
"description": "Accepts sequence (tuple, list, numpy array) and converts to tuple.",
"type": "tuple",
"properties": {},
"required": []
},
"y": {
"title": "Array Like",
"description": "Accepts sequence (tuple, list, numpy array) and converts to tuple.",
"type": "tuple",
"properties": {},
"required": []
},
"z": {
"title": "Array Like",
"description": "Accepts sequence (tuple, list, numpy array) and converts to tuple.",
"type": "tuple",
"properties": {},
"required": []
},
"type": {
"title": "Type",
"default": "Coords",
"enum": [
"Coords"
],
"type": "string"
}
},
"required": [
"x",
"y",
"z"
],
}
}
}
```

attribute boundaries: tidy3d.components.grid.grid.Coords [Required]#

x,y,z coordinates of the boundaries between cells, defining the FDTD grid.

discretize_inds(box: tidy3d.components.geometry.Box, extend: bool = False, extend_2d_normal: bool = False) List[Tuple[int, int]]#

Start and stopping indexes for the cells that intersect with a `Box`.

Parameters
• box (`Box`) – Rectangular geometry within simulation to discretize.

• extend (bool = False) – If `True`, ensure that the returned indexes extend sufficiently in very direction to be able to interpolate any field component at any point within the `box`.

• extend_2d_normal (bool = False) – If `True`, and the box is size zero along a single dimension, ensure that the returned indexes extend sufficiently along that dimension to be able to interpolate to the box center from data that lives on grid cell centers.

Returns

The (start, stop) indexes of the cells that intersect with `box` in each of the three dimensions.

Return type

List[Tuple[int, int]]

periodic_subspace(axis: Literal[0, 1, 2], ind_beg: int = 0, ind_end: int = 0) tidy3d.components.types.Array#

Pick a subspace of 1D boundaries within `range(ind_beg, ind_end)`. If any indexes lie outside of the grid boundaries array, periodic padding is used, where the zeroth and last element of the boundaries are identified.

Parameters
• axis (Axis) – Axis index along which to pick the subspace.

• ind_beg (int = 0) – Starting index for the subspace.

• ind_end (int = 0) – Ending index for the subspace.

Returns

The subspace of the grid along `axis`.

Return type

Coords1D

property centers: tidy3d.components.grid.grid.Coords#

Return centers of the cells in the `Grid`.

Returns

centers of the FDTD cells in x,y,z stored as `Coords` object.

Return type

`Coords`

Example

```>>> x = np.linspace(-1, 1, 10)
>>> y = np.linspace(-1, 1, 11)
>>> z = np.linspace(-1, 1, 12)
>>> coords = Coords(x=x, y=y, z=z)
>>> grid = Grid(boundaries=coords)
>>> centers = grid.centers
```
property num_cells: Tuple[int, int, int]#

Return sizes of the cells in the `Grid`.

Returns

Number of cells in the grid in the x, y, z direction.

Return type

tuple[int, int, int]

Example

```>>> x = np.linspace(-1, 1, 10)
>>> y = np.linspace(-1, 1, 11)
>>> z = np.linspace(-1, 1, 12)
>>> coords = Coords(x=x, y=y, z=z)
>>> grid = Grid(boundaries=coords)
>>> Nx, Ny, Nz = grid.num_cells
```
property sizes: tidy3d.components.grid.grid.Coords#

Return sizes of the cells in the `Grid`.

Returns

Sizes of the FDTD cells in x,y,z stored as `Coords` object.

Return type

`Coords`

Example

```>>> x = np.linspace(-1, 1, 10)
>>> y = np.linspace(-1, 1, 11)
>>> z = np.linspace(-1, 1, 12)
>>> coords = Coords(x=x, y=y, z=z)
>>> grid = Grid(boundaries=coords)
>>> sizes = grid.sizes
```
property yee: tidy3d.components.grid.grid.YeeGrid#

Return the `YeeGrid` defining the yee cell locations for this `Grid`.

Returns

Stores coordinates of all of the components on the yee lattice.

Return type

`YeeGrid`

Example

```>>> x = np.linspace(-1, 1, 10)
>>> y = np.linspace(-1, 1, 11)
>>> z = np.linspace(-1, 1, 12)
>>> coords = Coords(x=x, y=y, z=z)
>>> grid = Grid(boundaries=coords)
>>> yee_cells = grid.yee
>>> Ex_positions = yee_cells.E.x
```