tidy3d.LinearHeatPerturbation#

class LinearHeatPerturbation[source]#

Bases: HeatPerturbation

Specifies parameter’s perturbation due to thermal effects as a linear function of temperature.

Parameters:
  • temperature_range (Tuple[NonNegativeFloat, NonNegativeFloat] = (0, inf)) – [units = K]. Temperature range in which perturbation model is valid.

  • temperature_ref (NonNegativeFloat) – [units = K]. Temperature at which perturbation is zero.

  • coeff (Union[float, tidycomplex, ComplexNumber]) – [units = 1/K]. Sensitivity (derivative) of perturbation with respect to temperature.

Notes

\[\Delta X (T) = \text{coeff} \times (T - \text{temperature\_ref}),\]

where coeff is the parameter’s sensitivity (thermo-optic coefficient) to temperature and temperature_ref is the reference temperature point. A temperature range in which such a model is deemed accurate may be provided as a field temperature_range (default: [0, inf]). Wherever is applied, Tidy3D will check that the parameter’s value does not go out of its physical bounds within temperature_range due to perturbations and raise a warning if this check fails. A warning is also issued if the perturbation model is evaluated outside of temperature_range.

Example

>>> heat_perturb = LinearHeatPerturbation(
...     temperature_ref=300,
...     coeff=0.0001,
...     temperature_range=[200, 500],
... )

Attributes

is_complex

Whether perturbation is complex valued.

perturbation_range

Range of possible perturbation values in the provided temperature_range.

Methods

sample(temperature)

Sample perturbation at temperature points.

Inherited Common Usage

temperature_ref#
coeff#
property perturbation_range#

Range of possible perturbation values in the provided temperature_range.

sample(temperature)[source]#

Sample perturbation at temperature points.

Parameters:

temperature (Union[ArrayLike[float], SpatialDataArray]) – Temperature sample point(s).

Returns:

Sampled perturbation value(s).

Return type:

Union[ArrayLike[float], ArrayLike[Complex], SpatialDataArray]

property is_complex#

Whether perturbation is complex valued.

__hash__()#

Hash method.