VASP Libxc实操:输入、版本与提交
五个CPU版本、80份真实静态输入,从PBE、SCAN、r²SCAN到PBE0,说明模块选择、原子结构和终端提交。
阅读本篇目录
本篇把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。再运行请用新解压目录,以免覆盖结果。

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能量、力与一致性。