This lesson aims at showing how to get the following physical properties, for a metal, and for a surface :
This lesson should take about 1 hour and 30 minutes.
Before beginning, you might consider to work in a different subdirectory as for lesson 1, 2 or 3 . Why not "Work4" ?
The file ~abinit/tests/tutorial/Input/tbase4_x.files lists the file names and root names. You can copy it in the Work4 directory (and change it, as usual). You can also copy the file ~abinit/tests/tutorial/Input/tbase4_1.in in Work4. This is your input file. You should edit it, read it carefully, and have a look at the following "new" input variables, and their explanation :
When you have read the input file, you can run the code, as usual
(it will take a few seconds).
Then, read the output file quietly.
You should note that the Fermi energy and occupation numbers have been computed automatically :
Fermi (or HOMO) energy (hartree) = 0.26847 Average Vxc (hartree)= -0.34746 Eigenvalues (hartree) for nkpt= 2 k points: kpt# 1, nband= 3, wtk= 0.75000, kpt= -0.2500 0.5000 0.0000 (reduced coord) 0.09425 0.25438 0.41909 occupation numbers for kpt# 1 2.00003 1.33307 0.00014 kpt# 2, nband= 3, wtk= 0.25000, kpt= -0.2500 0.0000 0.0000 (reduced coord) -0.07038 0.41093 0.68874 occupation numbers for kpt# 2 2.00000 0.00030 0.00000You should also note that the components of the total energy include an entropy term :
Components of total free energy (in Hartree) : Kinetic energy = 8.70954992983644E-01 Hartree energy = 3.84986378597834E-03 XC energy = -8.08434348776921E-01 Ewald energy = -2.72948290133614E+00 PspCore energy = 3.78721667879406E-02 Loc. psp. energy= 8.26684805111510E-02 NL psp energy= 4.52588274660814E-01 >>>>> Internal E= -2.08998347138353E+00 -kT*entropy = -7.99729047045124E-03 >>>>>>>>> Etotal= -2.09798076185399E+00 Other information on the energy : Total energy(eV)= -5.70889611844117E+01 ; Band energy (Ha)= 3.6059825212E-01
There is of course a convergence study associated to the sampling of the Brillouin zone. You should examine different grids, of increasing resolution. You might try the following series of grids :
ngkpt1 2 2 2 ngkpt2 4 4 4 ngkpt3 6 6 6 ngkpt4 8 8 8with the associated nkpt :
nkpt1 2 nkpt2 10 nkpt3 28 nkpt4 60
The input file ~abinit/tests/tutorial/Input/tbase4_2.in is an example, while ~abinit/tests/tutorial/Refs/tbase4_2.out is a reference output file. The run might take about thirty seconds on a PC 3 GHz.
You will see that, FOR THE PARTICULAR VALUE OF tsmear=0.05 Ha, the lattice parameter is already converged with nkpt=10 :
acell1 7.5588967139E+00 7.5588967139E+00 7.5588967139E+00 Bohr acell2 7.5070434097E+00 7.5070434097E+00 7.5070434097E+00 Bohr acell3 7.5016879972E+00 7.5016879972E+00 7.5016879972E+00 Bohr acell4 7.4992665325E+00 7.4992665325E+00 7.4992665325E+00 BohrNote that there is usually a STRONG cross-convergence effect between the number of k points and the value of the broadening, tsmear.
In what follows, we will restrict ourselves to the grids with nkpt=2, 10 and 28.
The theoretical convergence rate for tsmear ending to 0, in the case of occopt=4, is quartic. This is obtained in the hypothesis of infinitely dense k point grid. We will check the evolution of acell as a function of tsmear, for the following values of tsmear : 0.01, 0.02, 0.03 and 0.04. Use the double-loop capability of the multi-dataset mode, with the tsmear changes in the INNER loop. This will saves CPU time, as the wavefunctions of the previous dataset will be excellent (no transfer to different k points).
The input file ~abinit/tests/tutorial/Input/tbase4_3.in is an example, while ~abinit/tests/tutorial/Refs/tbase4_3.out is a reference output file.
From the output file, here is the evolution of acell :
acell11 7.5587661088E+00 7.5587661088E+00 7.5587661088E+00 Bohr acell12 7.5587695984E+00 7.5587695984E+00 7.5587695984E+00 Bohr acell13 7.5587696422E+00 7.5587696422E+00 7.5587696422E+00 Bohr acell14 7.5587709917E+00 7.5587709917E+00 7.5587709917E+00 Bohr acell21 7.5055170494E+00 7.5055170494E+00 7.5055170494E+00 Bohr acell22 7.5056782904E+00 7.5056782904E+00 7.5056782904E+00 Bohr acell23 7.5018338126E+00 7.5018338126E+00 7.5018338126E+00 Bohr acell24 7.5041512153E+00 7.5041512153E+00 7.5041512153E+00 Bohr acell31 7.4963468646E+00 7.4963468646E+00 7.4963468646E+00 Bohr acell32 7.4957101136E+00 7.4957101136E+00 7.4957101136E+00 Bohr acell33 7.4969518585E+00 7.4969518585E+00 7.4969518585E+00 Bohr acell34 7.4993530520E+00 7.4993530520E+00 7.4993530520E+00 BohrThese data should be analyzed properly.
For tsmear=0.01, the converged
value, contained in acell31, must be compared to acell11 and acell21 :
and acell31, the difference
is below 0.2%. acell31 can be
considered to be converged with respect to the number of k-points, at fixed
This tsmear being the lowest one, it is usually the most difficult to converge, and the values acell31,32,33 and 34 are indeed well-converged with respect to the k-point number.
The use of the largest tsmear(=0.04), giving acell34, induces only a small error in the lattice parameter. For that particular value of tsmear, one can use the second k-point grid, giving acell24.
So to summarize :
we can choose to work with a 10 k-point grid in the irreducible Brillouin zone, and the associated tsmear=0.04, with less than 0.1% error on the lattice parameter.
NOTE that this error due to the Brillouin zone sampling could add to the error due to the choice of ecut (that was mentioned previously to be on the order of 0.2%).
In what follows, we will stick to these values of ecut and tsmear, and try to use k-point grids with a similar resolution.
Our final value for the aluminum lattice parameter, in the LDA,
using the 13al.981214.fhi pseudopotential, is thus 7.5041 Bohr.
Note : for historical reasons (consistency with older versions of the tutorial),
we will work on the following, with a slightly
different value, of 7.5056 Bohr, that is 3.9718 Angstrom.
The experimental value at 25 degree Celsius is 4.04958 Angstrom.
The associated total energy and accuracy can be deduced from
etotal11 -2.0916027819E+00 etotal12 -2.0931968906E+00 etotal13 -2.0947909992E+00 etotal14 -2.0963851177E+00 etotal21 -2.0969713557E+00 etotal22 -2.0975525285E+00 etotal23 -2.0978233733E+00 etotal24 -2.0979980153E+00 etotal31 -2.0983520905E+00 etotal32 -2.0983215368E+00 etotal33 -2.0983305960E+00 etotal34 -2.0984218116E+00
etotal24 is -2.0979980153E+00 Ha, with an accuracy of 0.0005 Ha .
In order to study the Aluminum (100) surface, we will have to set up
a supercell representing a slab. This supercell should be chosen
as to be compatible with the primitive surface unit cell.
The corresponding directions are
[-1 1 0] and
[1 1 0]. The direction
perpendicular to the surface is
[0 0 1]. There is no primitive
cell of bulk aluminum based on these vectors, but a doubled
cell. We will first compute the total energy associated with
this doubled cell. This is not strictly needed, but it is a
valuable intermediate step towards the study of the surface.
You might start from tbase4_3.in.
You have to change rprim. Still, try to keep acell at the values of bulk aluminum that were determined previously. But it is not all : the most difficult part in the passage to this doubled cell is the definition of the k-point grid. Of course, one could just take a homogeneous simple cubic grid of k points, but this will not correspond exactly to the k-point grid used in the primitive cell in tbase4_3.in . This would not be a big problem, but you would miss some error cancellation.
The answer to this problem is given in the
input file ~abinit/tests/tutorial/Input/tbase4_4.in.
The procedure to do the exact translation of the k-point grid will not be explained here (sorry for this). If you do not see how to do it, just use homogeneous simple cubic grids, with about the same resolution as for the primitive cell case. There is a simple rule to estimate ROUGHLY whether two grids for different cells have the same resolution : simply multiply the linear dimensions of the k-point grids, by the number of sublattices, by the number of atoms in the cell. For example, the corresponding product for the usual 10 k-point grid is
x 4 x 1 = 256 . In the file tbase4_4.in,
4x4x4 x 2 x 2 = 256 . The grids of k points should not
be too anisotropic for this rough estimation to be valid.
Note also the input variables rprim and chkprim in this input file.
So, you run tbase4_4.in (only a few seconds, the reference file is ~abinit/tests/tutorial/Refs/tbase4_4.out), and you find the following total energy :
It is not exactly twice the total energy for the primitive cell, mentioned above, but the difference is less than 0.0005 Ha. It is due to the different FFT grids used in the two runs, and affect the exchange-correlation energy. These grids are always homogeneous primitive 3D grids, so that changing the orientation of the lattice will give mutually incompatible lattices. Increasing the size of the FFT grid would improve the agreement.
We will first compute the total energy associated with only three layers of aluminum, separated by only one layer of vacuum. This is kind of a minimal slab :
[0 0 1]direction). Of course, the relaxation of the surface might give an important contribution to the total energy.
You should start from tbase4_4.in .
You have to modify rprim (double the cell along
[0 0 1]), the atomic positions, as well as the k
point mesh. For the latter, it is supposed that the electrons cannot propagate
from one slab to its image in the
[0 0 1] direction, so that the
k_z component of the special k points can be taken 0 : only one layer of k points
is needed along the z-direction. You should also allow the relaxation of atomic
positions, but not the relaxation of lattice parameters (the lattice parameters
along x or y must be considered fixed to the bulk value, while, for the z direction,
there is no interest to allow the vacuum region to collapse !
The input file ~abinit/tests/tutorial/Input/tbase4_5.in is an example, while ~abinit/tests/tutorial/Refs/tbase4_5.out is a reference output file. The run might last one minute.
The total energy after the first SCF cycle, when the atomic positions are equal to their starting values, is :
ETOT 6 -6.2619731679890Note that the total energy of three aluminum atoms in the bulk, (from section 4.3, etotal24 multiplied by three) is
-6.293994 Haso that the non-relaxed surface energy, per surface unit cell (there are two surfaces in our simulation cell !) is
0.016010 Ha = 0.436 eV .
The total energy after the Broyden relaxation is :
etotal -6.2622251351E+00so that the relaxed surface energy, per surface unit cell is
0.015885 Ha = 0.432eV .
It seems that the relaxation energy is very small, compared to the surface energy, but we need to do the convergence studies.
One should now increase the number of vacuum layers : 2 and 3 layers
instead of only 1.
It is preferable to define atomic positions in cartesian coordinates. The same coordinates will work for both 2 and 3 vacuum layers, while this is not the case for reduced coordinates, as the cell size increases.
The input file ~abinit/tests/tutorial/Input/tbase4_6.in is an example input file, while ~abinit/tests/tutorial/Refs/tbase4_6.out is a reference output file. The run is on the order of thirty seconds on a PC 3 GHz.
In the Broyden step 0 of the first dataset, you will notice the WARNING :
scprqt: WARNING - nstep= 6 was not enough SCF cycles to converge; maximum force difference= 6.359E-05 exceeds toldff= 5.000E-05The input variable nstep was intentionally set to the rather low value of 6, to warn you about possible convergence difficulties. The SCF convergence might indeed get more and more difficult with cell size. This is because the default preconditioner (see the notice of the input variable dielng) is not very good for the metal+vacuum case.
For the 2 vacuum layer case, one has the non-relaxed total energy :
ETOT 6 -6.2539524080105giving the unrelaxed surface energy
0.0200 Ha = 0.544 eV ;and for the relaxed case :
etotal1 -6.2547006703E+00(this one is converged to the required level) giving the relaxed surface energy
0.0196 Ha = 0.533 eVNote that the difference between unrelaxed and relaxed case is a bit larger than in the case of one vacuum layer. This is because there was some interaction between slabs of different supercells.
For the 3 vacuum layer case, the self-consistency is slightly
more difficult than with 2 vacuum layers :
the Broyden step 0 is not sufficiently converged
(one might set nstep to a larger value, but the best is to change the
preconditioner, as described below)...
However, for the Broyden steps number 2 and beyond, because one takes advantage of the previous wavefunctions, a sufficient convergence is reached. The total energy, in the relaxed case, is :
etotal2 -6.2559102400E+00giving the relaxed surface energy
0.0190 Ha = 0.515 eVThere is a rather small 0.018 eV difference with the 2 vacuum layer case.
For the next run, we will keep the 2 vacuum layer case, and we know that the accuracy of the coming calculation cannot be better than 0.016 eV. One might investigate the 4 vacuum layer case, but this is not worth, in the present tutorial ...
One should now increase the number of aluminum layers, while keeping 2 vacuum layers. We will consider 4 and 5 aluminum layers. This is rather straightforward to set up, but will also change the preconditioner. One could use an effective dielectric constant of about 3 or 5, with a rather small mixing coefficient, on the order of 0.2. However, there is also another possibility, using an estimation of the dielectric matrix governed by iprcel=45 . For comparison with the previous treatment of SCF, one can recompute the result with 3 aluminum layers.
The input file ~abinit/tests/tutorial/Input/tbase4_7.in is an example, while ~abinit/tests/tutorial/Refs/tbase4_7.out is a reference output file. This run might take about one minute, and is the longer of the four basic lessons. You should start it now.
You can monitor its evolution by editing from time to time the tbase4_7_STATUS file that the code updates regularly. The status file, that refer to the skeleton of the code, is described in the ~abinit/doc/developers/programmer_guide.txt . You might take advantage of the time of the run to explore the files contained in the ~abinit/doc/users directory and the ~abinit/doc/developers directory. The README files provided interesting entry points in the documentation of the code.
Coming back to the file tbase4_7.out
You will notice that the SCF convergence is rather satisfactory, for all the cases (3, 4 or 5 metal layers).
For the 3 aluminum layer case, one has the non-relaxed total energy :
ETOT 6 -6.2539524363099(this quantity is converged, unlike in test 4.6)
etotal1 -6.2547008083E+0(by contrast the difference with test 4.6 is less than 1 microHa)
For the 4 aluminum layer case, one has the non-relaxed total energy :
ETOT 6 -8.3546873356951giving the unrelaxed surface energy 0.0186Ha = 0.506 eV ;
etotal2 -8.3565593181E+00giving the relaxed surface energy 0.0183 Ha = 0.498 eV .
For the 5 aluminum layer case, one has the non-relaxed total energy :
ETOT 6 -10.453642176454giving the unrelaxed surface energy 0.0183Ha = 0.498 eV ;
etotal3 -1.0454160417E+01giving the relaxed surface energy 0.0180 Ha = 0.490 eV .
The relative difference in the surface energy of the 4 and 5 layer cases is on the order of 1.5%.
In the framework of this tutorial, we will not pursue this investigation, which is a simple application of the concepts already explored.
Just for your information, and as an additional warning, when the work accomplished
until now is completed with 6 and 7 layers without relaxation
(see ~abinit/tests/tutorial/Input/tbase4_8.in and ~abinit/tests/tutorial/Refs/tbase4_8.out
where 5, 6 and 7 layers are treated), this non-relaxed energy surface energy
behaves as follows :
So, the surface energy convergence is rather difficult to reach.
Our values, with a
4x4x1 grid, a smearing of 0.04 Ha, a kinetic
energy cut-off of 6 Ha, the 13al.981214.fhi pseudopotential, still oscillate
between 0.45 eV and 0.51 eV. Increasing the k point sampling might decrease slightly
the oscillations, but note that this effect is intrinsic to the computation of properties
of a metallic surface : the electrons are confined inside the slab potential, with
subbands in the direction normal to the surface, and the Fermi energy oscillates
with the width of the slab. This effect might be understood
based on a comparison with the behaviour of a jellium slab.
An error on the order of 0.016 eV is due to the thin vacuum layer. Other sources of errors might have to be rechecked, seeing the kind of accuracy that is needed.
Experimental data give a surface energy around 0.55 eV (sorry, the reference is to be provided).