Mephisto
Jul21-08, 12:03 PM
I am looking for a way to evolve a wave function in one dimension. I tried searching already but couldnt find anything. Basically I have:
V[x] gives the potential at x
Psi0[x] gives initial conditions on wave function for each x
I would like to calculate Psi[t,x], the wave function at any time t given those two arrays. How could I go about doing this?
Ben Niehoff
Jul22-08, 06:45 PM
You'll need two arrays for Psi, for the real and imaginary parts. Omitting various constants, Schrodinger's equation is
i \partial_t \psi(x,t) = - \partial_x^2 \psi(x,t) + V(x) \psi(x,t)
A simple way to implement time-evolution, if you don't need to be extremely precise, is to simply discretize Psi and V and rewrite Schrodinger's equation as a finite difference equation. You can approximate as follows:
\partial_t \psi(x,t) \approx \frac{\psi(x,t+\Delta t) - \psi(x,t)}{\Delta t}
\partial_x^2 \psi(x,t) \approx \frac{\psi(x+\Delta x,t) - 2 \psi(x,t) + \psi(x - \Delta x,t)}{\Delta x^2}
You'll have to take some care at the endpoints (x min and x max) to keep errors from propagating due to the finite length of your Psi array. That is, you need some way of assuming what the value of Psi is beyond the limits of the array, so that you can take accurate finite differences.
Once you figure that out, merely plug these approximations into Schrodinger's equation, and you'll get an algebraic equation that you can solve for \psi(x, t+\Delta t) in terms of your Psi array at the current instant of time.
Note: If you want to, you can even include a time-varying potential! Then you can simulate, for example, what happens to a particle in a potential when it is hit by a pulse of light. Have fun!
vBulletin® v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.