VASP 专题

VASP Libxc实操:输入、版本与提交

五个CPU版本、80份真实静态输入,从PBE、SCAN、r²SCAN到PBE0,说明模块选择、原子结构和终端提交。

更新于 2026-11-08约 7 分钟阅读按任务与环境选择适用配置
阅读本篇目录

本篇把Libxc操作拆成“选版本→准备结构与参数→生成CPU脚本→提交→提取自己的结果”。配套资料包含VASP6.6.1、6.5.1、6.4.3、6.4.2、6.3.2五个版本的80份实际静态输入与完整自有数值,可直接对照文件学习。

每个版本有12个主条件:Si的PBE/SCAN/r²SCAN/PBE0各一对内置与Libxc、H₂O PBE一对、自旋Fe PBE一对;另有4个水分子截断和位移对照。这些结构固定,用于比较实现和响应,没有进行原子或晶胞优化。 Si保留小位移,以便力不是由对称性全部抵消。

1. 下载,先重画已有数据#

下载五版本Libxc完整输入与数值包。登录节点可直接用系统Python解压:

python3 -m zipfile -e vasp-Libxc-five-version-wave306-*.zip .
cd vasp-Libxc-five-version-wave306
bash preview.sh
bash run.sh

preview/重画三张参考图;results/重新分析80组完整字段,plots/保存新图。两条脚本只做1核后处理,不提交DFT。再运行请用新解压目录,以免覆盖结果。

实际使用的Si、水和Fe固定比较结构

2. 选择对应CPU模块#

VASP版本 模块
6.6.1 vasp/6.6.1-8173m-libxc
6.5.1 vasp/6.5.1-8173m-libxc
6.4.3 vasp/6.4.3-8173m-libxc
6.4.2 vasp/6.4.2-8173m-libxc
6.3.2 vasp/6.3.2-8173m-libxc

以上为CPU分支,Intel oneAPI2024.2、Intel MPI2021.13、MKL2024.2、Libxc7.1.2与HDF51.14.6,目标为AVX512。本文原生参考来自2026年10月20日CPU8173M实算;加载某个GPU分区不会让这份CPU程序转为GPU实现。新计算应使用相应可用CPU资源。

同一对照使用相同版本的同一个Libxc构建,分别设置内置泛函或Libxc标签。目录名含native并不要求另换一个不同编译器的程序。五个版本的输入分别保留;6.4.2/6.3.2的已部署非正密度保护分支及范围见版本指南。

3. 准备一个最小Si例子#

cp -r inputs/6.6.1/si-libxc-pbe my-Si
cd my-Si
ls INCAR POSCAR KPOINTS CASE.json
nano INCAR

完整POSCAR:

Libxc validation si
1.0
0.00000000000000 2.71500000000000 2.74200000000000
2.70000000000000 0.00000000000000 2.71500000000000
2.71500000000000 2.69000000000000 0.00000000000000
Si
2
Direct
0.00000000000000 0.00000000000000 0.00000000000000
0.26300000000000 0.24600000000000 0.25400000000000

完整KPOINTS:

Validation mesh
0
Gamma
2 2 2
0 0 0

CASE.json记录版本、泛函、模块、原子数与截断。原子顺序与合法POTCAR必须相符。参考包不分发POTCAR、波函数、完整XML/HDF或程序。

4. PBE完整INCAR#

SYSTEM = si-libxc-pbe
ENCUT = 600
PREC = Accurate
EDIFF = 1E-10
NELM = 250
ALGO = Normal
ISMEAR = 0
SIGMA = 0.05
IBRION = -1
NSW = 0
ISIF = 3
ISYM = -1
LREAL = .FALSE.
LASPH = .TRUE.
ADDGRID = .TRUE.
LWAVE = .FALSE.
LCHARG = .FALSE.
LH5 = .TRUE.
ISTART = 0
ICHARG = 2
NBANDS = 24
NCORE = 1
KPAR = 1
GGA = LIBXC
LIBXC1 = GGA_X_PBE
LIBXC2 = GGA_C_PBE

GGA=LIBXC选择Libxc GGA入口,两个标签分别指定PBE交换与关联。不要同时留下另一套冲突的GGA/METAGGA设置。

本组为分辨微小实现差使用EDIFF=1E-10;一般参考计算可从1E-6开始,再检查目标性质。表中参考值仍对应原始严格输入,不把它们改写成不同阈值的结果。

IBRION=-1、NSW=0表示静态。即使ISIF=3请求应力,也不会在这里优化晶胞;要做原子/晶胞优化,请先按结构优化设置自由度与离子步,再比较相容结果。

