Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

So I used the split step method on the Schrodinger equation and have produced the following equation:

$\Psi(x,t+dt)=F^{-1} \left\{ e^{-i\frac{\hbar^2k^2}{2m}\frac{dt}{\hbar}}F\left\{e^{-iV(x)\frac{dt}{\hbar}}\Psi(x,t) \right\}\right\}$

Which when scaled to dimensionless the time evolution step can be written as:


F above represents the Fourier transform operator acting on the equations. Now my problem is that I don't know how to implement the above in Fast Fourier Transform. For example: If I were to take the exponential factor with V(x), do I multiply -iV(x) by dt? Not sure I understand what is going on here....


share|cite|improve this question
Not sure what your problem is? – Raskolnikov Jan 30 '11 at 14:42
up vote 2 down vote accepted

So, given the dimensionless Hamiltonian $$ \hat{\cal{H}} = \frac{1}{2}\hat{p}^2 + V(\hat{x}), $$ the wave function evolves as $$ \vert\Psi(t+dt)\rangle = e^{-i\hat{\cal{H}}dt}\vert\Psi(t)\rangle = e^{-\frac{1}{2}i\hat{p}^2 dt}e^{-iV(\hat{x})dt}e^{O(dt^2)}\vert\Psi(t)\rangle. $$ The idea is to apply the position-space part of the evolution operator ($e^{-iV(\hat{x})dt}$) to the position-space wave function $\Psi(x, t)$, where it is just a multiplication by $e^{-iV(x)dt}$, and then to apply the momentum-space part of the evolution operator ($e^{-\frac{1}{2}i\hat{p}^2 dt}$) to the momentum-space wave function $\tilde{\Psi}(k, t+dt)$, where it is just a multiplication by $e^{-\frac{1}{2}ik^2 dt}$. To evolve the wave function in this approximation (errors are introduced because terms of order $dt^2$ arising from the noncommutativity of $\hat{x}$ and $\hat{p}$ are being omitted), you would typically choose a small value for $dt$ and a discretization for $x$ and $k$, and then repeatedly apply the four operations shown in your expression above: multiply by the potential energy term, apply the FFT to convert to momentum space, multiply by the kinetic energy term, and apply the inverse FFT to convert back to position space.

share|cite|improve this answer
ok I get that, but none of the terms have a time dependence variable do they?(they don't change with time, but with displacement?) I'm having difficulty implementing the above in C, I have a FFT recipe from a book (Numberical recipes in C - 2nd Edition, P504). – chutsu Feb 1 '11 at 19:09
@chutsu: No, the only appearance of time is through $dt$. What specific difficulty are you having? – mjqxxxx Feb 3 '11 at 19:06
@chutsu: Your FFT algorithm is a discretization of the original problem. The time dependence is not really very explicit anymore, but it is there. First as mjqxxxx points out, there is the time interval $dt$, but more importantly, the wave function at time-step $t+dt$ is given as a function of the wave function at time step $t$ with some extra operations performed on it. So, if you want the full time development, you have to iterate and repeat the same procedure over again but with $\psi(t+dt)$ in the input to obtain $\psi(t+2dt)$ in the output, etc... – Raskolnikov Feb 3 '11 at 21:37

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.