5
$\begingroup$

I have implemented a version of Visscher's method for numerically solving the TDSE (A fast explicit algorithm for the time-dependent Schrödinger equation) (also described in Are there simple ways to numerically solve the time-dependent Schödinger equation? ).

$$R(t+\frac{1}{2} \Delta t)=R(t-\frac{1}{2} \Delta t)+\Delta t HI(t)$$

$$I(t+\frac{1}{2} \Delta t)=I(t-\frac{1}{2} \Delta t)-\Delta t HR(t)$$

I was wondering how to implement transparent boundary conditions for such a scheme? If you leave the boundaries uncomputed and set to zero, it produces perfect reflection. I have also tried "pretending" boundary elements are surrounded by zero on all sides other than the non-boundary side - to mimic a wavefront propagating into nothing - this also reflects.

$\endgroup$
  • 1
    $\begingroup$ If you know before hand the asymptotic behavior of your functions you can use something like Infinite Elements, you can also use Boundary Element Method and couple this with your FEM. Some references 1, 2, 3, 4. $\endgroup$ – nicoguaro Oct 24 '14 at 19:25
7
$\begingroup$

Kirill's answer is a good method but it is hampered that the fact that you need to tune it to a specific range in energy, so it is not appropriate if you have a broad-band wavepacket you need to absorb.


An alternative approach is exterior complex scaling, which is reviewed well in

Infinite-range exterior complex scaling as a perfect absorber in time-dependent problems. A. Scrinzi. Phys. Rev. A 81 no. 5, 053845 (2010), arXiv:1002.2520.

The idea is to solve the Schrödinger equation not for $\psi(x)$ but for its analytical continuation, branching off from the real line into the complex plane, at an angle, after all the interesting stuff is done. Thus you solve for $\xi\equiv x\in\mathbb R$ if $x<R$, but instead of a real $x>R$ you change to $x=e^{i\theta}(\xi-R)+R$. The advantage of this is that plane waves of the form $\psi(x)=e^{ikx}$ will change into $$ \psi(\xi) =\exp(ik(e^{i\theta}(\xi-R)+R)) =e^{ikR}e^{ik\cos(\theta)(\xi-R)} \exp(-k\sin(\theta)(\xi-R)), $$ with an exponentially decreasing amplitude regardless of the value of $k$. For more details, see Scrinzi's paper (which deals with a specific discretization scheme for this method) and references therein.


Another method that can work is a complex absorbing potential, of the form $-i\eta x^n$. This is described in e.g.

Investigation on the reflection and transmission properties of complex absorbing potentials. U.V. Riss and H.‐D. Meyer. J. Chem. Phys. 105 no. 4, 1409 (1996)

and as I see it the main ingredient is having a slightly non-hermitian hamiltonian such that $e^{i Ht}$ will tend to decrease the norm of the wavefunction - and choosing the anti-hermitian part $H-H^\dagger$ cleverly enough that only the parts of the wavefunction on the outside are killed off, without introducing discontinuities which would themselves cause reflections. However, this is not usually perfect and can require a fair bit of fiddling and tuning to get it to work well.


A third method, known as the use of an absorbing mask, is relatively crude: take a 'buffer' region just before the boundary and, at every timestep, multiply your wavefunction by a factor which goes to zero at the boundary. There's a bunch of such masks out there and - at a very rough glance - there don't seem to be any specific choices that stick out.

You do want your mask to go down smoothly to zero, or otherwise you're essentially imposing a Dirichlet boundary condition and that will generate reflections. Beyond that, you need to work your specific problem into something that will work for you - which is to say, the method is case-by-case and fairly fiddly to get the reflection coefficient to sufficiently low values.

$\endgroup$
  • $\begingroup$ Thank you for the detailed answer. It turns out I ended up reinventing the absorbing mask, which did the job ok! $\endgroup$ – Sideshow Bob Nov 8 '15 at 9:14
  • $\begingroup$ Yes, I figured you'd have solved this one way or another long ago. This is still a valuable resource for later visitors, though and the more complete it is the better. $\endgroup$ – Emilio Pisanty Nov 8 '15 at 10:37
  • $\begingroup$ Agreed. Anyway you reminded me I still need to finish the project I needed this for..! $\endgroup$ – Sideshow Bob Nov 9 '15 at 10:49
4
$\begingroup$

In the literature these boundary conditions go by the name of absorbing boundary conditions (or nonreflecting, open, radiation, invisible, far-field), and this is a well-known topic. One clear description I think is Absorbing Boundary Conditions for the Schrödinger Equation by Fevens and Jiang.

Here is one approach (described in the above paper; I haven't implemented and checked it directly). If you had the wavefunction $e^{i(-k^2 t + k x)}$, satisfying $\partial_t\psi=i\partial_{xx}\psi$, corresponding to a free plane wave, with a known fixed momentum $k$, then this wavefunction also satisfies the first-order equation $$ (i\partial_x + k)\psi = 0. $$

So if you can guess that a certain wavenumber $k$ is common (because, say, you construct the initial condition to be a wave packet around this wavenumber), the boundary condition $$ i\partial_x + k = 0$$ will be nonreflecting for the part of your solution that has the wavenumber $k$. It will be reflecting for other wavenumbers, but it will be more weakly reflecting for the wavenumbers close to $k$. The sign of $k$ is not arbitrary, and determines the direction in which the boundary is nonreflecting. The paper I linked to gives other, more accurate, boundary conditions as well.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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