1
$\begingroup$

The time-dependent Schroedinger equation (TDSE) depends linearly on the system's initial state $\vert \psi(0) \rangle$, such that the solution can be generally written as

$$ \vert \psi(t) \rangle = \exp \left( \frac{i}{\hbar} \int_0^t \text{d}t' \widehat{H(t')} \right) \vert \psi(0) \rangle \quad , \quad (1) $$

where the [possibly time-dependent] Hamiltonian operator is given by $\widehat{H(t)}$.

A common technique to numerically solve the above equation is to use the Zassenhaus formula to approximately split the exponential for an infinitesimal time $\Delta t$. The error one gets depends on how this splitting is performed: simple schemes, such as the famous leapfrog method, have an [energy] error of $\mathcal{O}(\Delta t^2)$. Yoshida, Strang, Feit and others showed that smart splitting schemes can produce methods of arbitrary accuracy, albeit paying the price in computational cost. These splitting methods are known as "spectral methods". After choosing a splitting scheme the final wavefunction is obtained recursively and, for separable Hamiltonians expressible as a sum of kinetic plus potential energies, solved by moving back and forth in momentum and position representations by the repeated use of Fast Fourier Transforms (FFTs).

A much more general scheme is the Crank-Nicholson method, which in principle can be used to solve equations that are a lot more complicated than the TDSE and is a stable, also $\mathcal{O}(\Delta t^2)$ [in energy] method. In general, the solution to these equations cannot be written in the simple form (1), and spectral methods such as the ones described above are not available. In these cases it makes sense to think about Crank-Nicolson, but for the TDSE there is a plethora of super sophisticated/efficient spectral schemes available.

Why, then, do I keep stumbling into papers that employ Cranck-Nicholson to solve the TDSE?

$\endgroup$
2
  • 3
    $\begingroup$ Because this combination of central differences and trapezoidal method (A-stable but not L-stable) is easy to understand, easy to implement, especially when using spaghetti code in Matlab, runs sufficiently fast and gives results that are good enough. There is some high threshold of effort (intellectual and in coding) to go to higher-order methods, perhaps comparable to the step from fixed-step RK4 for scalar ODE to adaptive-step methods for (strictly) ODE systems. $\endgroup$ Commented Oct 1, 2022 at 7:27
  • $\begingroup$ @LutzLehmann Thanks for your input. Since the main reason to use Crank-Nicolson (CN) is ease of use, would you agree that there is no reason to move from a high-order, efficient spectral method to CN? Due to the many papers I've recently read that used it, I almost started coding my own routine due to fears that CN would be better than the Blanes and Moan's 4th order algorithm that is my goto method. Btw, if you post your comment as an answer, I will accept it. $\endgroup$ Commented Oct 1, 2022 at 14:45

0