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:
  • 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.

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.