Subject: Re: CCL:G:OVERLAP INTEGRAL AND SLATER FUNNC

From: Herbert Homeier t4720 <[email-masked]>
Date: Wed, 5 Nov 97 13:51:13 +0100

Hello,

> Date: Sun, 2 Nov 1997 16:54:11 -0500 (EST)
> From: "E. Lewars" <[email-masked]>
> Message-Id: <[email-masked]>
> To: [email-masked]
> Subject: CCL:G:OVERLAP INTEGRAL AND SLATER FUNNC
> 
> 1997 Nov 2
> 
> SLATER OVERLAP INTEGRALS
> >From E. Lewars
> To CCL
> 
> Hello,
> 
> There is some info' about overlap integrals and Slater functions that I am
> finding it hard to dig out of the literature. I should state at the outset
> that _I know_:
> 
> that there are programs for calculating overlap integrals
> 
> that in most molecular quantum chem Gaussian functions, not Slater
> functions,
> are used
> 
> that Mulliken et al published a long paper (J Chem Phys, 17 (1949)
> 1248-1267))
> with recipes for calculating overlap integrals
  
it contains several errors, be careful.

> 
> that all kinds of tricks exist for "simplifying" the calculation of overlap
> integrals
> ---------
> OK, but what I want is simply this:
> 
> (1) In the molecule H-He+ (yes, protonated helium) if the H nucleus has
> Cartesians H1(x_1, y_1, z_1) and the He nucleus He2(x_2, y_2, z_2),
> where the coordinates are in Angstroms (_not_ atomic units or Bohrs)
> 
> and if we write
> 
> for H: phi_1 = a_1 exp{b_1[(x-x_1)^2 + (y-y_1)^2 + (z-z_1)^2]^1/2}
> and for He: phi_2 = a_2 exp{b_2[(x-x_2)^2 + (y-y_2)^2 + (z-z_2)^2]^1/2}

Please check the "classical" paper
E.Clementi and C. Roetti, At. Data & Nucl. Data Tables 14 (1974) 177

