DOING PHYSICS WITH PYTHON

 

QUANTUM MECHANICS                

TIME DEPENDENT SCHRODINGER EQUATION

FINITE DIFFERENCE TIME DEVELOPMENT METHOD

FREE PARTICLE: GAUSSIAN WAVEPACKET PROPAGATION

 

Ian Cooper

 

matlabvisualphysics@gmail.com

 

 

DOWNLOAD DIRECTORY FOR MATLAB SCRIPTS

 qm005.py

   GitHub

   Google Drive

 

 

GAUSSIAN PULSE PROPAGATION

As an example of solving the [1D] time dependent Schrodinger equation for a free particle (unbound particle), let’s consider an electron confined to the X axis in the region from  to . The electron is represented by a wavepacket to localize it. An initial state described by the Gaussian function is

       

 

where A is a normalized constant and is calculated so that ,  xc is the centre of the Gaussian wavepacket, s determines its width and   is the wavelength. The time evolution of the wavepacket  is found from its initial state  by solving the [1D] time dependent Schrodinger Equation using the Finite Difference Time Development Method.

 

This unbound state is in a classically allowed region and so the energies of the system are not quantized and the total energy E can vary continuously.

 

In the Python code qm005.py, the initial state (t = 0) of the wavepacket is expressed in terms of its real (yR) and imaginary (yI) parts:

 

            

              

 

 

The particle represented by a wavepacket is localized in space with an approximately well-defined momentum  or wavelength  .  However, the momentum or wavelength are not precisely defined for a wavepacket as momentum is not an eigenfunction but a mixture of momentum of eigenfunctions with a whole range of momentum values centre around .

                nominal or peak or centre momentum of wavepacket

          nominal or peak or centre wavelength of wavepacket

 

When the wave packet strikes a boundary at x = 0 or x = L, reflections occur. This may cause problems, so it may be necessary to terminate a simulation before any reflections occur.

 

The accuracy of the FDTD method is improved as  and  are made smaller. The numerical predictions are more accurate and consistent with a large value of .

 

SIMULATIONS

Simulation parameters for Script qm005.py

     Nx = 701                    number of grid points for x-axis

Nt = 4200                   number of time steps

L = 5x10-9 m              simulation region 

xC = 5x10-10 m         centre of pulse          nx1 = round(Nx/10)

S = L/25                      width of pulse

 = 1.5x10-10 m      wavelength

C1 = 1/5

f =100                       number of animation frames

 

An animation of the time evolution of the Gaussian wavepacket is shown in figure 1.

Fig. 1.   Animation of the Gaussian wavepacket from its initial state. The top graph shows the real part of the wavefunction, the middle graph the imaginary part, and the bottom graph, the probability density.

 

Fig. 2.   Time evolution plots. The uncertainties in the position  and momentum , and the product of the uncertainties  show that the Heisenberg Uncertainty Principle is satisfied since .

 

You will notice that the width of the wavepacket grows with time, i.e., wavepacket spreading.

Although, the wavefunction develops real and imaginary parts, both of which have lots of wiggles, the probability density turns out to be another Gaussian function with a width that increases with time. Eventually, the width of the wavepacket is proportional to time (figure 2).

 

The initial wavefunction has a spread of momentum and this distribution of momentum remains constant for a free particle because there are zero forces to change it. Since there is a spread in possible momenta, there is also a spread in velocities . This spread in velocities gives rise to the uncertainty in position of the particle that increases with time.

 

The wavepacket as it spreads propagates in the +X direction. Since there are zero forces acting on the system, the momentum of the wavepacket is constant, as a result, the expectation values of momentum, total energy, kinetic energy and potential energy are constants, independent of time.

 

In the time evolution of the wave packet the Heisenberg Uncertainty Principle is satisfied.  You can decrease the width of the wavepacket and run a simulation. You will notice that decreasing the spatial width of the initial wave packet increases the spread of momenta and therefore increases the rate at which the wavepacket spreads.

 

We can calculate the classical values of velocity, momentum and kinetic energy:

            

 

where  is the distance travelled by the pulse in the time interval . The classical velocity is the speed at which the centre of the wavepacket propagates and this speed is called the group velocity .  These calculations are displayed in the Console Window

 

Classical values

   v = 4.78e+06   m/s

   p = 4.35e-24   N.s

   K = 64.84   eV

 

We can calculate the expectation values of velocity, momentum and kinetic energy:

 

            

 

Expectation values

   v = 4.85e+15   m/s

   p = 4.42e-24   N.s

   K = 66.81   eV

 

There is excellent agreement between the classical predictions and the expectation values.

 

For the wave nature of the wavepacket, the momentum and energy are given by the equations and  where the subscript 0 indicates the nominal value. If you inspect the animation of the propagation of the wavepacket, you will observe “ripples” moving within the wavepacket and they propagate at the nominal phase velocity, . The wavepacket as a whole moves at the group velocity which is twice as fast as the ripples within it moving at the phase velocity, or

 

Group and Phase velocities

   wL _0  = 1.50e-10   m

   p_0     = 4.35e-24   N.s

   f_0      = 1.62e+16   Hz

   vGroup  = 4.78e+06   m/s

   vPhase  = 2.42e+06   m/s

   vGroup / vPhase  = 1.97 

 

 

We can perform a Fourier transform on the wavepacket function to compute the power spectrum density (psd) in momentum space . The Fourier transform is computed by integration of the Fourier integral and not by the FFT method.

Figure 3 shows the psd in momentum space for = 0.15 nm.

 

Fig. 3.   Power spectral density functions in momentum space. The Fourier transform of a Gaussian function is a Gaussian function.

 

The wavepacket is a mixture of waves moving at a whole range of velocities (momenta), so as it moves along, some of these components move faster than others. Soon this dispersion causes the wavepacket to spread out (just as a large group of hikers naturally spreads out along the trail, with the faster ones in the lead and the slower ones behind). Although the wavelength of the oscillations within the packet is initially uniform, it will not remain uniform. The wavepacket moves and spreads, its leading edge will contain shorter-wavelength (higher-velocity) oscillations, while its trailing edge will contain longer-wavelength (lower-velocity) oscillations. Meanwhile the peak amplitude of the wavepacket will decrease, to conserve probability as the width increases as illustrates in the animation of figure 1.

 

All that can happen to a classical particle is that it can move from one position to another. But, a quantum mechanical wavepacket undergoes a more complicated evolution with time in which the whole probability distribution shifts and spreads with time. The Ehrenfest’s theorem is a general statement about the rates of change of  and  in quantum-mechanical systems.

 

Ehrenfest’s theorm

If a particle of mass m is in a state described by a normalized wavefunction in a system with a potential energy function , the expectation values of position and momentum of the particle obey the equations

 

         

 

In this simulation, you can see that Ehrenfest’s theorem is satisfied. The momentum and its uncertainty remain constant. The distance d that the peak of the probability distribution moves in the time interval  is

           

 

      

 

 

 

You can also visualize the complex phase of the wavepacket, where a colour is used to represent the phase between the real and imaginary components. Figure 4 shows the complex phase of the Gaussian wavepacket at the start and end of the simulation period. Figure 5 shows an animation of the changing complex phase changes as the wavepacket propagates.

Fig. 4.   The complex phase of the Gaussian wavepacket at the start and end of the simulation period.

 

Fig. 5.   Animation of the complex phase as the Gaussian wavepacket propagates.

 

NOTE: Figures 4 and 5 are produced in Matlab. I have not worked out how to make the animations in Python as yet.