计算化学公社

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

[其它量化程序] pyscf如何载入外部的分子轨道积分

[复制链接 Copy URL]

97

帖子

0

威望

569

eV
积分
666

Level 4 (黑子)

本帖最后由 banxia 于 2023-3-23 22:18 编辑

各位老师好,我想知道pyscf如何导入使用外部,比如其他软件计算得到的分子轨道积分。通过查阅教程,我目前只看到了pyscf可以通过hdf5文件载入储存在其中的双电子积分,那么单电子积分是否有办法读入并使用呢

微信图片_20230323221353.png (9.15 KB, 下载次数 Times of downloads: 21)

微信图片_20230323221353.png

微信图片_20230323221359.png (1.33 KB, 下载次数 Times of downloads: 25)

微信图片_20230323221359.png

4289

帖子

4

威望

9534

eV
积分
13903

Level 6 (一方通行)

MOKIT开发者

2#
发表于 Post on 2023-3-23 16:31:31 | 只看该作者 Only view this author
为啥要这样?还不如从别的程序传进来分子轨道,然后使用PySCF的积分。
自动做多参考态计算的程序MOKIT

928

帖子

1

威望

8262

eV
积分
9210

Level 6 (一方通行)

3#
发表于 Post on 2023-3-23 16:50:24 | 只看该作者 Only view this author
本帖最后由 hebrewsnabla 于 2023-3-23 16:51 编辑

可以的。看这个例子 https://github.com/pyscf/pyscf/b ... zing_hamiltonian.py

928

帖子

1

威望

8262

eV
积分
9210

Level 6 (一方通行)

4#
发表于 Post on 2023-3-23 16:53:11 | 只看该作者 Only view this author
zjxitcc 发表于 2023-3-23 16:31
为啥要这样?还不如从别的程序传进来分子轨道,然后使用PySCF的积分。

有时是有意义的,例如读入某种模型哈密顿所需的积分。但是如果是pyscf本身就能算的积分的话,就没什么意义了。

97

帖子

0

威望

569

eV
积分
666

Level 4 (黑子)

5#
 楼主 Author| 发表于 Post on 2023-3-23 16:57:40 | 只看该作者 Only view this author
hebrewsnabla 发表于 2023-3-23 16:50
可以的。看这个例子 https://github.com/pyscf/pyscf/blob/master/examples/scf/40-customizing_hamiltonia ...

好的,非常感谢!

97

帖子

0

威望

569

eV
积分
666

Level 4 (黑子)

6#
 楼主 Author| 发表于 Post on 2023-3-23 18:25:37 | 只看该作者 Only view this author
hebrewsnabla 发表于 2023-3-23 16:50
可以的。看这个例子 https://github.com/pyscf/pyscf/blob/master/examples/scf/40-customizing_hamiltonia ...

麻烦请问一下,我看scf和mcscf两个目录下给出的这种,都是针对开始的hf读入的单双电子积分等信息,假如我做casci,想使用我自己的积分,我是应该在casci这一步中替换成我自己的积分吗?我试着这样做了一下,看输出感觉和之前pyscf直接做casci没什么区别。我在想是不是我利用
mycas.get_h1cas = lambda *args: oei,constant;
mycas.get_h2cas = lambda *args: tei
这里写的有问题,导致没有读入

928

帖子

1

威望

8262

eV
积分
9210

Level 6 (一方通行)

7#
发表于 Post on 2023-3-23 19:02:49 | 只看该作者 Only view this author
本帖最后由 hebrewsnabla 于 2023-3-23 19:19 编辑
banxia 发表于 2023-3-23 18:25
麻烦请问一下,我看scf和mcscf两个目录下给出的这种,都是针对开始的hf读入的单双电子积分等信息,假如我 ...

如果你按照这个来写 https://github.com/pyscf/pyscf/b ... zing_hamiltonian.py
相当于你提供所有的AO积分,然后pyscf来完成ao2mo。这样casscf的耗时步骤(假设活性空间不大的话)确实和原来没什么区别,但是是确实用上了你提供的AO积分的。

如果你想要的是提供MO积分,那是另一回事。
  1. mycas.get_h1cas = lambda *args: oei,constant;
  2. mycas.get_h2cas = lambda *args: tei
  3. 这里写的有问题,导致没有读入
复制代码

应该是get_h1eff get_h2eff

不过要注意h1eff 和通常的MO积分是不同的,需要吸收一部分活性空间外的积分。


97

帖子

0

威望

569

eV
积分
666

Level 4 (黑子)

8#
 楼主 Author| 发表于 Post on 2023-3-23 22:17:57 | 只看该作者 Only view this author
hebrewsnabla 发表于 2023-3-23 19:02
如果你按照这个来写 https://github.com/pyscf/pyscf/b ... zing_hamiltonian.py
相当于你提供所有的AO ...

那老师您最后一句话的意思是说,假如我仅仅提供了活性空间内的积分(这部分是您说的通常的MO积分吗),想要利用get_h1eff是不行的,还得需要活性空间外的部分积分,那请问活性空间外的积分是还要包括哪些轨道呢。
还有老师我查阅了casci这部分定义的函数,get_h1eff和get_h1cas好像是一样的,不知道是不是我哪里理解的还不到位。这两个函数的定义截图我修改放在了主楼
pyscf也是刚接触,这部分也了解不是很多,问题比较多,麻烦老师啦,谢谢老师!

928

帖子

1

威望

8262

eV
积分
9210

Level 6 (一方通行)

9#
发表于 Post on 2023-3-24 00:09:57 | 只看该作者 Only view this author
banxia 发表于 2023-3-23 22:17
那老师您最后一句话的意思是说,假如我仅仅提供了活性空间内的积分(这部分是您说的通常的MO积分吗),想 ...
get_h1eff和get_h1cas好像是一样的,


是一样的,但是casci计算调用的是get_h1eff。而修改get_h1cas应该不会改变get_h1eff。

,想要利用get_h1eff是不行的,还得需要活性空间外的部分积分,那请问活性空间外的积分是还要包括哪些轨道呢。


是的。看一下h1e_for_cas的写法就知道了。这个是一种通用策略,各种程序的FCI/DMRG接口都是这样的。

97

帖子

0

威望

569

eV
积分
666

Level 4 (黑子)

10#
 楼主 Author| 发表于 Post on 2023-3-25 10:34:35 | 只看该作者 Only view this author
hebrewsnabla 发表于 2023-3-24 00:09
是一样的,但是casci计算调用的是get_h1eff。而修改get_h1cas应该不会改变get_h1eff。

好的,老师我先看一下。有问题再请教,非常感谢老师!!!

本版积分规则 Credits rule

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

GMT+8, 2026-2-18 00:14 , Processed in 0.189306 second(s), 28 queries , Gzip On.

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