You are on page 1of 17

Computer Physics Communications 75 (1993) 379395 North-Holland

Computer Physics Communications

DVR3D: programs for fully pointwise calculation of vibrational spectra


James R. Henderson, C. Ruth Le Sueur and Jonathan Tennyson
Department of Physics and Astronomy, University College London, Gower St., London WCJE 6BT, UK Received 18 September 1992

DVR3D calculates rotationless (J = 0) vibrational energy levels and wavefunctions for triatomic systems using scattering (Jacobi) coordinates, or optionally unsymmetrised Radau coordinates, for a given potential energy surface. The program uses a discrete variable representation (DVR) based on GaussLegendre and GaussLaguerre quadrature for all 3 internal coordinates and thus yields a fully pointwise representation of the wavefunctions. Successive diagonalisation and truncation is implemented for 4 of the possible 6 possible coordinate orderings. DVR3D is best used for problems for which many (several hundred) vibrational states are required. Given appropriate dipole surfaces, the accompanying program DIPJODVR computes vibrational band intensities for wavefunctions generated by DVR3D.

PROGRAM SUMMARY
Title of program: DVR3D Catalogue number: ACNE Program obtainable from: CPC Program Library, Queens University of Belfast, N. Ireland (see application form this issue) Licensing provisions: none Computer: Convex C3840 running BSD unix; Installation: University of London Computer Centre Other machines on which program has been tested: Cray-YMP8i, IBM RS6000 Programming language used: FORTRAN 77 Memory required to execute with typical data: case dependent Peripherals used: card reader, line printer, disk files, No. of lines in distributed program including test data, etc.: 3848 Keywords: vibrations, body-fixed, discrete variable representation, Coriolis decoupled, finite elements, Gaussian quadrature, vectorised Nature of physical problem DVR3D calculates the bound vibrational or Coriolis decoupled rovibrational states of a triatomic system in body-fixed Jacobi (scattering) or Radau coordinates coordinates [1]. Method of solution All co-ordinates are treated in a discrete variable representation (DVR). The angular coordinate uses a DVR based on (associated) Legendre polynomials and the radial coordinates utilise a DVR based on either Morse oscillator-like or spherical oscillator functions. Intermediate diagonalisation and truncation is performed on the hierarchical expression of the Hamiltonian operator to yield the final secular problem. DVR3D provides the data necessary for DIPJODVR [2] to calculate vibrational band intensities. Restrictions on the complexity of the problem . . . . (1) The size of the final Hamiltonian matrix that can . . practically be diagonalised. DVR3Dpresent version the total cally at execution time and in the allocates arrays dynami-

Correspondence to: J. Tennyson, Department of Physics and Astronomy, University College London, Gower St., London, WC1E 6BT UK

0O10-4655/93/$06.0O

1993

Elsevier Science Publishers By. All rights reserved

380

J.R. Henderson et al.

Fully pointwise calculation of jibrational spectra Unusual features of the program A user supplied subroutine containing the potential energy as an analytic function (optionally a Legendrc polynomial expansion) is a program requirement. References [I] J.R. Henderson, PhD Thesis, University of London (1990). [2] J.R. Henderson, C.R. Le Sueur and J. Tennyson, this article, second program (DIPJODVR).

space available is a single parameter which can be reset as required. (2) The order of integration in the radial co-ordinates that can be dealt within the machine exponent range. Some adjustment in the code may be necessary when large order Gauss-Laguerre quadrature is used. Typical running time Case dependent but dominated by the final (3D) matrix diagonalisation. The test data takes 229 s on a Convex C3840.

PROGRAM SUMMARY
Title of program: DIPJODVR Catalogue number: ACNF Program obtainable from: CPC Program Library, Queens University of Belfast, N. Ireland (see application form this issue) Computer: Convex C3840 running BSD unix; Installation: University of London Computer Centre Other mac/ones on which program has been tested: Cray-YMP8i. Programming language used: FORTRAN 77 Memory required to run with typical data: case dependent Peripherals used: card reader, line printer, at least two disk files No. of lines in distributed program, including test data, etc.: 1999 Keywords: vibrational band intensities, veetorised, discrete variable representation Nature of physical problem DIPJODVR calculates the vibrational band intensities between eigenstates calculated using the DVR method, Typical running time 7 seconds to run test data on Convex C3840. Unusual features of the program Most data is read directly from DVR3D [2]. A user supplied
. .. . .

Method of solution The amplitude of the eigenstates at the DVR points arc read in. The value of the dipole components are then calculated at these points and transformed into components along the Eckart axes [1]. The vibrational band intensity is the sum of the products of the dipole and the eigenstate amplitudes at all these points. Restrictions on the complexity of the problem . The number of transitions to he calculated. DIPJODVR allocates arrays dynamically at execution time and in the . present version the total space available is a single parameter which can be reset as required.
.

subroutine providing the dipole at any point in configuration space is a program requirement. Refrrences [I] C.R. Le Sueur, J. Tennyson, S. Miller and B.T. Sutcliffe. Mol. Phys. 76 (1992) 1147. [2] J.R. Henderson, C.R. Le Sueur and J. Tennyson, this article, first program (DVR3D).

LONG WRITE-UP

1. Introduction The discrete variable representation, DVR, along with other pointwise methods, is becoming more and more popular and successful as a technique for determining highly excited bound rotationvibration

JR. Henderson et al.

Fully pointwise calculation of vibrational spectra

381

