| 查看: 4111 | 回复: 12 | |||||||
| 本帖产生 1 个 QC强帖 ,点击这里进行查看 | |||||||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||||||
ChemiAndy木虫 (正式写手)
|
[交流]
【ChemiAndy个人文集】NBO5.G Standalone (GENNBO) Linux下的编译和使用 已有9人参与
|
||||||
|
(此帖已在mdbbs.org发过,所带附件可去那边下载) 我需要计算Guanidinium ion的多个resonance structure对overall structure的相对贡献(百分比)。经google,从这个教程(猛击: Introduction to GAUSSIAN 98W and GENNBOW 5.0 NBO)了解到,需要使用NBOGEN。此GENNBO似乎并没有集成在Gaussian03/09所带的NBO3.X中,故需使用NBO源代码编译所谓的standalone程序gennbo. 编译很不顺利,辗转搜索很多信息方得以通过,因此记下来供别人参考。 我的编译平台: 硬件: AMD64 OS: Ubuntu 10.04 编译器: Intel fortran compiler 11 (ifort) (安装ifort请参考这里) 如下编译过程分为4个步骤,下载,劈分源代码nbo_5g.src,重新生成源代码gennbo.f,修改bug并编译。 阴影中文字为linux命令和输出。 1. 小木虫论坛下载源代码: http://www.mdbbs.org/viewthread.php?tid=12591&highlight=nbo 解压后,应当是名为nbo_5g.src的源文件(52192行)和一个enable.f (560行)的文件。 2. 生成gennbo.f (1) 首先将nbo_5g.src转成linux格式,并劈成2个文件 NBO_5GA.SRC: 包括nbo_5g.src的前25134行,此部分包括主要的NBO计算 NBO_5GB.SRC: nbo_5g.src的其余部分,即后27070行,此部分包括所有的NRT计算 格式转换 $> dos2unix * //Ubuntu10.04中没有dos2unix,可以安装"apt-get install tofrodos"然后用"fromdos *"命令转换格式 文件分割: $> head -25125 nbo_5g.src >> NBO_5GA.SRC $> tail -27067 nbo_5g.src >> NBO_5GB.SRC 确认你得到的NBO_5GA.SRC的文件尾和NBO_5GB.SRC的文件头与如下所列相同: $> tail NBO_5GA.SRC SAVE ZERO DATA ZERO/0.0D0/ C SUM = ZERO DO 10 I = 1,N SUM = SUM + X(I)*X(I) 10 CONTINUE VECLEN = SQRT(SUM) RETURN END $> head NBO_5GB.SRC C*********************************************************************** C NBO 5.G -- Natural Bond Orbital Analysis Programs C (c) Copyright 1996-2008 Board of Regents of the University of Wisconsin System C on behalf of the Theoretical Chemistry Institute. All Rights Reserved. C*********************************************************************** C NRT - NATURAL RESONANCE THEORY Version 2.6 C*********************************************************************** C C NRT MODULE ROUTINES: C (2) 编译enable.f,生成enable, 并执行它获得gennbo.f $> ifort enable.f -o enable $> ./enable Currently supported environments: (1) 32-bit Unix UNIX/LINUX (2) 64-bit Unix UNIX/LINUX (3) DOS PC DOS (4) VMS VAX VMS Environment to enable (1-4)? 1 //没错,选择32bit,尽管我们的平台是64bit,见后记 Currently supported NBO versions: (1) GEN GENNBO (standalone) (2) G03 Gaussian 03 (3) G98 Gaussian 98 (4) G94 Gaussian 94 (5) GMS GAMESS (6) NWC NWChem (7) AM1 MOPAC or AMPAC NBO Program version to enable (1-7)? 1 Module gennbo.f will be created; OK to proceed [Y]/N? Y NBO source (NBO_5G.SRC ) contains 52194 lines of code. A total of 43434 lines were written to gennbo.f including 272 utility and 2 operating system dependent lines. 这样就得到了gennbo.f文件 3. 修改gennbo.f中的2处bug (1) 搜索 IF(MORB.EQ.0.AND.NAMEAT(IATNO(NCTR.NE.'gh') THEN 在THEN前补2个右括号 (2) 搜索 IF(MORB.EQ.0.AND.NAMEAT(IATNO(NCTR).NE.'gh') THEN 在THEN前补1个右括号 (所补括号要跟在原括号后, THEN前必须有空格) 感谢参考2中demonangel 的讨论,不修改这2处bug很难编译通过。 4. 编译gennbo.f $> ifort gennbo.f -o gennbo 应该没有任何warning或error,随后得到可执行的gennbo; 使用gfortran编译时得到一大堆warning,没有通过,遂放弃。 5. 关于所需的内存大小,可以直接从gennbo的log文件的前几行读出来, Storage needed: 85140 in NPA, 68112 in NBO ( 20000000 available) 上面为10原子使用6-311++G(d,p)基组,仅使用85K+68K=~150K的内存,说明NBO计算不太消耗内存,源代码所设定的20M对于大型体系也应该是足够的。否则可以通过查找gennbo.f中的"MEMORY = 20000000" 然后修改为你所需的。注意20后面6个0表示20M。 关于如何通过GENNBO计算各共振结构的贡献,请看下一篇博文。 参考: 1. "成功编译NBO 5.G on GAMESS (January 12, 2009 R3.)" http://muchong.com/html/201001/1808338.html 2. http://58.213.153.47/viewthread. ... p;extra=&page=2 ************************ 后记:我原先按照参考1(GAMESS编译)切割nbo_5g.src,编译成功后,测试表明得到的程序不能正常计算,因为一般一个NBO分析应该是1-2分钟的事情,但是它既不退出,也不报错,查看log file,只有聊聊数行,因此,只能强行退出。 后来,仔细看了看NBO_5GA.SRC, 和NBO_5GB.SRC,发现它切割的地方很奇怪,于是从5GA的末端找到NRT部分开始的地方,全部复制到5GB的前面,重新编译。还是不行,运算陷入死循环。 后来还按照NBO5 FAQ 使用古老的g77编译,但是编译无法通过,提示COMMON BLOCK的大小不匹配。就在已经绝望之后,发生了一件古怪的事情,我再次用ifort编译,得到的程序运算一切正常。所有的计算在几十秒内成功完成。。。哥,这到底是为什么? 后来用UltraCompare仔细比较,原来是我无意中在enable那一步使用了32bit,而只有选择32bit编译才能通过,正确地选择 64bit却全部失败... 神奇的NBO5...或者, 只是我的平台的问题。那么,前一步切割NBO文件的位置到底有没有影响呢?从enable.f的源码去读,应该没有影响。所以,如果你的编译出了问题,不要放弃,just keep trying... 附件: (1) 我得到的gennbo.f。这样你无须去切割和修改bug,直接使用“ifort gennbo.f -o gennbo"搞它。前提是你必须是64位linux。否则按照我上面的顺序折腾。 (2) 我得到的gennbo程序,如果你使用和我相同的平台(AMD64-4cores/Ubuntu10.04),或许可以执行,我没有尝试。 NBO5.G Standalone (GENNBO) Linux下的编译和使用(二) 下面说明使用NBO计算某一分子(Guanidinium as an example)个共振式对总体结构的相对贡献百分比。 Guanidinium离子(C+(NH2)3) 理论上有4种最可能的共振式,下面的计算表明只有3种共振式对总体结构有贡献。 过程很简单,用gauss03/09生成.47文件,然后.47作为输入文件用gennbo跑一下即可。 gennbo的运行很简单: $> gennbo < input.47 > output.log //PS: replace "input / output" with your file name 关键是input.47文件的生成。它是由gaussian 98/03/09 计算生成的。 1. .47文件的生成 生成这个文件的输入文件job.gjf如下: %mem=1024MB # rb3lyp/6-311++g(d,p) pop=NBOread TEST: Guanidinium Ion 1 1 C N 1 B1 N 1 B2 2 A1 N 1 B3 3 A2 2 D1 H 2 B4 1 A3 3 D2 H 2 B5 1 A4 3 D3 H 3 B6 1 A5 4 D4 H 3 B7 1 A6 4 D5 H 4 B8 1 A7 3 D6 H 4 B9 1 A8 3 D7 B1 1.33487700 B2 1.33487641 B3 1.33487641 B4 1.00881433 B5 1.00881433 B6 1.00881391 B7 1.00881451 B8 1.00881391 B9 1.00881451 A1 119.99998985 A2 120.00002031 A3 121.37052848 A4 121.37052848 A5 121.37057951 A6 121.37057291 A7 121.37057951 A8 121.37057291 D1 180.00000000 D2 13.00659769 D3 -166.99340231 D4 -166.99338955 D5 13.00660166 D6 -166.99338955 D7 13.00660166 $NBO ARCHIVE FILE=MYJOB $END //PS: 此行前后均需一空行 运行gaussian $> g09 job.gjf job.log 即可得到 MYJOB.47文件 // PS: replace MYJOB with any name you like 2. 修改MYJOB.47文件 将如下内容替换MYJOB.47中的第二行 "$NBO $END" $NBO NRT $END $NRTSTR STR1 LONE 2 1 3 1 4 1 END BOND S 1 2 S 1 3 S 1 4 S 2 5 S 2 6 S 3 7 S 3 8 S 4 9 S 4 10 END END STR2 LONE 3 1 4 1 END BOND D 1 2 S 1 3 S 1 4 S 2 5 S 2 6 S 3 7 S 3 8 S 4 9 S 4 10 END END STR3 LONE 2 1 4 1 END BOND S 1 2 D 1 3 S 1 4 S 2 5 S 2 6 S 3 7 S 3 8 S 4 9 S 4 10 END END STR4 LONE 2 1 3 1 END BOND S 1 2 S 1 3 D 1 4 S 2 5 S 2 6 S 3 7 S 3 8 S 4 9 S 4 10 END END $END 注:单个可能的共振结构由LONE和BOND说明 (1) LONE指明孤对电子(Lone Pair)在几号原子上和有多少对LP LONE 2 1 3 1 4 1 END 说明在原子序号为2,3,4的原子上分别各有一对孤对电子 (2) BOND指明键级 S 1 2 说明在原子1,2之间有单键single D 1 3 说明在原子1,3之间有双键double (T n m 说明在原子n,m之间有三键triple) 上例指明了guanidinium离子的4个可能的共振结构 3. 然后运行gennbo $> gennbo < MYJOB.47 > MYJOB.log 即可得到结果 STR1: 0% STR2: 31.65% STR3: 31.65% STR4: 31.65% 为什么总和不是100%呢?还有5%哪去了?看来要仔细阅读manual,看看这个百分比贡献是如何计算出来的,也欢迎指教。 参考: 1. NBO5官方网站: http://www.chem.wisc.edu/~nbo5 2. Grigoriy A. Sereda, "Introduction to GAUSSIAN 98W and GENNBOW 5.0" 3. NBO5 Manual, http://www.mdbbs.org/thread-17437-1-2.html by ChemiAndy from一花一世界@百度空间 [ Last edited by yjcmwgk on 2010-9-25 at 15:14 ] 上传gennbo.f 可用fortran编译器编译 $ ifort gennbo.f[ Last edited by ChemiAndy on 2011-9-15 at 06:38 ] MYJOB.47的文件输入有错:gdn应该只有两个共振结构。三根单键的非极性结构,和两单一双的极性结构。极性结构虽然有三个isomer, 但NBO只需要输入1个,否则得到错误的结果。 上面例子中的结果就是错的,它得到 三根单键的非极性结构 0% 两单一双的极性结构 94.94% 正确的结果应该为 三根单键的非极性结构 7.45% 两单一双的极性结构 58.82% 正确的MYJOB.47部分为(去掉最后两个重复的两单一双的极性结构的定义即可) 另外一个例子BF3,共振结构定义: 参考结果: 三根单键的非极性结构:78% 两单一双的极性结构: 4% [ Last edited by ChemiAndy on 2015-3-16 at 07:38 ] |
» 收录本帖的淘帖专辑推荐
模型 - 模拟 - 统计 - 热力学 | MS资料 | 气态分子化学动力学 | VASP |
» 猜你喜欢
中国地质大学(武汉)—国家级青年人才杨明教授组-招收博士-新能源材料化学及催化材料
已经有32人回复
求光催化产过氧化氢的PPT !!!毕业答辩需要
已经有1人回复
物理化学论文润色/翻译怎么收费?
已经有289人回复
湖南大学招收锂离子电池、离子液体、高分子与凝胶材料、电催化方向博士生多名
已经有5人回复
关于五水硝酸铋还原得到单质铋的问题
已经有1人回复
山东省青年基金什么时候拨款
已经有34人回复
CES投稿
已经有2人回复
如何掌握一门外语?
已经有0人回复
企业为什么一定要做“专精特新”认定?如何成为专精特新企业?
已经有5人回复
» 本主题相关商家推荐: (我也要在这里推广)
» 本主题相关价值贴推荐,对您同样有帮助:
SUSE Linux系统下安装gfortran编译器
已经有7人回复
为什么我的只有查看源文件?没有查看源代码?
已经有5人回复
Fortran程序在linux下编译的问题
已经有5人回复
module无法编译?
已经有4人回复
lammps下载及安装教程
已经有8人回复
怎样在linux系统上提交高斯的输入文件,运算已经查看输出文件
已经有3人回复
Linux下编译F程序的问题
已经有4人回复
Fortran变量格式
已经有3人回复
linux系统下求fortran编译器
已经有12人回复
各位高手,怎么在windows下编译LAMMPS?
已经有4人回复
Linux ubantu下gcc编译出现错误,如何解决?这是两次makefile的结果。
已经有4人回复
【求助】怎样把linux的bash脚本编译成windows下的可执行文件(.exe)
已经有16人回复
【求助】linux下查看优化的分子结构的问题
已经有6人回复
【求助】200 重金求购软件 NBO5.0 以及NBOView
已经有8人回复
【原创】精简Linux内核编译的简单方法
已经有5人回复
【求助】.47文件如何产生
已经有13人回复
【求助】linux下lapack库编译测试错误
已经有3人回复
【原创】成功编译NBO 5.G on GAMESS (January 12, 2009 R3.)
已经有26人回复
【原创】linux 下 icc+MKL 方案编译安装 gamess
已经有62人回复
calfwoo
金虫 (小有名气)
- 应助: 0 (幼儿园)
- 金币: 1812.1
- 红花: 2
- 帖子: 171
- 在线: 276.9小时
- 虫号: 97355
- 注册: 2005-11-08
- 性别: GG
- 专业: 理论和计算化学
4楼2010-09-26 15:45:11
sjzxbe
木虫 (小有名气)
- 应助: 11 (小学生)
- 金币: 2090.2
- 红花: 6
- 帖子: 277
- 在线: 288小时
- 虫号: 481255
- 注册: 2007-12-17
- 性别: GG
- 专业: 理论和计算化学
2楼2010-08-13 06:57:17
erylingjet
铁杆木虫 (著名写手)
- 应助: 0 (幼儿园)
- 贵宾: 5.372
- 金币: 9933.4
- 散金: 752
- 红花: 2
- 帖子: 2248
- 在线: 241.5小时
- 虫号: 415302
- 注册: 2007-06-28
- 性别: GG
- 专业: 计算化学
★
小木虫(金币+0.5):给个红包,谢谢回帖交流
小木虫(金币+0.5):给个红包,谢谢回帖交流
|
按照您说的从头到尾,没出现任何问题,到这一步,说是: -bash :gennbo: command not found 如果直接./gennbo的话,出现如下错误: forrtl: Illegal seek forrtl: severe (20): REWIND error, unit 5, file /dev/pts/6 Image PC Routine Line Source gennbo 00000000004FE383 Unknown Unknown Unknown gennbo 00000000004FC862 Unknown Unknown Unknown gennbo 00000000004D6E70 Unknown Unknown Unknown gennbo 00000000004A536E Unknown Unknown Unknown gennbo 00000000004A4FCF Unknown Unknown Unknown gennbo 00000000004BA2CA Unknown Unknown Unknown gennbo 000000000040DCA5 Unknown Unknown Unknown gennbo 0000000000403030 Unknown Unknown Unknown gennbo 0000000000402FCC Unknown Unknown Unknown gennbo 0000000000402F2A Unknown Unknown Unknown libc.so.6 00000033B151C4BB Unknown Unknown Unknown gennbo 0000000000402E6A Unknown Unknown Unknown 请多指教! |
3楼2010-09-25 15:07:07
erinic
新虫 (正式写手)
- 应助: 12 (小学生)
- 金币: 2045.2
- 散金: 743
- 红花: 3
- 帖子: 499
- 在线: 179.1小时
- 虫号: 1099432
- 注册: 2010-09-15
- 性别: GG
- 专业: 理论和计算化学
5楼2011-01-16 17:07:15













回复此楼
