20. First Order Perturbation Theory#

Name:

Total Points: –/100 pts

Extra Credit: –/20 pts

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

Having now a brief introduction to the basics of quantum mechanics, we are ready to derive linear and nonlinear optical susceptibilities. Let’s start with the linear suceptibility \(\chi^{(1)}\).

We begin with an approach base on Schrodinger’s equation, and then show the same result using the density matrix, where we can include extra phenomena such as damping.

Recall that Schrodinger’s equation reads

\[ \begin{align} \frac{\partial |\psi \rangle}{\partial t} = \frac{-j}{\hbar}\hat{H} | \psi \rangle \end{align} \]

and that when writing the Hamiltonian as \(\hat{H} = \hat{H}_0 + V\) and expanding the state vector as a superposition of stationary states, we arrived at an equation for the amplitudes of each stationary state:

\[ \begin{align} \dot{b}_n = -\frac{j}{\hbar}\sum_l V_{nl}e^{j\omega_{nl}t} b_l \end{align} \]

To make the algebra a bit easier, let’s define new amplitudes

\[ \begin{align} a_n = b_ne^{-j\omega_n t} \end{align} \]

so that our amplitude equation is

\[ \begin{align} \dot{a}_n = -j\omega_n a_n -\frac{j}{\hbar}\sum_l V_{nl}a_l \end{align} \]

20.1. Two level atom#

For a two-level atom, we only have two amplitudes \(a_0\) amd \(a_1\), so the amplitude equations read

\[\begin{split} \begin{align} \dot{a}_0 = -j\omega_{01} a_0 -\frac{j}{\hbar}\left( V_{00}a_0 + V_{01}a_1 \right) \\ \dot{a}_1 = -j\omega_{10} a_1 -\frac{j}{\hbar}\left( V_{10}a_0 + V_{11}a_1 \right) \end{align} \end{split}\]

We can solve these equations to successive iteration by letting

\[\begin{split} \begin{align} a_0 = a_0^{(0)} + a_0^{(1)} + a_0^{(2)} + a_0^{(3)} + \cdots \\ a_1 = a_1^{(0)} + a_1^{(1)} + a_1^{(2)} + a_1^{(3)} + \cdots \\ \end{align} \end{split}\]

If we put the atom initially in the ground state, we have a zeroth order solution of \(a_0^{(0)} = 1\) and \(a_1^{(0)} = 0\), which we can plug in to the second equation to get

\[ \begin{align} \dot{a_1}^{(1)} = -j\omega_{10} + a_1^{(1)} -\frac{j}{\hbar}V_{10} \end{align} \]

We now apply an external field with \(E_x, E_y, E_z\) components of the form:

\[ \begin{align} E_j = \hat{E}_je^{-j\omega t} + c.c. \end{align} \]

This perturbs the atom, and adds some extra energy in the form of a dipole moment, which we add to the Hamiltonian:

\[\begin{split} \begin{align} \hat{V} &= -e\hat{\mathbf{r}}\cdot \mathbf{E} \\ \end{align} \end{split}\]

The matrix elements of the operator \(\hat{V}\), which describes how much the perturbation causes the once stationary states to overlap are

\[\begin{split} \begin{align} V_{ln} &= \langle n|\hat{V}|l \rangle \\ &= -\langle n|e\hat{\mathbf{r}}\cdot \mathbf{E}|l \rangle \\ &= -eE_x\langle n|\hat{\mathbf{x}}|l \rangle - eE_y\langle n|\hat{\mathbf{y}}|l \rangle - eE_z\langle n|\hat{\mathbf{z}}|l \rangle \\ &= -\mu_{nl}^xE_x - \mu_{nl}^yE_y - \mu_{nl}^zE_z \\ \end{align} \end{split}\]

Some visualization may help. Below is an example wavefunction with it’s projections onto the \(x, y\) and \(z\) planes.

from mpl_toolkits.mplot3d import axes3d
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np  #import NumPy package.  
from scipy.constants import *  #get physical constants like pi and c
import matplotlib as mpl  #plotting package
import ipywidgets as ipw
%matplotlib widget

ax = plt.figure().add_subplot(projection='3d')
X, Y, Z = axes3d.get_test_data(0.05)

# Plot the 3D surface
ax.plot_surface(X, Y, Z, rstride=8, cstride=8, alpha=0.3)

# Plot projections of the contours for each dimension.  By choosing offsets
# that match the appropriate axes limits, the projected contours will sit on
# the 'walls' of the graph
cset = ax.contour(X, Y, Z, zdir='z', offset=-100, cmap=cm.coolwarm)
cset = ax.contour(X, Y, Z, zdir='x', offset=-40, cmap=cm.coolwarm)
cset = ax.contour(X, Y, Z, zdir='y', offset=40, cmap=cm.coolwarm)

ax.set_xlim(-40, 40)
ax.set_ylim(-40, 40)
ax.set_zlim(-100, 100)

ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

plt.show()

Ok, so now that we have the matrix elements \(V_{nl}\), we can put them into the first order equation to obtain:

\[\begin{split} \begin{align} \dot{a_1}^{(1)} &= -j\omega_{10} + a_1^{(1)} -\frac{j}{\hbar}V_{10} \\ &= -j\omega_{10} + a_1^{(1)} -\frac{j}{\hbar}\left( -\mu_{10}^xE_x - \mu_{10}^yE_y - \mu_{10}^zE_z \right) \\ &= -j\omega_{10} + a_1^{(1)} +\frac{j}{\hbar} \sum_j \mu_{10}^j\hat{E}_je^{-j\omega t}\\ \end{align} \end{split}\]

This can be integrated to obtain

\[ \begin{align} a_1^{(1)} = \frac{1}{\hbar}\sum_j \mu_{10}^j \left(\frac{\hat{E}_j e^{-j\omega t}}{\omega_{10} + \omega} + \frac{\hat{E}^*_j e^{j\omega t}}{\omega_{10} - \omega} \right) \end{align} \]

Using the density matrix approach, a similar result can be obtained:

\[ \begin{align} \rho_{10}^{(1)} = \frac{1}{\hbar}\sum_j \mu_{10}^j \left(\frac{\hat{E}_j e^{-j\omega t}}{\tilde{\omega}_{10} + \omega} + \frac{\hat{E}^*_j e^{j\omega t}}{\tilde{\omega}_{10} - \omega} \right) \end{align} \]

where \(\tilde{\omega}_{10} = \omega_{10} - j\gamma_{10}\) is a complex frequency that includes a damping rate \(\gamma_{10}\). The ability to include damping is one of the advantages of using the density matrix.

20.2. Exercises#

  1. (40 pts) Use the atomic wavefuctions for two states in Hydrogen to calculate the dipole matrix element between these two states.

  2. (20 pts) How does this relate to the linear susceptibility? See Eq. 8.34 in New.

  3. (20 pts Extra Credit) Find a paper in which the linear susceptibility of Hydrogen is calculated. Does it use similar methods?

  4. (40 pts) Use the resulting dipole matrix element from (1) above and an applied field to simulate population transfer from the ground state to an excited state in time assuming these are the only two levels in the atom.