states of triatomic molecules [1]. The experimental community is also enjoying new found enthusiasm and success in this area of spectroscopy and molecular dynamics, due largely to advanced laser technology and techniques such as stimulated emission pumping. The DVR was introduced by Harris et al. [2] and further developed by Light and co-workers [1,3,4] who showed the power of the DVR for obtaining many vibrational bound states of triatomic molecules. Henderson, Tennyson and co-workers subsequently exploited this [591 mixed DVR and finite using basis representation (FBR) studies, which also included rotationally excited states in a DVR (DVRt_ FBR2) [5,111. There are now a number of triatomic systems for which estimates of more than 500 vibrational band origins have been made using a DVR. This is a goal more traditional FBR based methods struggle hard to meet. More recently Whitnell and Light [101 and us [1214]have studied triatomic species using a full 3-dimensional (3D) DVR, ie. treating all three internal co-ordinates in a pointwise manner. This method has proved remarkably successful in determining all the vibrational (J = 0) bound states of H~[141and even more powerful than a comparable DVRFBR2 study [5]. We present here our DVR3 program, DVR3D, which utilises a DVR in each of the scattering (or Radau) coordinates r 1, r2 and 9. The code calculates vibrational (J = 0) eigenenergies and wavefunction values, and has been used successfully on H~[14], HCN/HNC [13] and H2S. Optionally the code will also calculate Coriolis decoupled rotationally excited states of the molecule, although there is as yet no means of coupling these states to give a full rotational calculation. Using the wavefunctions provided by DVR3D, we have developed a further program to calculate vibrational band intensities using the theory of Le Sueur et al. [151. This program, DIPJODVR, is included as part of the suite.

2. Method 2.1. The vibrational problem: DVR3D 2.1.1. Formulating and solving the 3D DVR Hamiltonian We use a multidimensional DVR in scattering (Jacobi) or Radau co-ordinates. In scattering coordinates r1 represents the diatom distance between atom 1 and atom 2, and r2 the separation of the third atom from the diatom centre of mass. The angle between r1 and r2 is 0. A formal definition of (r1, r2, 0) in Radau coordinates can be found elsewhere [161. Using a finite basis representation (FBR), the zero rotational angular momentum (J = 0) Hamiltonian matrix can be written as [17] 8~ + Kn ~(2) (m, n, j I H I m, n, f) = Km I m) + (Km ,~(1) m)6~~~ I + Kn I F2)(5m,m)J(J + 1)6~~
~

<m, n,

V(r 1, r2,

9)1 m,

n,

j).

(1)

If J> 0 and the projection of J along the body-fixed z-axis is designated k, then an extra, diagonal in k term is added to (1): m, n,

j, J, k I J~ Im, n, j, J, k)

Km, n, j I~Im, n, j) + Kt I ~(i) t~8~1~85~(J(J + 1)


1 then

2).

(2)

2k 1; conversely if z is along

In (2), if the body-fixed z-axis is taken along r r2,

It)

m), s

n and i

It>= In), s=m and i=2.

382

1. R. Henderson et al.

/ Fully pointwise calculation

of vibrational spectra

A DVR is essentially a unitary transformation of an FBR defined for some quadrature scheme associated with the FBR polynomials. When using a multidimensional DVR (i.e. a totally pointwise representation), one needs always to start (at least notionally anyway) by defining the FBR. Further, it is comforting to know that one can, at any time, transform between the two representations uniquely. In this work the angular basis functions I I) are Legendre polynomials, or associated Legendre functions if k * 0. The radial basis functions are similar to those employed in our FBR3 and DVRFBR2 programs [6,19]. These are either Morse oscillator-like functions or spherical oscillators. The Morse oscillator-like functions are defined as [181 n) =H~(r) where
A ~i/2N

exp(~y)y(

V2L~(y). y =A exp[/3(r~-re)1,

(3)

=4De/13,

I~ =We(/.L/2De)~2,

integer(A).

(4)

The parameters ,a, re, We and D~can be associated with the reduced mass, equilibrium separation, fundamental frequency and dissociation energy of the relevant coordinate, respectively. In practice (re, w, Dc) are treated as variational parameters and optimised accordingly. N,IaL~~ a normalised is associated Legendre polynomial [20]. The spherical oscillator functions are particularly useful for systems which have significant amplitude for r 2 0. These functions are defined by [21]
=

2~4N,,(,/ In)=H,,(r)=2~
where
exp(~y) y(~+i)/ 7

2J]~l/2(y)

(6) and (a, w~) treated as vibrational parameters. are It should be noted that our usual practice is to optimise the parameters for both Morse-like and spherical oscillator functions using an FBR isomorphic to the DVR in which the final calculation is to be performed. To this end optimisation is generally performed using the FBR3 code TRIATOM [19] or the two-dimensional (ZTWOD T) option in the DVRFBR2 code DVRID [11]. In (1) V is the potential, and the radial kinetic energy integrals are given by
=

KtIh~It)
(t

h2

82 2

2~x
(t

(7)

1r~ 8r,

It)

/ \

2j.t.,r 1
=

(8)

where It)

I m) for i

1 and

It)

In) for i 2. ~x, are the appropriate reduced masses given by [16] 2m~, ~i =m~ +g~m~ (1 gi)2m~. + (9)
=

~ =g~m~ +m~ + (1 g2) where for scattering coordinates m2 g 1= m 2 + m ~ g20

(10)

J.R. Henderson et al.

Fully pointwise calculation of vibrational spectra

383

and for Radau coordinates [16]: a a+/3af3

m
,

1/2

m
2

g~=1113+a/3

a=

___________

m1+m2+m3

(11)

m1+m2

