笔者根据自己的经验总结了VASP在Ubuntu系统的安装方法,分享给大家并方便自己查看。

下面两种编译方法(gfortran及MKL分别编译VASP)均需要VASP源码包及其补丁,这些可以在官网或通过其他途径下载。

vasp.5.4.1.05Feb16.tar.gz

patch.5.4.1.14032016.gz

patch.5.4.1.03082016.gz

下面路径设置中的/path/需要根据读者自己的安装路径做修改。此外,工作站联网除了用网线,还可以用USB无线网卡的。

一. gfortran编译VASP

1.准备工作

首先设备需要连接互联网,然后安装VASP编译过程所需要的环境包。参考[1]-[2]及自己的安装经验,环境包的的安装过程如下:

sudo apt-get install make

sudo apt-get install g++ build-essential

sudo apt-get install gfortran

sudo apt-get install libopenmpi-dev

sudo apt-get install libblas-dev

sudo apt-get install liblapack-dev

sudo apt-get install libscalapack-mpi-dev

sudo apt-get install libscalapack-openmpi1

sudo apt-get install libfftw3-dev

sudo apt-get install libfftw3-3

sudo apt-get install build-essential libopenmpi-dev libfftw3-dev libblas-dev liblapack-dev libscalapack-mpi-dev libblacs-mpi-dev (这一行看似重复了上面很多内容,但没有这一行安装的几百k的文件,编译过程会报错——找不到openmpi的环境包)

2.解压并打补丁

cd到源码包所在路径,然后进行如下操作:

tar -zxvf vasp.5.4.1.05Feb16.tar.gz

gunzip patch.5.4.1.14032016.gz

gunzip patch.5.4.1.03082016.gz

cd vasp.5.4.1

patch -p0 < ../patch.5.4.1.14032016

patch -p0 < ../patch.5.4.1.03082016

3.设置编译文件

cp -v arch/makefile.include.linux_gfortran makefile.include

根据如下内容修改makefile.include文件:

# Precompiler options

CPP_OPTIONS= -DMPI -DHOST=\"IFC91_ompi\" -DIFC \

-DCACHE_SIZE=4000 -Davoidalloc \

-DMPI_BLOCK=8000 -DscaLAPACK -Duse_collective \

-Duse_bse_te -Duse_shmem -Dtbdyn

CPP        = gcc -E -P -C $*$(FUFFIX) >$*$(SUFFIX) $(CPP_OPTIONS)

FC         = mpif90.openmpi

FCL        = mpif90.openmpi

FREE       = -ffree-form -ffree-line-length-none

FFLAGS     =

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      = -L$(LIBDIR) -lblacs-openmpi -lblacsCinit-openmpi -lblacsF77init-openmpi

SCALAPACK  = -L$(LIBDIR) -lscalapack-openmpi $(BLACS)

OBJECTS    = fftmpiw.o fftmpi_map.o  fftw3d.o  fft3dlib.o \

/usr/lib/x86_64-linux-gnu/libfftw3.a

INCS       =-I/usr/include

LLIBS      = $(SCALAPACK) $(LAPACK) $(BLAS)

OBJECTS_O1 += fft3dfurth.o fftw3d.o fftmpi.o fftmpiw.o chi.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

# Normally no need to change this

SRCDIR     = ../../src

BINDIR     = ../../bin

4.开始编译

make all

或者 make std 编译标准版本的VASP。如果编译过程出错,键入make veryclean清理上次编译失败的文件之后再进行新的尝试。

如果编译成功,则会在./bin 文件夹下面生成vasp_std可执行文件。

可以添加环境变量:export PATH=/path/vasp.5.4.1/bin:$PATH

使用方法类似:/usr/bin/mpirun.openmpi -np 8 /vasp/vasp.5.4.1/bin/vasp_std

二. MKL编译VASP

1.准备工作

首先设备同样需要连接互联网,然后安装VASP编译过程所需要的环境包。参考[3]及自己的安装经验,环境包的的安装过程如下:

sudo apt-get install make

sudo apt-get install build-essential

sudo apt-get install gfortran

2.安装Intel-parallel_studio XE 2019

Intel-parallel_studio XE 2019可以在官网免费注册账户并下载。

cd parallel_studio_xe_2019_cluster_edition

sh install.sh

然后根据提示一步步执行安装。

安装完毕之后设置 Intel的环境变量。

vi ~/.bashrc

单击i在.bashrc文件中添加如下内容:

#Intel

source /path/intel/bin/ifortvars.sh intel64

source /path /intel/mkl/bin/mklvars.sh intel64

export PATH=/path /intel/compilers_and_libraries_2019.0.117/linux/bin:$PATH

export LD_LIBRARY_PATH=/path/intel/compilers_and_libraries_2019.0.117:$LD_LIBRARY_PATH

