fdtdx.Device

Bases: OrderableObject, ABC

Abstract base class for devices with optimizable permittivity distributions.

This class defines the common interface and functionality for both discrete and continuous devices that can be optimized through gradient-based methods.

Attributes:
  • materials (dict[str, Material]) –

    Dictionary of materials to be used in the device.

  • param_transforms (Sequence[ParameterTransformation]) –

    A Sequence of parameter transformation to be applied to the parameters when mapping them to simulation materials.

  • color (tuple[float, float, float] | None) –

    Color of the object when plotted. Defaults to Pink.

  • partial_voxel_grid_shape (PartialGridShape3D) –

    Size of the material voxels used within the device in metrical units (meter). Note that this is independent of the simulation voxel size. Defaults to undefined shape. For all three axes, either the voxel grid or real shape needs to be defined.

  • partial_voxel_real_shape (PartialRealShape3D) –

    Size of the material voxels used within the device in simulation voxels. Defaults to undefined shape. For all three axes, either the voxel grid or real shape needs to be defined.

matrix_voxel_grid_shape property

matrix_voxel_grid_shape: tuple[int, int, int]

Calculate the shape of the voxel matrix in grid coordinates.

Returns:
  • tuple[int, int, int]

    tuple[int, int, int]: Tuple of (x,y,z) dimensions representing how many voxels fit in each direction of the grid shape when divided by the single voxel shape.

single_voxel_grid_shape property

single_voxel_grid_shape: tuple[int, int, int]

Get the shape of a single voxel in grid coordinates.

Returns:
  • tuple[int, int, int]

    tuple[int, int, int]: Tuple of (x,y,z) dimensions for one voxel.

single_voxel_real_shape property

single_voxel_real_shape: tuple[float, float, float]

Calculate the shape of a single voxel in real (physical) coordinates.

Returns:
  • tuple[float, float, float]

    tuple[float, float, float]: Tuple of (x,y,z) dimensions in real units, computed by multiplying the grid shape by the simulation resolution.