本帖最后由 鬼隐 于 2022-5-20 19:39 编辑
关于XMVB
价键理论(VBT)和分子轨道理论(MOT)是上世纪20年代波函数理论最初的两个原始分支,当时新的量子理论首次应用于分子。VB的起点是Heitler和London提出的双氢分子基态单重态的波函数式。此后,无数物理学家和有数理基础的化学家不断丰富理论。可惜VBT一直没有大的进展。 1940年后,相比于分子轨道理论,人们对大分子的兴趣也使价键方法无用武之地。虽然和我们在中文教科书上阅读到的只言片语不同,但是价键方法的确败了。值得强调的是,分子轨道理论方法胜过的是共振论,简单的价键形式,而不是价键理论。 当下值得我们研究、发展和使用的是现代价键理论(Modern Valence Bond Theory)。
目前已知的ab initio VB 软件有 TURTLE VB2000 CRUNCH XMVB。非常有趣的是,我们曾经非常抵触价键共振论,甚至为了绕开他发明了大 键,如今价键理论做得最出彩的却是中国的XMVB团队。 下图可以看出XMVB有两版,一版是xmvb链接GAMESS,功能完善,但是可能需要修改部分源码添加一些编译选项和内容,才能正常编译,另一版是standalone的XMVB,不需要链接其他库。
我平时使用的是导师原位编译的GAMESS-XMVB,享受完整功能,但是郑州封闭期间,集群关闭,只能自行安装使用。因此做这个笔记。
XMVB安装前言XMVB的安装颇为不易,单说standalone版XMVB,已知是在CentOs7上编译的,但是本人使用CentOs7却无法正常运行,通过Debian11和CentOS7上的报错信息可以知道,XMVB要求兼容GLIBC 2.2.7 GFORTRAN 1.0 1.4。这个还是蛮奇怪的,因为Centos7的GLIBC是2.17。 这并难不倒我,有两个思路: 我曾在arch上安装过chemsh-tcl,那时编译了无数版gcc才编译成功,更别说编译低版本gcc还需要编译gcc。glibc升级可能更加麻烦和危险,这是非常基础的库。 最终结合稀少的成功经验,找到一个最简易的安装方法。理论上支持Windows10+,Linux, docker。
安装使用系统发行版是ubuntu18.04。
准备系统 环境其可使用WSL2在微软商店下载,或者自行安装或者使用相关docker获取。得到基础系统之后。进去 清华源-ubuntu换源(如果你在大陆) 依次执行 - sudo apt update
- sudo apt upgrade
- sudo apt install gfortran-5gfortran-5 gcc-5 cpp-5 vim wget git
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 40
- sudo update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-5 40
- sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-5 40
- sudo ln -s /usr/bin/gcc /usr/bin/cc
复制代码可以通过strings命令验证系统信息
获取XMVB- mkdir xmvb
- cd xmvb
- mv ../xmvb3.0-linux-x86_64-gnu.tar.bz2 .
- tar -xjf xmvb3.0-linux-x86_64-gnu.tar.bz2
- ./post-install
复制代码
此时你的文件夹内容应该是
值得说的是,我得到的安装包缺少了data内容,我从以前的包里碎片组合了一下得到完整的包,如果出现缺少组件的情况,可能需要向XMVB团队反映。
最终把bin文件夹的路径添加进PATH变量完成安装
测试使用一例 tmp.input内容 - hf cc-pvtz
- 0 1
- F 0.0 0.0 0.0
- F 0.0 0.0 1.41
复制代码
F2.xmi内容 - F2
- $ctrl
- nstr=3 iscf=5 nae=2 nao=2 guess=mo
- iprint=2
- $end
- $str
- 1:8 9 10
- 1:8 9 9
- 1:8 10 10
- $end
- $orb
- 15*10
- 1-15
- 16-30
- 1-15
- 16-30
- 1-15
- 16-30
- 1-15
- 16-30
- 1-15
- 16-30
- $end
- $gus
- 1 1
- 2 1
- 3 3
- 4 3
- 5 6
- 6 6
- 7 5
- 8 5
- 9 7
- 10 7
- $end
复制代码
执行 - preint tmp.input #准备积分
- xmvb F2.xmi # 进行计算
复制代码
可以看到作业正常结束了
其实更推荐同时编译一个GAMESS,在计算之前单独算一个HF单点,这样可以可视化轨道,进而构建.xmi文件 同样可以自行配置符合要求的glibc gcc来安装XMVB-standalone,个人建议使用docker来运行。 GAMESSS-XMVB有空再讲如何链接。
本文首发于知乎专栏 软件安装&配置
|