ABINIT, lesson PAW2:
Projector augmented-wave technique : the generation of atomic
data
files
This lesson aims at showing how to compute atomic
data files for the
projector-augmented-wave method.
You will learn how to generate the atomic data and
what the main
variables are to govern their softness and transferability.
It is supposed you already know how to use ABINIT
in the
PAW case
This lesson should take about 1 hour to be done.
Copyright (C) 2005 ABINIT group (FJ,MT,FB)
This file is distributed under the terms of the GNU General
Public
License, see
~ABINIT/Infos/copyright or
http://www.gnu.org/copyleft/gpl.txt .
For the initials of contributors, see
~ABINIT/Infos/contributors .
Goto :
ABINIT home Page
|
Welcome
|
Suggested
acknowledgments
|
List of input variables
|
Tutorial home page
|
Bibliography
Help files :
New user's guide
|
Abinis (main)
|
Abinis (respfn)
|
Mrgddb
|
Anaddb
|
AIM (Bader)
|
Cut3D
|
Optic
|
AIM (Bader)
|
Cut3D
|
Optic
Contents of lesson
PAW2 :
- 1. The PAW
atomic data
- 2.
Installation of the
generation
code
- 3.
Calculation of the
all-electron
data
- 4.
Calculation of the pseudized
data
- 5. Test
of the physical
properties
- 6.
The Real Space Optimisation
- 7.
Description of the PAW atomic data file
1. The PAW atomic data
Norm-concerving plane wave calculations
in ABINIT
are done
in the
frame of the pseudopotential approach: only valence electrons are
explicitely taken into account, the interactions between ionic core and
valence electrons being treated through a pseudopotential. This is why,
for each element, there is one pseudopotential file to be used in the
calculation. The PAW method is based on the definition of atomic
spheres of radius rc, around the atoms
of the system in which a base of
atomic wavefunctions φi, of
"pseudized" wavefunctions of φi,
tφi, and of projectors pi
, dual to tφi have to be
defined. All these data , and some other ones that will be precised
hereunder, are called PAW atomic data. As for pseudopotentials, a PAW
atomic data file must be generated for each element. This generation is
the purpose of this tutorial.
For the moment, it has been decided not to write a specific
PAW atomic
data generator from scratch for ABINIT,
but to
interface two already
existing generators. The first one is the PAW generator Atompaw,
promoted by N. Holzwarth and the second one is the
Ultra-Soft (US) generator USPP
promoted by
D. Vanderbilt. You can find how to use
these two packages on the ABINIT
web site.
In this tutorial, we concentrate only on USPP.
It is highly recommended to refer to the following papers to
well
understand the generation of PAW atomic data:
[1] "Soft
self-consistent pseudopotentials in a generalized eigenvalue
formalism", by D. Vanderbilt, Phys. Rev. B 41, 7892 (1990)
[2] "Car-Parrinello
molecular dynamics with Vanderbilt ultrasoft
pseudopotentials", K. Laasonen et al., Phys. Rev. B 47, 10142 (1993)
[3]
"A
projector Augmented Wave (PAW) code for electronic structure
calculations, PartI : atompaw
for generating atom-centered functions", by N. Holzwarth et al.,
Computer Physics Communications 135,
329 (2001)
[4] "From ultrasoft pseudopotentials to
the projector augmented-wave method", G. Kresse, D. Joubert, Phys. Rev.
B 59,1758
(1999)
2. Installation of the generation code
Before continuing, you might
consider to work in a different
subdirectory as for the other lessons. Why not "Work_paw2" ?
You will find the USPP
+ USPP2ABINIT
interface here.
You have first to unzip
and untar the file.
Go
into /Uspp2Abinit directory and edit Makefile
file; modify it according to your machine specifications.
Into
/Uspp2Abinit directory:
Type: make
It compiles a patched version of USPP
(with Abinit’s PAW add-ons) and
creates runatom.x in /uspp-xyz/USpp2Abinit
directory
Type : make install
It installs "patched" runatom.x into /uspp-xyz/Bin
directory
At this stage
you get a patched version of USPP
package;
you can use it like original
USPP.
3. Calculation of the all-electron data
We are going
to generate atomic data for Titanium. Go into /Work/022-Ti/022-Ti-ca-sp-vgrp directory.
There are six files:
- README:
some
informations about the PAW atomic data for the element
(physical properties, convergency, transferability ...)
- ti_ae_s2d1.adat:
input file for all electron calculation in the s2d1
configuration.
- ti_ae_s2d2.adat: input file for all electron
calculation in the s2d2
configuration.
- ti_ps.adat: input file for the pseudization.
- ti_test_s2d2.adat:
input file
for test calculation
in the s2d2
configuration.
- Makefile:
management of the calculation.
The first thing to do is to choose a ionic configuration for Titanium
to generate the atomic data.
The neutral configuration is s2d2.
However, in order to produce transferable data, the generation is
sometimes performed on ionic configuration, s2d1 for instance.
We shall start here from a s2d1
configuration. This
means that for
the
all electron calculation, the file ti_ae_s2d1.adat
will be used.
Go into the
Makefile. At the beginning of the file you will find the
following lines:
#################################################################
# This is the only section that usually needs to be modified
#
# Set parameters:
# ATOM = chemical symbol of atom
# CFG = atomic or ionic configuration
used for
generation
# CFT = atomic or ionic configuration
used for testing
ATOM= ti
CFG= s2d1
CFT= s2d2
#################################################################
You could put
CFG=s2d2 to start from a neutral configuration.
The
Makefile
is built so that when typing make,
an all electron calculation will be
made with the input file ti_ae_s2d1.adat,
followed by a pseudization calculation with the input file ti_ps.adat.
You
are now ready to start the generation.
Open the input file ti_ae_s2d1.adat.
Open also the file /DOC/INPUT_AE. This is
the documentation
for the all electron file. Read it carefully in order to understand the
signification of all the input variables. Remember that the units of
the
code are Rydberg for energies and Bohr for the distances. Remember
also that USPP
is written in Fortran 77 and that you have to respect formats (number
of spaces and digits) when modifying the input data.
For PAW, you have only to take care of the input variable exfact,
that
governs the exchange-correlation functionnal:
exfact=0
is to be taken for a LDA PZ Ceperley Adler functionnal
exfact=-1
is
to
be taken for a LDA Wigner functionnal
exfact=-2
is
to
be taken for a LDA Hedin-Lundquist functionnal
exfact=5
is
to be taken
for a GGA PBE functionnal.
The other choices are not compatible with ABINIT.
In the present tutorial we propose to generate a
GGA atomic dataset for ABINIT.
In
the ti_ae_s2d1.adat file, modify the value of the exfact
parameter (put 5.
in place of 0.
value).
Repeat the same operation in the ti_ae_s2d2.adat
file file (useful for
tests; see below).
4. Calculation of the pseudized data
4.a
Description of the input file and relevant
parameters for the generation of PAW
atomic data
Open the input file ti_ps.adat.
Open also the file /DOC/INPUT_GEN. This is
the documentation
for the pseudization file. Read it carefully in order to understand the
signification of all the input variables. Remember that the units of
the
code are Rydberg for energies and Bohr for the distances. Remember
also that USPP
is written in Fortran 77 and that you have to respect formats (number of
spaces and
digits) when
modifying the input data.
The more sensistive variables in ti_ps.adat
are:
-
rc:
defines the PAW sphere radius (at rc the φi/tφi
becomes equal). It
plays a role in the softness of the pseudization (greater rc is softer the
pseudized
functions are). A compromise has however to be found because a too
large rc
value leads to an
unphysical overlap between neighbouring spheres.
-
nbeta:
defines the total number of atomic basis functions. Experience shows
that two functions per l
angular momentum is a good compromise.
-
lll,keyee,eeread:
define the reference energies associated with each atomic basis
function. In the frame of this tutorial we shall not change these
values; however in general case they are to be adjusted to obtain good
physical results.
-
lloc:
defines the channel chosen as local along the
pseudization generation process (0 for s,
1 for p, 2
for d and 3
for f).
Projectors are indeed computed
as solution of an equation including a "local" potential.
-
rcloc:
defines the radius used to pseudize the potential (at rcloc the pseudized
and
the
all-electron local potentials are equal).
-
rpcor:
defines the pseudization radius used for the electronic
core density (at rpcor
core
density becomes equal to pseudized core density).
As an example, in the ti_ps.adat file, modify the value of
the rc
parameter (put 2.
in place of 1.8
value):
4.b Generation of the PAW atomic data file
In order to generate PAW atomic data (in a format readable by ABINIT) with the
'patched" USPP,
you just have to type:
in the /Work/022-Ti/022-Ti-ca-sp-vgrp directory.
You
should obtain the following error message:
all electron
calculation completed
../../../Bin/runatom.x
ti_ps.adat ti_ps.out ti_ae_s2d1.ae ti_ps.atwf ti_ps.logd ti_ps.uspp
beginning execution
pseudopotential program version 7.3.5
make: *** [ti_ps.uspp] Error
1
Look
at the end of the ti_ps.out file:
***error in
subroutine readin
need ifqopt=3 for
gga, exfact= 5.00000000000000
As
suggested by the error message, modify the value of the ifqopt parameter
in the ti_ps.adat file (put 3 in place of the 2 default value).
You
also need to modify
the value of nqf and npf parameters
to be compatible with ifqopt=3
value (put 8
in place of the 5
default value).
The modification of the
ifqpot/nqf/npf parameters has influence on the pseudization
of core density.
Type again:
At
the end of the ti_ps.out file, you
can read:
vhxc: negative
density
at
439 r-values
As
suggested in the /DOC/TUTORIAL file, you
have to decrease
the value of rinner parameter
in the ti_ps.adat file (put 0.6 in place of the 1. value).
The
modification of the rinner parameter is needed in the context of
ultrasoft pseudopotential generation; it has no influence on the
generation of PAW atomic data. But we had to change it to reach the end
of USPP execution without error.
Now
you can type again:
The
code now runs without error.
Among the several files created
you may be interested in the following:
- ti_ae_s2d1.out:
output information of the all-electron calculation.
- ti_ps.out:
output information of the pseudization process.
- ti_ps.uspp: "standard" Vanderbilt
ultra-soft pseudopotential (binary format).
- ti_ps.abinit.paw: PAW atomic data for ABINIT.
Have
a look at the ti_ps.abinit.paw file; it looks like described here.
The aim of the present tutorial
is to obtain a transferable and efficient ti_ps.abinit.paw file.
4.c
Test of the transferability of the atomic data
As in the norm-conserving case, we have to check various features of
the atomic data. In particular, its capabability to
reproduce (in some range) the all-electron eigenvalues and the
all-electron logarithmic derivatives. The matching between the pseudo
and all-electron features indicates the confidence degree we can have
in our atomic data; which is the so-called transferabilility.
These two features are reproduced in the output file coming from the
pseudopotential generation process.
Open
the ti_ps.out
file.
»
Search the "chart:
log derivatives" text.
In this
figure are displayed the logarithmic derivatives with the numbers 1 for
the all-electron s
wave
function, 2 for the all-electron p
wave function, 3 for the all-electron d
wave function, 4 for the pseudized s
wave function, 5 for the pseudized p
wave function and 6 for the pseudized d
wave function. The numbers 1 with 4, 2 with 5 and 3 with 6 are almost
superimposed, so the matching between the all-electron and pseudo
logarithmic derivatives is excellent.
»
The second text to be searched is "comparison
of
all-electron and pseudo eigenvalues". You can read:
nlm
all-elec
pseudo
diff
300 -5.555248 -5.555246 -0.000002
310 -3.789191 -3.789190 -0.000001
400 -0.877223 -0.877222 -0.000001
320 -1.166236 -1.166236 0.000001
The differences between
the all-electron and pseudopotential eigenvalues are almost equal to
zero.
According to these results we could have confidence in our atomic data.
However,
what should we do in a case of a bad transferability?
Among
various quantities, two play a crucial role on the
transferability.
»
The
first one is the number of atomic functions (φi)
considered in the
spherical basis set.
In the ti_ps.adat
file, this number is governed by the variable nbeta.
By
default, we use
two basis functions φi by
angular momentum: 2 for s,
2 for p and
2 for d. So
nbeta=6.
Replace the nbeta
value in ti_ps.adat
by 5 and remove the line
corresponding to the second d
function (do not forget to save a backup copy of ti_ps.adat):
2
0
0.3
2
lll,keyee,eeread,iptype (2i5,f10.5,i5)
Type make
clean&&make
and
check again the "log derivatives" and "eigenvalues" in the ti_ps.out
file.
If the differences between the all-electron and pseudo
eigenvalues are close to zero, the logarithmic derivatives of the d channel do not
match any more.
From an empirical point of view, two basis functions by angular
momentum are needed to obtain a good transferability.
»
The
second one is the all-electron electronic configuration
used in the generation process. In the Makefile
file, we have seen that the all-electron file used is the ti_ae_s2d1.adat
one (the CFG keyword). So the all-electron electronic configuration is 3s23p64s23d1,
corresponding to an
ionized Titanium atom Ti+. This permits us to
better
reproduce some Titanium oxidization states obtained in ionic compounds
(rutile, perovskites, ...) without debasing the quality of the atomic
data in the 3s23p64s23d2
neutral configuration.
For this purpose, revert to the saved ti_ps.adat
file, and type make
clean&&make
in order to regenerate the
"right" atomic data.
Then type make test in
order to test the atomic data on the 3s23p64s23d2
neutral configuration
(the CFT keyword in the Makefile
file indicates that the ti_ae_s2d2.adat
file is then used). Open the ti_test_s2d2.out
file and check again the logarithmic derivatives and the eigenvalues
differences.
Small variations are obtained for the first one whereas
1 mRy
differences are listed
for the eigenvalues:
nlm
all-elec
pseudo
diff
300 -4.603371 -4.602221 -0.001151
310 -2.856239 -2.854948 -0.001290
400 -0.328313 -0.328313 0.000000
320 -0.313034 -0.313463 0.000430
Now, we are going to generate and test
the opposite electronic configurations. In the
Makefile
file, invert the CFG and CFT keywords in order to take the 3
s23
p64
s23
d2
neutral configuration
as the generation one and the 3
s23
p64
s23
d1
ionic configuration as
the test one.
Create a
ti_test_s2d1.adat
file from
ti_test_s2d2.adat
(just copy and rename it).
Type
make clean&&
make&&make test
and open
the
ti_ps.out
file.
As previously, the all-electron and pseudo eigenvalues as well as
logarithmic derivatives match very well.
However, in the
test file ti_test_s2d1.out
file, we obtain that the atomic data generated by using a neutral
electronic configuration is not able to reproduce some oxidized states
(it is not transferable). The logarithmic derivatives are no
more superimposed and the eigenvalues differences are too
large:
nlm
all-elec
pseudo
diff
300 -5.555248 -2.260718 -3.294530
310 -3.789191 -1.483931 -2.305260
400 -0.877223 -2.260718 1.383495
320 -1.166236 -0.579318 -0.586918
5. Tests on the physical properties
Various input values can play a
significant role on the cutoff
energy convergence and on the physical properties. In the following, we
detail the influence of four of them (rc, lloc,
rcloc
and rpcor),
wich
are the most relevant in the
pseudopotential generation process. We perform in this section a
systematic study and generate 16 atomic data, with values in the range
of:
- rc=1.8;
2.0; 2.2
- lloc=0;1;2;3
- rcloc=1.8;
2.0; 2.2; 2.4
- rpcor=0.7;
0.9; 1.1; 1.3; 1.5
The
reader is supposed here to test only the influence of rc
parameter.
Then, in the following, the results for lloc,
rcloc, rpcor
studies are given.
The test process is a long but
straightforward job. It is strongly suggested to adopt a rigorous
method, for example by creating script files calling ABINIT several
times.
The atomic data can be renamed ti_ps.abinit.paw.lloc0
or ti_ps.abinit.paw.rpcor07
(for
instance). For each one a convergence with respect to the
cutoff energy and the lattice parameter has to be performed. As a
consequence, this
corresponds in all to 32 ABINIT runs. Two ABINIT input files are needed
(tpaw2_1.in
and tpaw_2.in).
Concerning physical properties, we have to compare with all-electron calculations to validate the atomic data.
For titanium you can refer to: M. Korling, J. Haglund, Phys. Rev. B 45, 13293 (1992)
In this reference, structural parameters for FCC titanium in the GGA approximation are:
a0 = 7.98 a.u.
B0 = 108 GPa
In
the following we detail the results corresponding to each variable
independently:
This quantity defines the PAW
sphere radius (at
rc
the φ
i/tφ
i become
equal) .
An increasing of the PAW
sphere radius improves the convergence with respect to the
cutoff energy (both the tφ
i and p
i pseudized functions become
softer). But overlap augmentation spheres can produce erroneous results (however a little overlap can be allowed in
ABINIT by setting
pawovlp input variable to 1).
Using the
ti_ae_s2d1.adat and ti_ps.adat files obtained at chapter
4.b, generate three PAW atomic data files:
- ti_ps.abinit.paw.rc18 with rc=1.8 in ti_ps.adat file
- ti_ps.abinit.paw.rc20 with rc=2.0 in ti_ps.adat file
- ti_ps.abinit.paw.rc22 with rc=2.2 in ti_ps.adat file
¤ Note that, in ti_ps.adat file, the value of rlogd parameter always has to be greater than the value of rc.
You might now create a subdirectory of the ~ABINIT/Tutorial
directory, and use it in this part of the tutorial. In what follows,
the name of files are mentioned as if you were in this subdirectory. Copy the three
ti_ps.abinit.paw.rc?? files in the working directory. Copy the two
../tpaw2_1.in and ../
tpaw2_2.in files in that directory also.
Create a "files" file calling the
tpaw2_1.in and using the
ti_ps.abinit.paw.rc20 psp file (or use
../tpaw2_x.files). Run
ABINIT.
Repeat the previous operation two times using
ti_ps.abinit.paw.rc18 and
ti_ps.abinit.paw.rc22 psp files.
Create a text file with the results of the three previous
ABINIT runs (only
etotal results are needed here); it should look like the following:
#ecut etotal(rc=1.8) etotal(rc=2.0) etotal(rc=2.2)
4. -54.702532616197 -55.710863969983 -57.800171866404
8. -58.348646858819 -58.414320137319 -58.438738840950
12. -58.449804130981 -58.456112238439 -58.450166214856
16. -58.450428483630 -58.456992098107 -58.451567157579
20. -58.450793003544 -58.457287569160 -58.451635622379
24. -58.451015923712 -58.457349722341 -58.451658007096
28. -58.451184667996 -58.457374066182 -58.451705857156
32. -58.451219375226 -58.457380473063 -58.451727845194
36. -58.451240087944 -58.457398273827 -58.451747515816
40. -58.451264954410 -58.457407724961 -58.451772233280
For a better visualization, it is better to substract the last line (
ecut=40. Hartree) from all the others. You get a file like
this.
Note: to create the previous text files you can use a little shell script given here.
Use a graphical tools (for the pictures here we used
xmgrace) and plot the three curves (
deltae vs
ecut). Choose a logarithmic scale for a better legibility.

