Explore Abinit and around
- ABINIT Coding
- Doc for new developers
- Organizing events
The format 1 for ABINIT pseudopotentials allows to use pseudopotentials from the set of LDA pseudotentials for the whole periodic table, build by DC Allan and A.Khein. They have been generated according to the Troullier-Martins technique. See ~abinit/doc/users/bibliography.html for the corresponding references.
The pspcod=1 psp files are formatted data files which give potentials and projector functions on a real space radial grid.
Firstly, the radial grid runs from index 0 to 2000 (2001 points), with grid points given by the following equation (given as fortran):
nmax=2000 do j=0,nmax x=dble(j)/dble(nmax) r(j)=100.d0*(x+.01d0)**5-1.d-8 end do
The psp file consists of a number of header lines followed by the data on the radial grid. The header section is as follows:
title (single 80 character line) zatom, zion, pspdat pspcod, pspxc, lmax, lloc, mmax, r2well ...then, for l=0 to lmax, the following 2 lines: l,e99.0,e99.9,nproj,rcpsp rms,ekb1,ekb2,epsatm ...finally one more line: rchrg,fchrg,qchrg
The data may be located anywhere on the line as long as it is provided in the order indicated (it is read with free format). In the case of Si with lmax=2, the header may look like the following 10 lines:
Si Fri Oct 08 11:18:59 1993 14.00000 4.00000 930920 zatom, zion, pspdat 1 1 2 2 2001 .00050 pspcod,pspxc,lmax,lloc,mmax,r2well 0 19.464 25.000 2 1.8971118 l,e99.0,e99.9,nproj,rcpsp .00112760 6.1457108933 4.4765165955 29.74712295 rms,ekb1,ekb2,epsatm 1 21.459 28.812 2 1.8971118 l,e99.0,e99.9,nproj,rcpsp .00119946 3.2090654032 2.0935248528 19.11150542 rms,ekb1,ekb2,epsatm 2 8.223 21.459 0 1.8971118 l,e99.0,e99.9,nproj,rcpsp .00098688 .0000000000 .0000000000 -3.97301006 rms,ekb1,ekb2,epsatm 1.70000000000000 .22513330685109 .96523597101781 rchrg,fchrg,qchrg
zatom is the atomic number of the atom (14 for Si) zion is the number of valence electrons (4 for Si) pspdat is a code revision date (930920 for this case) pspcod is another index describing the code (1 for this case) pspxc is an index showing the choice of exchange-correlation (1) lmax is the highest angular momentum for which a pseudopotential is defined, which is also used for the local potential (2) lloc is the angular momentum used for the local potential (2) mmax is the number of grid points (2001) r2well is the prefactor of a harmonic well sometimes used to bind electrons which would otherwise be unbound in lda (.00050) l is the angular momentum (0, 1, or 2 for Si for this case) e99.0 is the planewave cutoff needed to converge to within 99.0% of the kinetic energy of the atom (various numbers for various l) e99.9 is the planewave cutoff needed to converge to within 99.9% of the kinetic energy of the atom (various numbers for various l) nproj is the number of projection functions used for each l (2) rcpsp is the pseudopotential core radius rms is a measure of pseudopotential quality reflecting the value of the penalty function in designing the potential ekb1, ekb2 are the Kleinman-Bylander energies for each projection function for each l epsatm is the integral Int[0 to Inf] (4*Pi*r*(r*V(r)+Zion)) rchrg is the core charge radius for additional core charge used to match the xc contribution to the hardness matrix fchrg is the prefactor of the core charge expression qchrg is the total (integrated) core charge
Following the header are, for l=0 to lmax, the pseudopotentials in the form of a title line followed by 667 lines of data, each line containing three numbers so that the radial grid values from 0 to 2000 are given. The title line gives the value of l first followed by some text. For the case of Si, e.g., for l=0, this line is
0 =l for Teter pseudopotential
followed by the 667 lines, 3 numbers each, giving the l=0 potential on the radial grid described above.
Following the pseudopotentials are the first projection functions, again given for each l with a title line followed by 667 data lines.
Following the first projection functions for each l are the second projection functions, if any (determined by nproj).
Following the second projection functions, if any, are several lines of additional data which is not read by plane_wave but is provided to describe more about the details of the construction of the pseudopotential. Omission of these lines does not affect the running of plane_wave (at this time).
If you do not wish to use core charges, simply set fchrg to 0 and use rchrg=1, qchrg=0.
If you wish to make a local potential, use lmax=lloc=0, nproj=0, and you need not provide any projection function(s) (at this time). The values of rms, ekb1, ekb2, epsatm, e99.0, e99.9 are used only for information (at this time) so may be set to 0 when creating a pseudopotential file. rcpsp is still used as the definition of the pseudopotential core radius so it must be provided.
To best understand this data structure, it is recommended to study several pseudopotential files and compare their contents with the description given here.
Inside ABINIT, a pseudopotential with format 1 will be treated by the routine psp1in.f, that calls psp1lo.f (local part), psp1nl.f (non-local part), and psp1cc.f (XC core correction).
As a matter of numerical accuracy, note that the integral of (V®+Zion/r) r^2 in psp1lo.f is performed from 0 to the highest allowed radius (usually about 100 a.u.), without cut-off. V®+Zion/r should tend rapidly to zero for large radii (beyond 5 a.u.), but this correct behaviour will not be enforced by the routine. If the tail of V® is inaccurate (i.e. if the pseudopotential is in single precision), there will be large inaccuracies in the integral, because of the r^2 factor.