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
Whether the model uses complex fields.
Methods
- 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.