Chinaunix首页 | 论坛 | 博客
  • 博客访问: 244111
  • 博文数量: 23
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 261
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-31 20:34
文章分类

全部博文(23)

文章存档

2010年(3)

2009年(3)

2008年(17)

我的朋友

分类: LINUX

2008-04-20 10:41:58

我们用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原子的能量为-1.426eV,所以我们得到Pd每个原子(相对于spin non-polorize的原子)的结合能为4.998eV。如果考虑Pd原子的spin-polarize的修正1.46eV,
  则结合能为6.458eV。
阅读(7991) | 评论(1) | 转发(0) |
0

上一篇:我是一只猫头鹰

下一篇:量子化学网---VASP

给主人留下些什么吧!~~

chinaunix网友2009-09-16 17:01:30

不错 很实用 呵呵