tidy3d.HeatSimulation#
- class HeatSimulation[source]#
Bases:
AbstractSimulation
Contains all information about heat simulation.
- Parameters:
center (Attribute:
center
) –Type
Tuple[float, float, float]
Default
= (0.0, 0.0, 0.0)
Units
um
Description
Center of object in x, y, and z.
size (Attribute:
size
) –Type
Tuple[NonNegativeFloat, NonNegativeFloat, NonNegativeFloat]
Default
Units
um
Description
Size in x, y, and z directions.
medium (Attribute:
medium
) –Type
Union[Medium, AnisotropicMedium, PECMedium, PoleResidue, Sellmeier, Lorentz, Debye, Drude, FullyAnisotropicMedium, CustomMedium, CustomPoleResidue, CustomSellmeier, CustomLorentz, CustomDebye, CustomDrude, CustomAnisotropicMedium, PerturbationMedium, PerturbationPoleResidue]
Default
= Medium(nameNone, frequency_rangeNone, allow_gainFalse, nonlinear_specNone, modulation_specNone, heat_specNone, type’Medium’, permittivity1.0, conductivity0.0)
Description
Background medium of simulation, defaults to vacuum if not specified.
structures (Attribute:
structures
) –Type
Tuple[Structure, …]
Default
= ()
Description
Tuple of structures present in simulation. Note: Structures defined later in this list override the simulation material properties in regions of spatial overlap.
symmetry (Attribute:
symmetry
) –Type
Tuple[Literal[0, 1], Literal[0, 1], Literal[0, 1]]
Default
= (0, 0, 0)
Description
Tuple of integers defining reflection symmetry across a plane bisecting the simulation domain normal to the x-, y-, and z-axis at the simulation center of each axis, respectively. Each element can be
0
(symmetry off) or1
(symmetry on).sources (Attribute:
sources
) –Type
Tuple[UniformHeatSource, …]
Default
= ()
Description
List of heat sources.
boundary_spec (Attribute:
boundary_spec
) –Type
Tuple[HeatBoundarySpec, …]
Default
= ()
Description
List of boundary condition specifications.
monitors (Attribute:
monitors
) –Type
Tuple[TemperatureMonitor, …]
Default
= ()
Description
Monitors in the simulation.
grid_spec (Attribute:
grid_spec
) –Type
Union[UniformUnstructuredGrid, DistanceUnstructuredGrid]
Default
Description
Grid specification for heat simulation.
version (Attribute:
version
) –Type
str
Default
= 2.6.0rc1
Description
String specifying the front end version number.
Example
>>> from tidy3d import Medium, SolidSpec, FluidSpec, UniformUnstructuredGrid, TemperatureMonitor >>> heat_sim = HeatSimulation( ... size=(3.0, 3.0, 3.0), ... structures=[ ... Structure( ... geometry=Box(size=(1, 1, 1), center=(0, 0, 0)), ... medium=Medium( ... permittivity=2.0, heat_spec=SolidSpec( ... conductivity=1, ... capacity=1, ... ) ... ), ... name="box", ... ), ... ], ... medium=Medium(permittivity=3.0, heat_spec=FluidSpec()), ... grid_spec=UniformUnstructuredGrid(dl=0.1), ... sources=[UniformHeatSource(rate=1, structures=["box"])], ... boundary_spec=[ ... HeatBoundarySpec( ... placement=StructureBoundary(structure="box"), ... condition=TemperatureBC(temperature=500), ... ) ... ], ... monitors=[TemperatureMonitor(size=(1, 2, 3), name="sample")], ... )
Attributes
Compute range of heat sources present in the simulation.
version
Defines the front end version of tidy3d
Methods
Error if structures contain unsupported yet geometries.
check_zero_dim_domain
(val, values)Error if heat domain have zero dimensions.
from_scene
(scene, **kwargs)Create a simulation from a :class:.`Scene` instance.
names_exist_bcs
(val, values)Error if boundary conditions point to non-existing structures/media.
names_exist_grid_spec
(val, values)Warn if UniformUnstructuredGrid points at a non-existing structure.
names_exist_sources
(val, values)Error if a heat source point to non-existing structures.
plot_boundaries
([x, y, z, ax])Plot each of simulation's boundary conditions on a plane defined by one nonzero x,y,z coordinate.
plot_heat_conductivity
([x, y, z, ax, alpha, ...])Plot each of simulation's components on a plane defined by one nonzero x,y,z coordinate.
plot_sources
([x, y, z, hlim, vlim, alpha, ax])Plot each of simulation's sources on a plane defined by one nonzero x,y,z coordinate.
- boundary_spec#
- sources#
- monitors#
- grid_spec#
- symmetry#
You should set the
symmetry
parameter in yourSimulation
object using a tuple of integers defining reflection symmetry across a plane bisecting the simulation domain normal to the x-, y-, and z-axis. Each element can be 0 (no symmetry), 1 (even, i.e.PMC
symmetry) or -1 (odd, i.e.PEC
symmetry). Note that the vectorial nature of the fields must be considered to determine the symmetry value correctly.The figure below illustrates how the electric and magnetic field components transform under
PEC
- andPMC
-like symmetry planes. You can refer to this figure when considering whether a source field conforms to aPEC
- orPMC
-like symmetry axis. This would be helpful, especially when dealing with optical waveguide modes.
- classmethod check_unsupported_geometries(val)[source]#
Error if structures contain unsupported yet geometries.
- classmethod names_exist_bcs(val, values)[source]#
Error if boundary conditions point to non-existing structures/media.
- classmethod names_exist_grid_spec(val, values)[source]#
Warn if UniformUnstructuredGrid points at a non-existing structure.
- classmethod names_exist_sources(val, values)[source]#
Error if a heat source point to non-existing structures.
- plot_heat_conductivity(x=None, y=None, z=None, ax=None, alpha=None, source_alpha=None, monitor_alpha=None, colorbar='conductivity', hlim=None, vlim=None)[source]#
Plot each of simulation’s components on a plane defined by one nonzero x,y,z coordinate.
- Parameters:
x (float = None) – position of plane in x direction, only one of x, y, z must be specified to define plane.
y (float = None) – position of plane in y direction, only one of x, y, z must be specified to define plane.
z (float = None) – position of plane in z direction, only one of x, y, z must be specified to define plane.
ax (matplotlib.axes._subplots.Axes = None) – Matplotlib axes to plot on, if not specified, one is created.
alpha (float = None) – Opacity of the structures being plotted. Defaults to the structure default alpha.
source_alpha (float = None) – Opacity of the sources. If
None
, uses Tidy3d default.monitor_alpha (float = None) – Opacity of the monitors. If
None
, uses Tidy3d default.colorbar (str = "conductivity") – Display colorbar for thermal conductivity (“conductivity”) or heat source rate (“source”).
hlim (Tuple[float, float] = None) – The x range if plotting on xy or xz planes, y range if plotting on yz plane.
vlim (Tuple[float, float] = None) – The z range if plotting on xz or yz planes, y plane if plotting on xy plane.
- Returns:
The supplied or created matplotlib axes.
- Return type:
matplotlib.axes._subplots.Axes
- plot_boundaries(x=None, y=None, z=None, ax=None)[source]#
Plot each of simulation’s boundary conditions on a plane defined by one nonzero x,y,z coordinate.
- Parameters:
x (float = None) – position of plane in x direction, only one of x, y, z must be specified to define plane.
y (float = None) – position of plane in y direction, only one of x, y, z must be specified to define plane.
z (float = None) – position of plane in z direction, only one of x, y, z must be specified to define plane.
ax (matplotlib.axes._subplots.Axes = None) – Matplotlib axes to plot on, if not specified, one is created.
- Returns:
The supplied or created matplotlib axes.
- Return type:
matplotlib.axes._subplots.Axes
- plot_sources(x=None, y=None, z=None, hlim=None, vlim=None, alpha=None, ax=None)[source]#
Plot each of simulation’s sources on a plane defined by one nonzero x,y,z coordinate.
- Parameters:
x (float = None) – position of plane in x direction, only one of x, y, z must be specified to define plane.
y (float = None) – position of plane in y direction, only one of x, y, z must be specified to define plane.
z (float = None) – position of plane in z direction, only one of x, y, z must be specified to define plane.
hlim (Tuple[float, float] = None) – The x range if plotting on xy or xz planes, y range if plotting on yz plane.
vlim (Tuple[float, float] = None) – The z range if plotting on xz or yz planes, y plane if plotting on xy plane.
alpha (float = None) – Opacity of the sources, If
None
uses Tidy3d default.ax (matplotlib.axes._subplots.Axes = None) – Matplotlib axes to plot on, if not specified, one is created.
- Returns:
The supplied or created matplotlib axes.
- Return type:
matplotlib.axes._subplots.Axes
- property source_bounds#
Compute range of heat sources present in the simulation.
- classmethod from_scene(scene, **kwargs)[source]#
Create a simulation from a :class:.`Scene` instance. Must provide additional parameters to define a valid simulation (for example,
size
,grid_spec
, etc).- Parameters:
scene (:class:.`Scene`) – Scene containing structures information.
**kwargs – Other arguments
Example
>>> from tidy3d import Scene, Medium, Box, Structure, UniformUnstructuredGrid >>> box = Structure( ... geometry=Box(center=(0, 0, 0), size=(1, 2, 3)), ... medium=Medium(permittivity=5), ... ) >>> scene = Scene( ... structures=[box], ... medium=Medium(permittivity=3), ... ) >>> sim = HeatSimulation.from_scene( ... scene=scene, ... center=(0, 0, 0), ... size=(5, 6, 7), ... grid_spec=UniformUnstructuredGrid(dl=0.4), ... )
- __hash__()#
Hash method.