vasp 5.4.4 个人安装记录(gnu编译器编译)
网上的教程以intel编译器编译居多,不过我一直找不到能用的intel编译器资源,折腾了好久也没装上,后来就想着用Linux自带的gnu编译器安装,比intel编译器安装方便一些。(作者系统版本Ubuntu 22.04.1 LTS)
安装步骤
-
安装gfortran与python2
sudo apt install gfortran -y sudo apt install python2
-
下载blas, cblas, lapack, scalapack, 并解压所有文件
# 你也可以自己下载最新版 wget www.netlib.org/blas/blas.tgz wget www.netlib.org/blas/blast-forum/cblas.tgz wget www.netlib.org/lapack/lapack-3.4.2.tgz wget github.com/Reference-ScaLAPACK/scalapack/archive/refs/tags/v2.2.0.tar.gz
解压所有文件
tar -zxvf 你需要解压的文件
-
进入BLAS文件夹,编译blas
gfortran -c -O3 *.f # 编译所有的 .f 文件,生成 .o文件 ar rv libblas.a *.o # 链接所有的 .o文件,生成 .a 文件 sudo cp libblas.a /usr/local/lib/ # 将库文件复制到系统库目录
-
进入CBLAS文件夹,编译cblas
cp Makefile.LINUX Makefile.in # 修改Makefile.in文件,添加gfortran编译选项-fallow-argument-mismatch,不然可能会因为强制类型转换报error(新版本编译器更严格) cp ../BLAS-3.10.0/libblas.a testing # 将上一步编译成功的 libblas.a 复制到 CBLAS目录下的testing子目录 make # 编译所有的目录 sudo cp lib/cblas_LINUX.a /usr/local/lib/libcblas.a # 将库文件复制到系统库目录下
-
进入lapack文件夹,准备编译lapack以及lapacke
cp make.inc.example make.inc # 也可以去INSTALL目录下寻找其他合适的make.inc
修改Makefile中依赖的lib
#lib: lapacklib tmglib lib: blaslib variants lapacklig tmglib
修改make.inc文件
# 建议添加gfortran编译选项-fallow-argument-mismatch,不然可能会因为强制类型转换报error(新版本编译器更严格) #BLASLIB = ../../librefblas.a #LAPACKLIB = liblapack.a #TMGLIB = libtmglib.a #LAPACKELIB = liblapacke.a BLASLIB = /usr/local/lib/libblas.a CBLASLIB = /usr/local/lib/libcblas.a LAPACKLIB = liblapack.a TMGLIB = libtmglib.a LAPACKELIB = liblapacke.a
修改lapack_testing.py文件,将第一行的python改为python2
开始编译
make # 编译所有的lapack文件 cd lapacke # 进入lapacke 文件夹,这个文件夹包含lapack的C语言接口文件 make # 编译lapacke sudo cp include/*.h /usr/local/include/ #将lapacke的头文件复制到系统头文件目录 cd .. #返回到 lapack-3.4.2 目录 sudo cp *.a /usr/local/lib/ # 将生成的所有库文件复制到系统库目录
重新修改make.inc文件
BLASLIB = ../../librefblas.a LAPACKLIB = liblapack.a TMGLIB = libtmglib.a LAPACKELIB = liblapacke.a #BLASLIB = /usr/local/lib/libblas.a #CBLASLIB = /usr/local/lib/libcblas.a #LAPACKLIB = liblapack.a #TMGLIB = libtmglib.a #LAPACKELIB = liblapacke.a
编译librefblas.a文件
make sudo cp *.a /usr/local/lib/
-
进入scalapack文件夹,安装scalapack
cp SLmake.inc.example SLmake.inc # 建议在SLmake.inc添加gfortran编译选项-fallow-argument-mismatch,不然可能会因为强制类型转换报error(新版本编译器更严格) make sudo cp *.a /usr/local/lib
-
安装好依赖库后,便可以进入vasp文件夹,编译安装vasp
cp arch/makefile.include.linux_gnu makefile.include # 建议在makefile.include添加gfortran编译选项-fallow-argument-mismatch,不然可能会因为强制类型转换报error(新版本编译器更严格 make all
-
编译完毕后便可以在vasp文件夹下的bin文件夹找到vasp可执行文件,将你的vasp/bin添加到PATH即可
echo "export PATH=/你的vasp安装位置/vasp.5.4.4/bin/:$PATH" >> ~/.bashrc source ~/.bashrc
参考链接
https://www.jianshu.com/p/33c4aea6117b