在Ubuntu上安装vasp(step by step)

## ubuntu版本:22.04

## vasp版本:5.4.4

## 一、Ubuntu操作系统安装:

虚拟机安装,VirtualBox 7.0.8。

分配4颗cpu,4G内存,25G硬盘。

最小化安装,分区分配1.8Gefi系统分区,其余分配在/目录下。

安装完成后,设置账号a,密码a

安装ssh:sudo apt install openssh-server    安装完成后,即可使用ssh命令连接到虚拟机上。

## 二、安装必要的软件包和组件

$ sudo apt install vim 

$ sudo apt install make

$ sudo apt install gcc

$ sudo apt install g++

$ sudo apt install gfortran

$ sudo apt install gcc-9                         (同时安装版本9)

$ sudo apt install g++-9                         (同时安装版本9)

$ sudo apt install gfortran-9                 (同时安装版本9)

$ sudo apt install libopenmpi-dev

$ sudo apt install python2

$ sudo apt install libfftw3-dev

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 40

$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 100

$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 40

$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 100

$ sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-11 40

$ sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-9 100

可以使用  $ sudo gcc --version

​                 $  sudo g++ --version

​                 $ sudo gfortran --version

来查看当前gcc、g++、gfortran的优先使用版本是不是  9.5

## 三、下载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

1、gfortran -c  -O3 *.f  *# 编译所有的 .f 文件,生成 .o文件*

2、ar rv libblas.a *.o  *# 链接所有的 .o文件,生成 .a 文件*

3、sudo cp libblas.a /usr/local/lib/ *# 将库文件复制到系统库目录*

## 五、进入CBLAS文件夹,编译cblas

1、cp Makefile.LINUX Makefile.in

#修改Makefile.in文件,添加gfortran编译选项-fallow-argument-mismatch,不然可能会因为强制类型转换报error(新版本编译器更严格)

2、cp ../BLAS-3.10.0/libblas.a  testing  # 将上一步编译成功的 libblas.a 复制到 CBLAS目录下的testing子目录
3、make # 编译所有的目录
4、sudo cp lib/cblas_LINUX.a /usr/local/lib/libcblas.a # 将库文件复制到系统库目录下

在执行make命令时会报错:

Warning: Rank mismatch in argument ‘strue1’ at (1) (scalar and rank-1) [-Wargume                  nt-mismatch]
c_sblat1.f:218:48:

  218 |                CALL STEST1(SASUMTEST(N,SX,INCX),STEMP,STEMP,SFAC)
      |                                                1
Warning: Rank mismatch in argument ‘strue1’ at (1) (scalar and rank-1) [-Wargume                  nt-mismatch]
gfortran  -o xscblat1 c_sblat1.o c_sblas1.o ../lib/cblas_LINUX.a libblas.a
/usr/bin/ld: ../lib/cblas_LINUX.a(cblas_srotg.o): in function `cblas_srotg':
cblas_srotg.c:(.text+0x5): undefined reference to `srotg_'
/usr/bin/ld: ../lib/cblas_LINUX.a(snrm2sub.o): in function `snrm2sub_':
snrm2sub.f:(.text+0x5): undefined reference to `snrm2_'
/usr/bin/ld: ../lib/cblas_LINUX.a(scnrm2sub.o): in function `scnrm2sub_':
scnrm2sub.f:(.text+0x5): undefined reference to `scnrm2_'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:72:xscblat1] 错误 1
make[1]: 离开目录“/home/a/CBLAS/testing”
make: *** [Makefile:180:alltst] 错误 2

但是不影响,lib目录下的cblas_LINUX.a 会生成,可以继续执行下面的安装过程。

## 六、进入lapack文件夹,准备编译lapack以及lapacke

1、cp make.inc.example make.inc # 也可以去INSTALL目录下寻找其他合适的make.inc

修改Makefile中依赖的lib

1、#lib: lapacklib tmglib                            用#封掉这一行
2、lib: blaslib variants lapacklib tmglib    启用这一行,去掉#

修改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

修改lapack_testing.py文件,将第一行的python改为python2

开始编译

sudo 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文件

sudo make
sudo cp *.a /usr/local/lib/

## 七、进入scalapack文件夹,安装scalapack

cp SLmake.inc.example SLmake.inc

make
sudo cp *.a /usr/local/lib

## 八、安装好依赖库后,便可以进入vasp文件夹,编译安装vasp

VASP 5.4.4下载链接   链接:https://pan.baidu.com/s/12vJOF9qiV8_bGKhJg3UR_Q       提取码:9l8u 

unzip vasp-5.4.4.zip

cd vasp-5.4.x-master/

tar -xzvf vasp.5.4.4.tar.gz

gunzip patch.5.4.4.16052018.gz

cd vasp.5.4.4/

patch -p0 < ../patch.5.4.4.16052018

创建  /opt/gfortran/fftw-3.3.4-GCC-5.4.1/include 目录

sudo cp /usr/include/fftw3.*  /opt//gfortran/fftw-3.3.4-GCC-5.4.1/include/

cp arch/makefile.include.linux_gnu makefile.include

sudo make all

完成后,在bin目录下能看到  vasp_gam  vasp_ncl  vasp_std  三个文件,意味着安装成功。

## 九、设置环境变量,进行超算测试:

测试文件下载链接  链接:https://pan.baidu.com/s/1bYmM5QwKNhlKUGpRB64Reg     提取码:co8y 

根据自己喜好放置 vasp 可执行文件,这里推荐目录

```text
/usr/bin/vasp
```

在系统目录 /usr/bin 下创建文件夹 vasp,进入文件夹后执行复制命令

```text
cp <local-vasp.5.4.4-dir>/bin/vasp_std /usr/bin/vasp/vasp_std
```

执行三次,复制三个版本的可执行文件(记得替换 local-vasp.5.4.4-dir 为自己的 vasp 目录),当然你也可以一次性复制 bin 文件夹。

复制结束后需要添加环境变量,打开 .bashrc 文件,添加复制的 vasp 路径

```text
export PATH=/usr/bin/vasp:$PATH
```

然后运行如下命令重启终端:

```bash
$ source ~/.bashrc
```

把测试文件放在一个目录下,在同一目录下执行

mpirun -np 4 vastp_std

即可。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值