At this stage we have performed a convergence on cutoff energy study. Now we have to test the physical parameters.
You can use now the ../
tpaw2_2.in file and run
ABINIT three times using successively the three atomic data files (
ti_ps.abinit.paw.rc18, ti_ps.abinit.paw.rc20 and
ti_ps.abinit.paw.rc22). The results you should obtain are
here.
With the three "
Etotal vs volume" curves, it is possible to adjust some fit (
Birch-Murnaghan for instance) and deduce the values of the equilibirum lattice parameter and bulk modulus.
With the three previous curves we find the following:
| rc=1.8 a.u. | rc=2.0 a.u. | rc=2.2 a.u. |
a0 (a.u.) | 7.789 | 7.792 | 7.832 |
B0 (GPa) | 104.0 | 104.5 | 100.2 |
Finally we have to choose an optimal value for
rc radius.
As you can see above, the value
rc=1.8
a.u. gives poor convergence results for
Ecut>10 Hartree.
On the other hand, the lattice parameter is increasing and the bulk modulus is decreasing when
rc increases.
A reasonnable choice seems to be rc=2.0 a.u..
You just have to read the rest of this chapter, without running ABINIT.
It seemed useful for a clear understanding to mention the complete
optimization process (lloc, rcloc,rpcor, ...). But, within the
framework of the present tutorial, it would be too long to detail.
The
lloc parameter defines the channel chosen as local along the
pseudization generation process (0 for
s,
1 for
p, 2
for
d and 3
for
f). More details are given in Ref.
[1].
However we have to emphasize the following point: the
lloc variable does not
modify the potential
Vloc(r) of the
ti_ps.abinit.paw
atomic data file, as expected if we use the local part coming from the
Kleinman-Bylander separation. In our formulation, this one is rather
computed by starting from the all-electron and pseudized core densities, so is
lloc independent. On the other hand,
the
lloc variable acts on the pseudized projectors p
i, as it is
highlighted by the equation (3) of Ref. [1].
Here again, for a complete study, we have to generate 4 atomic data files (with
lloc=0, 1, 2 or 3). Then, using
../tpaw2_1.in and ../
tpaw2_2.in files, we can produce curves and exploit them. The results are shown below:
| lloc= 0 | lloc= 1 | lloc= 2 | lloc= 3 |
a0 (a.u.) | 7.792 | 7.793 | 7.790 | 7.800 |
B0 (GPa) | 104.6 | 104.6 | 104.9 | 104.0 |
Whatever the
lloc values we obtain
the same physical properties. On the
other hand, for the
variation of the total
energy with respect to the cutoff energy is concerned, we obtain various behaviours. The best
convergence is obtained for
lloc=3 which is often (always?) the
channel used as local in the generation of
d elements atomic
data (or
norm-conserving pseudopotentials).
A good choice is lloc=3.
rcloc defines the radius used to pseudize the potential (at rcloc the pseudized
and
the
all-electron local potentials are equal). Even if it is
not evident in this case,
an increasing of rcloc generally yields softer pseudized projectors pi, and consequently improve the convergence with respect to the
cutoff energy.
Results of convergence and physical properties studies are shown below:
| rcloc= 1.8 a.u. | rcloc= 2.0 a.u. | rcloc= 2.2 a.u. | rcloc= 2.4 a.u. |
a0 (a.u.) | 7.792 | 7.800 | 7.833 | 7.869 |
B0 (GPa) | 104.5 | 104.0 | 102.2 | 99.9 |
We obtain an
increasing of the lattice parameter and a decreasing of the bulk
modulus as
rcloc increases. As in the norm-conserving case, the strength of the bond is
weaked as
rcloc increases.
We adopt a compromise solution
between the cutoff energy and the physical properties.
The optimal
value seems to be rcloc=2.0 a.u..
This quantity defines the pseudization radius used for the electronic
core density (at
rpcor core density becomes equal to pseudized core density). When
rpcor
increases the pseudized core density becomes softer and consequently the convergence on cut-off energy
is improved.
In the
ti_ps.adat file, ifpcor flag controls the rpcor parameter:
- If ifpcor=1, the code use the value of rpcor put in the ti_ps.adat file.
- If ifpcor=0, an "automatic" and optimal value of rpcor is computed.
Below are shown the results for rpcor=0.7; 0.9; 1.1; 1.3; 1.5; automatic value (1.67): | rpcore= 0.7 a.u. | rpcore= 0.9 a.u. | rpcore= 1.1 a.u. | rpcore= 1.3 a.u. | rpcore= 1.5 a.u. | rpcore= 1.67 a.u. (auto) |
a0 (a.u.) | 7.786 | 7.796 | 7.799 | 7.800 | 7.800 | 7.800 |
B0 (GPa) | 104.6 | 104.1 | 104.1 | 104.0 | 104.0 | 104.0 |
The physical
properties are only slightly modified along the variation of rpcor.
The rpcor=1.5 a.u. value seems to be optimal. (we also could choose the "automatic" value).
In our case we have chosen:
rc = 2.0 a.u.
rcloc = 2.0 a.u.
rpcor = 1.5 a.u.
lloc = 3
- With the produced atomic data (here
is the file), a cut-off energy Ecut = 12 Ha is needed to achieve a
convergence lower than 1 mHa on the total energy. This is sufficient to
compute well-converged structural
properties in the FCC phase (a0 and B0
around
7.798 a.u. and 104 Gpa, respectively; which is around 2% far from the all-electron values).
- The sphere radius is not too
large (rc=2.0 a.u.) and avoid spurious overlap between spheres. The
valence states 4s23d2
as well as the
semi-core states s23p6
are included
in the
valence.
- For the sake of comparison, the norm-conserving
pseudopotential is converged for ecut = 53 Ha. (with the same
criterion).
6. The Real Space Optimization (RSO)
In this chapter, an additional optimization of the atomic data
is proposed which can contribute, in some cases, to an acceleration of
the convergence on Ecut. This
optimization is not essential to produce efficient PAW atomic data but
it can be useful. We advise experienced users to try it. The idea is quite simple: when expressing the different atomic radial functions (φi, tφi, pi) on the plane waves basis eigr, the number of plane waves depends on the "locallity" of these radial functions in reciprocal space.
In the following reference (we suggest to read it):
R.D. King-Smith, M.C. Payne, J.S. Lin, Phys. Rev. B 44, 13063 (1991)
a method to enforce the locallity (in reciprocal space) of projectors pi is presented.
Projectors pi(g) expressed in reciprocal space are modified according to the following scheme:
The reciprocal space is divided in 3 regions:
- If g < gmax, pi(g) is unchanged
- If g > γ, pi(g) is set to zero
- If gmax< g < γ, pi(g) is modified so that the contribution of pi(r) is conserved with an error W (as small as possible).
The above transformation of pi(g) is only possible if pi(r) is defined outside the augmentation sphere up to a radius R0 (with R0>rc).
In practice we have to:
- Impose an error W (W is the max. error admitted on total energy)
- Adjust gmax according to Ecut (gmax<= Ecut)
- Choose γ so that 2*gmax < γ < 3*gmax
and the USPP2Abinit code apply the transformation to pi and deduce R0 radius.
You can test it now.
Go back to uspp-xyz/Work/022-Ti/022-Ti-ca-sp-vgrp directory.
Create a text file named uspp2abinit.dat (this name is compulsory) and fill it with:
ECUT_RSO= 12.
GAMMAFACT_RSO= 2.
WERROR_RSO= 0.001
- ECUT_RSO is the value of gmax
- GAMMAFACT_RSO is the value of γ/gmax
- WERROR_RSO is the value of W
Launch USPP (by typing make clean&&make). The new ti_ps.abinit.paw file contains optimized pi(r) projectors (with 0 < r <R0) according to gmax, γ and W.
You can try several values for ECUT_RSO parameter and compare the efficiency of the atomic data (convergence vs Ecut); do not forget to test physical properties again.

