|
本帖最后由 翟yingxin123 于 2025-5-14 16:41 编辑
我与我机房的一个比较聪明的同学研究了一下这个问题。程序可以实现重组能的计算了。给在用dushin程序的同学一些思路,仅供参考。
1:这个程序比较的两个文件首先是要保持内坐标一致。
2:分子的原子数(参考我是50左右),下载程序的未编译文件,读一下bmatred.for,在bmatred.for(不是程序的逻辑,只是与自己相关的比如:A与B成键的键长或是否成键等问题,因为源程序带有Mg,O一类的键长设置而我的体系没有,体系中有单独的原子与分子整体离得比较远,不在源文件中设置键长的话,程序认为有分离的原子没有与任何原子成键就会报错)。我的问题修改bmatred.for就可以了。修改问题不大而且不通用,根据报错信息,查找源文件内容,根据在终端输出的最终的报错信息里nber bend ,nber impr for ,nber tot redund int等关于键角,二面角等,两个状态分子最后这个nber tot redund int输出数值相等(我做出来是这几个数值都相等),一般就成功了 ,当然是否可行还需要与你们自己的老师商定。大家要使用并且判断力不强的,需要与老师商定,起码要用原博文里的例子自己跑一跑,确实会出现成功运行,数据不同的情况)。
3:分子体系中有独立的原子,离子,距离比较远的(独立出来,只在振动过程中成键),没有在程序中设置键长让程序可识别此键的话,程序会认为这个原子或离子是单独的,上来就会报错。
4:出现问题unconnected atom in bmatred,nv is incorrect,int defn changed,nber red int coord def changed 等等,可能是输入文件的问题,也可能是dushin限制不合适(大概)。
5:很多细节都需要与老师商定,所以我只能帮用dushin的同学提供一个解决办法的思路,并不十分严谨。
(一楼我贴的我自己的程序我就删掉了)
|
|