12. Stimulated Brillouin Scattering#

Name:

Total Points: –/100 pts

### UNCOMMENT AND RUN THIS CELL IF USING GOOGLE COLAB
# !pip install ipympl -q
# from google.colab import output
# output.enable_custom_widget_manager()

In the last two notebooks, we have studied the scattering of light by elastic waves. In this section we continue that study by considering another acousto-optic process, Stimulated Brillouin Scattering (SBS). SBS is very similar to Stimulated Raman Scattering in that the optical wave itself drives an elastic vibration. Historically, however, SBS has two distinct features that make it different from SRS:

  1. SBS involves low-frequency acoustic waves

  2. The stokes optical wave in SBS is normally observed in the backward direction

Similar to acousto-optic modulation, the SBS interaction is usually mediated by the electrostrictive effect. In this notebook, we will write down a wave equation for the acoustic waves produced by SBS via electrostriction, and then use that coupled wave equation in addition to the familiear nonlinear ode’s we have been studying to model SBS.

12.1. Finding the elastic wave equation#

Recall that for electrostrictive interactions, a material strain induces a change in the dielectric constant:

\[ \begin{align} \delta\epsilon = -\gamma_e S \end{align} \]

Recall that the energy density (energy per unit volume) in an electrostatic field in a material depends on the dielectric constant:

\[\begin{split} \begin{align} u &= \frac{1}{2} \epsilon_0 \epsilon E^2 \\ \end{align} \end{split}\]

Implying that a material strain can induce a change in the electromagnetic energy density:

\[\begin{split} \begin{align} \delta u &= -\frac{1}{2} \epsilon_0 \gamma_e S E^2 \\ \end{align} \end{split}\]

Noting the pressure exerted by the field is just \(p = \delta u / S\), we can write the driving force per unit volume along the \(z\) direction as

\[ \begin{align} F_v = -\frac{\partial p}{\partial z} = \frac{1}{2}\epsilon_0\gamma_e \frac{\partial (E)^2}{\partial z} \end{align} \]

We can now write down the wave equation for the displacement \(Q\) in response to the force \(F_v\):

\[ \begin{align} \frac{1}{2}\epsilon_0\gamma_e \frac{\partial (E)^2}{\partial z} + \frac{1}{C}\frac{\partial^2 Q}{\partial z ^2} - \Gamma \frac{\partial Q}{\partial t} = \rho \frac{\partial^2 Q}{\partial t^2} \end{align} \]

We haven’t derived the equation, rather just quoted it. All the terms on the left hand side are forces, representing electrostriction, elasticity, and loss. The term on the right is the mass times accerlation term. In this equation, \(C\) is the compressibility, \(\rho\) is the mass density, and \(\Gamma\) is the acoustic damping coefficient.

12.2. Why the Stokes wave is counterpropagating#

Recall from our study of stimulated Raman scattering and acousto-optic interactions that the interaction of light waves that the phase matching condition requires that the wavevector of the Stokes wave and acoustic wave must sum to the wavevector of the incident laser wave:

\[ \begin{align} \mathbf{k}_L = \mathbf{k}_S + \mathbf{K}_A \end{align} \]

Consider for a moment what would happen if all three waves were co-propagating. Since the frequency of the stokes wave is very close to the frequency of the laser, their wavevectors are nearly the same. This means that the acoustic wavevector \(\mathbf{K}_A\) is very small. A very small wavevector means a very small acoustic frequency since \(\Omega_A = K_A V\). In order to maximize the gain, we would like to maximize the acoustic wave-vector (see below), but co-propogation minimizes \(K_A\).

In contrast, counter-propogating laser and stokes wave maximizes the \(K_A\)

12.3. Coupled Wave Equations for SBS#

We are now ready to write down the coupled wave equations for SBS. We start by assuming both the electromagnetic wave and the elastic wave are harmonic waves of the form

\[\begin{split} \begin{align} E= \tilde{E}_Le^{j\left(k_Lz - \omega_L t\right)} + \tilde{E}_Se^{j\left(-k_Lz - \omega_L t\right)} c.c.\\ Q = \tilde{Q}e^{j\left(K_Az - j\Omega_A t\right)} + \tilde{Q}^*e^{j\left(K_Az + j\Omega_A t\right)} + c.c. \end{align} \end{split}\]

We then plug these quantities into the elastic wave equation. We make two assumptions in order to drop some derivatives:

  1. Slowly varying amplitude (similar to previous notebooks)

  2. Fast decay of acoustic waves. This allows us to drop first order spatial derivatives.

After some algebra, we obtain

\[ \begin{align} \frac{\partial \tilde{Q}}{\partial z} + \frac{\Gamma \tilde{Q}}{2\rho V} = -\frac{\epsilon_0\gamma_e}{2\rho V^2}\tilde{E}_L\tilde{E}_S^* \end{align} \]

Here the velocity of the elastic waves is \(V = (C\rho)^{1/2}\).

Now we have an equations that tells us how the elastic wave grows or shrinks as a result of the electromagnetic waves. We can obtain the equations for the growth and decay of the laser and the Stokes field by using the same nonlinear polarization derived for acousto-optic interactions:

\[ \begin{align} P^{(NL)} = -\epsilon_0\gamma_e j K_A\left( \tilde{E}\tilde{Q}e^{j\left((k_l +K_A)z - (\omega_L + \Omega_A) t\right)} + \tilde{E}\tilde{Q}^*e^{j\left((k_l -K_A)z - (\omega_L - \Omega_A) t\right)} + c.c. \right) \end{align} \]

