||
关注:
1)例子文件的构造;
2)背后涉及的理论知识;
3)真实计算研究时,哪些参数需要调整;
4)为什么例子文件不到1小时就运行完了?
题记: 经历了N多莫名错误后,终于成功运行例子文件。
其实技术不像理论,有时会与不会之间仅仅隔着一层窗户纸;很多时候,我们渴望有人能帮助我们捅破它,而不是在上面再罩上一层纸。
example03:
This example shows how to calculate electron-phonon interaction
coefficients at X for fcc Al.
电声耦合常数计算参数设置 elph=.true., 5.0.2版改为 electron_phonon='interpolated',
###Step1: SCF at dense k-mesh, good enough for electronic DOS, specifying la2F = .true.,
K_POINTS {automatic}
16 16 16 0 0 0
la2F = .true.,
###Step2: SCF at k-mesh good enough for phonons
K_POINTS {automatic}
8 8 8 0 0 0
####Step3:Specifying option electron_phonon='interpolated'. and the file name : fildvscf
cat > al.elph.in << EOF
Electron-phonon coefficients for Al
&inputph
tr2_ph=1.0d-10,
prefix='al',
fildvscf='aldv',
amass(1)=26.98,
outdir='$TMP_DIR/',
fildyn='al.dyn',
electron_phonon='interpolated',
trans=.true.,
ldisp=.true.
nq1=4, nq2=4, nq3=4
/
EOF
##### Step4: Post processing: q2r and matdyn
1 修改运行设置后的例子文件
# job script for quantum espresso
# the name of queue, should be cscore or csnode
APP_NAME="cscore"
# number of processes
NP=8
# fix command style
RUN="RAW"
# current directory
CURDIR=$PWD
# build .nodelist
rm -rf $CURDIR/.nodelist >& /dev/null
for i in `echo $LSB_HOSTS`
do
echo $i >> $CURDIR/.nodelist
done
# directory for quantum espresso
EXEDIR=$HOME/bin/espresso502/bin
# directory for mpi (mvapich)
MPIDIR=/home/compiler/mpi/mvapich/1.0/icc.ifort-11.1/bin
# start calculation (scf)
#$MPIDIR/mpirun -np $NP -machinefile $CURDIR/.nodelist $EXEDIR/pw.x -in scf.in > scf.out
# start calculation (nscf)
#$MPIDIR/mpirun -np $NP -machinefile $CURDIR/.nodelist $EXEDIR/pw.x -in nscf.in > nscf.out
# start calculation (phonon)
#$MPIDIR/mpirun -np $NP -machinefile $CURDIR/.nodelist $EXEDIR/pw.x -in ph.in > ph.out
#PARA_PREFIX='$MPIDIR/mpirun -np $NP -machinefile $CURDIR/.nodelist'
#export PARA_PREFIX
####################################################################
PW_ROOT=/home/users/spclibtt/bin/espresso502/bin
PSEUDO_DIR=/home/users/spclibtt/home/yexq/shanghai-opt/pw-work/pseudo
TMP_DIR=/home/users/spclibtt/home/yexq/shanghai-opt/pw-work/environment/tmp2
#export PARA_PREFIX='mpirun -np 2'
# or export PARA_PREFIX='mpirun' ,export PARA_POSTFIX= -np 3
export PATH=/home/compiler/mpi/mvapich/1.0/icc.ifort-11.1/bin:$PATH
export PARA_PREFIX='mpirun -np 16'
export PW_ROOT PSEUDO_DIR TMP_DIR
export name='al-test'
rm -rf scratch1
mkdir -p ./scratch1
rm -r ./scratch1/*.save
rm ./scratch1/*
#
# step 1: SCF at dense k-mesh, good enough for electronic DOS
#
cat > al.scf.fit.in << EOF
&control
calculation='scf'
restart_mode='from_scratch',
prefix='al',
pseudo_dir = '$PSEUDO_DIR/',
outdir='$TMP_DIR/'
/
&system
ibrav= 2, celldm(1) =7.5, nat= 1, ntyp= 1,
ecutwfc =15.0, 【并没有设置 ecutrho = 8 to 12 times ecutwfc when we use this ultrasoft pseudopotentials as suggested by the manual of Quantum Espresso】
occupations='smearing', smearing='methfessel-paxton', degauss=0.05,
la2F = .true.,
/
&electrons
conv_thr = 1.0d-8
mixing_beta = 0.7
/
ATOMIC_SPECIES
Al 26.98 Al.pz-vbc.UPF
ATOMIC_POSITIONS
Al 0.00 0.00 0.00
K_POINTS {automatic}
16 16 16 0 0 0
EOF
$MPIDIR/mpirun -np $NP -machinefile $CURDIR/.nodelist $EXEDIR/pw.x < al.scf.fit.in > al.scf.fit.out
#step2 SCF at k-mesh good enough for phonons
#
cat > al.scf.in << EOF
&control
calculation='scf'
restart_mode='from_scratch',
prefix='al',
pseudo_dir = '$PSEUDO_DIR/',
outdir='$TMP_DIR/'
/
&system
ibrav= 2, celldm(1) =7.5, nat= 1, ntyp= 1,
ecutwfc =15.0,
occupations='smearing', smearing='methfessel-paxton', degauss=0.05
/
&electrons
conv_thr = 1.0d-8
mixing_beta = 0.7
/
ATOMIC_SPECIES
Al 26.98 Al.pz-vbc.UPF
ATOMIC_POSITIONS
Al 0.00 0.00 0.00
K_POINTS {automatic}
8 8 8 0 0 0
EOF
$MPIDIR/mpirun -np $NP -machinefile $CURDIR/.nodelist $EXEDIR/pw.x < al.scf.in > al.scf.out
#Step3:Specifying option electron_phonon='interpolated'. and the file name : fildvscf#####
cat > al.elph.in << EOF
Electron-phonon coefficients for Al
&inputph
tr2_ph=1.0d-10,
prefix='al',
fildvscf='aldv',
amass(1)=26.98,
outdir='$TMP_DIR/',
fildyn='al.dyn',
electron_phonon='interpolated',
trans=.true.,
ldisp=.true.
nq1=4, nq2=4, nq3=4
/
EOF
$MPIDIR/mpirun -np $NP -machinefile $CURDIR/.nodelist $EXEDIR/ph.x < al.elph.in > al.elph.out
#
# q2r and matdyn
#
cat > q2r.in << EOF
&input
zasr='simple', fildyn='al.dyn', flfrc='Al444.fc', la2F=.true.
/
EOF
$MPIDIR/mpirun -np $NP -machinefile $CURDIR/.nodelist $EXEDIR/q2r.x < q2r.in > q2r.out
#
#
#
cat > matdyn.in.freq << EOF
&input
asr='simple', amass(1)=26.98,
flfrc='Al444.fc', flfrq='Al444.freq', la2F=.true., dos=.false.
/
19
0.000 0.0 0.0 0.0
0.125 0.0 0.0 0.0
0.250 0.0 0.0 0.0
0.375 0.0 0.0 0.0
0.500 0.0 0.0 0.0
0.750 0.0 0.0 0.0
1.000 0.0 0.0 0.0
0.825 0.125 0.125 0.0
0.750 0.250 0.250 0.0
0.625 0.375 0.375 0.0
0.500 0.500 0.500 0.0
0.325 0.325 0.325 0.0
0.250 0.250 0.250 0.0
0.125 0.125 0.125 0.0
0.000 0.000 0.000 0.0
0.125 0.125 0.000 0.0
0.250 0.250 0.000 0.0
0.325 0.325 0.000 0.0
0.500 0.500 0.000 0.0
EOF
$MPIDIR/mpirun -np $NP -machinefile $CURDIR/.nodelist $EXEDIR/matdyn.x < matdyn.in.freq > matdyn.out.freq
#
#
#
cat > matdyn.in.dos << EOF
&input
asr='simple', amass(1)=26.98,
flfrc='Al444.fc', flfrq='Al444.freq', la2F=.true., dos=.true.
fldos='phonon.dos', nk1=10, nk2=10, nk3=10, ndos=50
/
EOF
$MPIDIR/mpirun -np $NP -machinefile $CURDIR/.nodelist $EXEDIR/matdyn.x < matdyn.in.dos > matdyn.out.dos
#
#
#
cat > lambda.in << EOF
10 0.12 1 ! emax (something more than highest phonon mode in THz), degauss, smearing method
8 ! Number of q-points for which EPC is calculated,
0.0000000 0.0000000 0.0000000 1.00 ! the first q-point, use kpoints.x program to calculate
-0.2500000 -0.2500000 0.2500000 8.00 ! q-points and their weight
-0.5000000 -0.5000000 0.5000000 4.00 !
0.0000000 0.0000000 0.5000000 6.00 ! 4th q-point, qx,qy,qz
-0.2500000 -0.2500000 0.7500000 24.00 !
-0.5000000 -0.5000000 1.0000000 12.00 !
0.0000000 0.0000000 1.0000000 3.00 !
-0.5000000 0.0000000 1.0000000 6.00 ! the last q-point
elph. 0.000000. 0.000000. 0.000000 ! elph output file names,
elph.-0.250000. 0.250000.-0.250000 ! in the same order as the q-points before
elph. 0.500000.-0.500000. 0.500000
elph. 0.000000. 0.500000. 0.000000
elph. 0.750000.-0.250000. 0.750000
elph. 0.500000. 0.000000. 0.500000
elph. 0.000000.-1.000000. 0.000000
elph.-0.500000.-1.000000. 0.000000
0.10 ! \mu the Coloumb coefficient in the modified
! Allen-Dynes formula for T_c (via \omega_log)
EOF
$MPIDIR/mpirun -np $NP -machinefile $CURDIR/.nodelist $EXEDIR/lambda.x < lambda.in > lambda.out
注释:
注意: 用的是模守恒赝势
Pseudopotential type: NORMCONSMethod: Von Barth-Car (direct fit)Functional type: Perdew-Zunger (LDA) exch-corrscalar relativisticOrigin: Original QE PP library Author: P. GiannozziGenerated by ld1 codeUploaded by Erica VidalClassification controlled by Paolo Giannozzi
Sc的不是模守恒赝势
Pseudopotential type: ULTRASOFTMethod: Vanderbilt ultrasoftFunctional type: Perdew-Burke-Ernzerhof (PBE) exch-corrSemi-core state in valenceNonlinear core correctionscalar relativisticOrigin: Original QE PP library Generated by Vanderbilt code version 7.3.5More Information: Sc.pbe-nsp-van.txtUploaded by Erica VidalClassification controlled by Paolo Giannozzi
2. 从上面文件中提去的getlambda.sh文件,直接运行得到Tc
cat getlamda.sh
#!/bin/sh
cat > lambda.in << EOF
10 0.12 1 ! emax (something more than highest phonon mode in THz), degauss, smearing method
8 ! Number of q-points for which EPC is calculated,
0.0000000 0.0000000 0.0000000 1.00 ! the first q-point, use kpoints.x program to calculate
-0.2500000 -0.2500000 0.2500000 8.00 ! q-points and their weight
-0.5000000 -0.5000000 0.5000000 4.00 !
0.0000000 0.0000000 0.5000000 6.00 ! 4th q-point, qx,qy,qz
-0.2500000 -0.2500000 0.7500000 24.00 !
-0.5000000 -0.5000000 1.0000000 12.00 !
0.0000000 0.0000000 1.0000000 3.00 !
-0.5000000 0.0000000 1.0000000 6.00 ! the last q-point
elph. 0.000000. 0.000000. 0.000000 ! elph output file names,
elph.-0.250000. 0.250000.-0.250000 ! in the same order as the q-points before
elph. 0.500000.-0.500000. 0.500000
elph. 0.000000. 0.500000. 0.000000
elph. 0.750000.-0.250000. 0.750000
elph. 0.500000. 0.000000. 0.500000
elph. 0.000000.-1.000000. 0.000000
elph.-0.500000.-1.000000. 0.000000
0.10 ! mu the Coloumb coefficient in the modified
! Allen-Dynes formula for T_c (via omega_log)
EOF
/home/users/spclibtt/bin/espresso502/bin/lambda.x < lambda.in > lambda.out
3. 结果显示
cat lambda.out
lambda = 0.286066 ( 0.286063) <log w>= 411.736K N(Ef)= 1.338760 at degauss=0.005
lambda = 0.407408 ( 0.406148) <log w>= 360.789K N(Ef)= 1.881758 at degauss=0.010
lambda = 0.420930 ( 0.418334) <log w>= 352.188K N(Ef)= 2.123243 at degauss=0.015
lambda = 0.405945 ( 0.403146) <log w>= 349.784K N(Ef)= 2.249755 at degauss=0.020
lambda = 0.389459 ( 0.386884) <log w>= 347.561K N(Ef)= 2.329819 at degauss=0.025
lambda = 0.381470 ( 0.379160) <log w>= 345.343K N(Ef)= 2.396041 at degauss=0.030
lambda = 0.380406 ( 0.378276) <log w>= 343.556K N(Ef)= 2.455234 at degauss=0.035
lambda = 0.383467 ( 0.381430) <log w>= 342.225K N(Ef)= 2.507879 at degauss=0.040
lambda = 0.388352 ( 0.386352) <log w>= 341.273K N(Ef)= 2.552970 at degauss=0.045
lambda = 0.393433 ( 0.391441) <log w>= 340.656K N(Ef)= 2.589584 at degauss=0.050
lambda omega_log T_c
0.28607 411.736 0.122
0.40741 360.789 1.679
0.42093 352.188 1.953
0.40595 349.784 1.596
0.38946 347.561 1.249
0.38147 345.343 1.094
0.38041 343.556 1.069
0.38347 342.225 1.119
0.38835 341.273 1.205
0.39343 340.656 1.300
# degauss lambda int alpha2F <log w> N(Ef)
0.005 0.286066 0.286063 411.736 1.338760
0.010 0.407408 0.406148 360.789 1.881758
0.015 0.420930 0.418334 352.188 2.123243
0.020 0.405945 0.403146 349.784 2.249755
0.025 0.389459 0.386884 347.561 2.329819
0.030 0.381470 0.379160 345.343 2.396041
0.035 0.380406 0.378276 343.556 2.455234
0.040 0.383467 0.381430 342.225 2.507879
0.045 0.388352 0.386352 341.273 2.552970
0.050 0.393433 0.391441 340.656 2.589584
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-13 04:27
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社