然后 source ~/.bashrc 使环境变量生效。使用命令 which ifort 检查是否设置成功。

3.安装openmpi-2.0.2

在官网下载openmpi-2.0.2,键入下面命令或者使用浏览器进入下面的链接:

tar zxvf openmpi-2.0.2.tar.gz

cd openmpi-2.0.2

./configure --prefix=/path/openmpi CC=icc CXX=icpc F77=ifort FC=ifort

sudo make

sudo make install

安装完成之后类似上面设置环境变量,添加如下内容:

#openmpi

if [ -f /path/intel/bin/ifortvars.sh ]

then

source /path/intel/bin/ifortvars.sh intel64 2> /dev/null

export MPI=/path/openmpi

export PATH=$MPI/bin:$PATH

export LD_LIBRARY_PATH=$MPI/lib:$LD_LIBRARY_PATH

export MANPATH=$MANPATH:$MPI/share/man

export INFOPATH=$INFOPATH:$MPI/share/man

fi

然后 source ~/.bashrc 使环境变量生效。使用命令 which mpirun检查是否设置成功。

4.安装fftw-3.3.4

在官网下载fftw-3.3.4,键入下面命令或者使用浏览器进入下面的链接:

tar zxvf fftw-3.3.4.tar.gz

cd fftw-3.3.4

./configure--prefix=/path/fftw --enable-mpi F77=ifort F90=ifort

make -j4

make install

fftw可以不设置环境变量,如果想设置,可以添加如下内容:

export PATH=/path/fftw/bin:$PATH

export LD_LIBRARY_PATH=/path/fftw/lib:$LD_LIBRARY_PATH

检查 “/path/fftw-3.3.4/lib/libfftw3_mpi.a”文件是否存在,若存在,则安装成功。

5.解压并打补丁

cd到源码包所在路径,然后进行如下操作:

tar -zxvf vasp.5.4.1.05Feb16.tar.gz

gunzip patch.5.4.1.14032016.gz

gunzip patch.5.4.1.03082016.gz

cd vasp.5.4.1

patch -p0 < ../patch.5.4.1.14032016

patch -p0 < ../patch.5.4.1.03082016

6.设置编译文件

cp arch/makefile.include.linux_intel makefile.include

根据如下内容修改makefile.include文件:

# Precompiler options

CPP_OPTIONS= -DMPI -DHOST=\"IFC91_ompi\" -DIFC \

-DCACHE_SIZE=4000 -DPGF90 -Davoidalloc \

-DMPI_BLOCK=8000 -DscaLAPACK -Duse_collective \

-Duse_bse_te -Duse_shmem -Dtbdyn

CPP        = fpp -f_com=no -free -w0  $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS)

FC         = mpif90

FCL        = mpif90 -mkl=sequential

FREE       = -free -names lowercase

FFLAGS     = -assume byterecl

OFLAG      = -O2 -axAVX2, AVX, SSE4.2

OFLAG_IN   = $(OFLAG)

DEBUG      = -O0

MKL_PATH   = $(MKLROOT)/lib/intel64

BLAS       =

LAPACK     =

BLACS      = -lmkl_blacs_intelmpi_lp64

SCALAPACK  = $(MKL_PATH)/libmkl_scalapack_lp64.a $(BLACS)

OBJECTS    = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o \

/path/fftw/lib/libfftw3_mpi.a

INCS       =-I/path/fftw/include

LLIBS      = $(SCALAPACK) $(LAPACK) $(BLAS)

OBJECTS_O1 += fft3dfurth.o 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     = icc

CFLAGS_LIB = -O

FFLAGS_LIB = -O1

FREE_LIB   = $(FREE)

OBJECTS_LIB= linpack_double.o getshmem.o

# Normally no need to change this

SRCDIR     = ../../src

BINDIR     = ../../bin

7.开始编译

make all

或者 make std 编译标准版本的VASP。如果编译过程出错,键入make veryclean清理上次编译失败的文件之后再进行新的尝试。

如果编译成功,则会在./bin 文件夹下面生成vasp_std可执行文件。

可以添加环境变量:export PATH=/path/vasp.5.4.1/bin:$PATH

使用方法类似:/usr/bin/mpirun.openmpi -np 8 /vasp/vasp.5.4.1/bin/vasp_std

参考网址:

转载本文请联系原作者获取授权,同时请注明本文来自木留华科学网博客。

链接地址:http://blog.sciencenet.cn/blog-3311084-1137630.html

上一篇:CP2K, NWChem 等在个人工作站上的安装

下一篇:ASE 的安装及其与VASP 对接的方法

