Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1072831
  • 博文数量: 264
  • 博客积分: 7225
  • 博客等级: 少将
  • 技术积分: 5096
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-17 08:53
文章分类

全部博文(264)

文章存档

2011年(33)

2010年(52)

2009年(152)

2008年(27)

我的朋友

分类:

2009-05-12 17:49:45

一、检验赝势的好坏:


(一)方法:对单个原子进行计算;

(二)要求:
1、对称性和自旋极化均采用默认值;
2、ENCUT要足够大;
3、原胞的大小要足够大,一般设置为15 Å足矣,对某些元素还可以取得更小一些。

(三)以计算单个Fe原子为例:

1、INCAR文件:

SYSTEM = Fe atom
ENCUT = 450.00 eV
NELMDL = 5 ! make five delays till charge mixing,详细意义见注释一
ISMEAR = 0
SIGMA=0.1

2、POSCAR文件:

atom
15.00
1.00 0.00 0.00
0.00 1.00 0.00
0.00 0.00 1.00
1
Direct
0 0 0

3、KPOINTS文件:

Automatic
0
Gamma
1 1 1
0 0 0

4、POTCAR文件:(略)

注释一:关键词“NELMDL”:
A)此关键词的用途:指定计算开始时电子非自洽迭代的步数(即NELMDL gives the number of non-selfconsistent steps at the beginning),目的是make calculations faster。“非自洽”指的是保持charge density不变,由于Charge density is used to set up the Hamiltonian, 所以“非自洽”也指保持初始的哈密顿量不变。
B)默认值(default value):
NELMDL = -5 (当ISTART=0, INIWAV=1, and IALGO=8时)
NELMDL = -12 (当 ISTART=0, INIWAV=1, and IALGO=48时)
NELMDL = 0 (其他情况下)

NELMDL might be positive or negative.
A positive number means that a delay is applied after each ionic movement -- in general not a convenient option. (在每次核运动之后)
A negative value results in a delay only for the start-configuration. (只在第一步核运动之前)

C)关键词“NELMDL”为什么可以减少计算所需的时间?
Charge density is used to set up the Hamiltonian, then the wavefunctions are optimized iteratively so that they get closer to the exact wavefunctions of this Hamiltonian. From the optimized wavefunctions a new charge density is calculated, which is then mixed with the old input-charge density. A brief flowchart is given below.(参自Manual P105页)

一般情况下,the initial guessed wavefunctions是比较离谱的,在前NELMDL次非自洽迭代过程中保持charge density不变、保持初始的哈密顿量不变,只对wavefunctions进行优化,在得到一个与the exact wavefunctions of initial Hamiltonian较为接近的wavefunctions后,再开始同时优化charge density。这样一来,计算时间要比一开始就同时优化charge density 和wavefunctions短得多。

注释二:为什么这里只需要一个k点?
For atoms and molecules, the Bloch theorem does not apply, hence there is no need to use more than one single k-point. When more k-points are used, only the interaction between the atoms (which should be zero) is described more accurately.

(三)计算任务执行方法:
输入:vasp

(四)赝势好的判断标准:计算得到的OUTCAR文件中的“energy without entropy”能量值在 0.001~0.01 eV之间。

 


nicheal 2008-10-08 21:47
  搞VASP常备味药!O,YE,沙发!

wzhao 2008-10-08 21:48
二、筛选合适的ENCUT大小:

(一)输入文件:

1、用脚本程序optencut.sh代替INCAR文件:

rm WAVECAR
for i in 100 150 200 250 300 350 400 450 500 550 600
do
cat > INCAR <SYSTEM = bcc Fe
ENCUT = $i
ISTART = 0 ; ICHARG = 2
ISMEAR = -5
PREC = Accurate
!
echo "ENCUT = $i eV"; time vasp
E=$(grep "TOTEN" OUTCAR | tail -1| awk '{printf "%12.6f \n", $5}')
echo $i $E >> comment
done
2、POSCAR文件:
bcc Fe
2.866
1.00 0.00 0.00
0.00 1.00 0.00
0.00 0.00 1.00
2
Direct
0 0 0
0.5 0.5 0.5

3、KPOINTS文件:

Automatic generation
0
Monkhorst-Pack
9 9 9
0.0 0.0 0.0

4、POTCAR文件:(略)

(二)计算任务执行方法:

输入:dos2unix optencut.sh
bash optencut.sh

(三)判别标准:计算完成后得到comment文件,它列出了在每个ENCUT时计算得到的相应的总能,只要总能变化在0.001 eV左右就足够了。

 

wzhao 2008-10-08 21:49
三、选择合适的k点数目:

(一)输入文件:

1、INCAR文件:

SYSTEM = bcc Fe
ENCUT = 450.00 eV
ISTART = 0 ; ICHARG = 2
ISMEAR = -5
PREC = Accurate

2、POSCAR文件:

