tidy3d.LinearChargePerturbation#
- class LinearChargePerturbation[source]#
Bases:
ChargePerturbation
Specifies parameter’s perturbation due to free carrier effects as a linear function of electron and hole densities:
- Parameters:
electron_range (Tuple[NonNegativeFloat, NonNegativeFloat] = (0, inf)) – Range of electrons densities in which perturbation model is valid.
hole_range (Tuple[NonNegativeFloat, NonNegativeFloat] = (0, inf)) – Range of holes densities in which perturbation model is valid.
electron_ref (NonNegativeFloat) – [units = 1/cm^3]. Electron density value at which there is no perturbation due to electrons’s presence.
hole_ref (NonNegativeFloat) – [units = 1/cm^3]. Hole density value at which there is no perturbation due to holes’ presence.
electron_coeff (float) – [units = cm^3]. Sensitivity (derivative) of perturbation with respect to electron density.
hole_coeff (float) – [units = cm^3]. Sensitivity (derivative) of perturbation with respect to hole density.
Notes
\[\Delta X (T) = \text{electron\_coeff} \times (N_e - \text{electron\_ref}) + \text{hole\_coeff} \times (N_h - \text{hole\_ref}),\]where
electron_coeff
andhole_coeff
are the parameter’s sensitivities to electron and hole densities, whileelectron_ref
andhole_ref
are reference electron and hole density values. Ranges of electron and hole densities in which such a model is deemed accurate may be provided as fieldselectron_range
andhole_range
(default:[0, inf]
each). Wherever is applied, Tidy3D will check that the parameter’s value does not go out of its physical bounds withinelectron_range
xhole_range
due to perturbations and raise a warning if this check fails. A warning is also issued if the perturbation model is evaluated outside ofelectron_range
xhole_range
.Example
>>> charge_perturb = LinearChargePerturbation( ... electron_ref=0, ... electron_coeff=0.0001, ... electron_range=[0, 1e19], ... hole_ref=0, ... hole_coeff=0.0002, ... hole_range=[0, 2e19], ... )
Attributes
Whether perturbation is complex valued.
Range of possible perturbation values within provided
electron_range
andhole_range
.Methods
sample
(electron_density, hole_density)Sample perturbation at electron and hole density points.
Inherited Common Usage
- electron_ref#
- hole_ref#
- electron_coeff#
- hole_coeff#
- property perturbation_range#
Range of possible perturbation values within provided
electron_range
andhole_range
.
- sample(electron_density, hole_density)[source]#
Sample perturbation at electron and hole density points.
- Parameters:
electron_density (Union[ArrayLike[float], SpatialDataArray]) – Electron density sample point(s).
hole_density (Union[ArrayLike[float], SpatialDataArray]) – Hole density sample point(s).
Note
Cannot provide a
SpatialDataArray
for one argument and a regular array (list
,tuple
,numpy.nd_array
) for the other. Additionally, if both arguments are regular arrays they must be one-dimensional arrays.- Returns:
Sampled perturbation value(s).
- Return type:
Union[ArrayLike[float], ArrayLike[Complex], SpatialDataArray]
- property is_complex#
Whether perturbation is complex valued.
- __hash__()#
Hash method.