计算化学公社

标题: 关于Multiwfn输出跃迁密度格点 [打印本页]

作者
Author:
JAmChemSoc    时间: 2021-9-8 09:36
标题: 关于Multiwfn输出跃迁密度格点
本人试图采用基于三维空间结构跃迁密度的 cube 方法来计算分子间耦合,与基于原子跃迁电荷的tresp方法(使用multiwfn计算)进行对比,理论上来讲两种方法得到的结果应该是一致的。
计算体系为相距10埃的两个卟啉环对儿,
1、首先采用multiwfn的tresp方法,计算得到的耦合能大约是260cm-1
2、对于基于三维空间结构跃迁密度的 cube 方法(图),计算流程如下:
    (1)对每一个分子的chk文件和log文件,使用Multiwfn的主功能18中的跃迁密度分析模块——定义格点大小为1.5*1.5*1.5——最终Output cube file of transition density to current folder,得到transdens1.cub
    (2)对于上一步输出来的transdens1.cub,使用Multiwfn的主功能13的格点分析模块——最终Output all data points with value and coordinate,得到output1.txt
    (3)对于第二个分子同样执行上述两步操作,得到output2.txt
    (4)然后写脚本计算耦合,脚本内容如下(因为output.txt文件中的xyz为埃,所以*0.529转化为a.u.;因为格点大小为1.5*1.5*1.5,所以*3.375):
    f_list1 = open('output1.txt','r').readlines()
    f_list2 = open('output2.txt','r').readlines()

    list_sum = []
    num = 0
    for line_mol1 in f_list1:
        num+=1
        ls_mol1 = line_mol1.split()
        coord1 = ls_mol1[0:3]
        coord1_2 = [float(i)*0.529 for i in coord1]
        chg1 = float(ls_mol1[3])*3.375
        for line_mol2 in f_list2:
            ls_mol2 = line_mol2.split()
            coord2 = ls_mol2[0:3]
            coord2_2 = [float(i)*0.529 for i in coord2]
            chg2 = float(ls_mol2[3])*3.375
            minus = np.array(coord1_2) - np.array(coord2_2)
            dis = np.linalg.norm(minus)
            tresp_single = (chg1*chg2)/(dis)
            list_sum.append(tresp_single)
        print (num)
    tresp_energy = sum(list_sum)
    return tresp_energy


最终得到的耦合能却为1199.63572261 cm-1!!

即使改变格点大小,结果依然在1000cm-1以上,
这问题困扰我好多天了,检查了好久没发现问题所在。
特在此发帖,计算细节都在上面了,求教老师答疑。



作者
Author:
JAmChemSoc    时间: 2021-9-9 10:41
有没有老师来帮忙检查一下问题啊。。。或者告诉我问题可能会出在哪?




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3