Read ab initio data from ALAMODE output files
In order to perform a fully ab initio calculation, for
example, the VRMC simulation that we did in the last post, ab initio
data, such as specific heat (spectral), phonon dispersion, and phonon
lifetime, is needed. ALAMODE
is a powerful tool to calculate these data, but the official
documentation is not very clear about the formats...
Basically, all we need is in the *.result
file, which
contains basic information about the system, phonon frequencies,
branches, and also linewidths. But you will also need the
*.self_isotope
file, which contains the self-energy due to
the isotope scattering (to obtain that file, please add
self_isotope = 2
rather than 1
in the
anphon
input file).
Example of these files (right click and save as):
Contents of output files
The *.result
file
General information
1 | ## General information |
As shown above, the first section is the general information about
the system. Each subsection is separated by #END
and
#
. The followings are the information we need:
#SYSTEM
: the second line (265.904
) in this subsection is the volume of the primitive cell (in Bohr\(^3\)).#KPOINT
: the first line (36 36 36
) is the number of \(k\)-points in each direction, and their product is thus the total number of \(k\)-points. The second line (1240
) is the irreducible number of \(k\)-points. The following lines are thus the coordinates of those irreducible \(k\)-points and their weights.#TEMPERATURE
: The line (200 400 20
) is the temperature range and step size set by theanphon
input. For this case, their will be 11 temperatures, and theresult
file will provide linewidths of all irreducible modes at each temperature.
Phonon frequency
1 | ##Phonon Frequency |
This section contains frequencies of all irreducible modes. For each line, the first number is the irreducible \(k\)-point index (from 1 to 1240), the second number is the branch index (from 1 to 6), and the third number is the frequency. Note that the unit is cm\(^{-1}\), and you need to convert it to Rad/s by multiplying \(\frac{2\pi}{c}\times 1\times 10^{2}\), where \(c\) is the speed of light in m/s.
Phonon relaxation time
1 | ##Phonon Relaxation Time |
This section contains group velocities and linewidths of all modes at each temperature, and it is organized by all irreducible modes.
In this section, there are \(n_{k,
\text{irr}}\times n_s\) subsections (here is \(1240\times 6\)). Each subsection starts
with #GAMMA_EACH
and ends with
#END GAMMA_EACH
. Let's take a look at one of them:
1 | #GAMMA_EACH |
Here, the first line (13 5
) represents the irreducible
\(k\)-point index 13 and the branch
index 5. The second line (8
) is the number equivalent modes
of this irreducible mode. In the following 8 lines, there are 3 numbers
in each line, which are the three components of the group velocity of
that equivalent mode. After that, there are 11 lines, which are the
linewidths of that equivalent mode at each temperature.
The *.self_isotope
file
The isotope scattering is not included in the *.result
file, but it is very important for the calculation of the thermal
conductivity. In the *.self_isotope
file, there are the
self-energy due to the isotope scattering of all irreducible modes, in
the following format:
1 | # Irreducible k point : 48 ( 24) |
in which the first line is the irreducible \(k\)-point index and the number of equivalent modes, the second line is the coordinates of that irreducible \(k\)-point. After that, there are \(n_s\) lines, each of which contains the irreducible \(k\)-point index, the branch index, the frequency, and the isotope scattering linewidth.
Read data with Python
Use the class alamode_material
to read the data:
1 | """ |
Example of use:
1 | from alamode_material import alamode_material |
Getting the following output:
1 | Volumetric specific heat at 300 K: 1681023.27 J/(m^3 K) |
Note that the calculated thermal conductivity is slightly different
from the value given by ALAMODE
in *.kl
file.
I suppose that this is due to numerical errors. Luckily, the difference
is very small, for Si, it is about 0.3 W/(m K) at 300 K.