计算化学公社

标题: 求助psi4或者pyscf x2c相对论计算 [打印本页]

作者
Author:
banxia    时间: 2024-5-7 22:42
标题: 求助psi4或者pyscf x2c相对论计算
各位老师好。我查找了psi4的说明书,在相对论计算的时候往往需要指定两个关键词,basis :xxxx; basis_relativistic:xxxxx-decon。请问后者是把前面的基组转化成未收缩的吗,这种和pyscf自己指定基组时直接前面加unc-有啥区别吗?以上两个软件任意一个有熟悉的老师能告诉我一点是一点,我讲两个程序的基组打印出来发现是一样的,但是不知道为什么能量差的很大,谢谢各位老师
作者
Author:
zjxitcc    时间: 2024-5-7 22:45
你是要sfx2c计算,还是要真正的二分量计算?
作者
Author:
banxia    时间: 2024-5-8 09:28
zjxitcc 发表于 2024-5-7 22:45
你是要sfx2c计算,还是要真正的二分量计算?

只用sfx2c计算,老师
作者
Author:
zjxitcc    时间: 2024-5-8 10:38
本帖最后由 zjxitcc 于 2024-5-8 20:04 编辑

不需要研究什么basis_relativistic、unc-,直接一个gjf文件搞定
  1. %mem=8GB
  2. %nprocshared=4
  3. #p CASSCF/x2c-TZVPall

  4. mokit{X2C,HFonly}

  5. 0 1
  6. O         0.00000000     0.00000000     0.06200700
  7. H         0.00000000    -0.78397600    -0.49205200
  8. H         0.00000000     0.78397600    -0.49205200
复制代码
提交任务
  1. automr h2o.gjf >h2o.out 2>&1 &
复制代码
这会自动调用PySCF完成sfX2C哈密顿的RHF和UHF计算。如果自旋多重度大于1,不会有RHF,只会做UHF。关键词HFonly表示做完HF计算就正常终止。部分输出内容展示
  1. Enter subroutine do_hf...
  2. HF using program pyscf
  3. $python h2o_rhf.py >h2o_rhf.out 2>&1

  4. E(RHF) =       -76.11030693 a.u., <S**2>=  0.000
  5. $python h2o_uhf.py >h2o_uhf.out 2>&1
  6. E(UHF) =       -76.11030693 a.u., <S**2>=  0.000
  7. RHF/UHF energies are too close, choose RHF.
复制代码
automrMOKIT的一个小程序,用来自动做多参考计算的,当然也可以用来做一个sfX2C哈密顿的HF计算。注意这里只是借用gjf文件简洁形式,方便用户使用,不需要真的安装Gaussian。而且Gaussian本身也没有内置x2c-TZVPall,都是MOKIT自动处理的。算完之后有fch文件(再次说明,此任务不需安装Gaussian,不需要formchk),运行
  1. fch2psi h2o_rhf.fch
复制代码
产生PSI4的sfX2C RHF输入文件h2o_rhf_psi.inp和轨道文件h2o_rhf.A。提交PSI4任务
  1. psi4 h2o_rhf_psi.inp h2o_rhf_psi.out -n 16
复制代码
表示16核并行。SCF 2圈收敛
  1.                         Total Energy        Delta E     RMS |[F,P]|

  2.    @RHF iter   0:   -76.11030689016940   -7.61103e+01   4.34199e-07
  3.    @RHF iter   1:   -76.11030691938396   -2.92146e-08   1.51048e-08 DIIS
  4.    @RHF iter   2:   -76.11030691938420   -2.41585e-13   8.04103e-09 DIIS
  5.   Energy and wave function converged.
复制代码
两个程序的计算一次完成,一举两得,省去了大量摸索各种格式和用法时间。你还可以用fch2comfch2inporbfch2amo传轨道给Molpro/OpenMolcas/AMESP,结果与PySCF和PSI4相同。若使用本回答中的技巧进行计算,请使用MOKIT-v1.2.6rc30或更高版本,发表文章时请记得引用相应的量子化学程序和MOKIT(引用MOKIT的已发表文章一览)。若使用过低版本(<=v1.2.6rc29),fch2psi产生的inp文件中X basis没有decontraction,虽然SCF同样会马上收敛,但结果为-76.108525a.u.,有所区别。

