距上一篇《把aMule变成系统服务》已经很久没写点有用的东东了。半个晚上加上今天下午两个小时,终于成功搞定了单机安装 vasp.4.6.28,记录一下。

VASP for Linux 单机 安装

  • 本文以 vasp.4.6.tar.gz vasp.4.lib.tar.gz 为例; 由于vasp是商业版本,所以不提供下载。
  • 操作系统是 Arch Linux(更新至20080915),并在 ubuntu-8.04.1-desktop-i386 上测试成功,ubuntu中依赖请看ubuntu附注
  • mathlib 选择 atlas;
  • Fortran 编译器使用intel非商业版的 ifort ;
  • C++ 编译器使用 g++ ;
  • 不加说明的话,都是以普通用户操作,如需root权限,则使用 sudo 命令。


关于VASP的介绍(跳过介绍):

VASP是使用赝势和平面波基组,进行第一定律分子动力学计算的软件包。VASP中的方法基于有限温度下的局域密度近似(用自由能作为变量)以及对每一MD步骤用有效矩阵对角方案和有效Pulay混合求解瞬时电子基态。这些技术可以避免原始的Car-Parrinello方法存在的一切问题,而后者是基于电子、离子运动方程同时积分的方法。离子和电子的相互作用超缓Vanderbilt赝势(US-PP)或投影扩充波(PAW)方法描述。两种技术都可以相当程度地减少过渡金属或第一行元素的每个原子所必需的平面波数量。力与张量可以用VASP很容易地计算,用于把原子衰减到其瞬时基态中。

性质:

  • 以平面波为基础的自洽赝势积分方法;
  • 超软赝势;
  • 最新引用Blochl的全电子投影扩张波(PAW)方法,覆盖了周期表中的所有元素;
  • 局域密度近似(LDA)和广义梯度近似(GGA);
  • 旋转限制和旋转极化;
  • 应用到块状体系、表面和界面;
  • 总能量,力场和全压力张量;
  • 格参数和原子位置的同时松弛;
  • 从头分子动力学;
  • 产生 Monkhorst-Pack特殊K点;
  • 设计定位,旋转和局域波的态密度;
  • 费米水平的部分态密度;
  • 电荷密度旋转密度;
  • 轨道和轨道密度。

操作平台: Linux/Unix

-> 安装过程 <-

1. 首先,安装依赖和 g++ 编译器

user@~$ sudo pacman -S base-devel libstdc++5

Ubuntu用户使用以下命令

user@~$ sudo apt-get install build-essential
user@~$ sudo apt-get install libstdc++5

2. 到Intel的官网上下载非商业版的 Intel® Fortran Compiler for Linux, 这里我使用的是 10.1.018 版;

  1. 解压安装(为了清理方便,解压后都在/tmp目录下)
    user@~$ tar -xvf l_fc_p_10.1.018.tar.gz -C /tmp/
    user@~$ cd /tmp/l_fc_p_10.1.018/
  2. 运行安装脚本
    user@/tmp/l_fc_p_10.1.018$ sudo sh install.sh
  3. 之后会出现安装选项,选1 ;
    接下来问你通过’序列号网络认证,还是用 ‘.lic’ 文件认证; 我已经下了认证文件,所以选2后填写认证文件的路径;
    因为Arch Linux不在支持的系统之列,它会问你是否安装不支持的版本,yes就可;
    默认还是高级安装, 选1 默认;
    一路回车, 到达接受条款那里,填 accpet ;
    选择安装目录,回车默认(/opt/intel/) ;
    安装完毕!
  4. 设置环境变量
    user@~$ source /opt/intel/fc/10.1.018/bin/ifortvars.sh

    这个是零时解决办法,应该把 ifortvars.sh 脚本中的内容加入 /etc/profile 文件中。

3. 到ATLAS的网页下载数学库[ mathlib ]
http://www.netlib.org/atlas/archives/linux/
根据CPU选择源文件,我的CPU是Athlon64 3000, 操作系统是x86的, 选择 atlas3.4.1_Linux_ATHLON.tgz ; 千万别选错数学库,不然打死你也完不成编译;
把数学库解压到/opt/目录下( 和ifort同目录,方便管理 ),

user@~$ sudo tar -xvf atlas3.4.1_Linux_ATHLON.tgz -C /opt/

如果并行编译的话,到 http://www.mcs.anl.gov/research/projects/mpich2/ 下载mpich2, 这不在本文讨论的范围之内。

4. 安装VASP 4.6

  1. 解压 vasp 和 vasp-lib
    user@~$ tar -xvf vasp.4.lib.tar.gz -C /tmp/
    user@~$ tar -xvf vasp.4.6.tar.gz -C /tmp/

    上面的命令将把vasp和lib解压到 /tmp/ 目录下的 vasp.4.lib 目录和 vasp.4.6 目录;

  2. 编译 vasp.4.lib, ────> 进入源码目录,根据CPU和编译器选择makefile文件,并修改编译命令
    user@~$ cd /tmp/vasp.4.lib/
    user@/tmp/vasp.4.lib$ vim makefile.linux_ifc_ath
    # 19行 FC=ifc , 改为 FC=ifort

    user@/tmp/vasp.4.lib$ make -f makefile.linux_ifc_ath
    # 编译获得 libdmy.a

    如果遇到 “ifort: error #10001: could not find directory in which g++ resides”, 则设置环境变量 export LC_ALL=C
    提示libdmy.a文件是最新,则删除已编译的文件 rm ×.o

  3. 编译 vasp.4.6, ────> 进入源码目录,根据CPU和编译器选择makefile文件,并修改编译命令
    user@~$ cd /tmp/vasp.4.6/
    user@/tmp/vasp.4.6$ vim makefile.linux_ifc_ath
    # 50行 FC=ifc , 改为 FC=ifort

    # 修改atlas数学库的路径
    # 102行 改为 ATLASHOME= /opt/Linux_ATHLON/lib

    # 把330行之后的参数 ‘-e95′ 全部删除,然后编译
    user@/tmp/vasp.4.lib$ make -f makefile.linux_ifc_ath

    不删除参数 ‘-e95′ 会出现ERROR: “The computed GOTO statement is an obsolescent feature in Fortran 95.” ;
    GOTO似乎是 Fortran 95 废弃的语法,5.0版应该会改正;
    “-e95″ 参数会把F95编译F77程式码产生的警告(warning)改成错误(error)型式输出,造成编译强迫停止无法忽略跳过!

5. 拷贝vasp可执行文件到 PATH 中

user@/tmp/vasp.4.lib$ sudo cp ./vasp /usr/bin/

以后直接可以把vasp当普通命令用了。

-=全文完=-