In principle it is possible to find other combinations of (g1, g2) which give other orthogonal coordinate systems [161,but this possibility has not been investigated. A 1D DVR transformation for either of r1, r2 or U is defined in terms of points, 7J, and weights, w,7, of the N-point Gaussian quadrature associated with the orthogonal polynomials used for the FBR in that coordinate [6]: 2It(~)), (12) where It) I m), I n), Ii) for s~ a, f3, y, respectively. DVR3D automatically generates Gaussian quadrature schemes using routines adapted [211from Stroud and Secrest [22]. The required composite transformation is written as a product of 1D transformations:
= =

T~=(w~)U

T~~ TaT/3TY m,n,j m n


=

~13
=

A three-dimensional DVR is obtained by applying the transformation TTHT. Thus the 3D J Hamiltonian is
(3D)Ha,a~,i 3,i3~,.y,.y~ =

~
m,n,j m,n,j

T,~JKm,n, II H I m, n, j)T,/~,~.

(14)

The transformed Hamiltonian can be written at the DVR grid points as [12]
(3D) a,a,/3,/3,y,y

(1)

(2) /3/3

,q

,~

(1)

.s

_~..

(2) /3,/3,y,y

s~
a,a

r,a /3/3 y,y +

a,a y,y 2)M~T,/3/3&,i~+ a,a,-y,-y /3/3 V(r

(J(J

1)

k
=

1~, 2/3, r

Oy)6aa~p&yy,

(15)

where i 1 for z embedded along r1 and i 2 for z along r2. In (15), the potential energy operator is diagonal because of the quadrature approximation
=

[251

~
m,n,j m,n,j

T,~,~,JKm, II V(r1, r2, 0) I m, n, j)T,~,~,~ n, V(ri~,r2~,Oy)~aa~pp&yy,(16)

where (r1,~,r2p, O~)is the value of (r1, r2, 0) at (a, f3, y). Note a major attraction here, in that no integration at all is required over the potential; it is diagonal in every co-ordinate. The kinetic energy terms in (15) are represented by K~,=ET~~KtI~flt)I~, ~ 2 J h =J~~~EI~Kt I tY17? I (17) (18)

2r,~~~
again applying the quadrature approximation, and where
J,= ~TYj(j+1)P.

(19)

(20)

384

JR. Henderson et at

Fully pointwise calculation of vibrational spectra

For J> 0, the extra term is given by M~ if i


=

~
mum

T~(m I

I m)T,~

(21)

1, when it is diagonal in /3, and M~2) 3=

h2

2~x2r2~

(22)

if i 2, when it is diagonal in a. The calculation is generally set up as a series of diagonalisations and truncations [12,23]. Assume for the moment that the coordinate ordering 0 then r~then r7 is used, i.e. diagonalise on y first and /3 last (0 r~ r2). With this ordering, the 1D problems that have to be solved for each a and /3 are given by
=

(lD)Ha~

L,5~

V(r1,,, r2~, ~

(23)

Amplitudes for the kth level, with eigenenergy ~ are given at each grid point by C~f. The solutions with ~ E~ are then used to solve 2D problems for each value of /3. This gives
=

~ ~

(24)

Solutions for the /th level, with eigenenergy ej~are given by C,~lk. E~ are then used to solve the full 3D problem of dimension N: The solutions with
(3D)[J,,
=

E1~

~f

0 ~~//

C~/kC~IkE ~
y

(25) and wavefunction coefficients C,,~,1.

Solutions of this diagonalisation are the required eigenenergies,

,,

2.1.2. Wavefunctions Once the eigenvectors of the 3D Hamiltonian have been obtained one would usually like to use them to express a more physically meaningful quantity. This can be achieved by transforming them to yield values for the amplitude of the wavefunction at the DVR grid points. These wavefunctions can then, in principle, be put to many quantum mechanical and spectroscopic uses. Such uses include the calculation of vibrational band intensities, as explained in the next section, and contour plots of the wavefunctions (or linear combinations of the wavefunctions [24]) which we have found very informative. The wavefunction amplitude for the ith eigenstate at the DVR grid points is simply
~1~py
=

l.k

Computationally this process is more efficiently written as It~~.= ~


t k

(26)

Transformations to FBR are also fairly straightforward to write down, but may be computationally expensive.
2. 7.3. A problem with the quadrature approximation

The quadrature approximation can be used when evaluating the DVR transformation of FBR matrix elements of an operator that leaves the ket unchanged. Its validity is due to the unitarity of the DVR

JR. Henderson et al.

Fully pointwise calculation of vibrational spectra

385

transformation matrix. We have experienced one particular failure of the quadrature approximation [14], which occurred when evaluating the r~2integrals. In scattering co-ordinates, it is possible for the r 2 co-ordinate to be equal, or very close, to zero if this linear geometry is energetically accessible or favourable. As stated earlier, it is desirable to use the spherical oscillator functions in this case. Under these circumstances it was of its non-polynomial 2 integral because found [14] that the quadratureasapproximation had to be abandoned for the r~ behaviour r 2 f 0. After extensive tests on the HI~molecular ion [14], we found a suitable alternative was thecontinue to 3D)H using to full-matrix use the quadrature approximation in constructing the fact that the construct ( approximation was used (lD)H and then quadrature transformation of the r~2integrals, correcting for in ~ So the only change in the formulation is that now
(3D)j~, 11, ( 3D)H~ /3,11 +

~
a,k,k

C~tkC~lk(M,~J3 _M,~)

~ ~
y,y

(27)

where

%~i~i~= LKnI~2~In)I~,
and M~ is given by eq. (22). Note that the FBR matrix elements above can be evaluated analytically, and are given by [21]

(28)

Kn I ~2) In)

h2/3
=

n! F(n+a+~)
F(n + a
+

(2a

+ 1)~2

~)

1/2
,

n.

(29)

