24小时热门版块排行榜    

CyRhmU.jpeg
查看: 6328  |  回复: 14

Gina88

木虫 (正式写手)

[求助] bader电荷布局分析怎么运行啊?

bader电荷布局分析怎么运行啊?
先谢谢大侠们了!
回复此楼

» 收录本帖的淘帖专辑推荐

第一性原理相关文档 vasp计算资料 第一性 计算化学
第一性原理 科研啊科研 soft study

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

Gina88

木虫 (正式写手)

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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Gina88

木虫 (正式写手)

几个月前,当我第一次打开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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

Gina88

木虫 (正式写手)

请高人科普一下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 F 现在还不能分析某一个轨道的 电荷布居情况,不过很快就可以了,新版本将具有这个功能

» 本帖已获得的红花(最新10朵)

2楼2013-02-04 15:37:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

444239852

银虫 (正式写手)

引用回帖:
3楼: Originally posted by Gina88 at 2013-02-04 16:31:36
Mulliken电荷是一种计算原子partial charge(局部电荷)的方法。本来,电子是在空间分布的一团电子云,但是广大玩计算的童鞋们希望能有一种更简洁的方法来描述这种混沌不清的分布,看看谁多谁少,谁剥削了谁,因此计 ...

请问一下得到Hershifiled charge 表示的是什么呢?其中的正负号各代表什么呢?
5楼2013-10-10 11:35:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

444239852

银虫 (正式写手)

引用回帖:
3楼: Originally posted by Gina88 at 2013-02-04 16:31:36
Mulliken电荷是一种计算原子partial charge(局部电荷)的方法。本来,电子是在空间分布的一团电子云,但是广大玩计算的童鞋们希望能有一种更简洁的方法来描述这种混沌不清的分布,看看谁多谁少,谁剥削了谁,因此计 ...

请问一下得到Hershifiled charge 表示的是什么呢?其中的正负号各代表什么呢?
6楼2013-10-10 11:35:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

博士PHD

新虫 (小有名气)

引用回帖:
2楼: Originally posted by Gina88 at 2013-02-04 15:37:16
请高人科普一下bader 电荷分析一些细节。。
先发一个布局数分析的帖子吧。需要到bader analysis 下载两个脚本,chsum.pl,
bader ,
1。在静态计算时,在INCAR 中加入LAECHARG 参数,并设置LAECHG =.TRUE.
运 ...

运行时候第一步没问题,但是到了第二步的时候  ./bader CHGCAR_ref CHGCAR_sum 就会出现这样的问题:-bash: ./bader: cannot execute binary file;小硕初学vasp,还望大侠能多多帮助,不甚感激;
科研一族~
7楼2015-07-08 21:10:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

博士PHD

新虫 (小有名气)

送红花一朵
引用回帖:
2楼: Originally posted by Gina88 at 2013-02-04 15:37:16
请高人科普一下bader 电荷分析一些细节。。
先发一个布局数分析的帖子吧。需要到bader analysis 下载两个脚本,chsum.pl,
bader ,
1。在静态计算时,在INCAR 中加入LAECHARG 参数,并设置LAECHG =.TRUE.
运 ...

运行时候第一步没问题,但是到了第二步的时候  ./bader CHGCAR_ref CHGCAR_sum 就会出现这样的问题:-bash: ./bader: cannot execute binary file;小硕初学vasp,还望大侠能多多帮助,不甚感激;
科研一族~
8楼2015-07-08 21:10:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

微6凉

铁虫 (小有名气)

引用回帖:
2楼: Originally posted by Gina88 at 2013-02-04 15:37:16
请高人科普一下bader 电荷分析一些细节。。
先发一个布局数分析的帖子吧。需要到bader analysis 下载两个脚本,chsum.pl,
bader ,
1。在静态计算时,在INCAR 中加入LAECHARG 参数,并设置LAECHG =.TRUE.
运 ...

请问我在算第二步的时候出现了这样的问题是怎么回事呢
syntax error at CHGCAR line 2, near "1.00000000000000"
Execution of CHGCAR aborted due to compilation errors
希望能给与帮助,谢谢
9楼2015-08-01 18:26:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

微6凉

铁虫 (小有名气)

引用回帖:
3楼: Originally posted by Gina88 at 2013-02-04 16:31:36
Mulliken电荷是一种计算原子partial charge(局部电荷)的方法。本来,电子是在空间分布的一团电子云,但是广大玩计算的童鞋们希望能有一种更简洁的方法来描述这种混沌不清的分布,看看谁多谁少,谁剥削了谁,因此计 ...

还想问一下,我运行第二部是还总是出现这样的问题
Unrecognized character \x7F at bader line 1
这是怎么回事
10楼2015-08-01 19:14:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 Gina88 的主题更新
信息提示
请填处理意见