Beryllium ground state energy

By Reinaldo Baretti Machin
e-mail reibaretti2004@yahoo.com
URL www.oocities.org/reibareti2004

c     atomo de berilio-the potentials are phi1s,phi2s,vx1s2s
      dimension phi1s(0:2000),phi2s(0:2000),vx1s2s(0:2000)
      equivalence (dx,h)
      real j1s1s,j1s2s,j2s2s
      psi1s(x)=sqrt(alfa**3/pi)*exp(-alfa*x)
      psi2s(x)=sqrt(alfa2**3/(32.*pi))*(2.-alfa2*x)*exp(-alfa2*x/2.)
c      psi1(x)=anorm*((x+1.)/(x+1.-c1))*(1.+5.*log(1.+x))*exp(-alfa*x)
c      psi1(x)=anorm*(1.-x/6.+x**2/36.)
c     $ *exp(-alfa*x)
      rho(x)=f1s*psi1s(x)**2+f2s*psi2s(x)**2
      rho1s(x)=psi1s(x)**2
      rho2s(x)=psi2s(x)**2
      rho1s2s(x)=psi1s(x)*psi2s(x)
      pi=2.*asin(1.)
      z=4.
      f1s=2.
      f2s=2.
      alfa=3.7
      nstep=2000
      xlim=8.2
      dx=xlim/float(nstep)
      do 100 iter=1,1
      alfa2=.6*alfa
c       potencial phi mediante ecuacion de Poisson
c  calculo phicero, phi uno calculo de phicero=potencial en el origen
      phicero=0.
      phi2s0=0.
      vx0=0.
      do 10 i=1,nstep
      x=dx*float(i)
      phicero=phicero+rho1s(x)*x+rho1s(x-dx)*(x-dx)
      if(f2s.ge.1.)then
      phi2s0=phi2s0+rho2s(x)*x+rho2s(x-dx)*(x-dx)
      vx0=vx0+rho1s2s(x)*x+rho1s2s(x-dx)*(x-dx)
      endif
10    continue
      phicero=phicero*4.*pi*dx/2.
      phi2s0 =phi2s0*4.*pi*dx/2.
      vx0=vx0*4.*pi*dx/2.
      phi1s(0)=phicero
      phi1s(1)=phi1s(0)
      phi2s(0)=phi2s0
      phi2s(1)=phi2s(0)
      vx1s2s(0)=vx0
      vx1s2s(1)=vx0
c calculo del potencial  resolviendo ec de poisson
c LLeva  factor 4.*Pi ec de Poisson
      do 20 i=2,nstep
      x=dx*float(i)
      phi1s(i)=-dx**2*4.*pi*rho1s(x-dx)-(2.*dx/(x-dx))*
     $ (phi1s(i-1)-phi1s(i-2))+2.*phi1s(i-1)-phi1s(i-2)
      if(f2s.ge.1.)then
      phi2s(i)=-dx**2*4.*pi*rho2s(x-dx)-(2.*dx/(x-dx))*
     $ (phi2s(i-1)-phi2s(i-2))+2.*phi2s(i-1)-phi2s(i-2)
      vx1s2s(i)=-dx**2*4.*pi*rho1s2s(x-dx)-(2.*dx/(x-dx))*
     $ (vx1s2s(i-1)-vx1s2s(i-2))+2.*vx1s2s(i-1)-vx1s2s(i-2)
      endif
20    continue
      J1s1s=0.
      j1s2s=0.
      j2s2s=0.
      vnuc=0.
      tk1s=0.
      tk2s=0.
      ex1s2s=0.
      vn2s=0.
      do 30 i=1,nstep
      x=dx*float(i)
      j1s2s=j1s2s+rho1s(x)*x**2*phi2s(i)+ rho1s(x-dx)*(x-dx)**2
     $*phi2s(i-1)
      j1s1s=j1s1s+rho1s(x)*x**2*phi1s(i)+ rho1s(x-dx)*(x-dx)**2
     $*phi1s(i-1)
      j2s2s=j2s2s+rho2s(x)*x**2*phi2s(i)+ rho2s(x-dx)*(x-dx)**2
     $*phi2s(i-1)
      vnuc=vnuc+rho(x)*x + rho(x-dx)*(x-dx)
      vn2s=vn2s+ psi2s(x)**2*x + psi2s(x-dx)**2*(x-dx)
c      tk1s=tk1s-.5*psi1s(x)*x**2*(psi1s(x+dx)-2.*psi1s(x)
c     $+psi1s(x-dx))/h**2- x*psi1s(x)*(psi1s(x+dx)-psi1s(x-dx))/(2.*h)
c      tk2s=tk2s-.5*psi2s(x)*x**2*(psi2s(x+dx)-2.*psi2s(x)
c     $+psi2s(x-dx))/h**2- x*psi2s(x)*(psi2s(x+dx)-psi2s(x-dx))/(2.*h)
      ex1s2s=ex1s2s+rho1s2s(x)*vx1s2s(i)*x**2 +
     $rho1s2s(x-dx)*vx1s2s(i-1)*(x-dx)**2
c      tkele=tkele+.5*psit(x)**2*al*(al+1.)
30    continue
      j1s1s=j1s1s*4.*pi*dx/2.
      j1s2s=j1s2s*4.*pi*dx/2.
      j2s2s=j2s2s*4.*pi*dx/2.
      vnuc=-z*vnuc*4.*pi*dx/2.
      vn2s=-z*vn2s*4.*pi*dx/2.
c      tk1s=tk1s*4.*pi*dx
c      tk2s=tk2s*4.*pi*dx
      tk1s=alfa**2/2.
      tk2s=alfa2**2/8.
      tkin=f1s*tk1s+f2s*tk2s
      ex1s2s=ex1s2s*4.*pi*dx/2.
      ehtree=tkin+vnuc+j1s1s+f1s*f2s*j1s2s +j2s2s
      ehf=ehtree-2.*ex1s2s
      e2s=tk2s + vn2s + 2.*j1s2s+j2s2s-ex1s2s
      print*,'alfa,alfa2=', alfa,alfa2
      Print*,' j1s1s,j1s2s,j2s2s,ex1s2s=',j1s1s,j1s2s,j2s2s,ex1s2s
      print*,'ecin,vnuc=', tkin ,vnuc
      print*,'e2s,ehtree,ehf=',e2s,ehtree, ehf
      print*,'  '
      alfa=alfa+.1
100   continue
      stop
      end