tidy3d.AnisotropicConductivity#

class AnisotropicConductivity[source]#

Bases: Tidy3dBaseModel

Anisotropic (tensor) thermal conductivity of a solid medium.

Parameters:
  • xx (PositiveFloat) – [units = W/(um*K)]. Principal thermal conductivity along the local x-axis, in units of W/(um*K).

  • yy (PositiveFloat) – [units = W/(um*K)]. Principal thermal conductivity along the local y-axis, in units of W/(um*K).

  • zz (PositiveFloat) – [units = W/(um*K)]. Principal thermal conductivity along the local z-axis, in units of W/(um*K).

  • rotation (Optional[RotationAroundAxis] = None) – Optional rotation orienting the principal axes (xx, yy, zz) in the global frame. When None the principal axes coincide with the global axes (diagonal tensor).

Notes

Specified by the principal conductivities xx, yy, zz along local axes, plus an optional rotation that orients those axes in the global frame. The resulting conductivity tensor is symmetric positive-definite (SPD) by construction (positive principals rotated by an orthonormal matrix), and the heat flux is q = -K . grad(T).

Only the SPD class is representable. Non-symmetric / nonreciprocal thermal transport (for example thermal Hall / Righi-Leduc effects under a magnetic field) and indefinite or active effective models are out of scope. Use from_components() to build an instance from the six symmetric components [kxx, kyy, kzz, kxy, kxz, kyz] directly (they are diagonalized into the equivalent principal-axes-plus-rotation form).

Example

>>> aniso = AnisotropicConductivity(xx=1.0, yy=2.0, zz=3.0)
>>> aniso = AnisotropicConductivity.from_components(kxx=2.0, kyy=3.0, kzz=4.0, kxy=0.5)

Attributes

Methods

from_components(kxx, kyy, kzz[, kxy, kxz, kyz])

Build from the six symmetric tensor components in the global frame.

to_tensor()

Resolve to the six packed symmetric tensor components [kxx, kyy, kzz, kxy, kxz, kyz] in the global frame.

xx#
yy#
zz#
rotation#
to_tensor()[source]#

Resolve to the six packed symmetric tensor components [kxx, kyy, kzz, kxy, kxz, kyz] in the global frame.

classmethod from_components(kxx, kyy, kzz, kxy=0.0, kxz=0.0, kyz=0.0)[source]#

Build from the six symmetric tensor components in the global frame.

The components define the symmetric matrix [[kxx, kxy, kxz], [kxy, kyy, kyz], [kxz, kyz, kzz]], which must be positive-definite. It is diagonalized into principal conductivities (its eigenvalues) plus a rotation orienting the principal axes, i.e. the equivalent principal-axes-plus-rotation form. This adds no new physics: only symmetric positive-definite tensors are supported.

Parameters:
  • kxx (float) – xx component of the conductivity tensor.

  • kyy (float) – yy component of the conductivity tensor.

  • kzz (float) – zz component of the conductivity tensor.

  • kxy (float = 0.0) – Off-diagonal xy (= yx) component.

  • kxz (float = 0.0) – Off-diagonal xz (= zx) component.

  • kyz (float = 0.0) – Off-diagonal yz (= zy) component.

Example

>>> aniso = AnisotropicConductivity.from_components(kxx=2.0, kyy=3.0, kzz=4.0, kxy=0.5)