"Verify selection rules" -- energy levels na = 3 nb = 2 -- wave function psi(n,l,m) = R(n,l) Y(l,m) R(n,l) = 2 / n^2 * a0^(-3/2) * sqrt((n - l - 1)! / (n + l)!) * (2 r / (n a0))^l * L(2 r / (n a0), n - l - 1, 2 l + 1) * exp(-r / (n a0)) -- associated Laguerre polynomial (k is a local var) L(x,n,m,k) = (n + m)! sum(k, 0, n, (-x)^k / ((n - k)! (m + k)! k!)) -- spherical harmonic Y(l,m) = (-1)^m sqrt((2 l + 1) / (4 pi) (l - m)! / (l + m)!) * P(l,m) exp(i m phi) -- associated Legendre of cos theta (arxiv.org/abs/1805.12125) P(l,m,k) = test(m < 0, (-1)^m (l + m)! / (l - m)! P(l,-m), (sin(theta)/2)^m sum(k, 0, l - m, (-1)^k (l + m + k)! / (l - m - k)! / (m + k)! / k! * ((1 - cos(theta)) / 2)^k)) -- integrator I(f) = do( f = f r^2 sin(theta), -- multiply by volume element f = expform(f), -- convert to exponential form f = defint(f, theta, 0, pi, phi, 0, 2 pi), f = integral(f,r), 0 - eval(f,r,0) -- return value ) N = 0 for(la, 0, na - 1, for(ma, -la, la, for(lb, 0, nb - 1, for(mb, -lb, lb, psia = psi(na,la,ma), psib = psi(nb,lb,mb), xab = I(conj(psib) psia r sin(theta) cos(phi)), yab = I(conj(psib) psia r sin(theta) sin(phi)), zab = I(conj(psib) psia r cos(theta)), Tab = conj(xab) xab + conj(yab) yab + conj(zab) zab, test(Tab, do( check(abs(lb - la) == 1), check(abs(mb - ma) <= 1), N = N + 1)) )))) "ok" "Number of allowed transitions" N
Run