Why Does My FFT-Based Split Operator Simulation Produce Unexpected Results?

In summary, the user is seeking help with the split operator + FFT algorithm for solving the Schrödinger equation in time. They are experiencing unexpected results and have looked into using "fftshift" in their code. Suggestions for troubleshooting include checking input values, increasing the simulation grid size, and reaching out to other experts for advice.
  • #1
coelurus
1
0
Hi! This is my first post on these forums.

I'm having some problems with the split operator + FFT algorithm to solve the Schrödinger equation in time. A real Gauss curve in a zero potential environment should simply flatten out, but I get two peaks as the following Matlab run shows:

http://coelurus.thorntwig.se/data/pics/splitop.jpg"
http://coelurus.thorntwig.se/data/tjo.m"

The real problem I assume is that I have no experience at all in using FFT for numerical simulations similar to this method and I can't find any good references on it either.
Any hints, ideas or pointers would be much appreciated!

EDIT: I found a "solution", but I am not sure how to interpret it yet. I had a look in the WavePacket package and it seems that one has to shift both position and momentum space (in Matlab, one would use "fftshift") before and after each FFT. If anybody knows a rigid answer to that I would be overjoyed :) So yes, it works, but I'd like to see why...
 
Last edited by a moderator:
Physics news on Phys.org
  • #2


Hi there! I'm glad to see you're working on the Schrödinger equation using the split operator + FFT algorithm. It's a powerful technique for solving time-dependent problems in quantum mechanics.

From your post, it seems like you're encountering some unexpected results with your simulations. I can understand your frustration, as it can be difficult to find good references on this method. However, there are a few things you can try to troubleshoot your issue.

First, make sure you are using the correct parameters for your simulation. The split operator + FFT algorithm relies on accurate values for the wavefunction, potential, and time step. Double check your code and input values to make sure they are correct.

Another thing to consider is the size of your simulation grid. If it is too small, you may not be capturing all of the relevant features of the wavefunction. Try increasing the size of your grid and see if that helps with the issue you are experiencing.

You mentioned that you had a look at the WavePacket package and found a solution involving shifting both position and momentum space before and after each FFT. This is a common technique used in FFT-based simulations, and it helps to ensure that the results are accurate and consistent. I would recommend incorporating this into your code and seeing if it improves your results.

Finally, if you're still having trouble, it may be helpful to reach out to other researchers or experts in this field for advice. They may be able to provide some insight or point you towards additional resources that could help.

Good luck with your simulations, and don't get discouraged! It can take some trial and error to get everything working smoothly, but I'm sure you'll get there. Keep us updated on your progress!
 

FAQ: Why Does My FFT-Based Split Operator Simulation Produce Unexpected Results?

What is a split operator with FFT?

A split operator with FFT is a method used in computational physics to solve time-dependent partial differential equations (PDEs). It combines a split operator method, which breaks down the PDE into simpler equations, with a Fast Fourier Transform (FFT), which efficiently calculates the spatial derivatives.

How does a split operator with FFT work?

A split operator with FFT works by splitting the PDE into simpler equations that can be solved separately. Then, the FFT is used to numerically calculate the spatial derivatives of each equation. Finally, the solutions are combined to obtain the solution to the original PDE.

What types of PDEs can be solved using a split operator with FFT?

A split operator with FFT can be used to solve a wide range of time-dependent PDEs, such as the Schrodinger equation, the Navier-Stokes equation, and the heat equation. It is particularly useful for PDEs with periodic boundary conditions or for systems with a large number of spatial dimensions.

What are the advantages of using a split operator with FFT?

There are several advantages to using a split operator with FFT. It allows for efficient and accurate solutions to time-dependent PDEs, particularly in high-dimensional systems. It also preserves symmetries of the original PDE, such as conservation laws, and can be easily parallelized for faster computation.

Are there any limitations to using a split operator with FFT?

While a split operator with FFT is a powerful method for solving PDEs, it does have some limitations. It is most effective for systems with periodic boundary conditions, and may not be suitable for systems with non-periodic or irregular boundaries. It also requires careful handling of boundary conditions and time steps to ensure accurate solutions.

Back
Top