> 
> (usually a is expressed in terms of zeta and pi, b = -zeta, and
> the variable is a radius vector r)
> QUESTION: what are a_1 and b_1, as numbers, not Greek letters?
> what are a_2,and b_2 as numbers, not Greek letters?
> (i.e a_1 = 0.5647 or whatever, etc etc (4 decimals).
> 
> S_12 = the triple integral from 0--> infinity of phi_1.phi_2 dxdydz
> must = the correct overlap, if the six Cartesian coordinates are in
> Angstroms. And of course integral of S_11 = S_22 = 1.
> 
> (2) If (x_1, y_1, z_1) = (0, 0, 0) and (x_2, y_2, z_2) = (0, 0, 0.800),
> (0.800 Angstroms) what is S_12 (as a number, e.g 0.4273 or whatever)?
> 
> (3) For (x_1, y_1, z_1) = (0, 0, 0) and (x_2, y_2, z_2) = (0, 0, d),
> is there a simple function S_12 = f(d) ? (for H, He? for any two
> 1s orbitals)? Of course f will depend parametrically on the a's and b's.

The answer to your last question is given below in form of some programs for 
int( exp(-alpha*r) * exp(-beta*abs(\vec r -\vec R) d^3 r).

But be careful for alpha approx beta, especially for small R>0.
(cancelling singularities, alpha=1.000, beta=1.001, R=0.001 yield
overlap integral >1 for normalized 1s functions (which is wrong!), The
program in package S_INT (Comput Phys Commun 72 (1992) 269) is correct
in this case.)

Geometry should only enter as distance of the centers for s orbitals.

There is a forms-based web interface to the fortran programs at
http://www.chemie.uni-regensburg.de/~hoh05008/form-Soverlap.html

Good luck for your investigations and best regards

Herbert Homeier

---------------- C program -------------------------
double S(alpha,beta,R)
double alpha;
double beta;
double R;
{
  if (R == 0)
    return(8*0.3141592653589793E1/pow(alpha+beta,3));
  else 
    if (alpha != beta)
      return(8*0.3141592653589793E1*(-4*alpha*beta+4*exp(-(alpha-beta)*R)*alpha
*beta-exp(-(alpha-beta)*R)*R*beta*beta*beta+R*alpha*alpha*alpha-R*alpha*beta*
beta+exp(-(alpha-beta)*R)*R*alpha*alpha*beta)*exp(-R*beta)/R/pow(alpha+beta,3)/
pow(alpha-beta,3));
    else 
      return((R*R*alpha*alpha/3+1+R*alpha)*0.3141592653589793E1*exp(-R*alpha)/(
alpha*alpha*alpha));
}

--------------  maple procedure
S:=
proc(alpha, beta, R)
    if R = 0 then 8*Pi/(alpha + beta)^3
    elif alpha <> beta then 8*Pi*(-4*alpha*beta + 4*exp(- (alpha - beta)*R)*alpha*beta
         - exp(- (alpha - beta)*R)*R*beta^3 + R*alpha^3 - R*alpha*beta^2
         + exp(- (alpha - beta)*R)*R*alpha^2*beta)*exp(- R*beta)/(R*(alpha + beta)^3*(alpha - beta)^3)
    else (1/3*R^2*alpha^2 + 1 + R*alpha)*Pi*exp(- R*alpha)/alpha^3
    fi
end;

--------------- f77 program

      doubleprecision function S(alpha,beta,R)
C
C Author and Copyright: Herbert H. H. Homeier, 1997
C
C Purpose: computes the three-dimensional integral
C
C   int( exp(-alpha*r) * exp(-beta*|\vec r - \vec R|) d^3 r)
C
C Parameters: alpha > 0
C             beta  > 0
C             R=|vec R| >=0
C
C The restrictions are not checked by the function.
C
      doubleprecision alpha
      doubleprecision beta
      doubleprecision R
 
        if (R .eq. 0.D0) then
          S = 8.D0*0.3141592653589793D1/(alpha+beta)**3.D0
        else 
          if (alpha .ne. beta) then
            S = 8.D0*0.3141592653589793D1*(-4.D0*alpha*beta+4.D0*exp(-(a
     #lpha-beta)*R)*alpha*beta-exp(-(alpha-beta)*R)*R*beta**3+R*alpha**3
     #-R*alpha*beta**2+exp(-(alpha-beta)*R)*R*alpha**2*beta)*exp(-R*beta
     #)/R/(alpha+beta)**3.D0/(alpha-beta)**3.D0
          else 
            S = (R**2*alpha**2/3.D0+1.D0+R*alpha)*0.3141592653589793D1*e
     #xp(-R*alpha)/alpha**3
          endif
        endif
      return
      end
C
      program mainS
C
C Author and Copyright: Herbert H. H. Homeier, 1997
C
C Purpose: Simple driver program for function S
C
      double precision a,b,r,S,SS,SSS
      external S
C                                       input section
      read(*,*,ERR=99999,END=99999) a,b,r
      if(a.le.0.d0) goto 99999
      if(b.le.0.d0) goto 99999
      if(R.lt.0.d0) goto 99999
C                                       compute overlap
C
C                                       without normalization
      SS=S(a,b,r)
C                                       with normalization   
      SSS=SS/0.3141592653589793D1*DSQRT(a*b)**3
C                                       output section
      write(*,*) 'int(exp(-',a,'*sqrt(x**2+y**2+z**2))'
      write(*,*) '   *exp(-',b,'*sqrt(x**2+y**2+(z-',r,')**2))'
      write(*,*) '    dx dy dz ) = '
      write(*,*) ' = ',SS
      write(*,*)
      write(*,*) 'int(exp(-',a,'*sqrt(x**2+y**2+z**2))'
      write(*,*) '   *exp(-',b,'*sqrt(x**2+y**2+(z-',r,')**2))'
      write(*,*) '    dx dy dz ) /Pi *(',a,'*',b,')**(3/2) = '
      write(*,*) ' = ',SSS
      stop
99999 write(*,*) 'Input ends or errs'
      stop 
      end

--------------------------------------------------------------
Priv.-Doz. Dr. Herbert H. H. Homeier
Institut fuer Physikalische und Theoretische Chemie
Universitaet Regensburg, D-93040 Regensburg, Germany
Phone: +49-941-943 4720  FAX: +49-941-943 4719/+49-941-943 2305
email: [email-masked]
WWW: http://www.chemie.uni-regensburg.de/~hoh05008

PS: I tried to send more or less this message already yesterday.
But it did not turn up in the CCL, so far. So please apologize
if this is a duplicate.