I made a small program to simulate the time development of a 1D wavepacket obeying the Schrodinger equation, mostly in order to learn a new programming language - so in order to not have to invoke big numerical methods packages, I opted for the simplest solution: The standard three-point finite-difference discretization for the Laplacian (kinetic term), and the 4-order Runge-Kutta method to propagate the wavepacket forward.(adsbygoogle = window.adsbygoogle || []).push({});

I notice that sooner or later, my wavepacket will start to develop oscillations on the smallest wavelengths, followed by a blowup. If I include a step potential to reflect against, this happens once the wavepacket encounters the potential. Otherwise it seems to happen when the wavepacket scatters against itself across the periodic boundary (as it expands).

Changing my three-point finite-difference to a five-point stencil only makes the problem worse.

I know that there are much better methods for PDE solving (e.g. Crank-Nicolson). But that's not really the point here. Now I am curious: What is the cause of this behavior? And-can I tweak the FD+RK so I can get it to work?

**Physics Forums - The Fusion of Science and Community**

Join Physics Forums Today!

The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

# Finite difference and Runge-Kutta for PDEs

Loading...

Similar Threads - Finite difference Runge | Date |
---|---|

Finite difference Method of Wave Equation | Mar 11, 2017 |

Python Using backward vs central finite difference approximation | Oct 5, 2016 |

Question about Finite State Automatons | Oct 11, 2012 |

Find all the permutations given some finite characters | Oct 5, 2012 |

Heat equation finite difference in c++ | Apr 10, 2008 |

**Physics Forums - The Fusion of Science and Community**