Nonlinear Optics

Introduction: From Linear to Nonlinear Regimes

In the preceding lectures, we treated light-matter interactions assuming a linear regime: the optical response of the material (polarization \(\mathbf{P}\)) is proportional to the applied electric field \(\mathbf{E}\):

\[\mathbf{P} = \epsilon_0 \chi^{(1)} \mathbf{E}\]

where \(\chi^{(1)}\) is the linear susceptibility. This assumption is excellent for most everyday optical phenomena—weak illumination from lamps, sunlight passing through windows, etc.

However, nonlinear optical effects become important when:

  1. High intensities: With modern lasers, we can achieve electric field strengths comparable to atomic electric fields (\(\sim 10^9\) V/m). At these intensities, the electron oscillation amplitude becomes significant compared to atomic dimensions.

  2. Tight focusing: Focusing light to diffraction-limited spots produces enormous intensity densities.

  3. Resonant enhancement: Near material resonances, even modest intensities can produce strong nonlinear effects.

Why Nonlinear Optics Matters

Consider a few examples:

  • Frequency conversion: Many lasers (especially ultraviolet or infrared) are created by frequency doubling or mixing visible lasers through nonlinear processes.
  • Ultrafast photonics: Generation and characterization of femtosecond pulses relies crucially on nonlinear effects.
  • Nonlinear microscopy: Multiphoton microscopy (like second-harmonic generation microscopy) enables deep tissue imaging with reduced phototoxicity.
  • Quantum optics: Generation of entangled photons, squeezed light, and other quantum states requires nonlinear interactions.

The key insight is that intensity-dependent material properties open entirely new possibilities for light-matter manipulation.

The Anharmonic Oscillator Model

To understand where nonlinear polarization comes from, let’s start with a classical model of a bound electron in a material.

Linear Oscillator (Review)

In the linear regime, we model an electron bound to an atom by a harmonic potential:

\[m\ddot{x} + m\gamma\dot{x} + m\omega_0^2 x = -eE(t)\]

where: - \(m\) is the electron mass - \(\gamma\) is the damping rate - \(\omega_0\) is the resonance frequency - \(E(t)\) is the applied field - \(-e\) is the electron charge

The dipole moment is \(p = -ex\), and the bulk polarization is \(P = Np = -Nex\) (for \(N\) electrons per unit volume).

Nonlinear: Adding Anharmonic Terms

In reality, the potential is not perfectly quadratic. For large oscillation amplitudes, higher-order terms become important:

\[U(x) = \frac{1}{2}m\omega_0^2 x^2 + ax^3 + bx^4 + \cdots\]

The cubic term (asymmetry) generates second-order nonlinearity; the quartic term (symmetry-preserving) generates third-order nonlinearity.

Including only the cubic term, the equation of motion becomes:

\[m\ddot{x} + m\gamma\dot{x} + m\omega_0^2 x + 3ax^2 = -eE(t)\]

For a sinusoidal driving field \(E(t) = E_0 \cos(\omega t)\), we look for a solution of the form:

\[x(t) = x_1 \cos(\omega t) + x_2 \cos(2\omega t) + \cdots\]

where \(x_1\) is the fundamental frequency component and \(x_2\) is the second harmonic.

Deriving the Second-Order Response

Substituting the series expansion into the equation of motion and collecting terms:

At frequency \(\omega\) (keeping leading-order terms): \[-m\omega^2 x_1 + m\omega_0^2 x_1 = -eE_0\]

This gives the linear response: \[x_1 = \frac{eE_0}{m(\omega_0^2 - \omega^2 - i\gamma\omega)}\]

At frequency \(2\omega\) (from the \(x_1^2\) term in the cubic nonlinearity): The \(3ax_1^2 \cos^2(\omega t)\) term contains a \(\cos(2\omega t)\) component. After some algebra:

\[x_2 = \frac{3a x_1^2}{2m(\omega_0^2 - 4\omega^2 - 2i\gamma\omega)}\]

This shows that the second-harmonic amplitude is proportional to the square of the fundamental field, confirming the nonlinear nature.

The Nonlinear Polarization

The dipole moment \(p(t) = -ex(t)\) now contains multiple frequency components:

\[p(t) = p_1 \cos(\omega t) + p_2 \cos(2\omega t) + \cdots\]

The bulk polarization is similarly expanded, and we can identify:

\[P(\omega) = \epsilon_0 \chi^{(1)}(\omega) E(\omega)\]

\[P(2\omega) \propto E^2 \quad \Rightarrow \quad \text{related to } \chi^{(2)}\]

\[P(3\omega), \ldots \propto E^3, \ldots \quad \Rightarrow \quad \text{related to } \chi^{(3)}, \ldots\]

The Nonlinear Susceptibility Expansion

The general framework is to expand the polarization as a power series in the electric field:

