计算化学公社

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

[xtb] xtb-python独立版编译指南及在ASE中调用实例

  [复制链接 Copy URL]

1102

帖子

18

威望

6643

eV
积分
8105

Level 6 (一方通行)

計算化学の社畜

本帖最后由 冰释之川 于 2021-1-12 14:21 编辑

截止xtb-6.3.3版本(https://xtb-docs.readthedocs.io/en/latest/contents.html),GFN-xTB在开启PBC(Periodic Boundary Conditions)后所支持的几何优化引擎只有“engine=inertial”一种选择,而ASE(Atomic Simulation Environment) 作为比较流行的计算模拟接口程序(https://wiki.fysik.dtu.dk/ase/) 在开启PBC调用xtb程序进行几何优化时,能够支持多种优化算法(BFGS, BFGSLineSearch, LBFGS, LBFGSLineSearch, GPMin,MDMin and FIRE)因而如果想充分发挥GFN-xTB优化周期性体系的独特魅力,使用ASE和配套的xtb-python模块是一种较好的选择。(注意:xtb-6.3.3版本下GFN2-xTB尚不支持PBC


之前笔者曾分享过《在ASE中使用xtb-6.3.0(pre.2)的py脚本》(http://bbs.keinsci.com/thread-17104-1-1.html),不过从xtb-6.3.0正式版开始,xtb-python模块与xtb主体分家,因而笔者特开此贴,给大家带来xtb-python模块的编译安装指南以及在ASE中调用计算的py脚本。

第〇部分:xtb的安装

直接下载编译后的xtb二进制文件即可,接下来就是设置xtb的环境变量了,具体安装细节参见《将Gaussian与Grimme的xtb程序联用搜索过渡态、产生IRC、做振动分析》(http://sobereva.com/421)
这里给出在~/.bashrc中需要设置的几个xtb环境变量:
  1. # xtb-6.3.3
  2. export PATH=$PATH:/mnt/d/xtb_Linux/xtb-6.3.3/bin
  3. export XTBPATH=/mnt/d/xtb_Linux/xtb-6.3.3/share/xtb
  4. ulimit -s unlimited
复制代码


第一部分:ASE的安装

1. ASE的安装比较简单,可以直接使用pip3全自动无脑安装:
  1. $ pip3 install --upgrade --user numpy scipy matplotlib ase
复制代码
2. 在~/.bashrc中设置python环境变量:
  1. # Python 3.6
  2. export PYTHONPATH=/home/yjy/.local/lib/python3.6/site-packages:$PYTHONPATH
  3. export PATH=$PATH:/home/yjy/.local/bin
复制代码

3. 调用ase命令进行测试(大约需要1分钟):
  1. $ ase test               
复制代码
4. 如果ase运行正常,会看到如下信息:
  1. ========== Summary ==========
  2. Number of tests   363
  3. Passes:           257
  4. Failures:           0
  5. Errors:             0
  6. Skipped:          106
  7. =============================
  8. Test suite passed!
  9. Time elapsed: 55.2 s
复制代码


第二部分:python-xtb的安装

这里分享利用源码编译安装python-xtb的详细流程,喜欢用conda安装的童靴请查阅官网上的conda安装说明(https://xtb-python.readthedocs.io/en/latest/installation.html)。

1. 安装intel全家桶:
具体过程参见《VASP的最简单的安装方法》(http://sobereva.com/455),这里不再赘述。

2. 安装 cmake和python3-dev (这里以CentOS系统为例):
  1. $ sudo yum install epel-release
  2. $ sudo yum install cmake python3-devel
复制代码
3. 下载并解压python-xtb源码包(https://github.com/grimme-lab/xtb-python/releases/tag/v20.2):
  1. $ tar -zxvf xtb-python-20.2.tar.gz
  2. $ cd xtb-python-20.2
复制代码
4. 安装cffi、numpy、meson和ninja模块:
  1. $ pip3 install cffi numpy meson ninja
复制代码
5. 更改xtb-6.3.3安装目录下的xtb.pc文件(参考地址:/mnt/d/xtb_Linux/xtb-6.3.3/lib64/pkgconfig):
  1. $ vi xtb.pc
复制代码
将prefix=/ 改为 prefix=/mnt/d/xtb_Linux/xtb-6.3.3/

6. source intel全家桶环境变量并设置PKG_CONFIG_PATH环境变量:
  1. $ source /mnt/d/Intel_Linux/intel/parallel_studio_xe_2020.0.079/psxevars.sh
复制代码
  1. $ export PKG_CONFIG_PATH=/mnt/d/xtb_Linux/xtb-6.3.3/lib64/pkgconfig
复制代码
7. 将xtb-6.3.3动态库环境变量写进~/.bashrc中并source ~/.bashrc
  1. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/d/xtb_Linux/xtb-6.3.3/lib64
复制代码
8. 正式开始编译安装python-xtb:
  1. $ meson setup build --prefix=$PWD --default-library=shared
  2. $ ninja -C build install
  3. $ pip3 install -e .
复制代码
9. 验证安装:
  1. $ pip3 list
复制代码
你会看到如下信息:
  1. Package         Version      Location
  2. --------------- ------------ -----------------------------------
  3. ase             3.19.1
  4. cffi            1.14.3
  5. matplotlib      3.2.1
  6. meson           0.56.0
  7. ninja           1.10.0.post2
  8. numpy           1.18.2
  9. pip             20.1.1
  10. pycparser       2.20
  11. pyparsing       2.4.7
  12. python-dateutil 2.8.1
  13. scipy           1.4.1
  14. wheel           0.34.2
  15. xtb-python      20.1         /home/yjy/softwares/xtb-python-20.2
复制代码
第15行信息表明python-xtb模块已安装完毕


第三部分:python-xtb的运行

1. 下载ASE_xtb_test.7z测试包并进入该目录,将test.sh脚本中的intel全家桶环境变量路径示例更改为实际对应的路径
  1. #source /home/yjy/intel/parallel_studio_xe_2020/psxevars.sh
  2. #source /opt/intel2018/parallel_studio_xe_2018/psxevars.sh
  3. source /mnt/d/Intel_Linux/intel/parallel_studio_xe_2020.0.079/psxevars.sh
复制代码
2. 利用bash运行脚本:
  1. $ bash test.sh
复制代码
若python-xtb正常运行,你会看到如下信息:
  1. ***  ASE program with xTB started at 2020-11-17 21:33:20  ***

  2. -> Task name:                                             diamond
  3. -> Orthorhombic cell parameters:         Cell([3.57, 3.57, 3.57])
  4. -> Total number of atoms in a cell:                            8
  5. -> PBC dimensions:                            [ True  True  True]
  6. -> The atoms with following labels are fixed:
  7. [0, 1]

  8. Total energy of the initial geomertry:
  9. -457.167602 eV   <==>   -16.80059963 Hartree

  10. ~~~ Geometry optimization started... ~~~
  11.                 Step[ FC]     Time          Energy          fmax
  12. *Force-consistent energies used in optimization.
  13. BFGSLineSearch:    0[  0] 21:33:21     -457.167602*       1.8195
  14. BFGSLineSearch:    1[  2] 21:33:22     -457.245735*       1.0806
  15. BFGSLineSearch:    2[  4] 21:33:23     -457.276050*       0.4399
  16. BFGSLineSearch:    3[  6] 21:33:24     -457.289570*       0.6919
  17. BFGSLineSearch:    4[  8] 21:33:25     -457.297283*       0.2032
  18. BFGSLineSearch:    5[ 10] 21:33:26     -457.298051*       0.1078
  19. BFGSLineSearch:    6[ 12] 21:33:27     -457.298503*       0.0713
  20. BFGSLineSearch:    7[ 14] 21:33:28     -457.298911*       0.0564
  21. BFGSLineSearch:    8[ 16] 21:33:29     -457.299011*       0.0117
  22. BFGSLineSearch:    9[ 18] 21:33:30     -457.299016*       0.0017
  23. BFGSLineSearch:   10[ 20] 21:33:30     -457.299016*       0.0012
  24. BFGSLineSearch:   11[ 21] 21:33:31     -457.299016*       0.0005
  25. ~~~ Geometry optimization terminated... ~~~

  26. Total energy of the optimized geometry:
  27. -457.299016 eV   <==>   -16.80542900 Hartree

  28. ***  ASE program with xTB ended at 2020-11-17 21:33:31  ***
  29. >> Elapsed time:  0 days  0 hours  0 minutes 10.0 seconds <<
复制代码

ASE_xtb_test.7z (1.79 KB, 下载次数 Times of downloads: 119)



附录:ASE下调用xtb-python进行计算的py脚本包(实例)

Scripts_ASE_xtb.7z (2.37 KB, 下载次数 Times of downloads: 122)

















评分 Rate

参与人数
Participants 13
威望 +1 eV +57 收起 理由
Reason
sylar + 4 赞!
ChemG + 5 强!
Aridea + 5 好物!
ggdh + 5 太强了啊!
corei70715 + 5 谢谢
thanhtam + 3 好物!
ghifi37 + 5 好物!
winnerwill + 5 牛!
tjuptz + 5
zsu007 + 5 牛!
sobereva + 1
snljty + 5 好物!
ABetaCarw + 5 精品内容

查看全部评分 View all ratings

Stand on the shoulders of giants

17

帖子

0

威望

184

eV
积分
201

Level 3 能力者

37#
发表于 Post on 2024-6-7 17:12:15 | 只看该作者 Only view this author
ShangChien 发表于 2023-12-8 20:17
GitHub Warning ⚠️ : xtb-python is no longer in active development. We recommend using t ...

你好,请问你怎么编译的tblite?

64

帖子

0

威望

1051

eV
积分
1115

Level 4 (黑子)

36#
发表于 Post on 2023-12-8 20:17:40 | 只看该作者 Only view this author
GitHub Warning ⚠️ : xtb-python is no longer in active development. We recommend using tblite instead.
该换tblite了

1

帖子

0

威望

7

eV
积分
8

Level 1 能力者

35#
发表于 Post on 2023-6-7 07:03:21 | 只看该作者 Only view this author
请教一下,我有个400多个原子的周期性结构,想优化一下,结果启动不了,直接core dump了,我跑测试是没问题的。请问大家遇到过吗?

27

帖子

0

威望

1062

eV
积分
1089

Level 4 (黑子)

34#
发表于 Post on 2021-12-30 21:01:58 | 只看该作者 Only view this author
冰释之川 发表于 2021-12-30 20:26
你直接python3回车进入python3环境,然后导入xtb库看看:

是否正常,如果还是出现上面的报错,那肯定 ...

按老师的说法试了一下,还是一样的问题,但是安装完用 pip3 list 看了下,都安装好了,实在是很迷惑,之前其实也试过老版的,也是有莫名其妙的问题,我再尝试一下

1102

帖子

18

威望

6643

eV
积分
8105

Level 6 (一方通行)

計算化学の社畜

33#
 楼主 Author| 发表于 Post on 2021-12-30 20:26:45 | 只看该作者 Only view this author
本帖最后由 冰释之川 于 2021-12-30 20:33 编辑
JiangZiya 发表于 2021-12-30 19:31
老师您好,我尝试了好几次,目前动态库设置好了,intel全家桶的冲突也解决了,全部重新装的,但是运行测 ...

你直接python3回车进入python3环境,然后导入xtb库看看:
  1. from xtb.ase.calculator import XTB
复制代码

是否正常,如果还是出现上面的报错,那肯定是python-xtb没装好了。
实在不行,你装老版的:《在ASE中使用xtb-6.3.0(pre.2)的py脚本》(http://bbs.keinsci.com/thread-17104-1-1.html)
Stand on the shoulders of giants

27

帖子

0

威望

1062

eV
积分
1089

Level 4 (黑子)

32#
发表于 Post on 2021-12-30 19:31:23 | 只看该作者 Only view this author
冰释之川 发表于 2021-12-22 13:34
那你得把intel全家桶中和python相关的环境变量设置屏蔽掉

老师您好,我尝试了好几次,目前动态库设置好了,intel全家桶的冲突也解决了,全部重新装的,但是运行测试还是报错,在网上google没有找到解决办法,想请教老师这个问题还可能出在哪里

1102

帖子

18

威望

6643

eV
积分
8105

Level 6 (一方通行)

計算化学の社畜

31#
 楼主 Author| 发表于 Post on 2021-12-22 13:34:20 | 只看该作者 Only view this author
JiangZiya 发表于 2021-12-22 10:54
我这边 xtb 动态库的路径和帖子里不一样,我是按照我这边实际路径来设置的,应该没错。另外,我这边之前 ...

那你得把intel全家桶中和python相关的环境变量设置屏蔽掉
Stand on the shoulders of giants

27

帖子

0

威望

1062

eV
积分
1089

Level 4 (黑子)

30#
发表于 Post on 2021-12-22 10:54:38 | 只看该作者 Only view this author
冰释之川 发表于 2021-12-22 08:27
看报错似乎是xtb动态库没有设置正确:/mnt/d/xtb_Linux/xtb-6.3.3/lib64
请检查xtb本体的动态库有没有在 ...

我这边 xtb 动态库的路径和帖子里不一样,我是按照我这边实际路径来设置的,应该没错。另外,我这边之前因为要装vasp,就装了intel oneAPI,不知道这个有没有冲突

1102

帖子

18

威望

6643

eV
积分
8105

Level 6 (一方通行)

計算化学の社畜

29#
 楼主 Author| 发表于 Post on 2021-12-22 08:27:04 | 只看该作者 Only view this author
JiangZiya 发表于 2021-12-21 21:40
请教老师,根据帖子安装完后,pip list显示xtb-python 20.1,应该是安装完成了,但是从帖子里下载的测试文 ...

看报错似乎是xtb动态库没有设置正确:/mnt/d/xtb_Linux/xtb-6.3.3/lib64
请检查xtb本体的动态库有没有在编译xtb-python前事先设置好
Stand on the shoulders of giants

27

帖子

0

威望

1062

eV
积分
1089

Level 4 (黑子)

28#
发表于 Post on 2021-12-21 21:40:55 | 只看该作者 Only view this author
请教老师,根据帖子安装完后,pip list显示xtb-python 20.1,应该是安装完成了,但是从帖子里下载的测试文件运行报错,不清楚原因在哪里,应该怎么处理
ModuleNotFoundError: No module named 'xtb._libxtb'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "diamond.py", line 23, in <module>
    from xtb.ase.calculator import XTB     ##from xtb import GFN1
  File "/SoftwareInstall/xtb-python-20.2/xtb/ase/calculator.py", line 60, in <module>
    from ..utils import get_method, get_solvent
  File "/SoftwareInstall/xtb-python-20.2/xtb/utils.py", line 20, in <module>
    from .interface import Solvent, Param
  File "/SoftwareInstall/xtb-python-20.2/xtb/interface.py", line 24, in <module>
    from .libxtb import (
  File "/SoftwareInstall/xtb-python-20.2/xtb/libxtb.py", line 34, in <module>
    raise ImportError("xtb C extension unimportable, cannot use C-API")
ImportError: xtb C extension unimportable, cannot use C-API

1102

帖子

18

威望

6643

eV
积分
8105

Level 6 (一方通行)

計算化学の社畜

27#
 楼主 Author| 发表于 Post on 2021-12-1 08:20:44 | 只看该作者 Only view this author
zzp 发表于 2021-11-30 21:06
请问下ase-xtb联用可以实现输出波函数文件吗

这你得查阅xtb官网里的说明书了,应该有的
Stand on the shoulders of giants

8

帖子

0

威望

561

eV
积分
569

Level 4 (黑子)

26#
发表于 Post on 2021-11-30 21:06:08 | 只看该作者 Only view this author
请问下ase-xtb联用可以实现输出波函数文件吗

1633

帖子

4

威望

4097

eV
积分
5810

Level 6 (一方通行)

喵星人

25#
发表于 Post on 2021-10-27 20:15:38 | 只看该作者 Only view this author
话说gfnff支持周期性嘛

16

帖子

0

威望

454

eV
积分
470

Level 3 能力者

24#
发表于 Post on 2021-10-27 17:07:33 | 只看该作者 Only view this author
zzp 发表于 2021-7-23 00:33
请问下大神,我按照你的方法装了可还是出这个问题Traceback (most recent call last):
  File "diamond.py ...

作者提供的diamond.xyz文件末尾多了一行空行

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

GMT+8, 2024-11-27 19:17 , Processed in 0.207223 second(s), 32 queries , Gzip On.

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