Spaces:
Sleeping
Sleeping
from sympy.physics.pring import wavefunction, energy | |
from sympy.core.numbers import (I, pi) | |
from sympy.functions.elementary.exponential import exp | |
from sympy.functions.elementary.miscellaneous import sqrt | |
from sympy.integrals.integrals import integrate | |
from sympy.simplify.simplify import simplify | |
from sympy.abc import m, x, r | |
from sympy.physics.quantum.constants import hbar | |
def test_wavefunction(): | |
Psi = { | |
0: (1/sqrt(2 * pi)), | |
1: (1/sqrt(2 * pi)) * exp(I * x), | |
2: (1/sqrt(2 * pi)) * exp(2 * I * x), | |
3: (1/sqrt(2 * pi)) * exp(3 * I * x) | |
} | |
for n in Psi: | |
assert simplify(wavefunction(n, x) - Psi[n]) == 0 | |
def test_norm(n=1): | |
# Maximum "n" which is tested: | |
for i in range(n + 1): | |
assert integrate( | |
wavefunction(i, x) * wavefunction(-i, x), (x, 0, 2 * pi)) == 1 | |
def test_orthogonality(n=1): | |
# Maximum "n" which is tested: | |
for i in range(n + 1): | |
for j in range(i+1, n+1): | |
assert integrate( | |
wavefunction(i, x) * wavefunction(j, x), (x, 0, 2 * pi)) == 0 | |
def test_energy(n=1): | |
# Maximum "n" which is tested: | |
for i in range(n+1): | |
assert simplify( | |
energy(i, m, r) - ((i**2 * hbar**2) / (2 * m * r**2))) == 0 | |