\[\mathbf{P}(t) = \epsilon_0 \left[ \chi^{(1)} \mathbf{E}(t) + \chi^{(2)} \mathbf{E}^2(t) + \chi^{(3)} \mathbf{E}^3(t) + \cdots \right] \tag{1}\]

In the frequency domain, this is more precisely written as:

\[P_i(\omega) = \epsilon_0 \left[ \chi_{ij}^{(1)}(\omega) E_j(\omega) + \int \chi_{ijk}^{(2)}(\omega_1, \omega_2) E_j(\omega_1) E_k(\omega_2) \delta(\omega - \omega_1 - \omega_2) d\omega_1 d\omega_2 + \cdots \right]\]

The key points are:

  1. \(\chi^{(1)}\): Linear susceptibility. Second-rank tensor; depends on frequency.
  2. \(\chi^{(2)}\): Second-order susceptibility. Third-rank tensor. Vanishes in centrosymmetric materials (by symmetry). Responsible for second-harmonic generation (SHG), sum/difference frequency generation, etc.
  3. \(\chi^{(3)}\): Third-order susceptibility. Fourth-rank tensor. Present in all materials (including centrosymmetric ones). Responsible for Kerr effect, self-phase modulation, third-harmonic generation, four-wave mixing, etc.

The magnitudes scale roughly as: \[|\chi^{(1)}| \sim 1 \text{ (dimensionless)}\] \[|\chi^{(2)}| \sim 10^{-12} \text{ m/V} = 10^{-12} \text{ pm/V}\] \[|\chi^{(3)}| \sim 10^{-21} \text{ m}^2\text{/V}^2\]

Second-Order Nonlinear Effects (\(\chi^{(2)}\))

Second-Harmonic Generation (SHG)

Second-harmonic generation is the most basic \(\chi^{(2)}\) process: two photons of frequency \(\omega\) combine to produce one photon at frequency \(2\omega\).

In the classical picture, a sinusoidal field \(E(t) = E_0 \cos(\omega t)\) induces a nonlinear polarization:

\[P^{(2)}(t) \propto \chi^{(2)} E_0^2 \cos^2(\omega t) = \frac{\chi^{(2)} E_0^2}{2}[1 + \cos(2\omega t)]\]

The \(\cos(2\omega t)\) term acts as a source for the second-harmonic electromagnetic wave.

The Wave Equation for SHG

The nonlinear polarization acts as a source term in Maxwell’s equations. For the second harmonic:

\[\frac{d^2 E_{2\omega}}{dz^2} + k_{2\omega}^2 E_{2\omega} = -\mu_0 \omega_{2\omega}^2 P_{2\omega}^{(2)}\]

where \(k_{2\omega} = n(2\omega) \cdot 2\omega/c\).

The nonlinear source is proportional to: \[P_{2\omega}^{(2)} = \frac{\epsilon_0}{2} \chi^{(2)} E_\omega^2\]

Phase Matching: Momentum Conservation

A crucial condition for efficient SHG is phase matching: the wave vectors of the interacting waves must satisfy:

\[\mathbf{k}_\omega + \mathbf{k}_\omega = \mathbf{k}_{2\omega}\]

or more explicitly:

\[2 k_\omega = k_{2\omega}\]

\[2 \frac{\omega}{c} n(\omega) = \frac{2\omega}{c} n(2\omega)\]

This simplifies to:

\[2 n(\omega) = n(2\omega) \tag{2}\]

The Problem: In a normal dispersive medium, \(n(2\omega) > n(\omega)\), so this condition is never satisfied! The second harmonic and fundamental wave get out of phase as they propagate, and the energy transfer is inefficient.

Angle Tuning: Birefringence to the Rescue

In an anisotropic (birefringent) crystal, different polarizations have different refractive indices. We can use this:

  • The fundamental wave (frequency \(\omega\)) has refractive index \(n_o(\omega)\) (ordinary ray).
  • The second harmonic (frequency \(2\omega\)) has refractive index \(n_e(2\omega)\) (extraordinary ray), which depends on the angle \(\theta\) inside the crystal.

By choosing the right angle \(\theta_m\) (the phase-matching angle), we can satisfy:

\[2 n_o(\omega) = n_e(2\omega, \theta_m)\]

This is called angle-tuned phase matching or critical angle phase matching.

SHG Conversion Efficiency

When phase matching is satisfied (\(\Delta k = 0\)), the second-harmonic amplitude grows linearly with crystal length:

\[I_{2\omega} \propto L^2\]

When phase matching is imperfect (\(\Delta k \neq 0\)), the efficiency is reduced by a factor:

\[\eta(\Delta k) \propto \operatorname{sinc}^2\left(\frac{\Delta k \cdot L}{2}\right)\]

where \(\Delta k = 2k_\omega - k_{2\omega}\).

The coherence length is defined as:

\[L_c = \frac{\pi}{|\Delta k|}\]

