Note
Click here to download the full example code
Infrared spectrum of AlAsΒΆ
This example shows how to plot the infrared spectrum of a polar semiconductor (AlAs) from the DDB file See tutorial/lesson_rf2.html
For a command line interfase, use:
abiview.py ddb_ir in_DDB
Out:
[33mCreating temporary file: /var/folders/nc/k69spyd12qv2tk3stk2xrxg40000gr/T/tmpj5j_12wemp-7000_DDB[0m
ANADDB INPUT:
# ANADDB input for phonon frequencies at one q-point
ifcflag 0
asr 2
chneut 1
dipdip 1
nph1l 1
qph1l
0 0 0
1
dieflag 1
workdir: /var/folders/nc/k69spyd12qv2tk3stk2xrxg40000gr/T/tmpx229av26
================================= Structure =================================
Full Formula (Si3 O6)
Reduced Formula: SiO2
abc : 4.949906 4.949906 5.440897
angles: 90.000000 90.000000 120.000000
Sites (9)
# SP a b c
--- ---- -------- -------- --------
0 Si 0.528855 0 0.833333
1 Si 0.471145 0.471145 0.5
2 Si 0 0.528855 0.166667
3 O 0.413167 0.147706 0.620242
4 O 0.852294 0.265462 0.953576
5 O 0.734538 0.586833 0.286909
6 O 0.265462 0.852294 0.046424
7 O 0.147706 0.413167 0.379758
8 O 0.586833 0.734538 0.713091
Abinit Spacegroup: spgid: 0, num_spatial_symmetries: 6, has_timerev: True, symmorphic: True
============================ Oscillator strength ============================
Real part in Cartesian coordinates. a.u. units; 1 a.u. = 253.2638413 m3/s2. Set to zero below 1.00e-06.
xx yy zz yz xz xy
mode
0 0.0 0.0 0.0 0.0 0.0 0.0
1 0.0 0.0 0.0 0.0 0.0 0.0
2 0.0 0.0 0.0 0.0 0.0 0.0
3 0.0 0.0 0.0 0.0 0.0 0.0
4 0.0 0.0 0.0 0.0 0.0 0.0
5 0.0 0.0 0.0 0.0 0.0 0.0
6 4.424721148949279e-06 0.0 0.0 0.0 0.0 0.0
7 0.0 4.424721149168184e-06 0.0 0.0 0.0 0.0
8 0.0 0.0 0.0 0.0 0.0 0.0
9 0.0 0.0 0.00011308265177993388 0.0 0.0 0.0
10 6.99279225885258e-05 0.0 0.0 0.0 0.0 0.0
11 0.0 6.992792259728371e-05 0.0 0.0 0.0 0.0
12 0.0 0.00019407122610181338 0.0 0.0 0.0 0.0
13 0.00019407122610603044 0.0 0.0 0.0 0.0 0.0
14 0.0 0.0 0.0 0.0 0.0 0.0
15 0.0 0.0 0.00020880483319441859 0.0 0.0 0.0
16 0.0 1.3565139019263169e-05 0.0 0.0 0.0 0.0
17 1.3565139019054824e-05 0.0 0.0 0.0 0.0 0.0
18 0.0 0.0 7.533020286384725e-05 0.0 0.0 0.0
19 0.0 8.105029372804786e-05 0.0 0.0 0.0 0.0
20 8.105029372653947e-05 0.0 0.0 0.0 0.0 0.0
21 0.0 0.0009908321011291887 0.0 0.0 0.0 0.0
22 0.0009908321011313983 0.0 0.0 0.0 0.0 0.0
23 0.0 0.0 0.001043437374601259 0.0 0.0 0.0
24 0.0 0.0 0.0 0.0 0.0 0.0
25 1.2586418335231959e-05 0.0 0.0 0.0 0.0 0.0
26 0.0 1.2586418332906106e-05 0.0 0.0 0.0 0.0
============================= Dielectric Tensors =============================
Electronic dielectric tensor (eps_inf) in Cartesian coordinates. Set to zero below 1.00e-03.
x y z
x 2.45581 0.00000 0.000000
y 0.00000 2.45581 0.000000
z 0.00000 0.00000 2.486826
Zero-frequency dielectric tensor (eps_zero) in Cartesian coordinates. Set to zero below 1.00e-03.
x y z
x 4.564213 0.000000 0.000000
y 0.000000 4.564213 0.000000
z 0.000000 0.000000 4.783768
/Users/gmatteo/git_repos/pymatgen/pymatgen/util/plotting.py:550: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.
plt.show()
/Users/gmatteo/git_repos/pymatgen/pymatgen/util/plotting.py:550: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.
plt.show()
/Users/gmatteo/git_repos/pymatgen/pymatgen/util/plotting.py:550: UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure.
plt.show()
import os
import abipy.data as abidata
from abipy import abilab
# Open DDB file for alpha-SiO2 taken from https://materialsproject.org/materials/mp-7000/
filepath = os.path.join(abidata.dirpath, "refs", "mp-7000_DDB.bz2")
ddb = abilab.abiopen(filepath)
# Invoke anaddb to compute dielectric tensor and oscillator strength.
tgen = ddb.anaget_dielectric_tensor_generator(asr=2, chneut=1, dipdip=1, verbose=1)
print(tgen)
# Set phonon damping factor in eV (full width).
gamma_ev = 1e-3
# Plot IR spectrum in Cartesian coordinates.
tgen.plot_all(gamma_ev=gamma_ev, title="Diagonal and off-diagonal components")
tgen.plot(component="diag", reim="re", gamma_ev=gamma_ev, title="Real part, diagonal components")
tgen.plot(component="diag", reim="im", gamma_ev=gamma_ev, title="Imaginary part, diagonal components")
ddb.close()
Total running time of the script: ( 0 minutes 1.812 seconds)