计算化学公社

 找回密码 Forget password
 注册 Register
Views: 4478|回复 Reply: 18
打印 Print 上一主题 Last thread 下一主题 Next thread

[算法与编程] 请教波函数与空间的对应关系

[复制链接 Copy URL]

123

帖子

0

威望

2617

eV
积分
2740

Level 5 (御坂)

跳转到指定楼层 Go to specific reply
楼主
       各位老师好,最近在探索波函数与分子取向间的关系,有个不太好理解的地方请教各位老师。       我用高斯nosymm计算了相同分子不同空间位置或朝向的结果,读取fch文件时发现,他们的基函数,收缩系数等完全一样,只有后面的物理参数不同。我的问题是:真正计算时如何把坐标和取向的信息考虑进来的呢,或者说如何确定真正的波函数信息(我的理解是至少波函数的方向会不同)?坐标不同差别又在哪里体现? 感谢各位老师。

4289

帖子

4

威望

9550

eV
积分
13919

Level 6 (一方通行)

MOKIT开发者

19#
发表于 Post on 2023-6-26 00:11:00 | 只看该作者 Only view this author
本帖最后由 zjxitcc 于 2023-6-26 00:12 编辑

MOKIT已支持轨道系数随分子朝向旋转,此功能无需计算AO基重叠积分,没用到Wigner-D矩阵。对球谐型和Cartesian型基函数都支持,以下是一个例子(在python中使用)
  1. from mokit.lib.mirror_wfn import rotate_atoms_wfn
  2. rotate_atoms_wfn('ZnMe2F.fch', 'ZnMe2F_new.gjf')
复制代码
第一个文件含一套已知的轨道系数,在旧的朝向下;第二个文件含新朝向下的坐标,支持gjf和xyz两种格式。运行后会产生ZnMe2F_r.fch文件,内含新朝向的坐标和轨道系数,SCF可1圈收敛。

评分 Rate

参与人数
Participants 2
eV +10 收起 理由
Reason
Markmahao + 5 好物!
wzkchem5 + 5

查看全部评分 View all ratings

自动做多参考态计算的程序MOKIT

123

帖子

0

威望

2617

eV
积分
2740

Level 5 (御坂)

18#
 楼主 Author| 发表于 Post on 2022-9-13 17:18:46 | 只看该作者 Only view this author
zjxitcc 发表于 2022-7-7 18:49
5个展开成6个,展开系数是已知的,写程序时可以直接写进去,比较方便。但6个变回5个的时候,需要解线性方 ...

游客,本帖隐藏的内容需要积分高于 150 才可浏览,您当前积分为 0

HCl_x1.fch

34.49 KB, 下载次数 Times of downloads: 0

旋转后计算结果

HCl_z.fch

34.49 KB, 下载次数 Times of downloads: 0

旋转前计算结果

rotated_MO.txt

13.85 KB, 下载次数 Times of downloads: 0

我旋转的结果

123

帖子

0

威望

2617

eV
积分
2740

Level 5 (御坂)

17#
 楼主 Author| 发表于 Post on 2022-7-7 22:11:20 | 只看该作者 Only view this author
zjxitcc 发表于 2022-7-7 18:49
5个展开成6个,展开系数是已知的,写程序时可以直接写进去,比较方便。但6个变回5个的时候,需要解线性方 ...

完全不是这么做的,我学习一下,谢谢老师指点

4289

帖子

4

威望

9550

eV
积分
13919

Level 6 (一方通行)

MOKIT开发者

16#
发表于 Post on 2022-7-7 18:49:11 | 只看该作者 Only view this author
本帖最后由 zjxitcc 于 2022-7-7 19:13 编辑
Markmahao 发表于 2022-7-7 18:36
最后还是旋转了系数矩阵,s和p的部分很快完成但又遇到一个问题,就是高角动量的笛卡尔型(比如d轨道), ...

5个展开成6个,展开系数是已知的,写程序时可以直接写进去,比较方便。但6个变回5个的时候,需要解线性方程组(示例),没法简单通过已知的一些系数线性组合得到,不知道你是不是这么做的。
自动做多参考态计算的程序MOKIT

123

帖子

0

威望

2617

eV
积分
2740

Level 5 (御坂)

15#
 楼主 Author| 发表于 Post on 2022-7-7 18:36:21 | 只看该作者 Only view this author
hebrewsnabla 发表于 2022-7-6 20:08
这段代码里面mol.cart代表是否使用cartesian型基函数。你可以看到mol.cart=True的话就多了一些步骤。

...

最后还是旋转了系数矩阵,s和p的部分很快完成但又遇到一个问题,就是高角动量的笛卡尔型(比如d轨道),目前是先把6个系数变回5个,再旋转然后再拆成6个,还没有得到自洽的结果。

4289

帖子

4

威望

9550

eV
积分
13919

Level 6 (一方通行)

MOKIT开发者

14#
发表于 Post on 2022-7-6 20:40:26 | 只看该作者 Only view this author
Markmahao 发表于 2022-7-6 19:58
抱歉,我说的不是很专业,其实我想问的是笛卡尔型高斯函数如何实现旋转?

