libxc+VASP编译(补充)和杂化泛函使用

前期笔者已有一篇涉及libxc+vasp编译的介绍

libxc+VASP编译

但在实际测试中仍存在一些问题,本篇基于前期内容进行修正并附加测试。

按照前文提到的编译方法,在更改泛函后进行VASP计算时会出现保存提示 Libxc was not compiled with the option --disable-fhc 

查询VASP wiki后可知,VASP官网推荐的使用libxc.5.2.0以后的版本,并在编译过程中使用 --disable-fhc选项。

链接:

https://www.vasp.at/wiki/index.php/Makefile.include#Libxc_(optional)

同时必须使用VASP.6.3.0或更高版本的VASP程序。

https://www.vasp.at/wiki/index.php/GGA

本文使用前提:已用于完整Intel编译器并可正常编译VASP程序(版本大于6.3.0)。

基于libxc 6.1.0版本,编译过程为

下载后进行解压和生成configure文件

tar zxvf libxc-6.1.0.tar.gzcd libxc-6.1.0autoreconf -i

随后生成makefile文件,指定好安装目录

 ./configure --prefix=PATH/TO/LIBXC --disable-fhcmakemake check

check无问题后进行安装(可能存在FLASE 1,不影响继续安装)

 make install

在VASP的编译文件makefile.include中加入

# for libxcCPP_OPTIONS +=  -DUSELIBXCLIBXCPATH=/path/to/libxc/installationINCS += -I$(LIBXCPATH)/includeLLIBS += $(LIBXCPATH)/lib/libxcf03.a  $(LIBXCPATH)/lib/libxc.a

随后正常编译即可

make all

如出现报错libxc_free 未定义。

则手动编写一个文件 myfree.c 

void libxc_free(void *ptr){  free(ptr);}

然后

 icc -c myfree.c 

生成 myfree.o,再用

nm -s myfree.o 

 查看符号则有了 libxc_free

最后,用命令 

ar r libxc.a myfree.o 

将该定义加到 libxc.a 库中,这样就有了 libxc_free 的定义了,

于是再编译 VASP 就正常了。

在INCAR中插入

#METAGGA  =  LIBXC          (PBEsol exchange-correlation)GGA  =  LIBXCLIBXC1 = MGGA_X_R2SCANLIBXC2 = MGGA_C_R2SCAN

参数含义可从VASP wiki中查看

https://www.vasp.at/wiki/index.php/GGA

https://www.vasp.at/wiki/index.php/LIBXC1

https://www.vasp.at/wiki/index.php/LIBXC2

即可使用R2SCAN泛函进行计算。计算过程中会提示

附GGA可用泛函和杂化泛函列表

https://www.vasp.at/wiki/index.php/GGA

https://www.vasp.at/wiki/index.php/List_of_hybrid_functionals

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值