tidy3d.TwoPhotonAbsorption#

class TwoPhotonAbsorption[source]#

Bases: NonlinearModel

Model for two-photon absorption (TPA) nonlinearity which gives an intensity-dependent absorption of the form \(\alpha = \alpha_0 + \beta I\). Also includes free-carrier absorption (FCA) and free-carrier plasma dispersion (FCPD) effects. The expression for the nonlinear polarization is given below.

Parameters:
  • attrs (dict = {}) – Dictionary storing arbitrary metadata for a Tidy3D object. This dictionary can be freely used by the user for storing data without affecting the operation of Tidy3D as it is not used internally. Note that, unlike regular Tidy3D fields, attrs are mutable. For example, the following is allowed for setting an attr obj.attrs['foo'] = bar. Also note that Tidy3D` will raise a TypeError if attrs contain objects that can not be serialized. One can check if attrs are serializable by calling obj.json().

  • beta (Union[float, tidycomplex, ComplexNumber] = 0) – [units = um / W]. Coefficient for two-photon absorption (TPA).

  • tau (NonNegativeFloat = 0) – [units = sec]. Lifetime for the free carriers created by two-photon absorption (TPA).

  • sigma (NonNegativeFloat = 0) – [units = um^2]. Total cross section for free-carrier absorption (FCA). Contains contributions from electrons and from holes.

  • e_e (NonNegativeFloat = 1) – Exponent for the free electron refractive index shift in the free-carrier plasma dispersion (FCPD).

  • e_h (NonNegativeFloat = 1) – Exponent for the free hole refractive index shift in the free-carrier plasma dispersion (FCPD).

  • c_e (float = 0) – [units = um^(3 e_e)]. Coefficient for the free electron refractive index shift in the free-carrier plasma dispersion (FCPD).

  • c_h (float = 0) – [units = um^(3 e_h)]. Coefficient for the free hole refractive index shift in the free-carrier plasma dispersion (FCPD).

  • n0 (Union[tidycomplex, ComplexNumber, NoneType] = None) – Complex linear refractive index of the medium, computed for instance using β€˜medium.nk_model’. If not provided, it is calculated automatically using the central frequencies of the simulation sources (as long as these are all equal).

  • freq0 (Optional[PositiveFloat] = None) – Central frequency, used to calculate the energy of the free-carriers excited by two-photon absorption. If not provided, it is obtained automatically from the simulation sources (as long as these are all equal).

Note

\[\begin{split}P_{NL} = P_{TPA} + P_{FCA} + P_{FCPD} \\ P_{TPA} = -\frac{c_0^2 \varepsilon_0^2 n_0 \operatorname{Re}(n_0) \beta}{2 i \omega} |E|^2 E \\ P_{FCA} = -\frac{c_0 \varepsilon_0 n_0 \sigma N_f}{i \omega} E \\ \frac{dN_f}{dt} = \frac{c_0^2 \varepsilon_0^2 n_0^2 \beta}{8 q_e \hbar \omega} |E|^4 - \frac{N_f}{\tau} \\ N_e = N_h = N_f \\ P_{FCPD} = \varepsilon_0 2 n_0 \Delta n (N_f) E \\ \Delta n (N_f) = (c_e N_e^{e_e} + c_h N_h^{e_h})\end{split}\]

Note

This frequency-domain equation is implemented in the time domain using complex-valued fields.

Note

Different field components do not interact nonlinearly. For example, when calculating \(P_{NL, x}\), we approximate \(|E|^2 \approx |E_x|^2\). This approximation is valid when the E field is predominantly polarized along one of the x, y, or z axes.

Note

The implementation is described in:

N. Suzuki, "FDTD Analysis of Two-Photon Absorption and Free-Carrier Absorption in Si
High-Index-Contrast Waveguides," J. Light. Technol. 25, 9 (2007).

Example

>>> tpa_model = TwoPhotonAbsorption(beta=1)

Attributes

complex_fields

Whether the model uses complex fields.

attrs

Methods

Inherited Common Usage

beta#
tau#
sigma#
e_e#
e_h#
c_e#
c_h#
n0#
freq0#
property complex_fields#

Whether the model uses complex fields.

__hash__()#

Hash method.