Eastsheng's Wiki

Alamode 计算Si导热

2025-01-05 23:07:16

测试环境:WSL2: Ubuntu 22.04

在此之前已获得:DFSET_harmonic

  1. cp si_alm.in to si_alm2.in,修改如下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
&general
PREFIX = si222_cubic
MODE = suggest
NAT = 64; NKD = 1
KD = Si
/
&interaction
NORDER = 2
/
&cutoff
Si-Si None 7.3
/
# 7.3玻尔略大于第二近邻的距离(7.21461玻尔)。
# 根据您自己的情况适当更改截止值。(原子距离可以在si_alm.log文件中找到。)
  1. 获得 si222_cubic.pattern_HARMONIC 和 si222_cubic.pattern_ANHARM3.
1
alm si_alm2.in > si_alm2.log
  1. 进行VASP自洽计算
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 生成disp{01~20}.POSCAR
python displace.py --VASP=POSCAR.orig --mag=0.01 -pf si222_cubic.pattern_ANHARM3
# calc
for ((i=1;i<=20;i++))
do
num=`echo $i | awk '{printf("%02d",$1)}'`
mkdir ${num}_cubic
cd ${num}_cubic
cp ../disp${num}.POSCAR POSCAR
cp ../INCAR INCAR
cp ../POTCAR POTCAR
cp ../KPOINTS KPOINTS
mpirun -np 4 vasp_std
cd ../
done
# cp
for ((i=1;i<=20;i++))
do
num=`echo $i | awk '{printf("%02d",$1)}'`
cp ./${num}_cubic/vasprun.xml ./vasprun${num}.xml
done
  1. 通过extract.py收集位移数据和力数据
1
2
3
cp ~/softwares/alamode/alamode/tools/extract.py ./
python extract.py --VASP=POSCAR.orig vasprun*.xml > DFSET_cubic
# 产生DFSET_cubic文件
  1. 拟合估计力常数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 修改 si_alm2.in
&general
PREFIX = si222_cubic
MODE = optimize
NAT = 64; NKD = 1
KD = Si
/

&optimize
DFSET = DFSET_cubic
FC2XML = si222.xml # Fix harmonic IFCs
/

alm si_alm2.in > si_alm2.log2
# 产生si222_cubic.fcs and si222_cubic.xml

# 上面可以与DFSET_harmonic合并
cat DFSET_harmonic DFSET_cubic > DFSET_merged
# 修改 si_alm2.in
&optimize
DFSET = DFSET_merged
FC2XML = si222.xml # Fix harmonic IFCs
/

alm si_alm2.in > si_alm2.log3
# 产生si222_cubic.fcs and si222_cubic.xml

  1. 计算热导率
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cp si_phdos.in si_RTA.in
# 修改MODE = RTA
&general
PREFIX = si222
MODE = RTA
FCSXML = si222_cubic.xml

NKD = 1; KD = Si
MASS = 28.0855
/

&kpoint
2
10 10 10
/
1
2
3
4
# 生成  si222.kl 文件
anphon si_RTA.in > si_RTA.log &
# 生成 si222_boundary_1mm.kl
analyze_phonons.py --calc kappa_boundary --size 1.0e+6 si222.result > si222_boundary_1mm.kl
  1. 画图
1
2
3
4
5
6
7
gnuplot
set logscale xy
set xlabel "Temperature (K)"
set ylabel "Lattice thermal conductivity (W/mK)"
plot "si222.kl" usi 1:2 w lp
set out si222.png

  1. 分析结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# Phonon lifetime
analyze_phonons.py --calc tau --temp 300 si222.result > tau300K_10.dat
# Cumulative thermal conductivity
analyze_phonons.py --calc cumulative --temp 300 --length 10000:5 si222.result > cumulative_300K_10.dat

# Thermal conductivity spectrum
# 修改 si_RTA.in
&general
PREFIX = si222
MODE = RTA
FCSXML = si222_cubic.xml

NKD = 1; KD = Si
MASS = 28.0855

EMIN = 0; EMAX = 550; DELTA_E = 1.0 # <-- frequency range
/

&cell
10.203
0.0 0.5 0.5
0.5 0.0 0.5
0.5 0.5 0.0
/

&kpoint
2
10 10 10
/

&analysis
KAPPA_SPEC = 1 # compute spectrum of kappa
/
anphon si_RTA.in > si_RTA2.log

awk '{if ($1 == 300.0) print $0}' si222.kl_spec > si222_300K_10.kl_spec

参考

[1] https://alamode.readthedocs.io/en/latest/tutorial_pages/silicon.html

Tags: Alamode