Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Chapter 13 - Hydrogen functions

Start with some imports fro Symbolic Python library:

from sympy.physics.hydrogen import R_nl
from sympy.functions.special.spherical_harmonics import Ynm
from sympy import *

Define some variables, radial, polar, azimuthal, time, and two frequencies:

var("r theta phi t w1 w2")

Look at a few of the radial equations and the spherical harmonics

Notice that instead of Ylm the name is Ynm... the arguments to the function are still the quantum numbers l and m

R_nl(1, 0, r, 1)  # the n = 1, l = 0 radial function
Ynm(0,0,theta,phi).expand(func=True)  # the l = 0, m = 0 spherical harmonic

Write the equation for the nlm=100|nlm\rangle = |100\rangle state. Use the sympy method .expand(func=True) to convert to the actual expression. To create this state, we combine the Radial function and the Ylm function. Make sure to set n, l, and m to the correct values. The fourth argument to R_nl is Z which we set to 1 since we are talking about a 1-proton nucleus.

The combination of R_nl and Ynm should look like the following (replace N, L, and M with the appropriate values):

R_nl(N, L, r, 1)*Ynm(L, M, theta, phi).expand(func=True)

# this is the |100> state:
psi100 = R_nl(1, 0, r, 1)*Ynm(0,0,theta,phi).expand(func=True)
psi100  # check to see how it looks as an expression

Integrating over all space

Remember spherical coordinate integrals of function f(r,θ,ϕ)f(r,\theta,\phi) over all space look like:

00π02πr2sin(θ)drdθdϕf(r,θ,ϕ)\int_0^\infty\int_0^\pi\int_0^{2\pi}r^2\sin(\theta)drd\theta d\phi \,\,f(r,\theta,\phi)

so you alwasy need to add a factor of r**2*sin(theta) and then integrate r from 0 to infinity, theta from 0π0-\pi and phi from 02π0-2\pi. As a check, you should integrate the square of the psi100 wavefunction over all space to see that it equals 1 (i.e. it is normalized)

integrate(r**2*sin(theta) * (psi100)**2 ,(r,0,oo),(theta,0,pi),(phi,0,2*pi))

Now do the 210|210\rangle state:

psi210 = R_nl(2, 1, r, 1)*Ynm(1,0,theta,phi).expand(func=True)
psi210  # check how it looks

Note, if you compare these to listed solutions (for example at http://hyperphysics.phy-astr.gsu.edu/hbase/quantum/hydwf.html#c3) you see that there are not any factors of a0a_0. This is because the R_nl function is defined in units of a0a_0. a0a_0 is the Bohr Radius: Bohr radius

psi211 = R_nl(2, 1, r, 1)*Ynm(1,1,theta,phi).expand(func=True)
psi211

Now calculate z\langle z \rangle:

To calculate z\langle z \rangle we need to convert to spherical coordinates: z=rcosθz = r\cos\theta. The terms in the following integral are the r2sinθr^2\sin\theta then zz (in spherical coords) then the wave function squared.

expect = integrate(r**2*sin(theta)* (r*cos(theta)) * (psi100*psi100),(r,0,oo),(theta,0,pi),(phi,0,2*pi))
expect

No surprise, the average z position of the electron in the hydrogen atom is 0.

Now for problem 13.21

find z(t)\langle z \rangle(t). Use the same integral, but add a time-dependent piece to each term in the wavefunction, add them together and multiply by the complex conjugate.

psi = 1/sqrt(2)*(psi100*exp(1j*w1*t) + psi210*exp(1j*w2*t))
psi_conj = 1/sqrt(2)*(psi100*exp(-1j*w1*t) + psi210*exp(-1j*w2*t))
outer = (psi*psi_conj).simplify()
outer
expect2 = integrate(r**2 * sin(theta) * (r*cos(theta)) * outer,(r,0,oo),(theta,0,pi),(phi,0,2*pi))
expect2
expect2.simplify()

We need to interpret this result. First you should show that this expression is simply a constant amplitude factor times cos((w2w1)t)\cos((w2-w1)t), in other words z\langle z \rangle oscillates at frequency w2-w1.

Your assignment:

Explore other combinations of states and draw conclusions about the z behavior from the results. You may not be able to get these expressions to simplify, but the important thing is to look for the time dependence and simplify that part.

Hints for interpreting your results: