新浪博客

PWSCF计算声子谱步骤

2017-11-15 22:31阅读:
pwscf计算声子谱非常简单,第一步利用pw.x进行一步优化,第二步利用ph.x计算倒空间的动力学矩阵(下面的例子是设置的q网格,也可以计算单个点的声子谱),第三步利用q2r.x把倒空间的动力学矩阵通过傅利叶转化成实空间的,第四步利用matyyn.x输出声子模式与声子频率。最后生成的*.freq.gp文件直接导入origin,就是声子谱。pwscf的输出声子谱图的路径与castep设置是一样的,所以直接写入castep中的高对称点的字母即可。
1.# self-consistent calculation
cat > alas.scf.in << EOF
&control
calculation='scf'
restart_mode='from_scratch',
tstress = .true.
tprnfor = .true.
prefix='alas',
pseudo_dir = '$PSEUDO_DIR/',
outdir='$TMP_DIR/'
/
&system
ibrav= 2, celldm(1) =10.50, nat= 2, ntyp= 2,
ecutwfc =16.0
/
&electrons
conv_thr = 1.0d-8
mixing_beta = 0.7
/
ATOMIC_SPECIES
Al 26.98 Al.pz-vbc.UPF
As 74.92 As.pz-bhs.UP
F
ATOMIC_POSITIONS (alat)
Al 0.00 0.00 0.00
As 0.25 0.25 0.25
K_POINTS
2
0.25 0.25 0.25 1.0
0.25 0.25 0.75 3.0
EOF
$ECHO ' running the scf calculation...\c'
$PW_COMMAND < alas.scf.in > alas.scf.out
check_failure $?
$ECHO ' done'
2.# phonon calculation on a (444) uniform grid of q-points
cat > alas.ph.in << EOF
phonons of AlAs
&inputph
tr2_ph=1.0d-12,
prefix='alas',
ldisp=.true.,
nq1=4, nq2=4, nq3=4
amass(1)=26.98,
amass(2)=74.92,
outdir='$TMP_DIR/',
fildyn='alas.dyn',
/
EOF
$ECHO ' running the phonon calculation ...\c'
$PH_COMMAND < alas.ph.in > alas.ph.out
check_failure $?
$ECHO ' done'
3.cat > q2r.in <<EOF
&input
fildyn='alas.dyn', zasr='simple', flfrc='alas444.fc'
/
EOF
$ECHO ' transforming C(q) => C(R)...\c'
$Q2R_COMMAND < q2r.in > q2r.out
check_failure $?
$ECHO ' done'
4.cat > matdyn.in <<EOF
&input
asr='simple', amass(1)=26.98, amass(2)=74.922,
flfrc='alas444.fc', flfrq='alas.freq', q_in_band_form=.true.,
/
6
gG 40
X 20
W 20
1.0 1.0 0.0 40
gG 40
L 1
EOF
$ECHO ' recalculating omega(q) from C(R)...\c'
$MATDYN_COMMAND < matdyn.in > matdyn.out
check_failure $?
$ECHO ' done'

我的更多文章

下载客户端阅读体验更佳

APP专享