计算化学公社

标题: 一步一步撸ParaGauss [打印本页]

作者
Author:
beefly    时间: 2022-8-12 19:10
标题: 一步一步撸ParaGauss
本帖最后由 beefly 于 2022-8-28 15:34 编辑

ParaGauss是LCAO-GTO DFT计算程序,几乎是和ADF同时开发,不过ParaGauss没有发展起来,特别是十年前推出4.0版以后,后续的开发已经几乎停滞。2014年,经过一些删减的ParaGauss 3.2.1版被提交到Github上,实现了开源,但是没有讲如何编译,运行脚本似乎也已经过时,而且发布者已经离开了学术领域,不提供任何支持。今天花了一天时间,初步摸索出编译和运行方法。




在其它位置另建一个目录,准备一个运行脚本run.sh。
a) 如果使用guile,运行脚本run.sh的内容如下:
  1. #!/bin/bash

  2. export PATH=$openmpi_install_dir/bin:$PATH
  3. export LD_LIBRARY_PATH=$openmpi_install_dir/lib:$LD_LIBRARY_PATH

  4. export PATH=$path_of_paragauss-gpl-master:$PATH

  5. # serial calculation:
  6. # runqm  job-1
  7. # parallel calculation
  8. mpirun -np 4 runqm job-1
复制代码

b) 如果不使用guile,运行脚本run.sh的内容如下:
  1. #!/bin/bash

  2. export PATH=$openmpi_install_dir/bin:$PATH
  3. export LD_LIBRARY_PATH=$openmpi_install_dir/lib:$LD_LIBRARY_PATH

  4. export PATH=$path_of_paragauss-gpl-master:$PATH

  5. cp  job-1  input

  6. # serial calculation:
  7. # mainscf_V3.2.1-yyyyymmdd
  8. # parallel calculation
  9. mpirun -np 4 mainscf_V3.2.1-yyyyymmdd

复制代码

yyyyymmdd”要换成实际的后缀。job-1是输入文件名,可以从 paragauss-gpl-master/qa 里面找。复制的时候,要连同基组文件一起复制。
如果用intel编译器+mkl库,还要在run.sh中把相应的环境变量加上。例如:
  1. source $intel_compilers_path/bin/compilervars.sh intel64
  2. source $intel_compilers_path/mkl/bin/mklvars.sh intel64
复制代码





作者
Author:
beefly    时间: 2022-8-12 19:43
本帖最后由 beefly 于 2022-8-20 19:33 编辑

ParaGauss主要功能如下:

(, 下载次数 Times of downloads: 49)

一点个人看法:
1,输入文件格式复杂,特别是坐标、基组部分,过于繁琐
2,ParaGauss当年最大的卖点之一,是标量相对论DKH2的解析梯度和解析Hessian(不过求导公式用了一些比较粗糙的近似),但不如相对论赝势用得广。如今已被容易求导且精度更高的X2C方法淘汰
3,ParaGauss是把DFT+U方法引入分子计算的少数程序之一(在这个开源版里没有),不过在分子领域,人们更习惯用杂化泛函乃至多组态方法计算强关联体系
4,如果对ParaGauss里的算法感兴趣,可以研究一下;做应用计算则意义不大

作者
Author:
wgbigfatcat    时间: 2022-8-14 08:51
现在我倒是越来越觉得,撸别人的,不然直接搞一个。哎!
作者
Author:
Warm_Cloud    时间: 2022-8-14 09:17
wgbigfatcat 发表于 2022-8-14 08:51
现在我倒是越来越觉得,撸别人的,不然直接搞一个。哎!

自己写重复的功能意义不是很大。
作者
Author:
niobium    时间: 2022-8-14 09:28
Warm_Cloud 发表于 2022-8-14 09:17
自己写重复的功能意义不是很大。

大师你不能写完了之后说这种话
作者
Author:
Warm_Cloud    时间: 2022-8-14 20:57
niobium 发表于 2022-8-14 09:28
大师你不能写完了之后说这种话

不写怎么会有这么痛的领悟。。。
作者
Author:
niobium    时间: 2022-8-14 21:44
Warm_Cloud 发表于 2022-8-14 20:57
不写怎么会有这么痛的领悟。。。

我觉得要么有自己完整的程序,如ORCA、GAMESS等等;要么就方法足够牛逼到能让高斯之类的程序支持,如Grimme的D3;要么就固定地参与某个程序的开发,如Head-Gordon、Krylov都绑定Q-Chem了,其实也类似第一种情况。如果总是个接口之类的东西,要么自己不会算积分,要么自己不会做HF,要用A,还非要基于B,这程序基本就是自己组里玩玩。
作者
Author:
Warm_Cloud    时间: 2022-8-14 22:52
niobium 发表于 2022-8-14 21:44
我觉得要么有自己完整的程序,如ORCA、GAMESS等等;要么就方法足够牛逼到能让高斯之类的程序支持,如Grim ...

写软件很痛苦,代价比如延期。不过,能够撑过来那确实还可以。。当然了,能有自己的牛逼方法和完整软件这个是最好的情况了。
作者
Author:
zjxitcc    时间: 2022-8-15 23:33
本帖最后由 zjxitcc 于 2022-8-16 00:17 编辑
niobium 发表于 2022-8-14 21:44
我觉得要么有自己完整的程序,如ORCA、GAMESS等等;要么就方法足够牛逼到能让高斯之类的程序支持,如Grim ...

很有道理。不过“完整的程序”这个细究定义的话,就存疑了。。。总是有不少研究问题需要多个量化程序来解决(过去、现在、未来都是这样),从这个角度看的话,就不存在完整的程序了。。。当然,相对的比较还是可以有的,总会有些程序“比较完整”(像Gaussian和ORCA)
作者
Author:
niobium    时间: 2022-8-16 08:30
zjxitcc 发表于 2022-8-15 23:33
很有道理。不过“完整的程序”这个细究定义的话,就存疑了。。。总是有不少研究问题需要多个量化程序来解 ...

standalone




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