STUDENT: So you're probably all familiar with the field
measured in this paper here by Shrodinger,
which is a quantum theory.
And you surely also know that the students
have a lot of problems visualizing
it, and understanding its behavior in some intuitive way.
For example, you know the tunneling effect.
And you won't expect a classical cat to just tunnel
through potential wall.
What I am going to show you in this presentation
is an algorithm called the split operator Fourier transform
algorithm, which can be used to describe quantum tunnel
evolution, and therefore, for example, the tunneling effect.
And I think that it also might be interesting for you
as material scientists, on the one hand, because you might
be interested in time evolution of your properties,
especially for nanosystems, quantum systems.
But on the other hand, I will show you
iteration of this algorithm which can also
be used to derive other algorithms,
like the [INAUDIBLE] algorithm.
And you also see some methods to judge you
how good a simulation is.
And I think that might be useful for you if you [INAUDIBLE]
want to do some simulations on other systems.
So in doing this, we are going to start at the foundations,
which is Schrodinger equation.
In it's time-dependent version, it looks like this.
So you have your state.
And then you derive it after t.
And then it's the same.
Like, if you apply your Hamiltonian to a state t,
and if you integrate this equation here
for time-independent Hamiltonian,
you get this equation here which tells you
that, if you apply this thing here with a Hamiltonian
exponential to your state at time zero,
you get out your state at time t.
And you do this behavior as it propagates a wave
function from time 0 to time t.
We call this object here propagator.
And this object will be the main focus of this review.
And if you don't know, this Hamiltonian
here gives us the total energy and is [INAUDIBLE]
out of two parts, mainly kinetic part and the potential part.
And in general, you write this kinetic part
here with the momentum, so it tells you
how fast the cat moves.
And the potential part is some function,
in most cases of x, which is your coordinate
in the classical Cartesian space, for example.
And it tells you how your potential looks
like in which the cat moves.
So let's focus on the propagator.
And the first thing you might write
is that you don't do the huge step from time 0
to time n in one step.
So you might think, if your cat, your system, a number of small
kicks to go in that way from time 0 to time t.
And you can write this down by using just a small time
step, epsilon, which is t, your whole time,
divided by number of steps.
And then you do this n times, one after another.
So you might ask, does it help us?
And the answer is, unfortunately, no,
because we still don't know how to compute
the application of this operator to some general stage.
So a second thing you might ask, OK, I know my Hamiltonian
looks like this.
So I have a kinetic part, a potential part.
Might I be able to just write this propagator down
as a product of two propagators, so one for the kinetic part
and one for the potential part?
And this still isn't true and helpful
because we don't know if this is really
a true rewriting, because, in general, quantum mechanics
operators don't [INAUDIBLE] place or a row
which all of your [INAUDIBLE].
So but the world isn't that bad.
Schrodinger gave us an equation which
helps us to do this time evolution in quantum mechanics.
And it's this split up equation here.
And it tells us, if you use, for example, this split
up here, so half a time step in potential,
and a full time step in kinetics,
and half a time step in the potential,
and if you do this for an infinite number of times,
this is really, really, really time steps, it
is an exact rewriting of the original equation.
So this is really helpful, because now we
know that this is a controllable approximation which get better
if we use more time steps.
Up to here, we're all totally abstract.
So we just use Dirac notation for our state, psi.
And if you don't know this equation here
or this form of writing this down, don't bother.
It's just Dirac's notation, and just tells us
that we now go from a general state, psi,
to a more-- to a basis.
We project into a coordinate representation,
to a coordinate basis.
And this gives us then our state psi at some position x0,
if I predict onto x0, for example, here, [INAUDIBLE]
here.
And after some algebra, which is really, if we could,
I will show you this in a note which I will provide you
with, you see that you get this equation out here, which
is the most important one.
And this [INAUDIBLE] cross just gives us our algorithm.
So we start with our wave function
in some current representation at time zero.
Then we apply our potential propagator,
which looks similar to what we had here for half a time step.
And then we have two interesting parts here,
because we have integrals with some special form.
And you hopefully recognize that these two integrals are just
Fourier transforms.
So we start here on coordinate representation,
and then Fourier transform it to our momentum basis.
And in the momentum basis, we then
apply our kinetic propagation, which has a p in it.
And then we go back from momentum basis
to quantum basis using a Fourier transform again,
and then can apply our potential propagation
a second time to complete the time step.
If you write it down in an algorithm, it looks like this.
It's really simple, just a few lines.
So we started from our state in some coordinate basis.
Then we have to use a grid to discretize our system,
and so we have some points on which we compute the time
evolution on.
And then we just apply this exponential operator here,
this potential propagator for half a time step.
Then we do this Fourier transform into our momentum
basis in which a cat maybe doesn't
look that familiar to us because we are more used
to a coordinate representation.
Here we can then apply our potential-- our momentum
propagation.
So you have here your momentum squared and then a time step,
and then just go back to the coordinate representation
via a inverse Fourier transform, and then
can apply the last half time step
for our potential propagation.
And this is the algorithm which is still used today,
although it's so simple it's often
used as a benchmark for new approximations.
So let's apply it to some real examples, for example,
for a free wave packet.
And what I show here is the wave packet of two different masses.
So here I have a lighter one.
And here I have a heavy one.
And what you see in red is [INAUDIBLE]
is the probability density in Bond's interpretation
of quantum mechanics.
And in blue you have the wave function.
And what you see is that both wave functions oscillate,
but this here remains localized, whereas this here
tends to spread out in the space it has.
And this is some general behavior of quantum systems.
And it's closely linked to what you call in German,
[SPEAKING GERMAN],, which is, in English,
the Heisenberg Uncertainty Principle,
and which tells you that you have problems with studying
quantum systems at state [INAUDIBLE] localize.
So they tend to spread out.
And it's just what you see here, the classical system,
the heavy one tends to be localized on this timescale
which we study, whereas this light one tends to spread out
in the space it has.
And what you also see here is that we
study two additional properties of our system, which
are the norm and the energy.
And we do this to check if our simulation is correct.
So you know that psi's corrective [INAUDIBLE]
and probability density and the probability
to find your system somewhere should remain
constant of the simulation.
Similar holds for the energy, which should remain constant
over the simulation, as we don't add or remove energy
from our system.
Therefore, this should always remain constant.
So these are two useful things to study of your simulation
to see if it really shows you real behavior or not.
So a more complicated example might
be using one potential wall.
And you probably have seen in your quantum mechanics
introduction course that there is this tunneling effect,
and that it shows some dependence
on the height of the barrier.
So this is what you can see here.
Maybe it's the first time you see this
really in some animation.
So you see that for height area, which is shown here on top,
some part of-- or most of the wave function
just gets reflected and can't tunnel through the wall,
whereas for the small potential wall, most of the packet
can just travel through the wall.
And therefore, you have now these more complicated
interference patterns.
Of course, you have this transmittance and also
periodicity of the system, which then gives this interference
pattern here.
A even more complicated example would
be if you applied two potential walls.
And again, [INAUDIBLE] wave packet in the middle and then
let it evolve in time.
We just apply our split operator algorithm.
And then we see that it sometimes
encounters the first wall.
And here we see, again, a part gets reflected
and a part passes through wall.
But what you also can see here, as was in the previous example,
we have some problems in energy conservation.
So with these settings here, the simulation
is probably not the best one.
So you might ask, how can I improve this?
And the first thing one might try is using another time step.
So in total, you can show that the time step--
[INAUDIBLE] time step is connected to your error
with the order of three.
So you might try a small time step, which I did here.
And it takes much longer to compute this evolution then.
And unfortunately, you see that you basically
get for this system here basically the same evolution,
which tells us that this time step was appropriate
or good enough to study the system.
So the second thing one might try, OK,
one might use a finer grid.
And then it gets really expensive, which is also
the main drawback of this algorithm,
that it really gets expensive as you go to more dimensions.
So I had to run the simulation here over night.
And I also only used half of the total time.
And I also didn't save this animation here,
because it would just take too much memory.
And I don't know the computer could do this.
So what I will show you here is the last step of the simulation
here.
And then we will compare it to the old simulation
and see whether it's at the same state here
and just compare the energy convergence of both cases.
And I think it's now at the same stage.
And you see that here we have a much better energy
difference compared to an initial state than here.
So this might be a way to improve our simulation,
although you always have this tradeoff
between time-step size, grid size, grid
spacing, and simulation time.
So you always have to consider if you
want to do this heavy calculations
or if you could use fine--
less fine settings to get the same results.
So what I have shown you in this video
is how to go to an algorithm which
you can use to study quantum dynamics
with control [INAUDIBLE] approximations,
because we exactly know where we introduce our approximation.
And we introduce our approximation
at the Trotter split up.
And we exactly know how large this error is at the step.
We then saw two applications in quantum mechanics, which
are to the uncertainty principle and to the tunneling effect.
And then we also saw two methods which
you can use to judge the convergence of your simulation.
And then we got a bit of a feeling of the influence
of grids, and time steps, and the tradeoff
between simulation time and how accurate your results will be.
I hope that it might be helpful for you
and you might remember part of this presentation.
If you study molecular dynamics for example,
you might see some similarities between the [INAUDIBLE]
operator formalism and this formalism I showed you here.
I hope also this was enjoyable.
I have a bit of a cold, so I hope
you understood everything, although my voice isn't
that clear.