| 查看: 6324 | 回复: 14 | ||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||
Gina88木虫 (正式写手)
|
[求助]
bader电荷布局分析怎么运行啊?
|
|
|
bader电荷布局分析怎么运行啊? 先谢谢大侠们了! |
» 猜你喜欢
寻求一种能扛住强氧化性腐蚀性的容器密封件
已经有4人回复
真诚求助:手里的省社科项目结项要求主持人一篇中文核心,有什么渠道能发核心吗
已经有7人回复
论文投稿,期刊推荐
已经有6人回复
请问哪里可以有青B申请的本子可以借鉴一下。
已经有4人回复
孩子确诊有中度注意力缺陷
已经有14人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
11楼2015-08-03 15:47:48
Gina88
木虫 (正式写手)
- 1ST强帖: 1
- 应助: 9 (幼儿园)
- 金币: 3328.8
- 散金: 124
- 红花: 8
- 帖子: 395
- 在线: 113小时
- 虫号: 1047684
- 注册: 2010-06-26
- 专业: 理论和计算化学
|
请高人科普一下bader 电荷分析一些细节。。 先发一个布局数分析的帖子吧。需要到bader analysis 下载两个脚本,chsum.pl, bader , 1。在静态计算时,在INCAR 中加入LAECHARG 参数,并设置LAECHG =.TRUE. 运算完毕会生成AECCAR0 AECCAR1 AECCER2, 然后运行chsum.pl AECCAR0 AECCAR2, 会生成CHARGCAR_sum 文件, 2.然后运行 bader CHGCAR -ref CHGCAR_sum 其中ACF.dat 就包含价电子的电荷信息。 有几点要注意: A. Bader 只支持PAW 的方法, B。需要vasp4.6.31 以及以上版本。 C.计算电荷布局分析时,需要比较密的FFT 网格,可以通过NG(X,Y,Z) F来调整,增大这些量,直到总的电荷数目正确。 D。Bader 电荷布居分析基于电荷密度。 E和Mulliken ,Hirhfeld 分析比较,原子电荷:Hirshfeld |
2楼2013-02-04 15:37:16
Gina88
木虫 (正式写手)
- 1ST强帖: 1
- 应助: 9 (幼儿园)
- 金币: 3328.8
- 散金: 124
- 红花: 8
- 帖子: 395
- 在线: 113小时
- 虫号: 1047684
- 注册: 2010-06-26
- 专业: 理论和计算化学
|
Mulliken电荷是一种计算原子partial charge(局部电荷)的方法。本来,电子是在空间分布的一团电子云,但是广大玩计算的童鞋们希望能有一种更简洁的方法来描述这种混沌不清的分布,看看谁多谁少,谁剥削了谁,因此计算原子电荷就非常流行,称为布局分析(population analysis),通俗说,如何在原子间分割大家共同的家产。大致说先后提出了三种分割家产的思路。 第一类是以原子轨道对分子轨道的贡献划分。其中最著名的是Mulliken童鞋1955年提出的Mulliken population analuysis. Mullken童鞋说,如果两个原子共用了一些电子对,那么电子可以分成3部分,属于A的(净原子布居), 属于B的, 和共同的(重叠布居)。最公平的方法是,把大家共同拥有的一分为二,各拿一半,加上自己原有的,就是你的局部电荷。怎么计算净原子布居和重叠布居?根据分子轨道中的原子轨道系数。 因为分子轨道是原子轨道的线性组合,假设两原子核外各有一条电子轨道A, B组成了一个电子对分子轨道C=xA+yB,总电荷等于波函数的平方:|C|^2=2个电子; 仔细看这个公式,谁是谁的不用说了吧。。。类似依轨道划分的还有所谓NBO电荷,Born电荷。 有人问平面波基组并非原子中心基组,没有原子轨道系数,怎么求Mulliken电荷呢?一般的平面波方法都是另外用一套原子中心基函数去拟合平面波计算得到的电子云分布密度,然后再套用Mulliken分析方法。 第二种分割思路是按波函数节点划分,这就是nb哄哄的Bader charge, 依据所谓的AIM理论,atom in molecule。Bader童鞋非常愤青,经常用很犀利的语言驳斥各种电荷划分。他说依轨道划分类似于在两原子间砍了一刀,各拿一半,这是没有任何物理意义的。那么什么叫有物理意义?他说你这一刀砍下去,要顺着波函数的节点砍下去。我们知道波函数的节点是波函数变号的地方,对应的电荷密度为0. 他说这是电子云空间分割最理想最天然的分割点,比你那轨道划分好5倍,呵呵。不可否认,分子轨道的空间节点可以显示成键的中心位置等信息,的确是一种比较好的划分方法。 第三种思路,都是搞力场的童鞋感兴趣的,叫ESP电荷,包括原装ESP, 改进版的ChelpG, Hershifiled等方法。搞力场的童鞋说,你们搞切割的,虽然思路清晰,但是我拿到我的力场中一用,计算静电作用,发现不行,连分子偶极距都是错的。怎么办呢?俺们也不搞切割了,俺们拿一个探测电荷放到分子外头探,探探受到了多大的静电作用;把空间均匀划分成几千个格点,探几千次;然后呢,我就在原子核的位置点尝试放置一些电荷,来拟合探测电荷受到的静电作用。不断尝试,最后最能够重现分子静电场的那一套原子电荷就是俺要的电荷。这就是原始的ESP电荷分析。后来发展的ChelpG什么,就是在拟合中加各种约束,比如增加偶极距的权重。这种电荷分析方法基本上是经验拟合,但是能够正确重现偶极距,分子间作用等性质,搞力场的最喜欢。对他们来说,只要结果正确即可,何须在意经由何种途径?唯一不爽的是屏蔽效应很严重,即包裹在分子里面的原子的电荷不容易探到它们的静电作用,拟合时你电荷给大点给小点,拟合结果都差不多,郁闷。。。 不全的大家补充。 |
3楼2013-02-04 16:31:36
Gina88
木虫 (正式写手)
- 1ST强帖: 1
- 应助: 9 (幼儿园)
- 金币: 3328.8
- 散金: 124
- 红花: 8
- 帖子: 395
- 在线: 113小时
- 虫号: 1047684
- 注册: 2010-06-26
- 专业: 理论和计算化学
|
几个月前,当我第一次打开makefile的时候,我很晕,不知道该看什么,也不知道该干什么。如果能读懂这个简单的makefile,那就基本上可以解决问题了。 一个简单的程序,如果只有不到10行的主程序project.F90,那直接用编译命令 ifort project.F90 -o project 就可以编译成可执行文件project了。 make文件是一个脚本。如果一个复杂的程序有多个模块需要编译,那可能需要检查文件依赖关系,硬件和操作系统,设置环境变量,调用链接和数学库之类的。一项一项的手动编译就很繁琐了。所以就有了makefile。它是把所有编译命令和参数都集中在一个命名为Makefile或者makefile的文件中,称之为make文件。然后在存放makefile的目录下运行make命令就好了。make会自动寻找当前目录下的Makefile或者makefile. 也可以make makefile,这时可以指定makefile文件名,比如make yindu_a_san bader程序是对vasp电荷做布局分析的. 我的平台是linux,32位;编译器是ifort. 所以进入makefiles文件夹,选择Makefile.lnx_ifort_32这个make文件。 Makefile.lnx_ifort_32内容如下: .SUFFIXES: .f90 #源文件名后缀为f90。如果是fortran和C源代码都有的呢?.SUFFIXES: .f90 .c ? FC = ifort #这里指出编译器。如果不能在搜索路径$PATH中找到,那就需要给出绝对路径。如/opt/intel/fc/9.1.036/bin/ifort FFLAGS = -O2 #定义优化级别,不知道是什么意思。可以选O1,O2,O3. LINK = -static #定义编译链接方式。静态链接。编译时把链接的库文件编译进程序,而不是动态调用。不清楚。 OBJS = kind_mod.o \ #定义变量。把 多个*.o文件定义为OBJS. matrix_mod.o \ #"\"表示继续上一行?也就是按照一行输入? ions_mod.o \ options_mod.o \ charge_mod.o \ chgcar_mod.o \ cube_mod.o \ io_mod.o \ bader_mod.o \ voronoi_mod.o \ command_arg.o %.o %.mod : %.f90 #把*.f90文件编译成什么? 不明白。 $(FC) $(FFLAGS) -c $*.f90 #编译命令。啥意思? bader: $(OBJS) main.o #为什么不把main.o也写进OBJS呢? rm -f bader #如果有老版本的bader可执行文件,删除之。为新版本的bader留位子。 $(FC) $(LINK) main.o -o $@ $(OBJS) #啥意思? @? 跟前面一条编译命令有什么关系? dist: bader #这个什么意思? 我看删掉这一行以及下面两行都没有关系。 tar -cf bader_lnx_32.tar bader gzip -9 bader_lnx_32.tar clean: #告诉make clean的时候删除那些文件。有则删之。 rm -f *.o *.mod bader bader_lnx_32.tar.gz #上面一行说要删除bader,呵呵,如果make后接着就make clean,那就得不到可执行文件bader了。所以make后,及时把bader转移到搜索路径,如/user/bin下。或者直接修改为 rm -f *.o *.mod 很多我也不明白。不过已经不怕它了。baidu google一下基本也可以解决一下小问题。但是要自己从空白来写makefile,我就无能为力了。 写过Fortran的人,是否也会自己写makefile呢?希望来分享解释一下。 |
4楼2013-02-04 17:11:07













回复此楼
博士PHD