How to choose the RSO parameters ?
γ/gmax=2 and 0.0001 < W < 0.001 is a good choice.
gmax (ECUT_RSO) has to be adjusted
The lower gmax the faster the convergence is ; but too low gmax can produce unphysical results.
7. Description of the PAW atomic data file
Standard
ABINIT's pseudopotential header
Paw
atomic data extracted from US-psp (D.Vanderbilt): titanium
22.000 12.000
20050809
: zatom,zion,pspdat
7 2 2 0 573
0.
: pspcod,pspxc,lmax,lloc,mmax,r2well |
Information
about the format of PAW atomic data
paw3
2
: pspfmt,creatorID
|
Atomic
basis data (basis size, angular momenta)
6
18
: basis_size,lmn_size
0
0 1 1 2
2
: orbitals
|
Definition
of radial meshes
3
: number_of_meshes 1 2 573
0.1126705535E-03 0.1694915254E-01 : mesh 1,
type,size,rad_step[,log_step] 2 2 578
0.1126705535E-03 0.1694915254E-01 : mesh 2,
type,size,rad_step[,log_step] 3 2 673
0.1126705535E-03 0.1694915254E-01 : mesh 3,
type,size,rad_step[,log_step]
|
Radius of
augmentation spheres (Bohr)
1.8290765154
: r_cut(SPH)
|
Shape
function definition (g(r) in Ref. [3], k(r) in Ref. [4])
2
0.
: shape_type(SIN),rshape
|
Atomic
wave functions (φi)
and pseudized wave functions (tφi)
===== PHI 1 ===== #phi(r),
for phi(r)/r*Ylm) 1 :
radial mesh index
0.000000000000000
-0.6667615969374328E-04 -0.1344906497696365E-03 [...]
===== TPHI 1 ===== #tphi(r),
for tphi(r)/r*Ylm) 1 :
radial mesh index
0.000000000000000
-0.5021771489799263E-05 -0.1012938315469165E-04
[...]
|
Projectors (pi)
1 : radial mesh
index
0.000000000000000
0.1954439730141254E-05 0.3955013763944399E-05
[...]
|
Atomic
core density and pseudized core density
===== CORE_DENSITY ===== 2 :
radial mesh index
8.203917140628238E+03
8.203748730155929E+03
8.203577440941630E+03
[...] ===== TCORE_DENSITY ===== 2
: radial mesh index
0.2433791231654809E-02 0.2433791231615136E-02
0.2433791231574785E-02
[...]
|
Frozen
part of the "pseudopotential strength" Dij
=====
Dij0 =====
0.6464638641949085 -0.2927052680497827
0.1099009759446245 [...]
|
Initial
values of the augmentation occupancies (ρij) ===== Rhoij0 =====
2.000000000000000
0.000000000000000
2.000000000000000 [...]
|
Local
potential (VHartree(ntildZC))
===== VHntZC (Vloc(r)) ===== 3 :
radial mesh index
-1.599117369823717E+01
-1.599117369816541E+01
-1.599117369809242E+01 [...]
|
Goto :
ABINIT home Page
|
Welcome
|
Suggested
acknowledgments
|
List of input variables
|
Tutorial home page
|
Bibliography
Help files :
New user's guide
|
Abinis (main)
|
Abinis (respfn)
|
Mrgddb
|
Anaddb
|
AIM (Bader)
|
Cut3D
|
Optic
|
AIM (Bader)
|
Cut3D
|
Optic