计算化学公社

标题: 在知道分子中原子所带电荷及原子位置的情况下,如何计算分子偶极矩 [打印本页]

作者
Author:
skl    时间: 2021-9-26 21:49
标题: 在知道分子中原子所带电荷及原子位置的情况下,如何计算分子偶极矩
本帖最后由 skl 于 2021-9-28 00:28 编辑

如题:
比如有一个分子中有6个原子(净电荷为0),并且知道这6个原子的带电量及具体坐标位置(xyz),如何计算该分子的偶极矩
一篇文献中是这样计算的:
(, 下载次数 Times of downloads: 34)
但是我发现如果单纯的用电荷乘坐标然后相加的方式计算的话好像是不对的,因为当把所有的原子同时向同一方向移动相同距离的话计算出来的偶极矩就变了,明显不合常理

作者
Author:
wzkchem5    时间: 2021-9-27 00:38
如果分子总电荷是0,那么把分子平移不影响偶极矩。
如果分子总电荷不是0,那么应该把分子的质心平移到原点再算。参见 https://en.wikipedia.org/wiki/Dipole
作者
Author:
sobereva    时间: 2021-9-27 13:07
写成Multiwfn的chg格式,每一行内容是:
元素名 X Y Z 原子电荷
把chg文件载入Multiwfn后屏幕上直接提示基于原子电荷算的偶极矩。

基本常识:只有最低阶非0多极矩是不依赖于原点的
因此带净电荷的体系,净电荷(单极矩)不依赖于原点,但是偶极矩依赖于原点。对离子体系说偶极矩实际意义不大
作者
Author:
skl    时间: 2021-9-27 22:40
本帖最后由 skl 于 2021-9-28 01:18 编辑
sobereva 发表于 2021-9-27 13:07
写成Multiwfn的chg格式,每一行内容是:
元素名 X Y Z 原子电荷
把chg文件载入Multiwfn后屏幕上直接提示 ...

感谢老师的回复
因为我需要自己进行偶极矩计算的实现,所以需要知道具体是怎么进行计算的
我翻看您之前关于偶极矩计算的回答,其中有提到程序是使用’‘∑R(i)q(i)方式计算,R是原子坐标矢量,q是原子电荷”,我自己尝试计算的时候,发现算出来不太一样,所以我想问R怎么用坐标进行计算,q的电荷是否需要带正负号
----------------------------------------------------
老师不用再回复了,我已经解决了

作者
Author:
skl    时间: 2021-9-28 00:28
wzkchem5 发表于 2021-9-27 00:38
如果分子总电荷是0,那么把分子平移不影响偶极矩。
如果分子总电荷不是0,那么应该把分子的质心平移到原点 ...

已修改净电荷为0
作者
Author:
skl    时间: 2021-10-2 17:46
sobereva 发表于 2021-9-27 13:07
写成Multiwfn的chg格式,每一行内容是:
元素名 X Y Z 原子电荷
把chg文件载入Multiwfn后屏幕上直接提示 ...

老师,我按照您在Multiwfn中计算偶极矩的方式使用python复现了一下,结果计算出来的值跟Multiwfn计算的值不一样,不知道是为什么
  1. atoms2 = [{'beta': 9.139, 'q': 5.59, 'site': ([ 0.  , 18.69, -3.61])}, \
  2.           {'beta': 9.139, 'q': -6.59, 'site': ([ 0.  , 18.69, -3.61])}, \
  3.           {'beta': 9.139, 'q': 5.59, 'site': ([  0.  , -18.69,  -3.61])}, \
  4.           {'beta': 9.139, 'q': -6.59, 'site': ([ 0.  , -18.69, -3.61])}, \
  5.           {'beta': 14.708016940799986, 'q': 19.354922439418708, 'site': ([0.  , 0.  , 3.25])},\
  6.           {'beta': 14.708016940799986, 'q': -17.354922439418708, 'site': ([0.  , 0.  , 3.25])}]
  7. def calc_x2(atoms):
  8.         x = 0
  9.         y = 0
  10.         z  = 0
  11.         a2d = 2.542  
  12.         for atom in atoms:
  13.             x += (atom['site'][0]/0.529177249 )* atom['q']
  14.             y += (atom['site'][1]/0.529177249 )* atom['q']
  15.             z += (atom['site'][2]/0.529177249 )* atom['q']
  16.         x,y,z =x*a2d, y*a2d,z*a2d
  17.         u = math.sqrt(x**2+y**2+z**2)
  18.         return u
复制代码

作者
Author:
sobereva    时间: 2021-10-2 21:52
skl 发表于 2021-10-2 17:46
老师,我按照您在Multiwfn中计算偶极矩的方式使用python复现了一下,结果计算出来的值跟Multiwfn计算的值 ...

拿个简单的体系,比如水分子,自己手算一下就清楚了
作者
Author:
skl    时间: 2021-10-2 21:55
sobereva 发表于 2021-10-2 21:52
拿个简单的体系,比如水分子,自己手算一下就清楚了

我用LiF算了一下  结果是一致的  但是不知道为什么换成CaF2就不对了
作者
Author:
yjw1204338757    时间: 2022-8-8 21:52
skl 发表于 2021-10-2 17:46
老师,我按照您在Multiwfn中计算偶极矩的方式使用python复现了一下,结果计算出来的值跟Multiwfn计算的值 ...

请问一下楼主,这个beta和那个a2d是啥呢




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