5. SCAN与r²SCAN#

完整SCAN输入:

SYSTEM = si-libxc-scan
ENCUT = 600
PREC = Accurate
EDIFF = 1E-10
NELM = 250
ALGO = Normal
ISMEAR = 0
SIGMA = 0.05
IBRION = -1
NSW = 0
ISIF = 3
ISYM = -1
LREAL = .FALSE.
LASPH = .TRUE.
ADDGRID = .TRUE.
LWAVE = .FALSE.
LCHARG = .FALSE.
LH5 = .TRUE.
ISTART = 0
ICHARG = 2
NBANDS = 24
NCORE = 1
KPAR = 1
METAGGA = LIBXC
LMIXTAU = .TRUE.
LIBXC1 = MGGA_X_SCAN
LIBXC2 = MGGA_C_SCAN
LTBOUNDLIBXC = .FALSE.

完整r²SCAN输入:

SYSTEM = si-libxc-r2scan
ENCUT = 600
PREC = Accurate
EDIFF = 1E-10
NELM = 250
ALGO = Normal
ISMEAR = 0
SIGMA = 0.05
IBRION = -1
NSW = 0
ISIF = 3
ISYM = -1
LREAL = .FALSE.
LASPH = .TRUE.
ADDGRID = .TRUE.
LWAVE = .FALSE.
LCHARG = .FALSE.
LH5 = .TRUE.
ISTART = 0
ICHARG = 2
NBANDS = 24
NCORE = 1
KPAR = 1
METAGGA = LIBXC
LMIXTAU = .TRUE.
LIBXC1 = MGGA_X_R2SCAN
LIBXC2 = MGGA_C_R2SCAN
LTBOUNDLIBXC = .FALSE.

两者使用METAGGA=LIBXC,LMIXTAU与动能密度有关。更换泛函时同步核对赝势、动能密度混合和具体版本的接口设置,不把旧GGA标签与新meta-GGA标签叠加。附件各版本的输入保留了实际支持的选项,按所选目录使用。

6. PBE0与交换混合比例#

完整PBE0输入:

SYSTEM = si-pbe0-libxc
ENCUT = 600
PREC = Accurate
EDIFF = 1E-10
NELM = 250
ALGO = Damped
ISMEAR = 0
SIGMA = 0.05
IBRION = -1
NSW = 0
ISIF = 3
ISYM = -1
LREAL = .FALSE.
LASPH = .TRUE.
ADDGRID = .TRUE.
LWAVE = .FALSE.
LCHARG = .FALSE.
LH5 = .TRUE.
ISTART = 0
ICHARG = 2
NBANDS = 24
NCORE = 1
KPAR = 1
GGA = LIBXC
LHFCALC = .TRUE.
AEXX = 0.25
HFSCREEN = 0
TIME = 0.4
LIBXC1 = HYB_GGA_XC_PBEH

这里LIBXC1是已包含交换/关联的混合泛函标签,因此不再另加LIBXC2;LHFCALC与AEXX=0.25明确精确交换比例。不要额外叠加一套半局域缩放因子,也不要把HSE的屏蔽设置混进本例PBE0。

7. 生成脚本并提交#

在my-Si准备匹配Si的POTCAR后:

ls POTCAR
yskit

选择复制Slurm脚本→VASP→Libxc CPU分支→6.6.1,核对生成脚本中的模块、进程与分区,然后提交,例如:

sbatch sub_vasp_6.6.1_8173m.sh
squeue -u "$USER"

换版本时选择对应版本的输入和脚本。不要仅重命名目录而仍加载另一个版本。实际资源与分区按账号及yskit模板确定。

grep 'EDIFF is reached' OUTCAR | tail -n 1
grep 'Libxc version' OUTCAR
tail -n 3 OSZICAR

检查电子收敛、实际Libxc标签与最终能量。静态例子不要求出现离子优化完成提示。

8. 水与自旋Fe怎样切换#

水分子输入在inputs/版本/water-native和water-libxc,Fe在fe-native和fe-libxc。它们有各自的POSCAR、元素顺序、k网格和自旋设置;不要把Si的POTCAR、NBANDS或MAGMOM直接复制进去。

cd ..
ls inputs/6.6.1/water-libxc
ls inputs/6.6.1/fe-libxc
cat inputs/6.6.1/fe-libxc/INCAR

高截断和位移目录另有原始几何与参数,适合学习怎样保持同一能量参照做成对比较。实际数值、力与能量差的判断继续看Libxc能量、力与一致性。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