最常用的还是球谐型
自动做多参考态计算的程序MOKIT

123

帖子

0

威望

2617

eV
积分
2740

Level 5 (御坂)

13#
 楼主 Author| 发表于 Post on 2022-7-6 20:09:52 | 只看该作者 Only view this author
hebrewsnabla 发表于 2022-7-6 20:08
这段代码里面mol.cart代表是否使用cartesian型基函数。你可以看到mol.cart=True的话就多了一些步骤。

...

好的,我去试试,感谢两位老师的耐心解答!

928

帖子

1

威望

8263

eV
积分
9211

Level 6 (一方通行)

12#
发表于 Post on 2022-7-6 20:08:01 | 只看该作者 Only view this author
Markmahao 发表于 2022-7-6 19:58
抱歉,我说的不是很专业,其实我想问的是笛卡尔型高斯函数如何实现旋转?

这段代码里面mol.cart代表是否使用cartesian型基函数。你可以看到mol.cart=True的话就多了一些步骤。

本来cartesian型和球谐型是可以相互变换的,大不了你先变换,再旋转,再变换回去。

123

帖子

0

威望

2617

eV
积分
2740

Level 5 (御坂)

11#
 楼主 Author| 发表于 Post on 2022-7-6 19:58:10 | 只看该作者 Only view this author
wzkchem5 发表于 2022-7-6 19:28
什么叫“普通高斯函数”?
AO基函数是径向函数和球谐函数的积,其中对于高斯基函数而言,这里的径向函数 ...

抱歉,我说的不是很专业,其实我想问的是笛卡尔型高斯函数如何实现旋转?

1万

帖子

0

威望

9886

eV
积分
22130

Level 6 (一方通行)

10#
发表于 Post on 2022-7-6 19:28:02 | 只看该作者 Only view this author
Markmahao 发表于 2022-7-6 11:51
就是您之前建议我看这段代码。这里面是应该是球谐函数通过Wigner D矩阵旋转的,不知我理解的对不对。普通 ...

什么叫“普通高斯函数”?
AO基函数是径向函数和球谐函数的积,其中对于高斯基函数而言,这里的径向函数是高斯函数。径向函数因为和角度无关,本来就无所谓旋转一说。至于整个高斯基函数,如果这里的球谐函数是s函数,那Wigner D矩阵刚好是1x1的单位阵,所以乘了等于没乘,也就是不需要旋转。

评分 Rate

参与人数
Participants 1
eV +3 收起 理由
Reason
hebrewsnabla + 3 我很赞同

查看全部评分 View all ratings

Zikuan Wang
山东大学光学高等研究中心 研究员
BDF(https://bdf-manual.readthedocs.io/zh_CN/latest/Introduction.html)、ORCA(https://orcaforum.kofo.mpg.de/index.php)开发团队成员
Google Scholar: https://scholar.google.com/citations?user=XW6C6eQAAAAJ
ORCID: https://orcid.org/0000-0002-4540-8734
主页:http://www.qitcs.qd.sdu.edu.cn/info/1133/1776.htm
GitHub:https://github.com/wzkchem5
本团队长期招收研究生,有意者可私信联系

123

帖子

0

威望

2617

eV
积分
2740

Level 5 (御坂)

9#
 楼主 Author| 发表于 Post on 2022-7-6 18:51:51 | 只看该作者 Only view this author
hebrewsnabla 发表于 2022-7-6 18:21
很简单,可以参考这里的实现 https://github.com/pyscf/pyscf/issues/1064

就是您之前建议我看这段代码。这里面是应该是球谐函数通过Wigner D矩阵旋转的,不知我理解的对不对。普通高斯函数如何旋转呢?为啥不用?

123

帖子

0

威望

2617

eV
积分
2740

Level 5 (御坂)

8#
 楼主 Author| 发表于 Post on 2022-7-6 18:39:12 | 只看该作者 Only view this author
hebrewsnabla 发表于 2022-7-6 18:23
“把波函数转一下,再用之前的轨道系数组合”你是不是打错了,如果你想说“把基函数转一下,再用之前的轨 ...

是打错了,明白了,谢谢您。

928

帖子

1

威望

8263

eV
积分
9211

Level 6 (一方通行)

7#
发表于 Post on 2022-7-6 18:23:53 | 只看该作者 Only view this author
Markmahao 发表于 2022-7-6 17:49
谢谢您的回复,我明白基函数是不变的这个事情,您后面说的是我不太理解的。以高斯为例,既然计算时可以有 ...

“把波函数转一下,再用之前的轨道系数组合”你是不是打错了,如果你想说“把基函数转一下,再用之前的轨道系数组合”,这是没问题的。

928

帖子

1

威望

8263

eV
积分
9211

Level 6 (一方通行)

6#
发表于 Post on 2022-7-6 18:21:20 | 只看该作者 Only view this author
Markmahao 发表于 2022-7-6 17:55
谢谢您的解答,我所谓的“真正意义的波函数”其实是在一个标准朝向下的波函数,的确不太明确。其实我比较 ...

很简单,可以参考这里的实现 https://github.com/pyscf/pyscf/issues/1064

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-2-24 01:57 , Processed in 0.187065 second(s), 25 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list