test_sho.py 693 B

123456789101112131415161718192021
  1. from sympy.core import symbols, Rational, Function, diff
  2. from sympy.physics.sho import R_nl, E_nl
  3. from sympy.simplify.simplify import simplify
  4. def test_sho_R_nl():
  5. omega, r = symbols('omega r')
  6. l = symbols('l', integer=True)
  7. u = Function('u')
  8. # check that it obeys the Schrodinger equation
  9. for n in range(5):
  10. schreq = ( -diff(u(r), r, 2)/2 + ((l*(l + 1))/(2*r**2)
  11. + omega**2*r**2/2 - E_nl(n, l, omega))*u(r) )
  12. result = schreq.subs(u(r), r*R_nl(n, l, omega/2, r))
  13. assert simplify(result.doit()) == 0
  14. def test_energy():
  15. n, l, hw = symbols('n l hw')
  16. assert simplify(E_nl(n, l, hw) - (2*n + l + Rational(3, 2))*hw) == 0