31.12.2013 Views

Numerical Methods in Quantum Mechanics - Dipartimento di Fisica

Numerical Methods in Quantum Mechanics - Dipartimento di Fisica

Numerical Methods in Quantum Mechanics - Dipartimento di Fisica

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

The Hamiltonian operator for this problem is obviously<br />

H = −¯h2 ∇ 2<br />

2m e<br />

− Zq2 e<br />

r<br />

(5.24)<br />

For the hydrogen atom, Z = 1.<br />

Calculations for S- and P-wave gaussians are completely <strong>in</strong>dependent. In<br />

fact, the two sets of basis functions are mutually orthogonal: S ij = 0 if i is a<br />

S-wave, j is a P-wave gaussian, as evident from the <strong>di</strong>fferent parity of the two<br />

sets of functions. Moreover the matrix elements H ij of the Hamiltonian are<br />

also zero between states of <strong>di</strong>fferent angular momentum, for obvious symmetry<br />

reasons. The S and H matrices are thus block matrices and the eigenvalue<br />

problem can be solved separately for each block. The P-wave basis is clearly<br />

unfit to describe the ground state, s<strong>in</strong>ce it doesn’t have the correct symmetry,<br />

and it is <strong>in</strong>cluded ma<strong>in</strong>ly as an example.<br />

The code reads from file a list of exponents, α i , and proceeds to evaluate all<br />

matrix elements H ij and S ij . The calculation is based upon analytical results<br />

for <strong>in</strong>tegrals of Gaussian functions (Sec.5.1.1). In particular, for S-wave one has<br />

∫<br />

S ij = e −(α i+α j )r 2 d 3 r =<br />

while the k<strong>in</strong>etic and Coulomb terms <strong>in</strong> H ij are respectively<br />

∫ [<br />

Hij K = e −α ir 2 −¯h2 ∇ 2 ]<br />

e −α jr 2 d 3 r =<br />

2m e<br />

∫ [<br />

Hij V = e −α ir 2 − Zq2 e<br />

r<br />

]<br />

(<br />

π<br />

α i + α j<br />

) 3/2<br />

(5.25)<br />

( ) 3/2 ¯h2 6α i α j π<br />

(5.26)<br />

2m e α i + α j α i + α j<br />

e −α jr 2 d 3 r = − 2πZq2 e<br />

α i + α j<br />

(5.27)<br />

For the P-wave basis the procedure is analogous, us<strong>in</strong>g the correspond<strong>in</strong>g (and<br />

more complex) analytical expressions for <strong>in</strong>tegrals.<br />

The code then calls subrout<strong>in</strong>e <strong>di</strong>ag that solves the generalized secular<br />

problem (i.e. it applies the variational pr<strong>in</strong>ciple). Subrout<strong>in</strong>e <strong>di</strong>ag returns a<br />

vector e conta<strong>in</strong><strong>in</strong>g eigenvalues (<strong>in</strong> order of <strong>in</strong>creas<strong>in</strong>g energy) and a matrix v<br />

conta<strong>in</strong><strong>in</strong>g the eigenvectors, i.e. the expansion coefficients of wave functions.<br />

Internally, <strong>di</strong>ag performs the calculation described <strong>in</strong> the preced<strong>in</strong>g section<br />

<strong>in</strong> two stages. The solution of the simple eigenvalue problem is performed by<br />

the subrout<strong>in</strong>e dsyev we have already seen <strong>in</strong> Sect.4.4.<br />

In pr<strong>in</strong>ciple, one could use a s<strong>in</strong>gle LAPACK rout<strong>in</strong>e, dsygv, that solves<br />

the generalized secular problem, Hψ = ɛSψ, with a s<strong>in</strong>gle call. In practice,<br />

one has to be careful to avoid numerical <strong>in</strong>stabilities related to the problem<br />

of l<strong>in</strong>ear dependencies among basis functions (see Eq.(5.10) and the follow<strong>in</strong>g<br />

<strong>di</strong>scussion). Inside rout<strong>in</strong>e <strong>di</strong>ag, all eigenvectors of matrix S correspond<strong>in</strong>g to<br />

very small eigenvectors, i.e. smaller than a pre-fixed threshold are thrown away,<br />

before proceed<strong>in</strong>g with the second <strong>di</strong>agonalization. The number of l<strong>in</strong>early<br />

<strong>in</strong>dependent eigenvectors is repr<strong>in</strong>ted <strong>in</strong> the output.<br />

The reason for such procedure is that it is not uncommon to <strong>di</strong>scover that<br />

some basis functions can almost exactly be written as sums of some other basis<br />

45

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!