Over a coherence length, the second harmonic and fundamental go through one full cycle of constructive and destructive interference. For efficient conversion, we need the crystal length \(L\) to be comparable to or much smaller than many coherence lengths.

Sum and Difference Frequency Generation

More generally, \(\chi^{(2)}\) processes can combine waves at different frequencies:

Sum frequency generation (SFG): \[\omega_3 = \omega_1 + \omega_2\]

with phase-matching condition: \[\mathbf{k}_3 = \mathbf{k}_1 + \mathbf{k}_2\]

Difference frequency generation (DFG): \[\omega_3 = \omega_1 - \omega_2\]

with phase-matching condition: \[\mathbf{k}_3 = \mathbf{k}_1 - \mathbf{k}_2\]

These are used extensively for generating light at wavelengths not accessible by direct lasers (e.g., infrared).

Optical Parametric Amplification and Oscillation

In a reverse process, a single photon at frequency \(\omega_p\) (pump) can split into two lower-frequency photons at \(\omega_s\) and \(\omega_i\) (signal and idler):

\[\omega_p = \omega_s + \omega_i\]

with phase matching: \[\mathbf{k}_p = \mathbf{k}_s + \mathbf{k}_i\]

If even a tiny amount of signal photons are present, the nonlinear crystal will amplify them—this is optical parametric amplification (OPA). If the signal is seeded by quantum vacuum fluctuations, it’s called parametric down-conversion.

If the nonlinear crystal is placed inside an optical cavity, we get optical parametric oscillation (OPO), which generates coherent light at frequencies determined by phase matching.

Third-Order Nonlinear Effects (\(\chi^{(3)}\))

The Kerr Effect: Intensity-Dependent Refractive Index

One of the most important \(\chi^{(3)}\) effects is the optical Kerr effect: the refractive index depends on the intensity of light propagating through the material.

\[n(I) = n_0 + n_2 I \tag{3}\]

where: - \(n_0\) is the linear refractive index - \(n_2\) is the nonlinear refractive index (related to \(\chi^{(3)}\)) - \(I\) is the intensity

The nonlinear contribution to the refractive index arises from the \(\chi^{(3)}\) term in the polarization. When a strong optical field is present, it creates an intensity-dependent polarization that shifts the phase velocity.

Physical Origin of the Kerr Effect

The Kerr effect can be understood classically from the anharmonic oscillator model. The \(x^3\) and \(x^4\) terms in the potential lead to intensity-dependent oscillation frequencies, which manifest as an intensity-dependent refractive index.

In many materials, \(n_2 > 0\) (normal Kerr effect), leading to self-focusing: intense regions of the beam see a higher refractive index and act like a lens, further confining the light.

In other materials (especially near resonances), \(n_2 < 0\), leading to self-defocusing.

Self-Phase Modulation (SPM)

As an intense optical pulse propagates through a medium with the Kerr effect, the leading edge sees a higher refractive index (due to the pulse itself), causing the phase to shift.

For a pulse with envelope \(A(z, t)\) and intensity profile \(I(t)\):

\[\frac{\partial A}{\partial z} + \frac{1}{v_g}\frac{\partial A}{\partial t} = i\gamma n_2 |A|^2 A\]

where \(\gamma\) is a coefficient related to the geometry. The intensity of the pulse creates a time-dependent phase shift:

\[\phi_{\text{NL}}(t) = n_2 \omega_0 L I(t) / c\]

where \(L\) is the propagation distance. This results in a frequency chirp: the instantaneous frequency becomes time-dependent.

At the leading edge of a pulse, the chirp is toward lower frequencies (red-shift); at the trailing edge, toward higher frequencies (blue-shift). This frequency broadening can be used in combination with dispersion to generate broad-bandwidth pulses (as in nonlinear fiber optics).

Four-Wave Mixing (FWM)

When three waves at frequencies \(\omega_1, \omega_2, \omega_3\) propagate together in a \(\chi^{(3)}\) medium, a fourth wave is generated at:

\[\omega_4 = \omega_1 + \omega_2 - \omega_3\]

with phase-matching condition: \[\mathbf{k}_4 = \mathbf{k}_1 + \mathbf{k}_2 - \mathbf{k}_3\]

FWM is particularly important in fiber-optic communications, where it can both generate new channels and cause crosstalk between existing channels. By engineering the dispersion and power levels, FWM can be used constructively to generate broadband light or new frequencies.

Third-Harmonic Generation (THG)

Three photons at frequency \(\omega\) combine to produce one photon at \(3\omega\):

\[\omega + \omega + \omega = 3\omega\]

Phase matching requires: \[3 k_\omega = k_{3\omega}\]

\[3 n(\omega) = n(3\omega)\]

Unlike SHG, which requires \(\chi^{(2)}\) (and vanishes in centrosymmetric media), THG occurs in all materials via \(\chi^{(3)}\).

However, THG efficiency is much lower than SHG—it scales as the cube of the field amplitude rather than the square. Also, phase matching is typically more difficult.