bcc Fe
2.866
1.00 0.00 0.00
0.00 1.00 0.00
0.00 0.00 1.00
2
Direct
0 0 0
0.5 0.5 0.5

3、用脚本程序optkpoints.sh代替KPOINTS文件:

rm WAVECAR
for i in 5 7 9 11 13 15
do
cat > KPOINTS <Automatic generation
0
Monkhorst-pack
$i $i $i
0.0 0.0 0.0
!
echo " k mesh = $i x $i x $i"; time vasp
E=$(grep "TOTEN" OUTCAR | tail -1| awk '{printf "%12.6f \n", $5}')
KP=$(grep "irreducible" OUTCAR | tail -1| awk '{printf "%5i \n", $2}')
echo $i $KP $E >> comment
done

4、POTCAR文件:(略)

(二)计算任务执行方法:

输入:dos2unix optkpoints.sh
bash optkpoints.sh

(三)判别标准:计算完成后得到comment文件,它列出了在k点数目与总能的对应值,只要总能变化在0.001 eV左右就非常足够了。


wzhao 2008-10-08 21:51
四、优化选择合适的SIGMA值(展宽σ值):

(一)为什么要优化SIGMA值?

若展宽σ太小,则计算难以收敛;若展宽σ太大,则会产生多余的熵(entropy),因此必须选择合适的σ值。(Too large smearing-parameters might result in a wrong total energy, small smearing parameters require a large k-point mesh.)

(二)ISMEAR和SIGMA:

1、ISMEAR和SIGMA这两个关键词要联合起来使用,前者用来指定smearing的方法,后者用来指定smearing的展宽—— σ值。

2、ISMEAR和SIGMA的默认值分别为1和0.2。

3、ISMEAR可能的取值为-5,-4,-3,-2,-1,0,N (N表示正整数):

ISMEAR=-5,表示采用Blochl修正的四面体方法;
ISMEAR=-4,表示采用四面体方法,但是没有Blochl修正;
ISMEAR=-1,表示采用Fermi-Dirac smearing方法;
ISMEAR=0,表示采用Gaussian smearing方法;
ISMEAR=N,表示采用Methfessel-Paxton smearing方法,其中N是表示此方法中的阶数,一般情况下N取1或2, 但是In most cases and leads to very similar results。

4、σ值一般在0.1~0.3 eV范围内。

5、ISMEAR取值的一些经验:

(1)一般说来,无论是对何种体系,进行何种性质的计算,采用ISMEAR=0并选择一个合适的SIGMA值,都能得到合理的结果。
(2)在进行静态计算(能量单点计算, no relaxation in metals)或态密度计算且k点数目大于4时,取ISMEAR=-5。
(3)当原胞较大而k点数目较小(小于4个)时,取ISMEAR=0,并选择一个合适的SIGMA值。(if the cell is too large (or if you use only a single or two k-points) use ISMEAR=0 in combination with a small SIGMA=0.05)
(4)对半导体或绝缘体,不论是静态还是结构优化计算,都取ISMEAR=-5。(Mind: Avoid to use ISMEAR>0 for semiconductors and insulators, since it might cause problems. For insulators use ISMEAR=0 or ISMEAR=-5.)
(5)对金属体系(for relaxations in metals),取ISMEAR=1或2,并选择一个合适的SIGMA值。

(三)当采用ISMEAR=0或N时,如何优化选择合适的SIGMA值?
(以bcc Fe为例)

1、用脚本程序optsigma.sh代替INCAR文件:

rm WAVECAR
for i in 0.10 0.12 0.14 0.16 0.18 0.20 0.22 0.24 0.26 0.28 0.30
do
cat > INCAR <SYSTEM = bcc Fe
ENCUT = 450
GGA = 91
ISTART = 0 ; ICHARG = 2
ISMEAR = 0 ; SIGMA = $i
PREC = Accurate
!
echo " SIGMA = $i eV "; time vasp
TS=$(grep "EENTRO" OUTCAR | tail -1 | awk '{printf "%12.6f \n", $5}')
echo $i $TS >> comment
done

2、POSCAR文件:

bcc Fe
2.866
1.00 0.00 0.00
0.00 1.00 0.00
0.00 0.00 1.00
2
Direct
0 0 0
0.5 0.5 0.5

3、KPOINTS文件:

Automatic generation
0
Monkhorst-Pack
9 9 9
0.0 0.0 0.0

4、POTCAR文件:(略)

(四)计算任务执行方法:

输入:dos2unix optsigma.sh
bash optsigma.sh

(五)判断标准:熵(entropy)越小越好,选择entropy T*S EENTRO值中最小的那个所对应的SIGMA。( SIGMA should be as large as possible keeping the difference between the free energy and the total energy (i.e. the term 'entropy T*S') in the OUTCAR file negligible (1 meV/atom).)

(五)注意:
1、当k点的数目发生变化后,要重新优化选择SIGMA值。

阅读(1684) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~