分类: LINUX
2010-03-21 14:44:42
我们用Pd金属作为例子。
Pd金属的实验上的晶格常数为3.89A。在这里,我们用VASP计算它的晶格常数。
首先将Pd所对应的POTCAR文件拷贝到目录下。然后准备好INCAR和KPOINTS文件。POSCAR文件我们将通过一个tcsh的script来产生。
KPOINTS文件可以如下:
Monkhorst Pack
0
Monkhorst Pack
11 11 11
0 0 0
INCAR文件可以如下:
SYSTEM = Pd bulk calculation
Startparameter for this run:
PREC = Accurate
ISTART = 0 job : 0-new 1-cont 2-samecut
ICHARG = 2 charge: 1-file 2-atom 10-const
ISPIN = 1 spin polarized calculation?
Electronic Relaxation 1
EDIFF = 0.1E-03 stopping-criterion for ELM
LREAL = .FALSE. real-space projection
Ionic relaxation
EDIFFG = 0.1E-02 stopping-criterion for IOM
NSW = 0 number of steps for IOM
IBRION = 2 ionic relax: 0-MD 1-quasi-New 2-CG
ISIF = 2 stress and relaxation
POTIM = 0.10 time-step for ionic-motion
TEIN = 0.0 initial temperature
TEBEG = 0.0; TEEND = 0.0 temperature during run
DOS related values:
ISMEAR = 0 ; SIGMA = 0.05 gaussian smear
Electronic relaxation 2 (details)
Write flags
LWAVE = F write WAVECAR
LCHARG = F write CHGCAR
产生POSCAR和计算晶格常数的工作可以用以下的PBS script来完成。
#!/bin/tcsh
#PBS -S /bin/sh
#PBS -l nodes=4:athlon:ppn=2
#PBS -l cput=384:00:00
#PBS -m ae
#PBS -o output
#PBS -e error.log
# set parameter
set EXEC = 'vasp'
set SRC = '/usr/common/executable'
# change working directory
cd $PBS_O_WORKDIR
# copy fresh executable from depository
cp -f $SRC/$EXEC .
# execute mpi program
foreach a (3.3 3.4 3.5 3.6 3.7)
echo "a= $a"
cat >POSCAR <
cubic diamond
$a
0.5 0.5 0.0
0.0 0.5 0.5
0.5 0.0 0.5
2
direct
0.0 0.0 0.0
0.25 0.25 0.25
!
mpiexec -nostdin ./$EXEC
set E=`tail -2 OSZICAR`
echo $a $E >>SUMMARY
end
# remove executable
rm -f $EXEC
如果不用不需要用PBS script,则更加简单,如下即可。将其命名为lattice。
#!/bin/tcsh
foreach a (3.5 3.6 3.7 3.8 3.9 4.0 4.1 4.2)
echo "a= $a"
cat >POSCAR <
fcc lattice
$a
0.5 0.5 0.0
0.0 0.5 0.5
0.5 0.0 0.5
1
cartesian
0.0 0.0 0.0
!
./vasp
set E=`tail -1 OSZICAR`
echo $a $E >>SUMMARY
end
用chmod +x lattice,将其改为可执行文件。然后在命令行里键入./lattice 即可。
以下是用USPP-LDA运行完后的SUMMARY文件。每个计算用时13秒。 (在USPP中Pd的截断能量是198.955)
3.5 1 F= -.52384500E+01 E0= -.52371846E+01 d E =-.253072E-02
3.6 1 F= -.58695670E+01 E0= -.58683951E+01 d E =-.234381E-02
3.7 1 F= -.62322232E+01 E0= -.62311104E+01 d E =-.222547E-02
3.8 1 F= -.63932936E+01 E0= -.63921078E+01 d E =-.237151E-02
3.9 1 F= -.64072233E+01 E0= -.64058584E+01 d E =-.272979E-02
4.0 1 F= -.63162916E+01 E0= -.63147061E+01 d E =-.317085E-02
4.1 1 F= -.61523489E+01 E0= -.61504748E+01 d E =-.374817E-02
4.2 1 F= -.59418370E+01 E0= -.59396594E+01 d E =-.435530E-02
用抛物线拟和得到的晶格常数为$3.888\AA$,固体中每个原子的能量是$E_{bulk}=-6.4257$。
以下是采用PAW-LDA势运行完以后的SUMMARY文件。每个计算用时20秒。所以相对来说PAW势所需要的时间多一些,这是因为PAW势的energy cutoff相对比较高(在PAW中Pd的截断能量是250.832)。
3.5 1 F= -.52393107E+01 E0= -.52377274E+01 d E =-.316665E-02
3.6 1 F= -.58814938E+01 E0= -.58798653E+01 d E =-.325695E-02
3.7 1 F= -.62451262E+01 E0= -.62437004E+01 d E =-.285149E-02
3.8 1 F= -.64049388E+01 E0= -.64036223E+01 d E =-.263317E-02
3.9 1 F= -.64158100E+01 E0= -.64143798E+01 d E =-.286044E-02
4.0 1 F= -.63210060E+01 E0= -.63194198E+01 d E =-.317251E-02
4.1 1 F= -.61536329E+01 E0= -.61518107E+01 d E =-.364433E-02
4.2 1 F= -.59385695E+01 E0= -.59364165E+01 d E =-.430601E-02
用抛物线拟和得到的晶格常数为$3.875\AA$,固体中每个原子的能量E_bulk=-6.4185eV
可见,PAW-LDA和USPP-LDA给出的晶格常数都和实验吻合的非常好,两者之间的差别也很小。在以下所有的计算中,如果没有特殊声明,我们都默认采用PAW-LDA的势。
结合能(cohesive energy)的定义如下:
-E_coh = [E_bulk-N*E_atom]/N
所以我们要将固体中每个原子的能量减去单个Pd原子的能量,才能和实验的结合能相比较。对于过渡金属原子,计算单个原子的能量要特别注意。VASP的网页上给出了求结合能所需的单个原子能量的修正值(详见VASP手册Pseudopotentials supplied with the VASP package一章)。可以在上面查到,Pd每个原子LDA的修正值为1.46eV。所以我们得到LDA近似下Pd的结合能为4.998eV。此值和实验值比严重偏大,这是因为LDA
通常成键过强的关系。如果我们改用GGA的赝势,可以得到和实验比较吻合的结果。