Visualizing Anharmonic Oscillations

Let’s generate some numerical solutions to visualize the anharmonic oscillator response.

Code
fig, axes = plt.subplots(1, 3, figsize=get_size(14, 4))

# Parameters
m = 1.0  # mass
omega0 = 1.0  # natural frequency
gamma = 0.05  # damping
a = 0.1  # cubic nonlinearity coefficient

# Driving field amplitude and frequency
E0_linear = 0.1
E0_nonlinear = 0.5
omega_drive = 0.9 * omega0
t = np.linspace(0, 20*np.pi/omega_drive, 2000)

# Panel 1: Potential energy
x_range = np.linspace(-2, 2, 300)
U_harmonic = 0.5 * m * omega0**2 * x_range**2
U_anharmonic = U_harmonic + a * x_range**3

axes[0].plot(x_range, U_harmonic, 'b-', label='Harmonic', linewidth=2)
axes[0].plot(x_range, U_anharmonic, 'r-', label='Anharmonic: $+ ax^3$', linewidth=2)
axes[0].set_xlabel('Position $x$')
axes[0].set_ylabel('Potential $U(x)$')
# axes[0].set_title('(a) Anharmonic Oscillator Potential')
axes[0].legend(fontsize=8)
axes[0].grid(True, alpha=0.3)
axes[0].set_ylim([-0.5, 3])

# Panel 2: Linear response
E_drive_linear = E0_linear * np.cos(omega_drive * t)
# Solve linear oscillator ODE
from scipy.integrate import odeint

def linear_osc(state, t):
    x, v = state
    dxdt = v
    dvdt = (-gamma*v - omega0**2*x + (E0_linear/m)*np.cos(omega_drive*t))
    return [dxdt, dvdt]

sol_linear = odeint(linear_osc, [0, 0], t)
x_linear = sol_linear[:, 0]