We have implemented a user input variable (ZQUAD2) in the program DVR3D so that either of eqs. (25) or (27) can be used. 2.1.4. Order of solution We have shown above how the 3D DVR Hamiltonian matrix of eq. (14) can be solved by successive diagonalisation and trucation. Above the angle 0 was dealt with first, and r 2 last. It also is possible for the problem to be solved in any of the 5 other orders. We have recently suggested how one may determine in advance the most efficient order of solution for a particular molecule [131.It is thought that the co-ordinate accomodating the highest density of states should be treated last and the co-ordinate holding the lowest density of states coming first, although this was found to be less important in practice. Four of the possible co-ordinate orders have been implemented in DVR3D. The two orders where 0 is considered second have been omitted; it is unlikely that such orders will offer significant savings over the case in which the order of 0 and the first coordinate are swapped.

2.1.5. Symmetry
Scattering co-ordinates are capable of exploiting the C2~ symmetry of a molecule. Thus they can split the full permutation symmetry of an A2B system and can therefore be of some help in A3 molecules. We have shown how to do this in a DVR-in-0 approach [5,111;it involves only a property of the so-called L matrix. In our multidimensional DVR we have exactly the same matrix in the J matrix of eq. (20). Then the symmetrised J matrix becomes
N/2 1 ~ T~.Yj+q(2j+q)(2j+q+1)T~jq,

q=0,1.

(30)

j==o

386

J.R. Henderson et a!.

Fully pointwise calculation of vibrational spectra


=

In a symmetrised DVR3D calculation even (q unlike DVR1D [11]. If 0 is the first co-ordinate both odd and even runs at once. There could be been implemented in program DVR3D. It should be noted that the current version of

0) and odd (q 1) calculations are done separately to be treated then no saving can be made from doing some saving for other orders, although this has not yet
=

DVR3D does not employ the full symmetry of an AB5 system in Radau coordinates. To do this involves symmetrising points taken from different steps in the diagonalisationtruncation procedure and will therefore require major changes to the algorithm employed here. A code to solve this problem is currently under development [26].
2.2. Vibrational band intensities

The equation to be evaluated for vibrational band intensities may be written as

S~-i(~fH~j)~,

(31)

where ~s is expressed in terms of components along the Eckart axes [15]. This expression is easy to evaluate in the DVR, where the integral is reduced via the quadrature approximation to a sum: E~1(a/3y) ~(a/3y) 3y
af

~1(a/3y)~.

(32)

DIPJODVR uses wavefunctions produced by DVR3D to evaluate this expression and hence to obtain vibrational band intensities. Complications can arise if the bra and ket wavefunctions were not calculated at the same points. In this case the transformation matrix must be used to obtain the function expansion of the wavefunctions. DIPJODVR can cope with this additional problem for a limited number of cases [27].

3. Program structure Card input is needed for both DVR3D and DIPJODVR. Both programs follow the convention that names beginning with letters AH and OY are for 8-byte real variables, IN are for integers, and variables whose name begins with Z are logicals. The calling sequences of DVR3D and DIPJODVR are given in figs. 1 and 2. The role of the individual subroutines is described in comment cards included in the source programs. 3.1. DVR3D DVR3D uses dynamical assignment of array space in which one big vector is subdivided in routine CORE. In the current versions, this array is a single fixed length array ARRAY of dimension NAVAIL (set to 500000 in the version supplied) in subroutine GTMAIN. For efficient storage management a call to a local GETMAIN, MEMORY or HPALLOC command should be implemented. The CPU time requirement of DVR3D is dominated by the final diagonalisation of the 3D Hamiltonian matrix HAM3. The required diagonaliser has to give all eigenvalues and eigenvectors of a real symmetric matrix. The present implementation uses subroutine EGVQR [28] to mimic NAG routine FO2ABF [30]. of the intermediate diagonalisations of the various HAM1 and HAM2 matrices use this All routine. We would strongly recommend that EGVQR is replaced either by the local NAG implementation or by some diagonaliser appropriate to the architecture of the machine.

JR. Henderson et al.

Fully pointwise calculation of vibrational spectra

387

Dvr3d j_..4lnsize Gi

tain

Ccmain

~Ietcon~ S P1 Setfacl ~Iorms N


~ ~ Lagpt Keints
~

Laguer~ PI.(Lgroot~

PiI1~Lgrecr~

II P1

Keint2l
Rtwts

K1k2

~I Jacobil ~l Root I ~I A11pts~


~

P11 Recur

Asleg
Potv

~I Lmatrx~
~I~ham1I
u~ Diag

Potvig~

Purl
~

CutlD
Mkham2

Purl
Purl

Legv
Pot

Diag
Cut2D

I
~

Choosel
~

P1 pp.4

Diag3D~
Trans

Fig. 1. Structure of program DVR3D. Service routines TIMER, GETROW and OUTROW have been omitted.

388

J.R. Henderson et al.

Fully pointwise calculation of vibrational specira

3.2. DJPJODVR DIPJODVR also uses dynamical assignment of array space in which one big vector is subdivided. But in this program the fixed length array ARRAY, of length NAVAIL (set to 500 000 in this version) is subdivided in routine GTMAIN. For technical reasons, part of this array is also used in the main Rddata
DipjOdvr
_________

Conver

________

Messge

Gtmain

.0.4
~

Rdphi
Oldphi

l-~4Getphi I
Conver
Dipcal
_________ _________

I I

Getznu

Dipd

Gettra

Glagpt Basis

Lgrecr

Inmain

0.

Diffmu ~ Getbas

Glagpt

________

________

Lgroot

l..4

Lgrecr

Basis__}..j_Sl4aaf

_______

I I

Conver Domult Dipcal


_________ _________

Dipd

Gett
o.~j Difft

Writet

Fig. 2. Structure ofprogram DIPJODVR. Service routines TIMER, GETROW and OUTROW have been omitted.

JR. Henderson et al.

Fully pointwise calculation of vibrational spectra

389

program to read in the DVR points. Each array of DVR points is assumed to be shorter than MAXQ (set to 100 in this version). For a typical problem, DIPJODVR uses a negligible quantity of CPU time. For example in the test run, 7.5 s is used, of which 7.3 s is time used to calculate the dipole at the various DVR points. If, however, the bra and ket use different DVR points, then a substantial proportion of time is spent calculating the transition intensities (see below). The dipole is provided via a user-supplied subroutine DIPD in the internal coordinate system of the DVR calculation. It is subsequently rotated by DIPJODVR into the Eckart system [15]. In order to do this, the equilibrium values of r1, r2 and cos 0 are required. The values of the transition moments can be quite sensitive to these values, and so it is important that they are correct. Accordingly, the program prints out the cartesian coordinates of the atoms corresponding to the given equilibrium values. It is recommended that these are checked before placing any credence on the rest of the output! The greatest part of the program is taken up with a type of calculation that has not been generalised yet, which was used to calculate transition moments for H~ [271. Because the particular boundary conditions for this ion require that the basis functions for r2 are different for even and odd symmetry runs, there are parts of the program (governed by ZSAME F) which can cope with the bra and ket functions having different points for r2. This option has only been implemented for spherical oscillator functions in the r2 coordinate as in our experience the same Morse-like functions are always used for even and odd symmetries. In this case additional input is required and the program is much slower. When calculating the transition moments, the program is written to use quadrature points specified by both the even and odd r2 functions, and to take the average. However, if as in the original work done on H~[14], the even and odd functions differ by integer powers of r2, then it is important to use only quadrature points resulting from the ones specifying lower powers of r2 in order to avoid inaccuracies of quadrature [27]. Calculations run with ZSAME F require F functions. Subroutine S14AAF is a NAG routine [29] which calculates F functions. The present implementation uses routine GAMMLN from Numerical Recipes [30] to mimic the operation of S14AAF.
= =

4. Program use
4.1. The potential subroutine DVR3D requires a user supplied potential energy subroutine. There are two ways of supplying the potential. If it is specified as a Legendre expansion, V(r1, r2, 0)
=

~V5(r1, r2)
A

PA(O),

(33)

which corresponds to option ZLPOT

.TRUE., then the expansion must be supplied by


r1 and R2 r2 in Bohr. If

SUBROUTINE POT(V0, VL, Ri, R2)


which returns VO V0(r1, r2) and VL(A) I~(r1,r2) in Hartree for Ri NCOORD 2, Ri contains the rigid diatom bondlength re. If a general potential function, ZLPOT .FALSE., is to be used then
= = = = = =

SUBROUTINE POTV(V, Ri, R2, XCOS) must be supplied. POTV returns the potential V in Hartree for an arbitrary point given by RI R2 r2 (both in Bohr) and XCOS cos 0.
= = =

r1,

390

JR. Henderson et al.

Fully pointwise calculation of vibrational spectra

DVR3D includes COMMON/MASS/XMASS(3), Gi, G2 where XMASS contains the atomic masses in atomic units (not amu), Gi =g1 and G2=g2. This enables users to write flexible potential subroutines which allow for changes in coordinates or isotopic substitution. See, for example, the version of POTV supplied. 4.2. Input for DVR3D DVR3D requires 9 lines of card input for all runs. Cards giving data not required or for which the defaults [given below in parenthesis] are sufficient should be left blank. Card i: NAMELIST/PRT/ ZPHAM[F] T, request printing of the Hamiltonian matrix. ZPRAD[F] T, requests printing of the radial matrix elements. ZPiD[F] T, requests printing of the results of 1D calculations. ZP2D[F] T, requests printing of the results of 2D calculations. ZPMIN[F] T, requests only minimal printing. ZPVEC[F] T, requests printing of the eigenvectors. ZLMAT[F] T, requests printing of the L-matrix. ZCUT[F] T, final dimension selected using an energy cut-off given by EMAX2. F, final dimension determined by NHAM3. ZEMBED[T] Used only if J> 0. T, z-axis embedded along r2 F, z-axis embedded along r1. ZMORS1[T] T, use More oscillator-like functions for r1 coordinate; F, use spherical oscillator functions. ZMORS2[T] T, use Morse oscillator-like functions for r2 coordinate; F, use spherical oscillator functions. ZLPOT[F] T, potential supplied in POT; F, potential supplied in POTV. ZVEC[F] T, store the eigenvector from all the parts of the calculation (ID, 2D and 3D) on stream IOUT2. Further information relating to this (arrays IV1 and 1V2) is stored on stream IOUT1. ZALL[F] T, requests no truncation of the intermediate solution. ZTHETA[T] T, let 0 be first in the order of solution; F, let 0 be last in the order of solution. ZR2Ri[T] T, let r2 come before r1 in the order of solution; F, let r1 come before r2 in the order of solution. ZTRAN[F] T, perform the transformation of the solution coefficients to the expression for the wavefunction amplitudes at the grid point, eq. (26). Store the data on stream IWAE. ZTRAN T automatically sets ZVEC T. 2matrix, and ZQUAD2[T] T, make DVR quadrature approximation henceuse the its DVR transformation diagonal. for the integrals of the r~ F, evaluate the r~2integrals fully and perform the DVR transformation on them. Note that ZQUAD2 F is only implemented for ZMORS2 F and for ZTHETA T. ZDIAG[T] F, do not do final diagonalisation, instead the final Hamiltonian matrix is written on units IDIAG [20] and IDIAG [21]. For further details see the source code. IEIGS[7] stream for eigenvalues of the 1D solutions. IVECSi[31 stream for eigenvectors of the iD solutions.
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

JR. Henderson et al.

Fully pointwise calculation of vibrational spectra

391

IEIGS2[2] IVECS2[4] IVINT[i4] IBAND[15] INTVEC[i6] IOUT1[24] IOUT2[25] IWAVE[26]

stream for eigenvalues of the 2D solutions. stream for eigenvectors of the 2D solutions. scratch file used for storing intermediate vectors in building the final Hamiltonian. scratch file used for storing bands of the final Hamiltonian. scratch file for intermediate storage of the 2D vectors. stream for arrays IV1 and 1V2, which record the sizes of the truncated vectors. Used when ZVEC T. stream for the 1D, 2D and 3D vectors for use when ZVEC T. stores the wavefunction amplitudes at the grid points when ZTRAN T.
= = =

Card 2: NCOORD (15) NCOORD[3] the number of vibrational coordinates of the problem: 2 for an atom rigid diatom system, 3 for a full triatomic.
= =

Card 3: NPNT2, JROT, NEVAL, NALF, MAX2D, MAX3D, IDIA, KMIN, NPNT1, IPAR (1015) NPNT2 number of DVR points in r2 Gauss(associated) Laguerre quadrature. JROT[0] total angular momentum quantum number of the system, J. NEVAL[i0] number of eigenvalues and eigenvectors required. NALF number of DVR points in 0 from Gauss(associated) Legendre quadrature. MAX2D maximum dimension of the largest intermediate 2D Hamiltonian. MAX3D maximum dimension of the final Hamiltonian. If ZCUT F, it is the actual dimension, if ZCUT T, MAX3D is than the number of function selected. IDIA 0 for Radau coordinate, 1 for scattering coordinates with a heteronuclear diatomic, 2 for scattering coordinates with a homonuclear diatomic. KMIN[0] k for JROT> 0. NPNTi number of DVR points in r1 from Gauss(associated) Laguerre quadrature. IPAR[0] parity of basis for the homonuclear diatomic (IDIA 2) case: IPAR 0 for even parity and i for odd.
= = = = = = = = =

Card 4: TITLE (9A8) A 72 character title. Card 5: (XM.ASS(I), I i, 3) (3F20.0) XMASS(I) contains the mass of atom I in atomic mass units.
=

Card 6: EMAX1, EMAX2 (2F20.0) EMAX1 is the first cut-off energy in cmt with the same energy zero as the potential. This determines the truncation of the 1D solutions.same energy zero as the potential. 1 with the EMAX2 is the controls cut-off energy inof the 2D solutions (i.e. the size of the final basis). If This second the truncation cm ZCUT F it is ignored and the size of the final Hamiltonian is MAX3D.
=

Card 7: RE1, DISS1, WEi (3F20.0) If NCOORD 2, RE1 is the fixed diatomic bondlength, DISS1 and WE1 ignored
=

392

JR. Henderson

Ct al.

Fully pointwise calculation of vibrational spectra

If NCOORD

3, RE1

re,

DISS1
=

when ZMORS1

are Morse parameters for the r1 coordinate T, and are spherical oscillator parameters when ZMORSI F.
= =

Dc and WE1

We

Card 8: RE2, DISS2, WE2 (3F20.0) If ZMORS2 T, RE2 re, DISS2 D~and WE2 are Morse parameters for the r2 coordi nate. If ZMORS2 F, RE2 is ignored; DISS2 a and WE2 We are spherical oscillator parameters for the r2 coordinate.
= = = = = = =

Card 9: GSTATE (F20.0) The ground state of the system in cm relative to the energy zero. This must be supplied when IDIA 2, IPAR 1 and JROT 0, and can be blank otherwise.
= = =

4.3. The dipole subroutine DIPJODVR processes batches of transitions between states defined by the input file. This file is produced by DVR3D stream IWAVE. Usually there will only be one input file, but if the Hamiltonian has two symmetry blocks which were calculated separately, then two may be given. In that case, the inputs for the two DVR runs must agree absolutely except for IPAR which will obviously be different, and, if ZSAME F, the value of a used to define spherical oscillator functions in the r-, coordinate. The stream IWAVE from the DVR run contains most of the data necessary to characterise the run. The rest must be supplied in the input for DIPJODVR. The program uses streams IBRAO, IKETO, IBRAI, IKET1, IWAVEO and IWAVEI, and will stop if any two of them are set of the same channel. All arrays are internally allocated within an area of memory, the size of which is specified by a parameter NAVAIL. The program will stop if NAVAIL is not large enough. DIPJODVR requires a subroutine DIPD(DIPC,R1,R2,XCOS,NU) which must supply the dipoles in the x and z direction of the DVR coordinate embedding. The specifications of DIPD are as follows:
=

DIPC (DOUBLE PRECISION): Ri (DOUBLE PRECISION): R2 (DOUBLE PRECISION): XCOS (DOUBLE PRECISION): NU (INTEGER):

value of the x dipole in atomic units if NU value of the z dipole in atomic units if NU value of r1 in Bohr. value of r2 in Bohr. value of cos 0. 0 or 1.

= =

1; 0.

DIPJODVR requires 5 lines of card input for most runs. One extra card is required if the original calculation is done in two symmetry blocks (even and odd) and these use different points for r2. Cards giving data not required or for which the defaults [given below in square brackets] are sufficient should be left blank. 4.4. Card input for DIPJODVR Card 1: NAMELIST/PRT/ IPTOT[0] only relevant if the Hamiltonian has two symmetry blocks which were calculated separately in the DVR calculation. 0 results from just one block are to be calculated. 2 results from both blocks are to be calculated. IBRA[50] the stream on which the wavefunctions for the bra are stored. IKET[5i] the stream on which the wavefunctions for the ket are stored.
= =

JR. Henderson et al.

Fully pointwise calculation of vibrational spectra

393

IBRA[52]

IKET1[53]

IWAVEO[26] IWAVE1[55]

ZSAME[T]

the stream on which the wavefunctions from the second (odd) DVR calculation for the bra are stored. This is only relevant if the Hamiltonian has two symmetry blocks which were calculated separately in the DVR calculation. the stream on which the wavefunctions from the second (odd) DVR calculation for the ket are stored. This is only relevant if the Hamiltonian has two symmetry blocks which were calculated separately in the DVR calculation. the stream on which the results written to IWAVE (default 26) in the DVR calculation are stored. the stream on which the results written to IWAVE (default 26) in the second (odd) DVR calculation are stored. This is only relevant if the Hamiltonian has two symmetry blocks which were calculated separately in the DVR calculation. F if the Hamiltonian has two symmetry blocks which were calculated separately and which used different points for r2.
=

Card 2: Title (A80) An eighty character title. Card 3: LBRAO, LKETO, LBRA1, LKET1 (415) LBRAO number of lowest state to be used in the bra. LKETO number of lowest state to be used in the ket. LBRAI number of lowest state to be used from the second symmetry block in the bra (only needed if the Hamiltonian has two symmetry blocks which were calculated separately in the DVR calculation). LKET1 number of lowest state to be used from the second symmetry block in the ket (only needed if the Hamiltonian has two symmetry blocks which were calculated separately in the DVR calculation). Card 4: NBRAO, NKETO, NBRA1, NKET1 (415) NBRAO number of highest state to be used in the bra. 1 means use the value of NEVAL from IWAVE). NKETO number of highest state to be used in the ket. NBRAi number of highest state to be used from the second symmetry block in the bra (only needed if the Hamiltonian has two symmetry blocks which were calculated separately in the DVR calculation). NKET1 number of highest state to be used from the second symmetry block in the ket (only needed if the Hamiltonian has two symmetry blocks which were calculated separately in the DVR calculation.
(

Card 5: R1E, RiE R2E XCOSE

R2E, XCOSE (3F20.0) is the equilibrium value of r1 in atomic units. is the equilibrium value of r2 in atomic units. is the equilibrium value of cos 0.

Card 6: NQE, NQO (215) NQE is the number of quadrature points to be generated using the parameters from the even symmetry calculation. NQO is the number of quadrature points to be generated using the parameters from the odd symmetry calculation.

394

JR. Henderson et a!.

Fully pointwise calculation of vibrational spectra

4.5. Test output A test deck which runs both DVR3D and DIPJODVR has been prepared. This uses the H2S potential energy and dipole surfaces of Senekowitch et al. [31]. The run mimics the benchmark calculations on H2S performed by Carter et al. [32] and the vibrational band intensity calculations of Le Sueur et al. [15], although the size of the calculations have been reduced in the test data. The LiCN (CN frozen) scattering coordinate surface of Essers et al. is supplied in subroutine POT.

Acknowledgements

We would like to thank Dr. Brian Sutcliffe for helpful discussions during the course of this work. JRH thanks SERC for a Fellowship. This work was supported by SERC grants GR/G34339 and GR/H4i744.

References
[1] Z. Bai and J.C. Light, Ann. Rev. Phys. Cheni. 40 (1989) 469. 121 DO. Harris, GO. Engerholm and W. Gwinn, J. Chem. Phys. 43 (1965) 1515. [3] Z. Ba~i and iC. Light, J. Chem. Phys. 85 (1986) 4594. [4] iC. Light, I.P. Hamilton and J.V. Lill, J. Chem. Phys. 92 (1985) 1400. [5] J. Tennyson and JR. Henderson, J. Chem. Phys. 91(1989) 3815. [6] JR. Henderson and J. Tennyson, Mol. Phys. 69 (1990) 639. [71J.R. Henderson, S. Miller and J. Tennyson, J. Chem. Soc. Faraday Trans. 86 (1990) 1963. 18] JR. Henderson, HA. Lam and J. Tennyson, J. Chem. Soc. Faraday Trans. 88 (1992) 3187. [9] J.A. Fernley, S. Miller and J. Tennyson, J. Mol. Spectrosc. 150 (1991) 597. [101 R.M. Whitnell and J.C. Light, J. Chem. Phys. 90 (1989) 1774. [11] JR. Henderson and J. Tennyson, Comput. Phys. Commun. 75 (1993) 365, this issue. [12] JR. Henderson, PhD Thesis, University of London (1990). [13] JR. Henderson, CR. Le Sueur, S.G. Pavett and J. Tennyson, Comput. Phys. Commun. 74 (1993) 93. 114] JR. Henderson, J. Tennyson and B.T. Sutcliffe, J. Chem. Phys., in press. [15] CR. Le Sueur, S. Miller, J. Tennyson and B.T. Sutcliffe, Mol. Phys. 76 (1992) 1147. [16] B.T. Sutcliffe and J. Tennyson, mt. J. Quantum Chem. 29 (1991) 183. [17] J. Tennyson, Comput. Phys. Rep. 4 (1986) 1. [18] J. Tennyson and B.T. Sutcliffe, J. Chem. Phys. 77 (1982) 406!. [19] J. Tennyson, S. Miller and CR. Le Sueur, Comput. Phys. Commun. 75 (1993) 339. this issue. [20] IS. Gradshteyn and I.H. Ryzhik, Tables of Integrals, Series and Products (Academic, New York, 1980). [21] J. Tennyson and B.T. Sutcliffe, J. Mol. Spectrosc. 101 (1983) 71. [22] A.H. Stroud and D. Secrest, Gaussian Quadrature Formulas (Prentice-Hall, London, 1966). [23] J.C. Light, R.M. Whitnell. T.J. Pack and SE. Choi, in: Supercomputer Algorithms for Reactivity, Dynamics and Kinetics of Small Molecules, ed. A. Lagan, NATO ASI series C, Vol. 277 (Kluwer, Dordrecht, 1989) p. 187. [24] D. Sadavoski, N.G. Fulton, JR. Henderson, J. Tennyson and B.l. Zhilinski. J. Chem. Phys., submitted. [25] AS. Dickinson and P.R. Certain, J. Chem. Phys. 49 (1968) 4204. [26] N.G. Fulton, JR. Henderson and J. Tennyson, work in progress. [27] CR. Le Sueur, JR. Henderson and J. Tennyson, Chem. Phys. Lett., submitted. [28] Subroutine EGVQR, originally due to Ti. Dekker, Amsterdam (1968). [29] NAG Fortran Library Manual, Mark 14 (1990). [30] W.H. Press, B.P. Flannery, S.A. Teukolsky and W.T. Vetterling, Numerical Recipes (Cambridge Univ. Press, Cambridge. 1986). [31] J. Senekowitsch, S. Carter, A. Zilch, H.-J. Werner, NC. Handy and P. Rosmus, J. Chem. Phys. 90 (t989) 783. [32] S. Carter, P. Rosmus, N.C. Handy, S. Miller, J. Tennyson and B.T. Sutcliffe, Comput. Phys. Commun. 55 (1989) 71. [33] R. Essers, J. Tennyson and P.E.S. Wormer, Chem. Phys. Lett. 89 (1982) 223.

JR. Henderson et al.

Fully pointwise calculation of vibrational spectra

395

TEST RUN OUTPUT


PROGRAM DVR3D (vERSION OF 15 Sept 1992) FULL TRIATOMIC VIBRATIONAL PROBLEM WITH 18 18 40 10 600 TITLE: RADIAL Ri DVR POINTS USED. RADIAL R2 DVR POINTS USED. ANGULAR DVR POINTS USED. WITH LOWEST EIGENVECTORS CHOSEN FROM DIMENSION SECULAR PROBLEM H2S J0 scattering coordinates 3D DVR
->

UP TO

PROBLEM SOLVED IN THE ORDER: THETA 600 EIGENVALUES SELECTED FROM


LOWEST

Ri

->

R2 I.1246613142D+00

0.1106398948001 TO

10 EIGENVALUES IN CM-i: 0.448789782008D+04 0.800114410352D+04 0.5669474484780+04 0.8257559623590+04 0.591781492896D+04 0.8451661215520+04 0.6840932152320+04 0.854865836085D+04

0.3297458149300+04 0.709201630442D+04

600 EIGENVALUES SELECTED FROM 0 MINS 0 MINS LOWEST 0.00 SECS CPU TIME USED 0.00 SECS CPU TIME USED

0.1106398948D01 TO

0.1246613142D+00

10 EIGENVALUES IN HARTREES: 0.20448367735lD01 0.364558961656D01 0.258320273272001 0.376242112782001 0.269631496857001 0.385086032339D01 0.311695813741D01 0.389505547614001

0.150243253147D01 0.323136049862DOl

LOWEST

10 EIGENVALUES IN CMi: 0.448789782008D+04 0.8001144103520+04 version 1.1 (September 1992) 0.5669474484780+04 0.8257559623590+04 0.5917814928960+04 0.8451661215520+04 0.6840932152320+04 0.8548658360850+04

0.329745814930D+04 0.7092016304420+04 Program DIPJODVR


-

test data for H2S even eigenstates only The equilibrium values of rl. r2. and cos(theta) correspond to the following atom coordinates: Atom 1 (mass Atom 2 (mass Atom 3 (mass 31.972071 amu): 1.007825 amu): 1.007825 amu): x 0.000000 1.870000 1.870000 S 0.105563 1.674437 1.674437

PRINT OUT OF DIPOLE TRANSITION MOMENTS AND S(Fi) FREQUENCIES IN WAVENUMBERS TRANSITION MOMENTS IN DEBYE (2.54174A.U.) S(F-I( IN DEBYE**2 EINSTEIN A-COEFFICIENT IN SECi

IE1 1 1 1 1 1 1 1 1 1 1

IE2 1 2 3 4 5 6 7 8 9 10

RET ENERGY 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000

BRA ENERGY 0.000 1190.440 2372.016 2620.357 3543.474 3794.558 4703.686 4960.101 5154.203 5251.200

FREQUENCY 0.000 1190.440 2372.016 2620.357 3543.474 3794.558 4703.686 4960.101 5154.203 5251.200

I TRANSITION 0.982740E+00 0.147225E01 0.367882E02 I.721566E02 0.106987E02 0.676743E02 0.225805E03 0.354321E03 0.257982E02 0.862820E03

X TRANSITION 0.000000E+OI 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00 0.000000E+00

DIPOLE 0.982740E+00 0.147225E01 0.367982502 0.721566E02 0.106987E02 0.676743E02 0.225805E03 0.354321003 0.257982E02 0.862820E03

S(FI) 0,965779E+O0 0.216751E03 0.135337504 0.520658E04 0.114463EI5 0.457980E04 0,509878507 0.125543E06 0.665546005 0.744459E06

A-COEFFICIENT 0.000000E+00 0.11.4679E+00 S.566464E01 0.293789E+II 0.159718E01 0.784752E+00 0.166411002 0.480470E02 0.2858025+00 0.338079EOi