知行何家 - VASP
type: channel
link: https://www.hehome.xyz/tag/VASP/
items: 编译 VASP

编译 VASP
type: item
date: 2019-04-08T23:19:00+08:00
description: 很多文献都提到了 VASP 这个计算工具，我当然需要自己去尝试着用一用。因为提供的只有源代码，所以我们需要自己来进行编译。Intel 编译器VASP 推荐我们使用 Intel 的编译器。参考 文档，利用 Intel 编译器需要的配置比较少。安装 Intel 编译器配置环境变量，在 /etc/profile 文件末尾添加以下命令source /opt/intel/bin/compilervars.sh intel64复制编译配置文件cp arch/makefile.include.linux_intel ./makefile.include编译make all编译过程中我遇到报错找不到 libfftw3xf_intel.a 这时候需要我们自己去文件夹中编译sudo su - cd /opt/intel/mkl/interfaces/fftw3xf make libintel64之后再重新编译 VASP 就好。GNU 编译器除了推荐的 Intel 编译器以外，VASP 也支持用 GNU 编译器来编译。不过据介绍，速度会慢一写，不过我本来就只是用来学习，所以对性能的需求并不高。VASP 文档提供了一个 教程，所以我就按照这个来编译。首先安装编译所需的各种依赖sudo apt-get install make build-essential g++ gfortran安装所需的各种库sudo apt-get install libblas-dev liblapack-dev libopenmpi-dev libscalapack-mpi-dev libfftw3-dev解压 VASP 源代码，这里用的版本是 5.4.1.05Feb16tar -xzvf vasp.5.4.1.05Feb16.tar.gz cd vasp.5.4.1创建一个 makefile.include 文件，内容如下# Precompiler options CPP_OPTIONS= -DHOST=\"LinuxGNU\" \ -DMPI -DMPI_BLOCK=8000 -Duse_collective \ -DscaLAPACK -DCACHE_SIZE=4000 \ -Davoidalloc -Duse_bse_te \ -Dtbdyn -Duse_shmem CPP = gcc -E -P -C -w $*$(FUFFIX) >$*$(SUFFIX) $(CPP_OPTIONS) FC = mpif90 FCL = mpif90 FREE = -ffree-form -ffree-line-length-none FFLAGS = -w OFLAG = -O2 -mtune=native -m64 OFLAG_IN = $(OFLAG) DEBUG = -O0 LIBDIR = /usr/lib/x86_64-linux-gnu BLAS = -L$(LIBDIR) -lblas LAPACK = -L$(LIBDIR) -llapack BLACS = SCALAPACK = -L/usr/lib -lscalapack-openmpi $(BLACS) LLIBS = $(SCALAPACK) $(LAPACK) $(BLAS) LLIBS += -lfftw3 INCS = -I/usr/include 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 = gcc CFLAGS_LIB = -O FFLAGS_LIB = -O1 FREE_LIB = $(FREE) OBJECTS_LIB= linpack_double.o getshmem.o # For the parser library # CXX_PARS = g++ # LIBS += parser # LLIBS += -Lparser -lparser -lstdc++ # Normally no need to change this SRCDIR = ../../src BINDIR = ../../bin编译make std gam ncl