记录VASP的编译过程,方便自己使用。
在linux中安装vasp6.3.2 intel并行版本 (包括py4vasp)
安装intel-oneapi以及hpc
这里直接通过包管理安装.
注意, 需要有
root
权限
以下为基于Debian
系的apt的安装方法. 由于CentOS
已经放弃支持, 建议使用Ubuntu
作为linux
发行版, 比较简单.
可以通过以下网址查看官方安装教程intel oneapi base toolkit installation guide
- 安装依赖
sudo apt update
sudo apt install -y gpg-agent wget
- 添加秘钥, 设置存储库
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
- 添加存储库
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
- 更新源
sudo apt update
- 下载安装
intel oneapi base toolkit
sudo apt install intel-basekit
- 下载安装
intel HPC toolkit
可以通过以下网址查看官方安装教程intel oneapi HPC toolkit installation guide
这里存储库已经设置过了, 可以跳过前面的步骤, 直接apt就可以了
sudo apt install intel-hpckit
-
设置环境变量
intel oneapi
的默认安装位置在/opt/intel/oneapi
source /opt/intel/oneapi/setvars.sh
注意: 以上设置的环境变量是临时的, 想让他永久生效, 将上面这句话加入到自己的环境里.
vim ~/.bashrc # 把source /opt/intel/oneapi/setvars.sh加入到文件中, 退出vim source ~/.bashrc
(可选)安装hdf5
库
hdf5
不是编译vasp
必须的, 但是要使用py4vasp
必须使用这个库. 建议编译两版, 一般不含hdf5
库, 一版含hdf5
库.
-
下载
Release HDF5 Release 1.14.4.3 · HDFGroup/hdf5 (github.com)
在以上网址下载
hdf5-X.Y.Z-T.tar.gz
-
解压
上传文件至服务器
tar -zvxf hdf5*.tar.gz
- 安装
cd hdf5*
sudo mkdir /opt/local/hdf5
sudo mkdir /opt/local/hdf5/1.14.4.3 #按照自己的版本设置
CC=icx FC=ifx CXX=icpx ./configure --prefix=/opt/local/hdf5/1.14.4.3 --enable-fortran --enable-cxx
# 我的习惯安装在/opt, 并且前面加上版本号方便多版本共存和切换
# 这里用之前安装的intel套件进行编译
make -j40 #根据计算机线程数改变数值
make check -j40
make install -j40
make check-install -j40
注意: 如果make过程中出现错误, 先执行
make clean
再重新尝试.
编译过程中出现权限问题, 给自己加上
/opt/local/hdf5/1.14.4.3
文件夹的权限, 或者切换到root
用户进行编译.
编译VASP
- 切换到root用户
sudo su root
-
设置环境变量
此时变成了
root
用户,需要重新设置环境变量, 这里最好临时设置.
source /opt/intel/oneapi/setvars.sh
-
设置makefile
(假设已经进入
vasp
源码的根目录)
cp ./arch/makefile.include.intel ./makefile.include
vim makefile.include
注意: 新版本oneapi已经移除了
icc
等套件, 所以需要在makefile.include
中进行如下修改:
- icc -> icx
- icpc -> icpx
- mpiifort -> mpiifx
将MKLROOT ?= /path/to/your/mkl/installation
修改为之前安装的位置
MKLROOT ?= /opt/intel/oneapi/mkl
(可选, 在编译hdf5版本时需要)将
# HDF5-support (optional but strongly recommended)
#CPP_OPTIONS+= -DVASP_HDF5
#HDF5_ROOT ?= /path/to/your/hdf5/installation
#LLIBS += -L$(HDF5_ROOT)/lib -lhdf5_fortran
#INCS += -I$(HDF5_ROOT)/include
修改为
# HDF5-support (optional but strongly recommended)
CPP_OPTIONS+= -DVASP_HDF5
HDF5_ROOT ?= /opt/local/hdf5/1.14.4.3
LLIBS += -L$(HDF5_ROOT)/lib -lhdf5_fortran
INCS += -I$(HDF5_ROOT)/include
最后文件长这样
# Default precompiler options
CPP_OPTIONS = -DHOST=\"LinuxIFC\" \
-DMPI -DMPI_BLOCK=8000 -Duse_collective \
-DscaLAPACK \
-DCACHE_SIZE=4000 \
-Davoidalloc \
-Dvasp6 \
-Duse_bse_te \
-Dtbdyn \
-Dfock_dblbuf
CPP = fpp -f_com=no -free -w0 $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS)
FC = mpiifx
FCL = mpiifx
FREE = -free -names lowercase
FFLAGS = -assume byterecl -w
OFLAG = -O2
OFLAG_IN = $(OFLAG)
DEBUG = -O0
OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o
OBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.o
OBJECTS_O2 += fft3dlib.o
# For what used to be vasp.5.lib
CPP_LIB = $(CPP)
FC_LIB = $(FC)
CC_LIB = icx
CFLAGS_LIB = -O
FFLAGS_LIB = -O1
FREE_LIB = $(FREE)
OBJECTS_LIB = linpack_double.o
# For the parser library
CXX_PARS = icpx
LLIBS = -lstdc++
##
## Customize as of this point! Of course you may change the preceding
## part of this file as well if you like, but it should rarely be
## necessary ...
##
# When compiling on the target machine itself, change this to the
# relevant target when cross-compiling for another architecture
VASP_TARGET_CPU ?= -xHOST
FFLAGS += $(VASP_TARGET_CPU)
# Intel MKL (FFTW, BLAS, LAPACK, and scaLAPACK)
# (Note: for Intel Parallel Studio's MKL use -mkl instead of -qmkl)
FCL += -qmkl=sequential
MKLROOT ?= /opt/intel/oneapi/mkl
LLIBS += -L$(MKLROOT)/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64
INCS =-I$(MKLROOT)/include/fftw
# HDF5-support (optional but strongly recommended)
CPP_OPTIONS+= -DVASP_HDF5
HDF5_ROOT ?= /opt/local/hdf5/1.14.4.3
LLIBS += -L$(HDF5_ROOT)/lib -lhdf5_fortran
INCS += -I$(HDF5_ROOT)/include
# For the VASP-2-Wannier90 interface (optional)
#CPP_OPTIONS += -DVASP2WANNIER90
#WANNIER90_ROOT ?= /path/to/your/wannier90/installation
#LLIBS += -L$(WANNIER90_ROOT)/lib -lwannier
注意: 编译非
hdf5
版本时把HDF5
那几行注释掉
- 编译
make all
注意: 这里不要加
-j
,会出错
注意: 编译出错时先执行
make veryclean
清理之前的编译中间文件
- (可选)版本管理
注意: 以下操作是个人习惯, 也可以不做.
对于非hdf5
版本
cd bin
cp vasp_gam /opt/bin/vasp/vasp_gam
cp vasp_std /opt/bin/vasp/vasp_std
cp vasp_ncl /opt/bin/vasp/vasp_ncl
对于hdf5
版本
cd bin
cp vasp_gam /opt/bin/vasp/vasp_gam_h5
cp vasp_std /opt/bin/vasp/vasp_std_h5
cp vasp_ncl /opt/bin/vasp/vasp_ncl_h5
这样就能同时使用两个版本的vasp
了
- 设置路径
把vasp
可执行文件所在位置加入.bashrc
里
echo 'export PATH=/opt/bin/vasp/:$PATH' >> ~/.bashrc
source ~/.bashrc
(可选)把hdf5
要使用的链接库加入.bashrc
里
echo 'export LD_LIBRARY_PATH=/opt/local/hdf5/1.14.4.3/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
对于有经验的人, 直接修改.bashrc
文件就行了
(可选)安装py4vasp
- 安装
conda
图省事直接装anaconda
[Download Anaconda Distribution | Anaconda](https://www.anaconda.com/download) |
旁边要注册, 直接skip registration
下载对应版本, 应该是一个sh
文件. 上传到服务器上, 然后
bash *.sh
等待安装完毕.
注意: 具体的安装过程这里就不做了, 下次自己在安装时再写详细攻略~
- 新建环境
conda create -n vasp python=3.11 #pyrhon版本大于等于3.9比较好
等命令执行完
conda activate vasp
- 安装
pip install py4vasp
conda install -c conda-forge mdtraj
pip install py4vasp
- 测试
python -c "import py4vasp; print(py4vasp.__version__)"
如果正确输出版本则说明安装成功
本文由 joe_zhouman 创作,采用 知识共享署名4.0
国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:2024-08-04 17:39:42