作者
Author:
Warm_Cloud    时间: 2024-5-8 11:17
只用sfx2c的话,amesp(www.amesp.xyz)能直接算,简单方便,例子:
% npara 4
! m06-2x x2c-tzvpall sfx2c1e
>xyz 0 1
I             -0.07558139    0.84883720    0.00000000
H             -1.70558139    0.84883720    0.00000000
end
作者
Author:
hebrewsnabla    时间: 2024-5-8 16:30
本帖最后由 hebrewsnabla 于 2024-5-8 20:21 编辑

我觉得你说的没错,basis_relativistic是未收缩的(根据 https://psicode.org/psi4manual/m ... #basis-sets-options)。如果不指定会用unc的basis,但(可能)指定了就不会再unc一次。

pyscf这边可以指定 xbasis (https://github.com/pyscf/pyscf/b ... c/02-basis_for_x.py)。默认是采用mol.basis的unc版作为xbasis。


mokit里面似乎是指定了basis_relativistic但是没指定xbasis,这可能是上面例子里面能量不一样的原因。要保证一致可以先试试都不指定,搞不定的话再试试都指定。

更新:mokit 1.2.6rc30以后,自动生成的basis_relativistic是basis的unc版,与pyscf的默认设置一致。但psi4自身在不设置basis_relativistic时,可能仅支持对有名字的基组进行unc,不支持自动unc没名字的自定义基组(会报错)。

作者
Author:
banxia    时间: 2024-5-8 19:44
hebrewsnabla 发表于 2024-5-8 16:30
我觉得你说的没错,basis_relativistic是未收缩的(根据 https://psicode.org/psi4manual/m ... #basis-set ...

好的!太谢谢老师了!我看看您说的x-basis。感谢感谢
作者
Author:
banxia    时间: 2024-5-9 16:09
zjxitcc 发表于 2024-5-8 10:38
不需要研究什么basis_relativistic、unc-,直接一个gjf文件搞定
提交任务
这会自动调用PySCF完成sfX2C哈 ...

老师我想请教一下,我用的是x2c-tzvpall-2c,需要自己定义进去,也是仿照高斯的输入文件,写成#p casscf/gen,然后几何坐标下面空一行粘贴进去高斯格式的基组吗?我这样做了,最后生成的pyscf的py文件运行报错,显示pyscf的基组格式不对 pyscf.lib.exceptions.BasisNotFoundError: Unknown basis format or basis name for S    3   1.00。我检查了py文件,基组看起来不对
作者
Author:
zjxitcc    时间: 2024-5-9 16:18
本帖最后由 zjxitcc 于 2024-5-9 16:20 编辑
banxia 发表于 2024-5-9 16:09
老师我想请教一下,我用的是x2c-tzvpall-2c,需要自己定义进去,也是仿照高斯的输入文件,写成#p casscf/ ...

如果你按照的是我在4L的回答那样算的,使用automr提交的,那完全不需要写gen和自定义基组。在4L中已经说了MOKIT会自动处理基组,用户只需要在gjf文件里写x2c-TZVPall,这就是方便之处(之一)。本来MOKIT的gjf文件就很简单,你不能硬往复杂了写。另外,注意使用MOKIT-v1.2.6rc30或更高版本。
作者
Author:
banxia    时间: 2024-5-9 16:28
zjxitcc 发表于 2024-5-9 16:18
如果你按照的是我在4L的回答那样算的,使用automr提交的,那完全不需要写gen和自定义基组。在4L中已经说 ...

老师,我确实是按照您说的做的,但是我用的基组是x2c-tzvpall-2c,我测试了发现这个基组直接写名字程序看起来没办法处理 pyscf.lib.exceptions.BasisNotFoundError: Unknown basis format or basis name for x2c-TZVPall-2C
作者
Author:
zjxitcc    时间: 2024-5-9 16:31
本帖最后由 zjxitcc 于 2024-5-9 17:01 编辑
banxia 发表于 2024-5-9 16:28
老师,我确实是按照您说的做的,但是我用的基组是x2c-tzvpall-2c,我测试了发现这个基组直接写名字程 ...

x2c-tzvpall-2c是给真的二分量计算使用的,你做的是标量相对论sfx2c1e计算,要用x2c-TZVPall。(不过,我随手看了H和C元素,这俩的基组数据似乎是一样的,但不保证所有元素都这样)
作者
Author:
banxia    时间: 2024-5-9 16:43
zjxitcc 发表于 2024-5-9 16:31
x2c-tzvpall-2c是给真的二分量计算使用的,你做的是标量相对论sfx2c1e计算,要用x2c-TZVPall。(不过,我 ...

噢噢这样,老师。那我试试x2c-tzvpall。之前用x2c-tzvpall-2c是参考了文献里的基组,想复现一下数据。谢谢老师!
作者
Author:
banxia    时间: 2024-5-9 16:57
zjxitcc 发表于 2024-5-9 16:31
x2c-tzvpall-2c是给真的二分量计算使用的,你做的是标量相对论sfx2c1e计算,要用x2c-TZVPall。(不过,我 ...

老师我又遇到一个问题,我没有重新创建conda环境,直接在我现有的环境里conda insall安装了mokit,现在报错ERROR in subroutine sys_copy_file: fail to copy file from
/home/meng/src/anaconda3/envs/psi4env/lib/python3.10/site-packages/mokit//mokit/basis/x2c-TZVPall to x2c-TZVPall。看起来中间路径从mokit//mokit就错了,这是啥问题导致的呀,是我没重新创建新的环境的问题吗(但是感觉不太像。。不知道了)(我问题真多
作者
Author:
zjxitcc    时间: 2024-5-9 17:01
banxia 发表于 2024-5-9 16:57
老师我又遇到一个问题,我没有重新创建conda环境,直接在我现有的环境里conda insall安装了mokit,现在 ...

运行automr --version查看版本是否满足条件
作者
Author:
banxia    时间: 2024-5-9 17:04
zjxitcc 发表于 2024-5-9 17:01
运行automr --version查看版本是否满足条件

AutoMR 1.2.6rc30 :: MOKIT, release date: 2024-May-8。老师看起来版本是可以的
作者
Author:
zjxitcc    时间: 2024-5-9 17:08
banxia 发表于 2024-5-9 17:04
AutoMR 1.2.6rc30 :: MOKIT, release date: 2024-May-8。老师看起来版本是可以的

那你看看/home/meng/src/anaconda3/envs/psi4env/lib/python3.10/site-packages/mokit//mokit/basis/x2c-TZVPall这个路径和文件是否真的存在,双//一般没有问题。
作者
Author:
banxia    时间: 2024-5-9 17:13
zjxitcc 发表于 2024-5-9 17:08
那你看看/home/meng/src/anaconda3/envs/psi4env/lib/python3.10/site-packages/mokit//mokit/basis/x2c- ...

老师我看过了,就是从mokit//mokit这里出现问题了,本来mokit下面就是basis,不知道为啥它又去mokit//mokit下找basis了
作者
Author:
zjxitcc    时间: 2024-5-9 19:06
banxia 发表于 2024-5-9 17:13
老师我看过了,就是从mokit//mokit这里出现问题了,本来mokit下面就是basis,不知道为啥它又去mokit/ ...

通过conda安装的mokit确实有这个基组路径问题。你现在安装最新版就可以了。举个例子,(在合适的虚拟环境中)运行conda update mokit。
以防万一conda update也不行,你还可以这样
conda uninstall mokit
conda install mokit -c mokit
作者
Author:
banxia    时间: 2024-5-9 21:34
zjxitcc 发表于 2024-5-9 19:06
通过conda安装的mokit确实有这个基组路径问题。你现在安装最新版就可以了。举个例子,(在合适的虚拟环境 ...

好的,老师我再试试!非常感谢!
作者
Author:
banxia    时间: 2024-5-16 10:39
zjxitcc 发表于 2024-5-9 19:06
通过conda安装的mokit确实有这个基组路径问题。你现在安装最新版就可以了。举个例子,(在合适的虚拟环境 ...

Traceback (most recent call last):
老师,我运行之后产生了pyscf的输入文件,但是输出一开始就报错了。老师请问这是什么原因呀  File "/home/meng/mokit/test/geh_uhf.py", line 2, in <module>
    from mokit.lib.py2fch_direct import fchk
  File "/home/meng/src/anaconda3/envs/psi4env/lib/python3.10/site-packages/mokit/lib/__init__.py", line 13, in <module>
    from mokit.lib.qchem import *
ImportError: /home/meng/src/anaconda3/envs/psi4env/lib/python3.10/site-packages/mokit/lib/qchem.cpython-310-x86_64-linux-gnu.so: undefined symbol: GOMP_parallel
作者
Author:
zjxitcc    时间: 2024-5-16 13:36
本帖最后由 zjxitcc 于 2024-5-16 13:39 编辑
banxia 发表于 2024-5-16 10:39
Traceback (most recent call last):
老师,我运行之后产生了pyscf的输入文件,但是输出一开始就报错了 ...

版本问题/OpenMP库兼容性问题。你是通过何种方式安装的MOKIT?一般来说,MOKIT有4种安装方式(见中文说明),说明你是按照哪一种方式安装,是否自由发挥(比如没有新创一个虚拟环境,直接在旧环境中装)。当然,你也可以不用回答我,严格按照方式一安装即可。

作者
Author:
banxia    时间: 2024-5-16 15:00
zjxitcc 发表于 2024-5-16 13:36
版本问题/OpenMP库兼容性问题。你是通过何种方式安装的MOKIT?一般来说,MOKIT有4种安装方式(见中文说明 ...

老师我是在本来装有psi4和pyscf的虚拟环境里用conda install mokit -c mokit安装的。那么我需要创建新的虚拟环境安装吗,我试试
作者
Author:
zjxitcc    时间: 2024-5-16 15:07
banxia 发表于 2024-5-16 15:00
老师我是在本来装有psi4和pyscf的虚拟环境里用conda install mokit -c mokit安装的。那么我需要创建新的 ...

可以不创建新的虚拟环境,直接conda install mokit -c mokit安装,但可能你安装的版本过旧,现在已经更新到v1.2.6rc30了。若你遇到了使用问题,还是建议你严格按照方式一安装。
作者
Author:
banxia    时间: 2024-5-16 15:21
zjxitcc 发表于 2024-5-16 15:07
可以不创建新的虚拟环境,直接conda install mokit -c mokit安装,但可能你安装的版本过旧,现在已经更新 ...

老师我的确实是最新版。那我创建新的环境重新安装吧
作者
Author:
zjxitcc    时间: 2024-5-16 15:28
banxia 发表于 2024-5-16 15:21
老师我的确实是最新版。那我创建新的环境重新安装吧

若创建新的虚拟环境,先确保mokit可用,比如启动python运行
from mokit.lib import rwgeom
看看是否有报错。若还想在此虚拟环境中使用pyscf,可以用conda install pyscf -c pyscf现装一个。
作者
Author:
banxia    时间: 2024-5-16 16:54
zjxitcc 发表于 2024-5-16 15:28
若创建新的虚拟环境,先确保mokit可用,比如启动python运行
from mokit.lib import rwgeom
看看是否有 ...

老师,我在新的环境里重新装了mokit,方法是mokit主页的Option 1: Install from conda (for Linux only),python之后执行from mokit.lib import rwgeom还是报一样的错:ImportError: /home/meng/src/anaconda3/envs/mokit-py39/lib/python3.9/site-packages/mokit/lib/qchem.cpython-39-x86_64-linux-gnu.so: undefined symbol: GOMP_parallel
作者
Author:
hebrewsnabla    时间: 2024-5-16 18:18
banxia 发表于 2024-5-16 16:54
老师,我在新的环境里重新装了mokit,方法是mokit主页的Option 1: Install from conda (for Linux only), ...

可以展示一下此环境中的conda list 输出内容吗。

我最近给mokit修复了某些情况下的此种问题,但是我能测试的情况有限,可能没覆盖到所有的可能性。
作者
Author:
banxia    时间: 2024-5-16 19:28
hebrewsnabla 发表于 2024-5-16 18:18
可以展示一下此环境中的conda list 输出内容吗。

我最近给mokit修复了某些情况下的此种问题,但是我能 ...

没问题的,老师。
# packages in environment at /home/meng/src/anaconda3/envs/mokit-py39:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
bzip2                     1.0.8                hd590300_5    conda-forge
ca-certificates           2024.2.2             hbcca054_0    conda-forge
icu                       73.2                 h59595ed_0    conda-forge
intel-openmp              2023.1.0         hdb19cb5_46306
ld_impl_linux-64          2.40                 h55db66e_0    conda-forge
libblas                   3.9.0           22_linux64_openblas    conda-forge
libcblas                  3.9.0           22_linux64_openblas    conda-forge
libffi                    3.4.2                h7f98852_5    conda-forge
libgcc-ng                 13.2.0               h77fa898_7    conda-forge
libgfortran-ng            13.2.0               h69a702a_7    conda-forge
libgfortran5              13.2.0               hca663fb_7    conda-forge
libgomp                   13.2.0               h77fa898_7    conda-forge
libhwloc                  2.10.0          default_h2fb2949_1000    conda-forge
libiconv                  1.17                 hd590300_2    conda-forge
liblapack                 3.9.0           22_linux64_openblas    conda-forge
libnsl                    2.0.1                hd590300_0    conda-forge
libopenblas               0.3.27          pthreads_h413a1c8_0    conda-forge
libsqlite                 3.45.3               h2797004_0    conda-forge
libstdcxx-ng              13.2.0               hc0a3c3a_7    conda-forge
libuuid                   2.38.1               h0b41bf4_0    conda-forge
libxcrypt                 4.4.36               hd590300_1    conda-forge
libxml2                   2.12.7               hc051c1a_0    conda-forge
libzlib                   1.2.13               hd590300_5    conda-forge
mkl                       2023.1.0         h213fc3f_46344
mokit                     1.2.6rc30       py3.9_1234567_3    mokit
ncurses                   6.5                  h59595ed_0    conda-forge
numpy                     1.25.2           py39h6183b62_0    conda-forge
openssl                   3.3.0                hd590300_0    conda-forge
pip                       24.0               pyhd8ed1ab_0    conda-forge
python                    3.9.19          h0755675_0_cpython    conda-forge
python_abi                3.9                      4_cp39    conda-forge
readline                  8.2                  h8228510_1    conda-forge
setuptools                69.5.1             pyhd8ed1ab_0    conda-forge
tbb                       2021.12.0            h00ab1b0_0    conda-forge
tk                        8.6.13          noxft_h4845f30_101    conda-forge
tzdata                    2024a                h0c530f3_0    conda-forge
wheel                     0.43.0             pyhd8ed1ab_1    conda-forge
xz                        5.2.6                h166bdaf_0    conda-forge
zlib                      1.2.13               hd590300_5    conda-forge
作者
Author:
hebrewsnabla    时间: 2024-5-16 20:13
本帖最后由 hebrewsnabla 于 2024-5-16 20:18 编辑
banxia 发表于 2024-5-16 19:28
没问题的,老师。
# packages in environment at /home/meng/src/anaconda3/envs/mokit-py39:
#

mokit不支持conda-forge channel来源的环境(这是对于conda安装来说,自己编译的话什么环境都是可以的)。一般来说正常安装anaconda或miniconda,创建环境时包的channel是defaults。可以试试重新安装官方来源的anaconda。

理论上我们可以发布一种适配conda-forge的mokit,但是暂时没时间做。


作者
Author:
banxia    时间: 2024-5-16 21:30
hebrewsnabla 发表于 2024-5-16 20:13
mokit不支持conda-forge channel来源的环境(这是对于conda安装来说,自己编译的话什么环境都是可以的) ...

好的,老师。我大概知道您的意思了,我试试。谢谢老师!




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