Relating the Energy Minimization to the Differential Equation
We begin by minimizing the energy given in Rydbergs (h/2π =1, 2m=1, e2=2, EHyd=-1) by
(1.1)
the functional derivative of the energy is
(1.2)
Note that the part coming from the variation of the denominator includes the energy to yield
(1.3)
Integration by parts utilizing δψ=0 on the boundaries yields
(1.4)
Start with
(1.5)
Express the Laplacian in spherical coordinates to yield
(1.6)
Let (1.7)
Then for V=V(r), independent
of Θ and ,
the radial Schroedinger equation with u(r) subject to boundary conditions is
The Hartree Fock equations can be derived in the same way by assuming that
(1.9)
HFm.htm also requires an assumption that the Φ’s are orthogonal.
Leading to
(1.10)
The second potential term is non-local and thus much harder than the first.
For l > 0, the dominant term as r 0 is the l(l+1)/r2 term which must be exactly cancelled by
the second derivative of u.
Try the form so that the first two terms of (1.8)
become
(1.11)
This implies so that for small r
In this case the dominant
term in (1.8) is
the 1/r singularity. Try the form yielding
The term in r 0 for small r, so that the first and third
terms of (1.8)
become
This implies that α=Z.
If we assume that for sufficiently large r, the potential and the angular momentum terms (L(L+1)/r2) are negligible, then equation (1.8) reduces to
(1.13)
For a solution of the form u=exp(-αr), so that this becomes
(1.14)
The - solution is the one
that we want, but the + solution is also an exact solution to the differential
equation. Suppose that at some step r0, the region where the 1/r2
term and the V(r) can be neglected has been reached. Then the numerical solution consist of exp(-αr) + εexp(+αr).
(1.16)
is solved at r0 by
(1.17)
And also at all larger values
of r. For sufficiently large values of
r, the decaying exponential is negligible leaving only the exploding εexp(+αr)
in the solution. The analytic result for u(r>r0) and z(r>r0)
can thus be written as
(1.18)
In each step beyond r0
the second term gets larger and larger. (1.19)
With ε=10-7 and α=1 as for hydrogens’s ground state becomes 1 for r-r0 = 16 Bohr radii. Which is well beyond the <r> of 1. For the first excited state α=.25 and the distance is 64 versus a <r> of 4, so things are not bad. But do not expect to integrate out 100 times the region of interest and have anything left over. Note that for scattering states E>0, the asymptotic solutions are of the form exp(i+-E1/2) and thus ε times the unwanted solution stays of order ε and the problem above does not exist.
The Schroedinger equation for a bound state is a boundary value problem in which the object is to find a value for E such that u(0)=u(∞)=0. The E’s for which this is possible are eigenvalues. In a gross oversimplification their variation as a function of nuclear positions become the potentials in the Boltzman probabilities for finding the nuclei in these positions and hence give rise to the properties of the systems of nuclei and electrons. Shooting methods are best, except in the case of subtle boundary conditions such as “trying to maintain a decaying exponential in the presence of growing exponentials.” (Press 1st ed p. 581) Note that this is a problem for the Schoedinger equation. >>>>>> Beware of running into your authors in dark alleys, but “you might wish to follow the advice of your authors as notorious computer gunslingers: We always shoot first, and only then relax.”
(Press 1st ed p.581)<<<<<<<<<
The following code was used to produce the graphs below.
#include <stdio.h>
double shoot(double E)
// du/dr=x
// dz/dr=(veff(r)-E)*u This is f0 at beg of region f1 at end
{int n=1000,i,L=0,loop,iwrite=1;
double rmax=16,u0=0,z0=1,up,uc,zp,zc,f0,f1,h,r,veff,v1;
FILE *out;
if(iwrite == 1)out=fopen("u.out","w+");
h=rmax/n;
f0=0;
for (i=1;i <= n;++i){
r=h*i;
veff=-2/r+L*(L+1)/(r*r);
v1=veff-E;
zp=z0+h*f0;
up=u0;
loop=0;
predcorr:
f1=v1*up;
zc=z0+.5*h*(f0+f1);
uc=u0+.5*h*(z0+zp);
if(zp != zc || up != uc){
loop=loop+1;
up=uc;
zp=zc;
if(loop < 100)goto predcorr;}
if(iwrite == 1)fprintf(out," %lg %lg /n",r,up);
f0=f1;
z0=zp;
u0=up;
}
fclose(out);
printf(" from shoot E=%lg U(%lg) = %lg/n",E,rmax,u0);
return up;}
void main(void)
{double temp,Eig=7;
repeat:
printf(" enter a value for E -11 to exit/n");
scanf("%lf",&Eig);
if(Eig < -10)return;
temp=shoot(Eig);
printf("u(16) = %f /n",temp);
goto repeat;}
Note that the
shooting accuracy was achieved by human variation of the code
enter a value for E -10 to exit
-.99
from shoot E=-0.99 U(16) = -669.641
u(16) = -669.640702
enter a value for E -10 to exit
-.995
from shoot E=-0.995 U(16) = -335.267
u(16) = -335.267488
enter a value for E -10 to exit
-.999
from shoot E=-0.999 U(16) = -46.7964
u(16) = -46.796381
enter a value for E -10 to exit
-.9999
from shoot E=-0.9999 U(16) = 20.7772
u(16) = 20.777185
enter a value for E -10 to exit
-.9995
from shoot E=-0.9995 U(16) = -9.37856
u(16) = -9.378564
enter a value for E -10 to exit
input eigenvalue E.
In Fortran the subroutine is for\HYD.FOR
subroutine shoot(E,up)
IMPLICIT REAL*8 (A-H,O-Z)
DATA N/1000/RMAX/64/L/0/
5 PRINT*,' ENTER EIGENVALUE' ← eliminate for function
READ(*,*)E ← human input of eigenvalue
U0=0 boundary condition at r=0
Z0=1 normalization arbitrary, du/dr)r=0=1 is
H=RMAX/N fine as long as umax reasonable
F0=0 Assumed that u→0 faster than V→infinity
DO I=1,N
R=H*I
VEFF=-2/R+L*(L+1)/(R*R)
V1=(VEFF-E)
ZP=Z0+H*F0 predicted Euler’s approx
UP=U0+H*Z0
LOOP=0
10 F1=V1*UP
ZC=Z0+.5D0*H*(F0+F1) corrected values
UC=U0+.5D0*H*(Z0+ZP)
IF(ZP.NE.ZC.OR.UP.NE.UC)THEN iterate
until
UP=UC
ZP=ZC
IF(LOOP.LT.100)GOTO 10 loop limit
PRINT*,' R,UP',R,UP always
tell
ENDIF yourself
when things are wrong
WRITE(1,'(2G15.6)')R,ZP output
to a file
WRITE(2,'(2G15.6)')R,UP
F0=F1
Z0=ZC
U0=UC
ENDDO
PRINT*,' FINAL UP=',UP return with this value for automatic work
CLOSE(1) keeps files small, next E value will
CLOSE(2) overwrite the first two files
GOTO 5 ←change to return if a function
END

Code to automatically find E is in a) “Improve” the code
presented here by using both equations (1.12) and
(1.15) Start at the origin and integrate out, and at
a large value and integrate in. At the
join point the derivative and the function need to match. The second requires only multiplying by an
arbitrary constant, The first is the eigenvalue problem.
Vary E.
What happens to the second derivatives here?
a) Write a code to find the
L=3, n=5 solution to the Schroedinger equation with and

Figure 1 Zeff(r) Zeff.htm for\ZEFF.FOR
Hint
begin with Hydrogen Zeff = 1 and L=0, Work
your way slowly to the larger L values and to the excited states. Then make the potential
. This allows the effective potential to be
turned on slowly.