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

全部博文(264)

文章存档

2011年(33)

2010年(52)

2009年(152)

2008年(27)

我的朋友

分类:

2010-02-05 16:17:36

PWSCF计算实例分析(6)原子位置优化

转载自:http://old.blog.edu.cn/user1/11542/archives/2006/1578700.shtml

 
在pwscf中提供了两种优化方法对原子位置进行驰豫:a) BFGS quasi-newton algorithm, b)最速下降法(quick-min Verlet)。除非初始位置很接近平衡位置,一般采用BFGS准牛顿算法比较快。在结构优化时,calculation需设置为"relax",下面相关的参数有时也需要设置:
一、在&control .../中设置优化的收敛标准参数、步数等
nstep :优化的最大步数;
tstress :设置True,表示要计算体系的应力;
tprnfor:设置为True,表示要计算原子所受的力,在calculation='relax'时,默认为.True.;
etot_conv_thr:用来控制原子位置优化时,总能变化收敛的标准;默认值为1.0D-4 Ha;
forc_conv_thr:用来控制原子位置优化时,原子所受力的收敛标准,默认值为1.0D-3 Ha/a.u,只有当etot_conv_thr和forc_conv_thr的标准都满足时,优化才停止;

二、在&IONS..../中设置优化方法中的相关参数
在calculation='relax'时,ion_dynamics设置为'bfgs'表示用BFGS准牛顿算法来进行优化,设置为'damp'表示用最速下降法来进行优化。
pot_extrapolation:用来控制优化或电子迭代过程中势的混合方式,在原子位置优化时,最好设置为'second_order',表示采用二阶方式来进行混合;
wfc_extrapolation:用来控制优化或电子迭代过程中波函数的混合方式,在原子位置优化时,最好设置为'second_order',表示采用二阶方式来进行混合;
当设置了采用BFGS准牛顿算法来优化后,下面的参数需设置:
upscale:用来控制conv_thr在结构优化过程中最可能的缩小值,在优化快接近收敛时,conv_thr会自动减小以保证所计算的力仍然很精确,但是conv_thr并不会减小到conv_thr/upscale;
bfgs_ndim:用来控制有多少个旧的力和位移矢量会用在残差矢量的Pulay混合中,其中残差矢量是基于BFGS算法中的Hessian矩阵的逆来得到的。设置为1,就是标准的BFGS准牛顿算法;
trust_radius_max:离子优化过程中,离子每一步最大移动量; 默认值为0.8D0;
trust_radius_min:离子优化过程中,当trust_radius小于trust_radius_min 时,离子每一步最小移动量; 默认值为 1.D-3;
trust_radius_ini:默认值为 0.5D0,在原子位置优化计算中初始的离子位移量;
w_1, w_2 :用在基于Wolfe条件的线性搜索方法中的参数。
 
例子1:优化CO分子
 
&CONTROL 
calculation  = "relax", 
prefix       = "CO", 
pseudo_dir   = "./", 
outdir       = "./",
tprnfor=.true.
forc_conv_thr=1.0D-4
/
&SYSTEM 
 ibrav     = 1,  celldm(1) = 12.D0,   nat       = 2,   ntyp      = 2, 
ecutwfc   = 24.D0,   ecutrho   = 144.D0,
/
&ELECTRONS 
conv_thr    = 1.D-7, 
mixing_beta = 0.7D0,
/
&IONS 
ion_dynamics='bfgs',
pot_extrapolation = "second_order", 
wfc_extrapolation = "second_order",
/
ATOMIC_SPECIES
O  1.00  O.LDA.US.RRKJ3.UPF
C  1.00  C.pz-rrkjus.UPF
ATOMIC_POSITIONS {bohr}
C  2.256  0.0  0.0
O  0.000  0.0  0.0  0 0 0
K_POINTS {Gamma}
阅读(1631) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~