VIEWS: 13 PAGES: 7 POSTED ON: 11/16/2010 Public Domain
EP475 – Computaional Methods in Physics 1 7 – QUANTUM MECHANICS 7.1 Basic postulates In quantum mechanics, a wave function, , can be associated to a particle. For the 1D case: Normalization condition: *dx | | dx 1 2 (7-1) Expectation value and uncertinity of the positon: x x | | 2 dx , x 2 x 2 | | 2 dx and x x x 2 2 (7-2) Probability of finding particle between [a,b]: b P | | 2 dx (7-3) a Example: Assume that the wave function (wfn) of a particle confined in the region between [–a, a] is given by: ( x) a 2 x 2 if a = 2 calculate (a) normalization constant of wfn (b) expectation value of position of the particle (c) the probability of finding particle between [–a/2,a/2]. Use Simpson routine to solve the integrals for n = 4. 1 (a) N 0.306 2 (4 x 2 )dx 2 2 (b) x x(4 x 2 )dx 0 2 1 (c) P (0.306) 2 (4 x 2 )dx 0.69 1 EP475 – Computaional Methods in Physics 2 7.2 Time-Independent Schrödinger Equation Schrödinger's equation (time- independent, one-dimensional) for a particle of mass m is: 2 d 2 V ( x) E (7-4) 2m dx 2 Normally one would take units m 1 in which to simplify the algebra. This equation then becomes: d 2 2(V ( x) E ) (7-5) dx 2 This equation is similar to many other second order differential equations, with one interesting twist, the energy, E, is also unknown. Consequently, the numerical solution of this equation must determine both (x) and E. 7-3 Example Applications: Infinite deep well The time- independent Schrödinger Equation for a free particle (V(x)=0) of mass m in an infinitely deep well ∞ ∞ whose width is L is given by: 1 d 2 E 2 dx 2 and energy eigenvalues m 2 En n 2 49348022 n 2 x 2 0 L In the numerical solution, at x = 0 we can select (0) 0 and ' (0) 1 since the Schrödinger Equation is linear, we also know that a solution can be multiplied by a constant factor and still be a solution. The method of solution for Eqn. (7.5) is to pick a values of E, propagate the solutions to the end of the box to determine if they match the boundary condition at x=L. If they do not, adjust the value of E and try again. This is procedure is known as Shooting Method and the task is performed by the calculate routine given below. EP475 – Computaional Methods in Physics 3 Main Program: main.f90 PROGRAM Main IMPLICIT NONE REAL :: E E = 0.0 CALL Calculate(E) CONTAINS INCLUDE 'calculate.inc' END PROGRAM Main Calculate Routine: calculate.inc SUBROUTINE Calculate(E) !--------------------------------------------------- ! returns energy eigenvalue of the particle in a box !--------------------------------------------------- REAL, INTENT(INOUT) :: E INTEGER, PARAMETER :: N = 100 ! number of part REAL, PARAMETER :: L = 1.0 ! width of the well REAL, PARAMETER :: dx = L/N ! step size INTEGER :: I,Iter REAL :: x,PSI,PSI_OLD,z,dE,Enew,Tol dE = 0.1 ! energy step Enew = E ! calculated new energy Tol = 1E-6 ! tolerance for |Enew-E| E = E + dE PSI_OLD = 0.0 Iter = 0 DO x = 0.0 ! at x=0.0 PSI = 0.0 ! PSI z = 1.0 ! PSI' DO I=1,N PSI = PSI + z*dx z = z + (-2*E*PSI)*dx IF(ABS(PSI)>2) EXIT ! Is psi diverging ? x = x + dx END DO IF(PSI*PSI_OLD<0) dE = -dE/2 PSI_OLD = PSI E = E + dE IF( ABS(Enew-E)<1E-6 ) EXIT Enew = E Iter = Iter + 1 PRINT *,Iter,E END DO END SUBROUTINE Calculate EP475 – Computaional Methods in Physics 4 Output of the program: 1 0.200000 2 0.300000 ... 26 2.700000 27 2.799999 28 2.899999 ... 66 4.934422 67 4.934373 68 4.934397 69 4.934385 70 4.934391 71 4.934397 72 4.934394 73 4.934396 Final energy value 4.934396 is in good agreement with ground state energy 493448022 even we have used Euler steps. If one can select N=1000 and Tol=1E-9 then 1 0.200000 2 0.300000 ... 79 4.934796 80 4.934796 81 4.934797 This result is more accurate than the first one. Actua lly, if we use fourth order Runge-Kutta method instead of Euler (with N=100 and Tol=1E-9) then: 1 0.200000 2 0.300000 ... 65 4.934801 66 4.934803 67 4.934802 68 4.934802 The program can also be used to determine the energies of exited states. But you should put exclamation before PRINT *,Iter,E and modify the main program such that: EP475 – Computaional Methods in Physics 5 Main Program: main2.f90 PROGRAM Main2 IMPLICIT NONE REAL :: E INTEGER :: I E = 0.0 DO I=1,5 CALL Calculate(E) PRINT *,I,E END DO CONTAINS INCLUDE 'calculate.inc' END PROGRAM Main2 Now out of the program (for N=100 and Tol=1E-9) will be: I E (euler) E (RK4) E (Exact) 1 4.9343958 4.9348025 4.9348025 2 19.7327175 19.7392159 19.7392101 3 44.3803558 44.4132767 44.4132233 4 78.8529968 78.9571686 78.9568405 5 123.1166000 123.3712997 123.3700638 EP475 – Computaional Methods in Physics 6 Symmetric potentials When the potential is symmetric, the wave functions can be written as purely odd or purely even functions of x. An even parity solution requires : (0) 1 and ' (0) 0 An odd parity solution requires : (0) 0 and ' (0) 1 Since the Schrödinger Equation is linear, one can later use the normalization condition, * 1, to determine the precise multiplier. The method of solution for Eqn. (7.5) is to pick a values of E, propagate the solutions (for a given parity) to large x to determine if they match the boundary condition at large x. If they do not, adjust the value of E and try again. Here some important parts of the programs are given to solve the Scrödinger equation. Calculate Routine: calculate.inc SUBROUTINE Calculate(E) !---------------------------------------------------- ! returns energy eigenvalue of the particle in a well ! *** even parity solution only *** !---------------------------------------------------- ... Mstep = 20*N ! ? DO x = 0.0 ! at x=0.0 PSI = 1.0 ! PSI z = 0.0 ! PSI' DO I=1,MStep PSI = PSI + z*dx z = z + (V(x)-2*E*PSI)*dx IF(ABS(PSI)>2) EXIT ! Is psi diverging ? x = x + dx END DO ... END DO END SUBROUTINE Calculate Also you should define the potential function: Potential function. potential.inc REAL FUNCTION V(x) REAL, INTENT(IN) :: x V = ... END FUNCTION V EP475 – Computaional Methods in Physics 7 and you should re-write the main program: Main Program: main3.f90 PROGRAM Main3 ... CONTAINS INCLUDE 'calculate.inc' INCLUDE 'potentail.inc' END PROGRAM Main3 In Lab, you will write a Fortran program to calculate energies of first few levels of the following potentials: (a) V(x)=|x| (linear potential) (b) V(x)=x2 /2 (harmonic oscillator) (c) V(x)=x4 (unharmonic oscillator) Finally you will re-wite all the codes to solve Eqn. (7-5) by fourth-order Runge-Kutta Method both even and odd parity case to plot the wave functions Normally, we will leave this task for homework. Ahmet Bingül Feb 2004