A projector augmented wave (PAW) code for electronic structure calculations, part II: pwpaw for periodic solids in a plane wave basis. A.R. Tackett, N.A.W. Holzwarth, G.E. Matthews.

PROGRAM SUMMARY
Title of program: pwpaw
Catalogue identifier: ADNP
Ref. in CPC: 135(2001)348
Distribution format: tar gzip file
Operating system: Unix
High speed store required: 100MK words
Number of lines in distributed program, including test data, etc: 885380
Keywords: Solid state physics, Band structure, Electronic structure calculations, Density functional calculation, Local density approximation, Projector augmented wave method, PAW, Calculational methods.
Programming language used: Fortran
Computer: DEC Alpha , IBM SP2 .

Nature of physical problem:
The projector augmented wave (PAW) method, developed by Blochl, is a very powerful tool for performing electronic structure calculations in the framework of density functional theory, combining some of the best features of pseudopotential and all-electron approaches. The pwpaw program finds the one-electron eigenfunctions and eigenvalues for a periodic system, and optionally optimizes or performs molecular dynamics on the atomic positions within the unit cell.

Method of solution:
The program initializes the wavefunctions with a linear combination of atomic orbitals (LCAO) or with a random number generator and determines the eigenstates of the generalized eigenvalue problem by iterative diagonalization. The atomic forces are calculated, using a modified Feynman-Hellmann approach, from a knowledge of the converged eigenstates.

Restrictions:
In this version of the code, only serial processing has been implemented. In addition, of the many exchange-correlation functionals, only the local density approximation (LDA) is currently available. Also, relativistic and magnetic effects are not yet coded.

Typical running time:
Roughly 3-15 minutes/atom for each geometry on an SP2 computer.

Unusual features:
The program sequence is controlled by a keyword input file. A memory management scheme is implemented which enables the user to tune the program to make optimal use of available computer resources.
The library packages BLAS, LAPACK (available from http://www.netlib.org), and FFTW (available from http://www.fftw.org) are needed.