tidy3d.KerrNonlinearity#

class KerrNonlinearity[source]#

Bases: NonlinearModel

Model for Kerr nonlinearity which gives an intensity-dependent refractive index of the form \(n = n_0 + n_2 I\). The expression for the nonlinear polarization is given below.

Parameters:
  • n2 (Union[tidycomplex, ComplexNumber] = 0) – [units = um^2 / W]. Nonlinear refractive index in the Kerr nonlinearity.

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

Note

\[P_{NL} = \varepsilon_0 c_0 n_0 \operatorname{Re}(n_0) n_2 |E|^2 E\]

Note

The fields in this equation are complex-valued, allowing a direct implementation of the Kerr nonlinearity. In contrast, the model NonlinearSusceptibility implements a chi3 nonlinear susceptibility using real-valued fields, giving rise to Kerr nonlinearity as well as third-harmonic generation. The relationship between the parameters is given by \(n_2 = \frac{3}{4} \frac{1}{\varepsilon_0 c_0 n_0 \operatorname{Re}(n_0)} \chi_3\). The additional factor of \(\frac{3}{4}\) comes from the usage of complex-valued fields for the Kerr nonlinearity and real-valued fields for the nonlinear susceptibility.

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.

Example

>>> kerr_model = KerrNonlinearity(n2=1)

Attributes

complex_fields

Whether the model uses complex fields.

Methods

n2#
n0#
property complex_fields#

Whether the model uses complex fields.

__hash__()#

Hash method.