2
$\begingroup$

I'm trying to simulate the scattering of a wave-packet at a potential barrier in Python. I'm using a Fourier Transform method (not sure if its the same as the Split-Step method), where I apply Fourier Transform on my initial wavepacket (plane wave in a gaussian envelope) to get the wavefunction in momentum-space: $$\phi(k) = \int^{\infty}_{-\infty} \psi(x) e^{ikx} dx $$ I then calculate the dispersion term, $\omega$, at each $k$ value, $\omega = \frac{\hbar k^2}{2m}$. I can then incorporate the time-evolution operator $e^{-i\omega t}$. This allows me to obtain $\psi(x)$ at a given time:

$$\psi(x,t) = \int^{\infty}_{-\infty} \phi(k) e^{-ikx}e^{-i\omega t}$$ which I achieve through an Inverse Fourier Transform of $\phi(k)e^{-i\omega t}$.

My wavepacket moves as expected, but I am now trying to incorporate a potential barrier. To start, I am trying to get my wave-packet to reflect off of a barrier (like a particle in a box).

I'm a bit unsure of how to implement this into my code. This problem is usually described by having both a incoming and reflected wave in the region before the barrier, so I have implemented a 'reflected' wave-packet which is simply a mirror image of the initial wave-packet with its amplitudes reversed. This can be manipulated to simulate the wave reflecting off the barrier but I'm wondering if there is a more trivial solution.

Questions:

  • Is there a way to incorpate reflection/transmission at a barrier using my method of propagating the wave-packet?
  • I've seen this problem solved using a finite difference method to solve the Schrodinger equation instead, is there an advantage of using that method?
$\endgroup$
2
  • $\begingroup$ I think that you need to find the wavefunctions for your potential barrier. Then do a convolution with your spectrum. $\endgroup$
    – nicoguaro
    Mar 9, 2019 at 15:42
  • $\begingroup$ So define a function for my potential barrier, Fourier Transform it and then convolve with my wavepacket in k-space? Thanks for the suggestion! $\endgroup$ Mar 13, 2019 at 11:34

1 Answer 1

2
$\begingroup$

The neat thing about Fourier codes is that you can achieve very high order derivatives and if you are describing physics which is about waves, then the trigonometric base functions are a good choice. You also have a reasonably fast transform in $\mathcal O(n\log(n)$.

The bad thing about Fourier codes is, that they can only really work well in periodic settings, and they refuse to work wherever you have jumps in your profile.

The best way to describe this is wiki: Fourier rect or wiki: Gibbs phenomenon. If you transform a rect-function into Fourier space you get a nasty sinc function in your spectrum. If your barrier should look something like this, then your Fourier spectrum will deteriorate rapidly and you will not be able to fix that with increasing resolution.

It might at least be advisable to have your barrier be 'smooth' so that the Fourier base functions have a chance at estimating them. It might be advisable to move away from the Fourier-base towards FEM/FV altogether.

$\endgroup$
2
  • 1
    $\begingroup$ Thanks! I realised that using the Fourier method was perhaps a but too complicated for what I needed to do. I have since used a FDTD method to solve the Schrodinger Equation instead and it works perfectly! $\endgroup$ Mar 22, 2019 at 15:30
  • 1
    $\begingroup$ You're welcome! $\endgroup$
    – MPIchael
    Mar 22, 2019 at 15:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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