ShengBTE-install

ShengBTE is a solver for the Boltzman transport equation for phonons.
It’s widely used to analysis the thermal conductivity of solid materials.
This is the first post for ShengBTE tutorial. Here, I will introduce how to install ShengBTE package.

Prepare work

There are three individulal packages you need to prepare:
ShengBTE
Thirdorder
spglib

Install spglib

1
2
3
4
5
6
7
$ tar zxvf spglib.tar.gz
$ cd spglib
$ mkdir _build
$ cd _build
$ cmake cmake -DCMAKE_INSTALL_PREFIX="" ..
$ make
$ make DESTDIR=.. install

Then you will get the libraries at your_local_path/spglib/lib64

Install ShengBTE

1
2
$ tar xvf ShengBTE-v1.2.0-dffd5bb.tar.bz2
$ cd ShengBTE

ShengBTE offers an example of arch.make and We need to modify the file arch.make.example.

1
2
3
4
5
6
7
8
9
10
11
~~~~~~~~~~~~~~~~~~~~~~~~arch.make~~~~~~~~~~~~~~~~~~~~~~~~~~
export FFLAGS=-traceback -debug -O2 -static_intel
export LDFLAGS=-L/your_local_path/spglib/lib -lsymspg
export MPIFC=mpiifort
MKL=$(MKLROOT)/lib/intel64/libmkl_lapack95_lp64.a -Wl,--start-group \
$(MKLROOT)/lib/intel64/libmkl_intel_lp64.a \
$(MKLROOT)/lib/intel64/libmkl_sequential.a \
$(MKLROOT)/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -lm
export LAPACK=$(MKL)
export LIBS=$(LAPACK)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

After setting the right environment, we can install it easily.
1
2
3
$ cp arch.make.example Src/arch.make
$ cd Src
$ make

We can get a ShengBTE binary at the main ShengBTE directory.

Install Thirdorder

The Thirdorer can be used to create FORCE_CONSTANTS_3RD from DFT files.

1
2
3
$ tar xvf thirdorder.tar.bz2
$ cd thirdorder
$ ./compile.sh

There are two important command
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ thirdorder_vasp.py sow|reap na nb nc cutoff[nm/-integer]

~~~~~~~~~~~~~~~~~~sub_scripts~~~~~~~~~~~~~~~~~~~~~~
for i in 3RD.POSCAR.*;do
s=$(echo $i|cut -d"." -f3) &&
d=job-$s &&
mkdir $d &&
cp $i $d/POSCAR &&
cp ~/vaspinputs/INCAR ~/vaspinputs/POTCAR ~/vaspinputs/KPOINTS $d &&
cp ~/vaspinputs/runvasp.sh $d &&
(cd $d && qsub runvasp.sh)
done
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

$ find job* -name vasprun.xml|sort -n|thirdorder_vasp.py reap na nb nc cutoff