本帖最后由 brothers 于 2016-10-26 09:32 编辑
这里只讲自定义基组和赝势时的注意事项,假设你已经懂了gamess其它格式。 最权威的例子是帮助文档23页的示例。本帖尽量保持正确,如有错讹,请不吝指教。
软件为Gamess13, Windows版64位。 假设这样一个体系,含有Pt,H,H三个原子。对Pt使用自定义赝势基组。 为了使用自定义基组,首先要在$basis basnam 下为每个原子指定一个标识(与gamess关键词不重复的),比如对Pt和两个H分别定义为metal, ligH, ligH。注意这个标识的拼写是无关紧要的。比如你可以定义zhangsan,lisi,wanglaowu…..。这部分结构如下: $basis basnam(1)=metal, ligH,ligH $end !注意每个原子都要定义,比如两个H,在basnam中定义ligH时需要重复两次。 !帮助文档第23页那个例子,metal后面有个空格,删掉也不打紧。 !定义完basnam,紧跟着是一个$data $end块,里面需要提供标题,对称性,分子结构等信息。 !紧跟在$data $end块后面定义基组的具体内容!!! $data Title 对称性(!分子的对称性 ) 空行 (! 注意,一般情况下,对称性与分子结构之间需要一个空行;若对称性指定为C1,这里不需要空行 ) 分子结构 $end !之后不要用$data了 !下面开始自定义基组,基组的定义顺序不要求与basnam中原子的定义顺序一致 $metal !Pt的基组,可以自定义(从网上复制过来),也可以是gamess内嵌的 基组内容 空行 $end !注意$end前面需要空行 $ligH !H的基组。与basnam定义格式(两个ligH)不同,基组定义时,只需要给出一次$ligH即可。 基组内容 空行 $end !再下面需要指定赝势。注意$control部分需要有使用赝势的关键词~~本人用两个原子的输入文件测试发现赝势的指定顺序也没有必要与basnam或与分子说明部分的顺序一致,但是一致总是没错的 $ecp Pt-ecp xxxxxx !注意这里-ecp前需要直接指明元素符号Pt或H,不要使用之前basnam部分定义的metal或ligH。赝势可以是gamess内嵌的,也可以是网站上copy来的。要注意赝势大小,gamess不支持h及更高的角动量,如果赝势里有h角动量,需要手动删除。 H-ecp none H-ecp none !没有赝势的原子也必须全部列出,指明为none。如果有100个H原子,恭喜你,必须全部列出来 !这里不要空行了(空行了好像也没有影响….醉了...为了安全,还是按照官方的例子来吧,不要空行) $end
注意:本文所涉及的几个顺序问题,比如basnam的定义顺序,分子说明中的原子顺序,基组定义顺序,赝势定义顺序等,在普通计算中也许不那么重要,但是在某些特殊计算中,比如能量分解中,是必须百倍小心的。不管怎样,全都按照相同顺序写总是没错的。
到这里就over了~~只要注意,一定不会有问题;如果有问题,请仔细阅读错误报告~~实在解决不了再发帖提问
13楼是beefly大神的回复,帮大家附在后面,免得忘了看。
metal与逗号之间的空格不影响读入,这是fortran读入namelist的习惯。gamess的输入格式采用伪namelist机制,也延续了这个习惯。
早先的版本,可以在官方提供的运行脚本里指定外部基组文件,然后在$BASIS里直接引用自定义的基组名就可以了。但是2013版以后的运行脚本去掉了此功能,改为本文介绍的方法,我感觉反而更繁琐。建议找个旧版的gamess,把rungms用旧的替代;或者研究一下旧rungms是怎么写的,把外部基组文件的功能加上。不过即便是旧的方法,依然很罗嗦。
ecp中的原子顺序必须和坐标里的一致,注意这个坐标是打印在输出文件的坐标,不是输入文件的坐标部分。存在对称等价原子的情况下,两者是不一样的,前者比后者的原子数多。如果自定义ECP,只能在对称等价原子首次出现的时候定义ECP,其余的等价原子保留一行,但-ECP之后什么也不写。......每次自定义基组的时候,都想把这部分代码的作者拉出来暴打一顿。 |
|