ubuntu安装vasp_科学网—Ubuntu18.04编译VASP.5.4.1两种方法的详细过程 - 木留华的博文...相关推荐

  1. docker安装gamit_科学网—Ubuntu18.04 安装gamit10.7安装 - 陈超的博文

    1.安装依赖环境 1.1 gcc g++ gfortran多版本切换(安装gamit需要切换低版本) 1.1.1安装gcc g++ gfortran多版本 sudo apt-get install g ...

  2. tableau linux无网络安装_举个栗子!Tableau 技巧(110)两种方法实现正态分布 Normal distribution...

    关于正态分布 正态分布(Normal distribution),也称"常态分布",又名高斯分布(Gaussian distribution).正态分布是统计学中一个重要的概率分布 ...

  3. python3.8安装ubuntu_科学网—Ubuntu16.04安装Python3.8.5问题及解决方法 - 陈超的博文...

    Ubuntu16.04安装Python3.8.5: 安装编译之后出现apt-get错误You might want to run 'apt-get -f install' to correct the ...

  4. openacc的Linux安装教程,科学网—opensuse 13.1 系统 openACC编译器使用及GPU并行编程环境配置 - 马小军的博文...

    本文讲述opensuse13.1系统openACC编译器使用及GPU并行编程环境配置. 这里以笔记本显卡驱动为NVIDIA为例 在安装前,请确保系统已经安装kernel-devel ,kernel-s ...

  5. python牛顿法解非线性方程组_科学网—求解多元非线性方程组F(x)=0的Newton-Raphson方法及其MATLAB实现 - 王福昌的博文...

    科学网对公式支持不太好,在博客园有相同博文 牛顿迭代法可以推广到多元非线性方程组 $boldsymbol{F}(boldsymbol{x})=boldsymbol{0}$的情况,称为牛顿-- 拉夫逊方 ...

  6. Ubuntu18.04 编译安装 Realtek 8852 无线网卡驱动

    记录一下Ubuntu18.04 编译安装 Realtek 8852 无线网卡驱动全过程 内核版本: Linux 5.6.19-050619-generic 先是一步一步按照这个做的,到make的时候发 ...

  7. Ubuntu18.04 编译Android 10源码 并烧录源码到pixel3的避坑指南

    Ubuntu18.04 编译Android 10源码 并烧录源码到pixel3的避坑指南 实验环境 下载Android源码树 在pixel3上安装手机驱动版本 编译Android源码 Android ...

  8. 安装好Ubuntu18.04之后要做的事!!大全、详细教程!

    安装Ubuntu18.04之后的要做的事: 1.更新源,使用软件更新器选择中国的服务器aliyun即可自动更新缓存,以及各种软件 之后每天更新, shell更新: sudo apt update su ...

  9. Ubuntu18.04 编译报错 `No package ‘orocos-bfl‘ found` 的解决方法

    写在前面 笔者运行环境Ubuntu18.04,ROS-melodic. 在运行 robot_pose_ekf ,出现了 bfl 的报错. 一.报错提示 No package 'orocos-bfl' ...

最新文章

  1. LeetCode简单题之相对名次
  2. 2014.5.2—北京爱情故事
  3. java编写螺旋矩阵讲解_Java如何实现螺旋矩阵 Java实现螺旋矩阵代码实例
  4. 模块化无人机,不仅配置高,还颜值爆表
  5. CCF NOI1118 序列第K小
  6. MySQL(八)事务的隔离级别
  7. NSArray 的遍历
  8. R语言data manipulation学习笔记之创建变量、重命名、数据融合
  9. 显卡硬解4k测试软件,对飙4K硬解 看谁才是笑到最后的大佬
  10. zktime 协议_Zktime考勤管理系统
  11. 国家代号(CountryCode) - 常用国家地区代码和国际电话代码
  12. MTG1000中继网关用户手册
  13. android 阅读器字体,Android字体设置及Roboto字体使用方法
  14. 012:tkinter+爬虫设计对联软件
  15. echarts异步数据加载(在下拉框选择事件中异步更新数据)
  16. javascript 去掉html标签,js怎么去掉html标签
  17. 古体字与简体字对照表_汉字繁体字(正体字)与简体字对照表
  18. 【数据库学习笔记】03 MySQL数据库CURD整理大全
  19. 15款jQuery幻灯片插件
  20. GNU系统下DL_POLY的编译

热门文章

  1. HyperV2012的学习,从这里开始
  2. 初志科技发布云策略 安全云平台如稳固建筑
  3. (转)学习directx遇到的问题
  4. SIP协议栈读书笔记1
  5. goalnd 分支合并完出现两个箭头
  6. 百度区块链所遇到的问题及处理汇总
  7. 去掉Mybatis Generator生成的一堆 example
  8. 在linux中显示所有正在运行的进程
  9. 会动的图解 (二) 怎么让goroutine跑一半就退出?
  10. 我们应该如何保护用户的密码