# FFT to get harmonics
from scipy.fft import fft, fftfreq
X_linear = fft(x_linear)
freqs = fftfreq(len(t), t[1]-t[0])
harmonics_linear = np.abs(X_linear[:len(t)//2]) / np.max(np.abs(X_linear[:len(t)//2]))

axes[1].plot(t[:400], E_drive_linear[:400], 'b--', label='Driving field', linewidth=1.5)
axes[1].plot(t[:400], x_linear[:400], 'b-', label='Linear response', linewidth=2)
axes[1].set_xlabel('Time')
axes[1].set_ylabel('Amplitude')
# axes[1].set_title('(b) Linear Oscillator Response')
axes[1].legend(fontsize=8)
axes[1].grid(True, alpha=0.3)

# Panel 3: Harmonic content - linear vs nonlinear
def nonlinear_osc(state, t):
    x, v = state
    dxdt = v
    dvdt = (-gamma*v - omega0**2*x - 3*a*x**2 + (E0_nonlinear/m)*np.cos(omega_drive*t))
    return [dxdt, dvdt]

sol_nonlinear = odeint(nonlinear_osc, [0, 0], t)
x_nonlinear = sol_nonlinear[:, 0]

X_nonlinear = fft(x_nonlinear)
harmonics_nonlinear = np.abs(X_nonlinear[:len(t)//2]) / np.max(np.abs(X_nonlinear[:len(t)//2]))

freqs_plot = freqs[:len(t)//2]
omega_index = np.argmin(np.abs(freqs_plot - omega_drive))
freq_range = freqs_plot[omega_index-30:omega_index+60]
h_linear_plot = harmonics_linear[omega_index-30:omega_index+60]
h_nonlinear_plot = harmonics_nonlinear[omega_index-30:omega_index+60]

axes[2].semilogy(freq_range, h_linear_plot, 'b-', marker='o', markersize=5, label='Linear', linewidth=2)
axes[2].semilogy(freq_range, h_nonlinear_plot, 'r-', marker='s', markersize=5, label='Anharmonic', linewidth=2)
axes[2].set_xlabel('Frequency')
axes[2].set_ylabel('Amplitude (a.u.)')
# axes[2].set_title('(c) Harmonic Content')
axes[2].legend(fontsize=8)
axes[2].grid(True, alpha=0.3, which='both')

plt.tight_layout()
plt.savefig('img/anharmonic_oscillator.png', dpi=300, bbox_inches='tight')
plt.show()

print("Figure saved: Anharmonic oscillator response showing generation of higher harmonics in nonlinear regime")
/var/folders/t4/_9qps8wj56jc60nwkr3nrcr00000gn/T/ipykernel_12265/1374051957.py:64: ODEintWarning:

Excess work done on this call (perhaps wrong Dfun type). Run with full_output = 1 to get quantitative information.

Evolution from linear to nonlinear oscillator: (a) Comparison of harmonic and anharmonic potentials with cubic nonlinearity; (b) Time-domain response showing increased amplitude in the nonlinear case; (c) Harmonic content showing generation of second and third harmonics (\(2\omega\) and \(3\omega\)) absent in the linear case.
Figure saved: Anharmonic oscillator response showing generation of higher harmonics in nonlinear regime

?@fig-anharmonic shows the evolution from a linear to nonlinear oscillator. Panel (a) illustrates how the cubic anharmonic term breaks the symmetry of the potential. Panel (b) compares the time-domain response, showing increased oscillation amplitude in the nonlinear case. Panel (c) reveals that the anharmonic oscillator generates second and third harmonics at frequencies \(2\omega\) and \(3\omega\), which are completely absent in the linear case.

Phase Matching and SHG Efficiency

Now let’s visualize the critical role of phase matching in second-harmonic generation.

Code
fig, axes = plt.subplots(1, 2, figsize=get_size(12, 4.5))

# Panel 1: Phase matching diagram
# Wave vectors and their evolution
z = np.linspace(0, 5, 200)  # propagation distance
# Fundamental wave
k1 = 2.0  # k_omega
E1_z = 1.0 * np.exp(1j * k1 * z)

# Case 1: No phase matching (normal dispersion)
k2_no_match = 4.2  # k_2omega (larger than 2*k1)
E2_no_match = 0.01 * np.exp(1j * k2_no_match * z)

# Case 2: Phase matching (2*k_omega = k_2omega)
k2_match = 2.0 * k1
E2_match = 0.01 * np.exp(1j * k2_match * z)

# The SHG grows due to the nonlinear source, but gets suppressed if out of phase
# Here we model simplified growth
E2_no_match_amp = np.abs(E2_no_match) * (1 + 2*np.abs(np.sin((k2_no_match - 2*k1)*z/2)))
E2_match_amp = np.abs(E2_match) * (1 + 2*(k2_match - 2*k1 + 0.1)*z)  # Linear growth when matched

axes[0].plot(z, np.abs(E1_z), 'b-', linewidth=2.5, label='Fundamental ($\\omega$)')
axes[0].plot(z, E2_no_match_amp, 'r--', linewidth=2, label='No phase matching')
axes[0].plot(z, E2_match_amp, 'g-', linewidth=2.5, label='SHG with phase matching')
axes[0].set_xlabel('Crystal Length $z$')
axes[0].set_ylabel('Field Amplitude')
# axes[0].set_title('(a) SHG Power Build-up: Effect of Phase Matching')
axes[0].legend(fontsize=8)
axes[0].grid(True, alpha=0.3)
axes[0].set_ylim([0, 0.15])

# Panel 2: SHG efficiency vs phase mismatch
delta_k = np.linspace(-2, 2, 300)
L_crystal = 1.0  # crystal length (normalized)

def sinc_squared(x):
    """Compute sinc^2 with care at x=0"""
    with np.errstate(divide='ignore', invalid='ignore'):
        y = np.sinc(x/np.pi)**2
    return y

efficiency = sinc_squared(delta_k * L_crystal / 2)

axes[1].plot(delta_k, efficiency, 'b-', linewidth=2.5, label=f'Crystal length $L = {L_crystal}$ (normalized)')
axes[1].axvline(0, color='r', linestyle='--', linewidth=1.5, alpha=0.7, label='$\\Delta k = 0$')

# Show coherence length
coherence_length = np.pi / (L_crystal if L_crystal != 0 else 0.1)
axes[1].axvline(np.pi/L_crystal, color='g', linestyle=':', linewidth=1.5, alpha=0.7, label=f'$\\Delta k = \\pi/L$ (coherence length)')
axes[1].axvline(-np.pi/L_crystal, color='g', linestyle=':', linewidth=1.5, alpha=0.7)

axes[1].fill_between(delta_k, 0, efficiency, alpha=0.2, color='blue')
axes[1].set_xlabel('Phase Mismatch $\\Delta k$')
axes[1].set_ylabel('Efficiency')
# axes[1].set_title('(b) Phase Matching Condition and Efficiency')
axes[1].legend(fontsize=8)
axes[1].grid(True, alpha=0.3)
axes[1].set_ylim([0, 1.05])

plt.tight_layout()
plt.savefig('img/phase_matching.png', dpi=300, bbox_inches='tight')
plt.show()

print("Figure saved: Phase matching in SHG showing critical importance of momentum conservation")

Phase matching in second-harmonic generation: (a) Second-harmonic field amplitude growth along crystal length, comparing matched and unmatched conditions showing critical role of momentum conservation; (b) SHG conversion efficiency versus phase mismatch, demonstrating \(\mathrm{sinc}^2(\Delta k L/2)\) dependence with coherence length scale marked.
Figure saved: Phase matching in SHG showing critical importance of momentum conservation

?@fig-phase-matching demonstrates the importance of phase matching in SHG. Panel (a) shows that when phase matching is satisfied, the second-harmonic field grows monotonically with crystal length. Without phase matching, the second harmonic and fundamental wave periodically go in and out of phase, limiting energy transfer. Panel (b) shows the classic \(\mathrm{sinc}^2\) dependence of efficiency on phase mismatch, with a narrow acceptance bandwidth around \(\Delta k = 0\).

SHG Conversion Efficiency as a Function of Crystal Parameters

Code
fig, axes = plt.subplots(1, 2, figsize=get_size(12, 4.5))

# Panel 1: SHG efficiency vs crystal length (at perfect phase matching)
L_values = np.linspace(0.01, 3, 100)
# At perfect phase matching, efficiency is quadratic in L (for small L)
# For larger L, we approach saturation
efficiency_L = (L_values**2) / (1 + (L_values/0.5)**2)  # Smooth saturation function

axes[0].plot(L_values, efficiency_L, 'b-', linewidth=2.5)
axes[0].fill_between(L_values, 0, efficiency_L, alpha=0.2, color='blue')
axes[0].set_xlabel('Crystal Length')
axes[0].set_ylabel('Efficiency (%)')
# axes[0].set_title('(a) Conversion Efficiency vs Crystal Length\n(at perfect phase matching, $\\Delta k = 0$)')
axes[0].grid(True, alpha=0.3)
axes[0].set_ylim([0, 1.05])

# Add annotation
axes[0].annotate('$\\eta \\propto L^2$ (weak pump)', xy=(0.3, 0.08), xytext=(0.5, 0.3),
            arrowprops=dict(arrowstyle='->', color='red', lw=1.5), color='red')

# Panel 2: SHG efficiency vs phase mismatch for different crystal lengths
delta_k_range = np.linspace(-3, 3, 300)
L_values_plot = [0.5, 1.0, 2.0, 4.0]
colors = plt.cm.viridis(np.linspace(0, 1, len(L_values_plot)))

for L_val, color in zip(L_values_plot, colors):
    eff = sinc_squared(delta_k_range * L_val / 2)
    axes[1].plot(delta_k_range, eff, linewidth=2.5, color=color, label=f'$L = {L_val}$')

axes[1].axvline(0, color='red', linestyle='--', linewidth=1, alpha=0.5)
axes[1].set_xlabel('Phase Mismatch $\\Delta k$')
axes[1].set_ylabel('Efficiency')
# axes[1].set_title('(b) Bandwidth vs Crystal Length')
axes[1].legend(fontsize=8, loc='upper right')
axes[1].grid(True, alpha=0.3)
axes[1].set_ylim([0, 1.05])

plt.tight_layout()
plt.savefig('img/shg_efficiency.png', dpi=300, bbox_inches='tight')
plt.show()

print("Figure saved: SHG efficiency as function of crystal length and phase mismatch")

SHG efficiency dependence on crystal parameters: (a) Conversion efficiency versus crystal length showing quadratic growth at weak pump regime followed by saturation at perfect phase matching (\(\Delta k = 0\)); (b) Acceptance bandwidth versus phase mismatch for different crystal lengths, illustrating trade-off between efficiency and wavelength acceptance.
Figure saved: SHG efficiency as function of crystal length and phase mismatch

?@fig-shg-efficiency shows two critical aspects of SHG performance. Panel (a) demonstrates that at perfect phase matching (\(\Delta k = 0\)), the conversion efficiency increases quadratically with crystal length for weak signals (weak pump limit). This is why longer crystals are generally preferred. Panel (b) illustrates the acceptance bandwidth: longer crystals have narrower angular and wavelength acceptance ranges, requiring tighter phase-matching control but offering higher efficiency when conditions are right.

The Kerr Effect: Nonlinear Refractive Index

Code
fig, axes = plt.subplots(1, 2, figsize=get_size(12, 4.5))

# Panel 1: Intensity-dependent refractive index
I = np.linspace(0, 1.0, 100)
n0 = 1.5
n2_pos = 0.3  # positive Kerr effect (self-focusing)
n2_neg = -0.15  # negative Kerr effect (self-defocusing)

n_linear = np.ones_like(I) * n0
n_kerr_pos = n0 + n2_pos * I
n_kerr_neg = n0 + n2_neg * I

axes[0].plot(I, n_linear, 'k-', linewidth=2, label='$n = n_0$')
axes[0].plot(I, n_kerr_pos, 'b-', linewidth=2.5, label='$n_2 > 0$')
axes[0].plot(I, n_kerr_neg, 'r-', linewidth=2.5, label='$n_2 < 0$')
axes[0].fill_between(I, n_linear, n_kerr_pos, alpha=0.15, color='blue')
axes[0].fill_between(I, n_linear, n_kerr_neg, alpha=0.15, color='red')
axes[0].set_xlabel('Intensity $I$')
axes[0].set_ylabel('$n(I)$')
# axes[0].set_title('(a) Optical Kerr Effect: Intensity-Dependent $n$')
axes[0].legend(fontsize=8, loc='best')
axes[0].grid(True, alpha=0.3)

# Panel 2: Nonlinear phase shift and self-phase modulation
# Consider a Gaussian pulse
t_pulse = np.linspace(-3, 3, 300)
pulse_intensity = np.exp(-t_pulse**2)  # Gaussian intensity profile

# Phase shift due to linear and nonlinear propagation
omega0 = 1.0
L_prop = 2.0  # propagation distance
phase_linear = omega0 * n0 * L_prop
phase_nonlinear = omega0 * n2_pos * pulse_intensity * L_prop

phase_total = phase_linear + phase_nonlinear
# Instantaneous frequency is the derivative of phase
dphase_dt = np.gradient(phase_nonlinear, t_pulse)

ax2_1 = axes[1]
ax2_2 = ax2_1.twinx()

line1 = ax2_1.plot(t_pulse, pulse_intensity, 'g-', linewidth=2.5, label='$I(t)$')
line2 = ax2_1.plot(t_pulse, phase_nonlinear, 'b-', linewidth=2.5, label='$\\phi_{NL}$')
line3 = ax2_2.plot(t_pulse, dphase_dt, 'r--', linewidth=2, label='Chirp')

ax2_1.set_xlabel('$t$ (a.u.)')
ax2_1.set_ylabel('$\\phi_{NL}$', color='b')
ax2_2.set_ylabel('$\\partial\\phi/\\partial t$', color='r')
# ax2_1.set_title('(b) Self-Phase Modulation (SPM)')
ax2_1.tick_params(axis='y', labelcolor='b')
ax2_2.tick_params(axis='y', labelcolor='r')

# Combine legends
lines = line1 + line2 + line3
labels = [l.get_label() for l in lines]
ax2_1.legend(lines, labels, fontsize=8, loc='upper left')

ax2_1.grid(True, alpha=0.3)

plt.tight_layout()
plt.savefig('img/kerr_effect.png', dpi=300, bbox_inches='tight')
plt.show()

print("Figure saved: Kerr effect showing intensity-dependent refractive index and SPM")

Optical Kerr effect and self-phase modulation: (a) Intensity-dependent refractive index for positive Kerr effect (self-focusing, \(n_2 > 0\)) and negative Kerr effect (self-defocusing, \(n_2 < 0\)) compared to linear case; (b) Gaussian pulse profile and resulting nonlinear phase shift, showing frequency chirp at pulse edges due to self-phase modulation.
Figure saved: Kerr effect showing intensity-dependent refractive index and SPM

?@fig-kerr-effect illustrates the Kerr effect and its consequences. Panel (a) shows how the refractive index varies with intensity. For normal Kerr effect (\(n_2 > 0\)), intense regions experience a higher \(n\), which acts like a focusing element. Panel (b) demonstrates self-phase modulation: as a pulse propagates, the intense center of the pulse acquires more phase than the weak edges. This creates a frequency chirp: the leading edge is red-shifted, the trailing edge is blue-shifted. This mechanism is fundamental to nonlinear pulse compression techniques.

Applications of Nonlinear Optics

Frequency Conversion and Wavelength Extension

Most ultraviolet and deep-infrared lasers are created through nonlinear frequency conversion:

  • UV generation: Second-harmonic generation of Nd:YAG (\(\lambda = 1064\) nm) produces 532 nm. Further SHG yields 266 nm in the UV.
  • IR generation: Difference-frequency generation or OPA seeded with a broadband continuum can produce tunable IR light.
  • Soft X-rays: Higher-order harmonic generation (extremely nonlinear!) converts infrared femtosecond pulses into coherent soft X-rays.

Ultrafast Pulse Generation and Shaping

Nonlinear effects are essential for generating and manipulating ultrafast pulses:

  1. Kerr lens mode-locking: In solid-state lasers, the Kerr effect creates an intensity-dependent lens that preferentially supports short pulses.
  2. Soliton propagation: In fibers with appropriate dispersion and nonlinearity, pulses can propagate as solitons—stable, non-dispersive structures. Self-phase modulation is balanced by dispersion.
  3. Supercontinuum generation: In a short nonlinear fiber, a short pulse undergoes self-phase modulation, four-wave mixing, and other nonlinear effects, generating a broadband supercontinuum spectrum spanning octaves.

Nonlinear Microscopy: Two-Photon and SHG Imaging

Two-photon excited fluorescence (TPEF) and second-harmonic generation (SHG) microscopy enable deep-tissue imaging with reduced phototoxicity:

  • Nonlinear absorption: Fluorophores absorb two infrared photons simultaneously, creating a virtual transition to an excited state. The nonlinear dependence on intensity ensures that fluorescence is generated primarily at the focal point, providing inherent optical sectioning.
  • SHG imaging: Collagen and other fibrous proteins exhibit strong second-harmonic signals. SHG microscopy visualizes these structures without fluorophore labeling. The second harmonic is generated at the focus, providing excellent spatial resolution.

Both techniques allow imaging at depths of 500–1000 μm in tissue, compared to ~100 μm for linear confocal microscopy.

Summary

The transition from linear to nonlinear optics opens a vast landscape of new phenomena and applications:

Key takeaways:

  1. Nonlinear polarization arises from the anharmonic motion of electrons at high field strengths. The polarization expansion in powers of \(\mathbf{E}\) reveals second-order (\(\chi^{(2)}\)) and third-order (\(\chi^{(3)}\)) susceptibilities.

  2. \(\chi^{(2)}\) effects (SHG, SFG, DFG, OPA/OPO) require momentum conservation via phase matching. Angle tuning in birefringent crystals enables efficient frequency conversion.

  3. \(\chi^{(3)}\) effects (Kerr effect, SPM, FWM, THG) occur in all materials and are responsible for intensity-dependent refractive index, nonlinear pulse shaping, and broadband generation.

  4. Engineering the nonlinear response through crystal design, phase matching, and dispersion engineering enables control of light properties inaccessible in the linear regime.

  5. Practical applications span frequency conversion, ultrafast photonics, quantum optics, and nonlinear imaging—all technologies that have become indispensable in modern science and technology.

Exercises for Independent Study

  1. Phase matching in KDP: Potassium dihydrogen phosphate (KDP) has \(n_o(\omega) = 1.500\) and \(n_e(2\omega) = 1.440\). Calculate the critical angle \(\theta_c\) for type-I phase matching of SHG at \(\lambda = 1.064\) μm. (Hint: \(n_e(\theta) = [(\cos^2\theta/n_e^2 + \sin^2\theta/n_o^2)]^{-1/2}\))

  2. Kerr effect and self-focusing: A 100-fs pulse with peak intensity \(I_0 = 10^{14}\) W/m² propagates in a glass fiber with \(n_2 = 2.7 \times 10^{-20}\) m²/W. Calculate the nonlinear phase shift over 1 cm of propagation. (Assume \(\hbar\omega \approx 2\) eV for 1 μm light, and work in SI units.)

  3. Parametric amplification: An OPA is pumped at 266 nm. The signal is seeded at 800 nm. Calculate the wavelength of the idler wave. In what spectral region does it lie?

  4. Harmonic content in a nonlinear crystal: Derive the expression for the second-harmonic amplitude \(A_{2\omega}\) as a function of the fundamental amplitude \(A_\omega\) and crystal length \(L\), assuming perfect phase matching. How does the power grow compared to the linear case?

Experimental Connections

Nonlinear optical effects require intense light fields but can be demonstrated with modest equipment:

Second harmonic generation with a green laser pointer Many “green” laser pointers are actually IR lasers (Nd:YAG at 1064 nm) with a KTP doubling crystal inside. Open a broken pointer (safely!) to see the crystal. With a spectrometer, you can verify both the 1064 nm fundamental and 532 nm second harmonic. This is SHG in action at milliwatt power levels.

Kerr effect in optical fibers Send a pulsed laser into a single-mode fiber and observe spectral broadening on a spectrometer. Self-phase modulation via the Kerr effect (\(n = n_0 + n_2 I\)) generates new frequency components, producing symmetric spectral wings. This is the basis of supercontinuum generation.

Demonstration of optical rectification A pulsed laser focused on an electro-optic crystal (e.g., ZnTe) generates a THz pulse via optical rectification — the DC component of \(\chi^{(2)}\). While the THz detection requires special equipment, the principle can be discussed from the same \(\mathbf{P}^{(2)}\) formalism covered in this lecture.

Birefringent phase matching If a KDP or BBO crystal is available, demonstrate that SHG efficiency depends critically on the crystal angle. Rotate the crystal while monitoring the green output with a photodetector — the sharp angular dependence vividly illustrates phase matching.

Everyday nonlinear optics: your eye Staring at a bright light and then looking away produces afterimages with complementary colors — a (biological) nonlinear response. While not \(\chi^{(2)}\) or \(\chi^{(3)}\), it connects to the idea that strong stimuli produce responses beyond the linear regime.

Further Reading

The following references are linked to the central Resources & Recommended Reading page:

  • Boyd, Ch. 1–4Nonlinear Optics. The standard textbook: wave equation in nonlinear media, SHG, OPO, Kerr effect. Essential reading.
  • Saleh & Teich, Ch. 21 — Nonlinear Optics. Concise treatment at Bachelor level with clear diagrams.
  • Shen (2003)Principles of Nonlinear Optics. More theoretical; excellent for symmetry and tensor arguments.
  • Hecht, Ch. 13 — Modern Optics: Lasers and Other Topics. Introductory treatment of nonlinear effects.
  • Born & Wolf, Ch. 2 — Electromagnetic potentials and nonlinear polarization (advanced).

Lecture 5: Nonlinear Optics — Introduction to Photonics