Test 2: Harmonic Oscillator
For this test, we use the class HarmonicOscillator from section
6.2.1.
mass, omega = 1.0, 1.0
ho = HarmonicOscillator(mass, omega)
xmin = -10.0
xmax = -xmin
ngrid = 64
x = np.linspace(xmin, xmax, ngrid)
v = ho.get_potential(x)
wp_harmonic = QuantumDynamics1D(mass)
wp_harmonic.setup_grid(xmin, xmax, ngrid)
wp_harmonic.set_potential(v)
# displace Gaussian wavepacket
xe = 3.0
psi0 = ho.get_eigenfunction(wp_harmonic.xgrid-xe, 0)
n = 500
nstep = 1000
tstep = (2*np.pi/omega) / n
wp_harmonic.propagate(tstep, nstep, psi0, method="Split Operator")
anim_harmonic = wp_harmonic.animate(
nstep=nstep, delay=10, scalewf=50.0, plot_potential=True,
)