In this case, however, we only need to use the second term since the stokes acoustic and laser waves will be counterpropogating:

\[\begin{split} \begin{align} P_S^{(NL)} &= -\epsilon_0\gamma_e j K_A \tilde{E_L}\tilde{Q}^*e^{j\left(k_Sz + \omega_S t\right)} + c.c. \\ &= \tilde{P}_S e^{j\left(k_Sz + \omega_S t\right)} + c.c. \end{align} \end{split}\]

The analogous nonlinear polarization oscillating at the laser frequency is

\[ \begin{align} P_L^{(NL)} = \epsilon_0\gamma_e j K_A \tilde{E_S}\tilde{Q}e^{j\left(k_Lz + \omega_L t\right)} \end{align} \]

We can finally write down the three coupled wave equations

\[\begin{split} \begin{align} \frac{\partial \tilde{Q}}{\partial z} + \frac{\Gamma \tilde{Q}}{2\rho V} &= -\frac{\epsilon_0\gamma_e}{2\rho V^2}\tilde{E}_L\tilde{E}_S^* \\ \frac{\partial \tilde{E}_S}{\partial z} &= \left( \frac{\omega_S \gamma_e K_A}{2c n_S} \right) \tilde{E}_L \tilde{Q}^* \\ \frac{\partial \tilde{E_L}}{\partial z} &= -\left( \frac{\omega_L \gamma_e K_A}{2c n_L} \right) \tilde{E}_S \tilde{Q} \end{align} \end{split}\]

Let’s solve these equations. Below is the start of a script that inputs the three coupled wave equations, modified from the 3-wave mixing coupled differential equations we solved in an earlier notebook.

12.4. Exercises#

Please do these in separate cells and number them!

  1. (40 pts) As currently written, the script below does not include damping of the acoustic wave. Include a damping parameter.

  2. (30 pts) As currently written, the frequencies and intensities of the three waves are wrong. Modify the Stokes wave so that it is very close in frequency to the laser field. Also modify the acoustic wave frequency so that it conserves power.

  3. (30 pts) The current script includes a phase mismatch. This is useful for ensuring conservation of energy, but the coupled wave equations assume perfect phase matching. Modify the script to ensure perfect phase matching.

from scipy.integrate import solve_ivp
import numpy as np
import matplotlib.pyplot as plt
from scipy.constants import *
import ipywidgets as ipw
%matplotlib widget


# define coupled wave equation model.  Later this will be called by a ode solver.
def model(z, F, Lcoh):  
    Q, ES, EL = F  
    dk = np.pi/Lcoh
    dEQdz = -aQ*EL*np.conjugate(ES)*np.exp(1j*dk*z)
    dESdz = aS*EL*np.conjugate(Q)*np.exp(1j*dk*z)
    dELdz = -aL*ES*Q*np.exp(-1j*dk*z)
    dFdz = [dEQdz, dESdz, dELdz]
    return dFdz


# Wrap the ode solver in an update function for animating the plot
def update(Lcoh = 5e-2, ES0 = 3e4, Q0 = 3e4, EL0 = 0):
    F0 = [Q0 + 0j, ES0+0j, EL0+0j] # set initial field values
    sol = solve_ivp(model,[z0,zf], F0, t_eval = z, args = (Lcoh,)) #ode solver 
    IQ = c*epsilon_0*n3*np.abs(sol.y[0])**2 #get intensities
    IS = c*epsilon_0*n2*np.abs(sol.y[1])**2
    IL = c*epsilon_0*n1*np.abs(sol.y[2])**2
    line0.set_ydata(IQ) #update graph
    line1.set_ydata(IS)
    line2.set_ydata(IL)
    line3.set_ydata(IQ+IS+IL)


    
# Create z array
z0 = 0
zf = 0.1 #10 cm long crystal
Nz = 1001
z = np.linspace(z0, zf, Nz)

# 
chi2 = 60e-12 # Highest lithium niobate value (from Boyd)

omega1 = 2*np.pi*300e12 #approx 1000 nm (infrared)
omega2 = 2*np.pi*500e12 #approx 600 nm (orange)
omega3 = omega1+omega2 #approx 375 nm (violet)

n1 = 1 # need to put in refractive index for lithium niobate
n2 = 1
n3 = 1

aQ = 1j*chi2*omega3/(c*n1)
aS = 1j*chi2*omega2/(c*n2)
aL = 1j*chi2*omega1/(c*n3)


fig, ax = plt.subplots()
dummy_I = np.zeros_like(z)
line0, = ax.plot(z, dummy_I, label = '$I_Q$', color = 'purple')
line1, = ax.plot(z, dummy_I, label = '$I_S$', color = 'orange')
line2, = ax.plot(z, dummy_I, label = '$I_L$', color = 'red')
line3, = ax.plot(z, dummy_I, label = '$I_{tot}$', color = 'black')

ax.set_ylabel('Intensity [W/m$^2$]')
ax.set_xlabel('z [m]')
ax.legend()
ax.set_ylim(-1e5, 5e6)


ipw.interact(update, Lcoh = (1e-4, 100, 1), Q0 = (1,5e4,1e3), ES0 = (1,5e4,1e3), EL0 = (0,5e4,1e3) )
plt.show()