You are on page 1of 4

ABINIT, tutorial :

indications for the visualisation of different graphical data.


Copyright (C) 2000-2014 ABINIT group (XG,MM)
This file is distributed under the terms of the
GNU General Public License, see ~abinit/COPYING
or http://www.gnu.org/copyleft/gpl.txt .
For the initials of contributors, see ~abinit/doc/developers/contributors.txt .
- total energy curves (as a function of the interatomic distances, or
lattice parameters)
- the three-dimensional charge density
- the band structure
It relies on the XMGR and Matlab softwares.
The first is free
(http://plasma-gate.weizmann.ac.il/Xmgr).
The second is not free, but Scilab is a equivalent software,
that is free (http://www-rocq.inria.fr/scilab).
Many indications are valid for the MAPR2451 lecture, in Louvain-la-Neuve.
====================================================================
0. For the MAPR2451 lecture :
how to access xmgr ?
In bash, execute
. /usr/local/mapr/profile.mapr
In csh, the corresponding command is
source /usr/local/mapr/csh.mapr
xmgr should become accessible ...
(In bash, you might need :
export DISPLAY=display_name
or, in csh :
setenv DISPLAY=display_name
where display_name is to be replaced by the name of your display)
====================================================================
1. Visualisation of the H2 energy curve
From the t12.out file, get the data
etotal1
etotal2
etotal3
etotal4
etotal5
etotal6
etotal7
etotal8
etotal9
etotal10
etotal11
etotal12
etotal13
etotal14
etotal15

-1.0368223887E+00
-1.0538645429E+00
-1.0674504849E+00
-1.0781904895E+00
-1.0865814784E+00
-1.0930286804E+00
-1.0978628208E+00
-1.1013539125E+00
-1.1037224214E+00
-1.1051483730E+00
-1.1057788247E+00
-1.1057340255E+00
-1.1051125108E+00
-1.1039953253E+00
-1.1024495225E+00

etotal16
etotal17
etotal18
etotal19
etotal20
etotal21

-1.1005310615E+00
-1.0982871941E+00
-1.0957584182E+00
-1.0929800578E+00
-1.0899835224E+00
-1.0867972868E+00

and put them in a file, for example "energies".


Get rid off the string "etotal", and put it in
a file "data", for example
using the stream editor sed :
sed 's/etotal//' energies > data
Now, you can use xmgr to visualize the data file :
xmgr
In the file menu, read sets ;
select the "data" file, in XY format, autoscale on read ...
You should get the graph ...
====================================================================
2. Visualisation of the three-dimensional charge densities.
(Section 1.4.c , visualisation of the H2 charge density)
The UNFORMATTED density files can be visualized
in two steps :
- first create a file with FORMATTED data ;
- visualize these data using MATLAB.
2.1. The generation of the FORMATTED datafile.
One can rely on the cut3d utility, present in ABINIT.
Follow the instructions given in ~abinit/doc/users/cut3d_help.html .
Use the option
5) conversion to formatted file
On the screen, you will get, among others, some
information about the FFT grid as well as minimum
and maximum density. You should take note of these.
In addition to the above-mentioned information on the screen,
you will get a formatted file, that you can name "file.out",
with one column of numbers, like the following :
0.000002
0.000003
0.000003
0.000003
0.000003
0.000003
0.000002
0.000001
0.000000
0.000002
0.000009
0.000030
0.000074
0.000143

0.000211
0.000235
0.000201
0.000135
....
This is a typical formatted density
any information about how they were
not to keep them, but only use them
generation of charge density plots,

file. Since such file does NOT contain


generated, it is preferable
as temporaries, for the
as explained later.

2.2. The visualisation of a 3D charge density using Matlab.


The reference directory contains a compressed formatted density file :
~abinit/tests/tutorial/Refs/Pb_in_SiO2.out.gz
You should decompress it :
gunzip Pb_in_SiO2.out.gz
Then, you will use the dim.m script to visualize that density.
Edit this dim.m script . Note that it requires the formatted density
file to be placed in file.out . Note also that it needs the
x, y and z linear size of the FFT grid (ngx, ngy, ngz). Finally,
it also needs the value of the charge density isosurface that
will be computed (isodens).
So, copy Pb_in_SiO2.out in the proper place :
cp Pb_in_SiO2.out file.out
Then, run matlab :
matlab
and, when you are in matlab, input the dim.m script :
dim
A new window will open, with the desired 3D visualisation
of the charge density. The 3D charge density isosurface that
you are looking at corresponds to the unoccupied gap state of
a Pb impurity placed in a 2x2x2 SiO2-quartz supercell.
It is an anti-bonding combination of Pb6s and O2p states.
You can change the file by first clearing
clf
then input the script again (with eventual modified values):
dim
You can exit using
exit
For other formatted data, you will likely have to change the ngx, ngy and ngz
values, as well as the isodens value.
2.3. The H2 charge density
If you follow the above-mentioned steps, starting from the t1xo_DEN
(or maybe another name has been given to the file from the t14.in run ?),
you will obtain a graphics that show a sphere splitted in the eight corners

of the cubic supercell. Indeed, the H2 molecule was centered on (0 0 0),


while the visualisation cell has reduced coordinates ([0,1],[0,1],[0,1]).
Thus the center of the molecule corresponds to the corners of the cube.
In order to obtain a molecule correctly centered in the supercell, one
should start from the following coordinates :
xcart

4.249 5.0 5.0


5.761 5.0 5.0

that is, the original coordinates have been shifted by 5.0 5.0 5.0 ,
to be in the center of the supercell.
====================================================================
3. Visualisation of the Si band structure.
At the end of the section 3.4 , you should extract the eigenvalues (in eV),
starting with
kpt# 1,
5.85700
kpt# 2,
5.71762
kpt# 3,
5.39103
kpt# 4,
5.00529
kpt# 5,
....

nband= 8,
8.48654
nband= 8,
8.68744
nband= 8,
9.20107
nband= 8,
9.89423
nband= 8,

wtk=1.00000, kpt=
14.34081 14.34081
wtk=1.00000, kpt=
14.35705 14.35705
wtk=1.00000, kpt=
14.41138 14.41138
wtk=1.00000, kpt=
14.50143 14.50143
wtk=1.00000, kpt=

0.5000 0.0000 0.0000 (reduced coord.)


17.03075 18.88266 18.88266 23.10049
0.4500 0.0000 0.0000 (reduced coord.)
17.04972 18.89958 18.89958 23.13268
0.4000 0.0000 0.0000 (reduced coord.)
17.11127 18.95585 18.95585 23.22068
0.3500 0.0000 0.0000 (reduced coord.)
17.21136 19.02706 19.02706 23.28882
0.3000 0.0000 0.0000 (reduced coord.)

and store them in a file, let us call it "eigenenergies".


In order to generate a file that can be treated by XMGR, one has to
suppress the lines that begin with "kpt#", and one has to number
the remaining lines.
You can process this file as follows :
grep -v wtk eigenenergies | grep -n '.' > data
(some other instruction might generate it as well, but this one works fine ...)
The result is stored in "data".
You can now proceed with the band structure visualisation, using XMGR.
The only difference with the visualisation of the total energy is that
you have more than one curve. So, select the
X Y1 Y2 ...
mode instead of the X Y mode.
====================================================================

You might also like