OPT部分INCAR设置
- 常用参数
- 一、例一
- 二、参数分组讲解
-
- 1、启动设置参数
-
- [1.1 `SYSTEM = OPT`](#1.1
SYSTEM = OPT) - [1.2 `ISTART:是否读取旧波函数`](#1.2
ISTART:是否读取旧波函数) - [1.3 `ICHARG:初始电荷密度来源及是否固定`](#1.3
ICHARG:初始电荷密度来源及是否固定)
- [1.1 `SYSTEM = OPT`](#1.1
- 2、计算精度
- [3. 电子自洽设置](#3. 电子自洽设置)
-
- [3.1 `ALGO:电子波函数迭代算法`](#3.1
ALGO:电子波函数迭代算法) - [3.2 `EDIFF:电子自洽停止阈值`](#3.2
EDIFF:电子自洽停止阈值) - [3.3 `NELM:每个离子步的最大电子步数`](#3.3
NELM:每个离子步的最大电子步数) - [3.4 `NELMIN:每个离子步的最少电子步数`](#3.4
NELMIN:每个离子步的最少电子步数)
- [3.1 `ALGO:电子波函数迭代算法`](#3.1
- [4. 电子占据](#4. 电子占据)
- [5. 离子与晶胞优化](#5. 离子与晶胞优化)
-
- [5.1 `IBRION:离子更新、MD、声子或过渡态方法`](#5.1
IBRION:离子更新、MD、声子或过渡态方法) -
- 主要合法取值
- [IBRION = -1](#IBRION = -1)
- [IBRION = 1](#IBRION = 1)
- [IBRION = 2](#IBRION = 2)
- [IBRION = 3](#IBRION = 3)
- [IBRION = 5、6、7、8](#IBRION = 5、6、7、8)
- [5.2 `NSW:最大离子步数`](#5.2
NSW:最大离子步数) - [5.3 `ISIF:应力和结构自由度`](#5.3
ISIF:应力和结构自由度) -
- [ISIF = 0~8 完整对照](#ISIF = 0~8 完整对照)
- [Selective dynamics 与 ISIF](#Selective dynamics 与 ISIF)
- [ISIF ≥ 3 的精度要求](#ISIF ≥ 3 的精度要求)
- [5.4 `POTIM:结构步长、MD 时间步或声子位移`](#5.4
POTIM:结构步长、MD 时间步或声子位移) - [5.5 `EDIFFG:离子优化停止条件`](#5.5
EDIFFG:离子优化停止条件)
- [5.1 `IBRION:离子更新、MD、声子或过渡态方法`](#5.1
- [6. 文件输出](#6. 文件输出)
-
- [6.1 `LWAVE:是否输出波函数`](#6.1
LWAVE:是否输出波函数) - [6.2 `LCHARG:是否输出电荷密度`](#6.2
LCHARG:是否输出电荷密度)
- [6.1 `LWAVE:是否输出波函数`](#6.1
- [三、 根据体系选择基础 OPT 设置](#三、 根据体系选择基础 OPT 设置)
-
- [1 非磁性半导体或绝缘体三维体相](#1 非磁性半导体或绝缘体三维体相)
- [2 明确的金属三维体相](#2 明确的金属三维体相)
- [3 磁性材料](#3 磁性材料)
- [4 表面或二维材料](#4 表面或二维材料)
- [5 分子或团簇](#5 分子或团簇)
- [6 大超胞](#6 大超胞)
- [四、 同一体系连续计算时,哪些参数不能随意改?](#四、 同一体系连续计算时,哪些参数不能随意改?)
-
- [1 OPT → SCF → BAND → DOS 中应一致的物理模型](#1 OPT → SCF → BAND → DOS 中应一致的物理模型)
- [2 可以随阶段改变的参数](#2 可以随阶段改变的参数)
- [3 可以采用分层理论,但必须说明](#3 可以采用分层理论,但必须说明)
- [五、 计算前后检查清单](#五、 计算前后检查清单)
- [六、 例二](#六、 例二)
常用参数
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
一、例一
下面这套基础模板默认计算对象是:
- 新建计算,而不是从旧任务继续;
- 常规三维周期性体相材料;
- 非磁性体系;
- 半导体或绝缘体;
- 同时优化原子位置、晶胞形状和晶胞体积;
- 使用普通的半局域密度泛函进行优化。
如果研究的是金属、磁性材料、表面、二维材料、分子、缺陷、DFT+U、杂化泛函或强自旋轨道耦合体系,部分参数必须调整。
ini
# ==================== 启动设置 ====================
SYSTEM = OPT # 计算名称,便于区分材料和计算阶段
ISTART = 0 # 不读取旧WAVECAR,从头开始计算
ICHARG = 2 # 用各原子的初始电荷叠加生成起始电荷密度
# ==================== 计算精度 ====================
ENCUT = 500 # 平面波截断能;500只是示例,应根据POTCAR和收敛测试确定
PREC = Accurate # 使用较密的数值网格,适合正式结构优化
LREAL = .FALSE. # 使用精度较高的倒空间投影方式
LASPH = .TRUE. # 考虑PAW球内非球形电荷贡献,提高能量和受力精度
ADDGRID = .TRUE. # 使用辅助网格,通常有助于降低受力的数值噪声
# ==================== 电子自洽 ====================
ALGO = Normal # 使用稳定性较好的电子求解算法
EDIFF = 1E-6 # 每个离子步中电子自洽的收敛标准
NELM = 100 # 每个离子步允许的最大电子迭代次数
NELMIN = 4 # 每个离子步至少进行4次电子迭代
# ==================== 电子占据 ====================
ISPIN = 1 # 按非磁性体系计算
ISMEAR = 0 # 使用较通用的Gaussian展宽,适合半导体和绝缘体OPT
SIGMA = 0.05 # 展宽宽度为0.05 eV
# ==================== 离子与晶胞优化 ====================
IBRION = 2 # 使用稳定性较好的共轭梯度方法移动原子
NSW = 100 # 最多进行100个离子优化步
ISIF = 3 # 同时优化原子位置、晶胞形状和晶胞体积
POTIM = 0.3 # 控制每次原子移动的步长尺度
EDIFFG = -0.02 # 所有活动原子受力小于0.02 eV/Å时停止优化
# ==================== 文件输出 ====================
LWAVE = .TRUE. # 保存WAVECAR,方便中断后继续计算
LCHARG = .TRUE. # 保存CHGCAR,方便续算或检查电荷密度
二、参数分组讲解
1、启动设置参数
1.1 SYSTEM = OPT
SYSTEM 是计算任务的名称或备注。
它主要出现在 OUTCAR 等输出文件中,方便区分不同材料、不同结构以及不同计算阶段。该参数不参与物理计算,因此不会改变总能量、受力、应力或最终结构。
建议采用能看出"材料名称 + 计算阶段"的命名方式,例如:
ini
SYSTEM = Si_OPT
SYSTEM = CaCO3_OPT
SYSTEM = Bi2Te3_OPT
1.2 ISTART:是否读取旧波函数
- 新计算一般:ISTART = 0
- ISTART 决定是否读取 WAVECAR,以及读取后如何处理平面波基组。
- 当前目录存在 WAVECAR 时,VASP 通常默认 ISTART = 1;
- 没有 WAVECAR 时,默认 ISTART = 0。
| ISTART | 含义 | 什么时候使用 |
|---|---|---|
| 0 | 不读取 WAVECAR,从头初始化波函数 | 新计算;WAVECAR 不可靠;赝势、K 点或计算类型变化较大 |
| 1 | 读取 WAVECAR,但按照当前晶胞和当前 ENCUT 重新定义平面波集合,即保持"截断能规则" | 普通续算;改变 ENCUT;不同固定体积点的能量计算 |
| 2 | 读取 WAVECAR,并保持旧 WAVECAR 中的平面波基组 | 对同一个可变晶胞优化进行一致续算;明确需要固定旧基组时 |
| 3 | 在 ISTART = 2 基础上,还读取 TMPCAR 中前两步信息进行轨道和电荷预测 | 被迫把分子动力学拆成很短任务时;普通 OPT 不用 |
1.3 ICHARG:初始电荷密度来源及是否固定
- 新计算一般:ICHARG = 2
- ICHARG 决定初始电荷密度怎样构造,还决定整个计算中电荷密度是否保持不变。
- ISTART = 0 时,通常默认 ICHARG = 2;
- 其他情况下通常默认 ICHARG = 0。
主要可取值
| ICHARG | 含义 | 典型用途 |
|---|---|---|
| 0 | 由初始波函数计算初始电荷密度 | 已可靠读取 WAVECAR 的普通续算 |
| 1 | 从 CHGCAR 读取电荷密度,并针对新原子位置作外推 | 输入小幅变化、续算、提高收敛速度 |
| 2 | 叠加各原子的电荷密度作为初始密度 | 全新 SCF 或 OPT |
| 4 | 从 POT 文件读取局域势 | OEP 等特殊方法,不用于普通 OPT |
| 5 | 外部程序在每个电子步更新占据和电荷密度 | DFT+DMFT 等外部耦合流程 |
| 10 | 由初始波函数得到密度后固定,不再更新 | 特殊非自洽模式 |
| 11 | 从 CHGCAR 读取电荷密度并固定 | 标准 BAND、某些 DOS 和固定密度计算 |
| 12 | 用原子电荷叠加得到密度并固定 | Harris-Foulkes 类非自洽近似 |
2、计算精度
2.1 ENCUT:平面波截断能
- ENCUT 不是 400、500、520 等几个离散选项,而是连续数值。
- 数值越高,平面波基组通常越大,计算越慢,但能量、受力和应力一般更接近收敛结果。
- 正式计算一般1.1~1.3 × max(ENMAX)
参数类型
| 项目 | 内容 |
|---|---|
| 类型 | 正实数 |
| 单位 | eV |
| 默认值 | POTCAR 中所有元素 ENMAX 的最大值 |
2.2 PREC:FFT 网格和内部精度模式
- VASP 4.x:默认 Medium;
- VASP 5.x 及以后:默认 Normal。
可取值
| PREC | 含义 | 是否推荐及使用场景 |
|---|---|---|
| Normal | 常规精度网格;VASP 5 以后默认值 | 大多数常规计算、预优化;正式计算也可在验证后使用 |
| Accurate | 更密的 FFT 网格,减小 egg-box 和混叠误差 | 正式 OPT、精确受力、应力、声子和二阶导数 |
| Single | 不使用常规双网格,降低内存和输出文件体积 | 真空区电荷密度或 STM 等特殊场景;不是一般 OPT 首选 |
| SingleN | VASP 6 提供的特殊单网格模式 | 特殊内存或网格需求,普通 OPT 很少使用 |
| Low | 旧兼容模式,精度低 | 已弃用,不建议 |
| Medium | VASP 4 时代默认模式 | 已弃用,不建议 |
| High | 旧高精度模式,主要通过提高默认 ENCUT 等实现 | 已弃用,不建议 |
2.3 LREAL:PAW 投影算符的处理空间
- 原子数不太多;
- 正式结构优化;
- 吸附能、缺陷能、相对能量等精细比较;
- 希望避免实空间投影近似。
- 上述用.FALSE. - - 官方建议原子数超过约 30 时考虑实空间投影,并且只推荐 Auto 模式。"30 个原子"只是经验分界 。
- 上述用AUTO - - 默认值是 LREAL = .FALSE.
可取值
| LREAL | 含义 | 使用建议 |
|---|---|---|
| .FALSE. | 在倒空间计算投影 | 精度优先;小中型体系;精确能量差和受力 |
| Auto 或 A | 在实空间投影,并自动优化投影算符 | 大体系提速;推荐的实空间模式 |
| On 或 O | 在实空间投影,采用旧的现场优化方案 | 不推荐,主要用于旧输入兼容 |
| .TRUE. | 直接使用 POTCAR 中的实空间投影算符 | 可能不准确,不推荐 |
2.4 LASPH:PAW 球内非球形贡献
可取值
- 对 3d 过渡金属、f 元素、磁性原子、DFT+U、杂化泛函、meta-GGA 和 vdW-DF 类泛函,LASPH = .TRUE. 对准确总能量、能带和磁性尤其重要。
- 对比两个结构或不同计算阶段时应保持一致,否则能量差可能混入方法设置差异。
| LASPH | 含义 | 使用场景 |
|---|---|---|
| .FALSE. | 不加入梯度修正中的非球形贡献;默认值 | 简单体系可作为低成本设置,正式计算需谨慎 |
| .TRUE. | 加入 PAW 球内非球形梯度修正 | d/f 电子、磁性、DFT+U、meta-GGA、杂化泛函、vdW-DF |
2.5 ADDGRID:附加积分支持网格
- 默认关
可取值
| ADDGRID | 含义 | 使用建议 |
|---|---|---|
| .FALSE. | 不使用额外支持网格;默认值 | 普通计算的默认选择 |
| .TRUE. | 使用更密的附加网格处理 augmentation charge | 受力噪声明显、测试确认确有改善时 |
ADDGRID = .TRUE. 可能降低受力数值噪声,让接近收敛阈值的力更平滑。
但附加网格涉及 Fourier 插值,某些体系可能出现 termination wiggles。它不一定改善所有计算。
3. 电子自洽设置
3.1 ALGO:电子波函数迭代算法
-
Normal多
-
默认:ALGO = Normal
-
ALGO 还有 GW、BSE、RPA 等多体计算取值。本文列出与基态、OPT、SCF 和普通后处理相关的取值。
基态和后处理常用取值
| ALGO | 算法或行为 | 什么时候使用 |
|---|---|---|
| Normal | blocked Davidson;默认值 | 多数体系的稳健首选,正式 OPT/SCF |
| Fast | 先 Davidson,再 RMM-DIIS | 易收敛体系、较大体系、预优化;较快但稳健性较低 |
| VeryFast | 主要使用 RMM-DIIS | 很大且已有良好初始波函数的体系;最不稳健,不支持杂化泛函 |
| Old Fast | VASP 5 版本的 Fast 行为 | 复现旧计算 |
| Old VeryFast | VASP 5 版本的 VeryFast 行为 | 复现旧计算 |
| All 或 Conjugate | 全能带共轭梯度直接优化 | 磁性、DFT+U、meta-GGA、杂化泛函或 Normal 失败 |
| Damped | 轨道阻尼动力学 | 某些金属、小带隙、杂化或 meta-GGA 难收敛任务;需调 TIME |
| Exact | 完全对角化 | 大量空带、GW/RPA 前处理或测试;代价高 |
| Subrot | 在当前子空间内旋转对角化 | 特殊用途,普通 OPT 很少使用 |
| Eigenval | 固定已有轨道,重新计算本征值 | 基于 WAVECAR 的后处理 |
| None 或 Nothing | 不更新轨道,只重新处理占据和输出 | 基于已有轨道重新生成 DOS/投影 |
3.2 EDIFF:电子自洽停止阈值
- 默认:EDIFF = 1E-4。
- 当相邻电子步的总自由能变化和能带能量变化都小于 EDIFF 时,电子自洽停止。
| 项目 | 内容 |
|---|---|
| 类型 | 非负实数 |
| 单位 | eV |
| 默认值 | 1E-4 |
| 正式计算常用值 | 1E-6 |
常用取值
| EDIFF | 常见用途 | 评价 |
|---|---|---|
| 1E-4 | 默认值、粗略预计算 | 对正式 OPT 的受力可能偏松 |
| 1E-5 | 一般预优化 | 比默认可靠,精细受力仍需检查 |
| 1E-6 | 正式 OPT、SCF | 官方推荐的常用折中 |
| 1E-7 | 声子、有限差分、精细受力 | 成本更高,部分大体系难达到 |
| 1E-8 或更小 | 极高数值要求 | 并非越小越好,meta-GGA 或大体系可能难达到 |
| 0 | 不按能量阈值提前停止,执行 NELM 步 | 调试或特殊任务 |
3.3 NELM:每个离子步的最大电子步数
- 默认值:60,须为正整数。
| NELM | 使用场景 |
|---|---|
| 40~60 | 多数易收敛体系 |
| 80~120 | 稍难收敛体系;100 是常见设置 |
| 更高 | 只有确认电子迭代缓慢但稳定下降时 |
| 1 | 配合 ALGO = None 等特殊后处理 |
3.4 NELMIN:每个离子步的最少电子步数
- 默认值:60,须为正整数,结构优化常用4 ~ 8。
- 原子变化后电荷密度需要重新适应。过早停止会使力的历史信息不稳定,尤其影响 IBRION = 1。但 NELMIN 也不是越高越好。
| NELMIN | 什么时候使用 |
|---|---|
| 2 | 默认值;普通易收敛体系 |
| 4 | 简单体相 OPT;基础模板常用 |
| 6~8 | 复杂表面、MD、电荷调整较慢的体系 |
| 更高 | 很少需要,会强制增加成本 |
4. 电子占据
4.1 ISPIN:是否进行自旋极化
- 默认值是 ISPIN = 1。
可取值
| ISPIN | 含义 | 使用场景 |
|---|---|---|
| 1 | 非自旋极化;上下自旋共用同一电荷密度 | 已确认非磁性的体系 |
| 2 | 共线自旋极化;上下自旋分别处理 | 磁性材料、自由基、磁性缺陷及可能有未配对电子的体系 |
ISPIN = 1
适用于 Si 等明确非磁性半导体、闭壳层离子化合物,以及已通过实验或自旋极化测试确认无磁性的体系。
ISPIN = 1 不是让 VASP 自动判断有没有磁性,而是强制体系不能形成自旋极化解。
ISPIN = 2
适用于:
- Fe、Co、Ni、Mn、Cr 等过渡金属体系;
- 稀土体系;
- 磁性氧化物;
- 自由基;
- 空位、边缘、吸附原子等可能产生局域磁矩的体系。
通常还必须设置磁矩:
ini
ISPIN = 2
MAGMOM = ...
反铁磁材料需要用正负初始磁矩构造不同磁序并分别比较。
使用 LNONCOLLINEAR = .TRUE. 时,ISPIN 会被忽略。非共线磁性和 SOC 需要另一套输入。
4.2 ISMEAR:电子占据和布里渊区积分方式
- ISMEAR = -14 和 -15 属于较新选项,使用前确认 VASP 版本。
主要取值
| ISMEAR | 方法 | 什么时候使用 |
|---|---|---|
| 大于 0 | 对应阶数的 Methfessel-Paxton 展宽 | 金属 OPT;常用 1 或 2 |
| 0 | Gaussian 展宽 | 半导体、绝缘体、金属性未知体系 |
| -1 | Fermi-Dirac 展宽 | 需要电子温度物理含义时 |
| -2 | 从 WAVECAR 或 FERWE/FERDO 读取并固定占据 | 约束电子态等特殊任务 |
| -3 | 按 SMEARINGS 循环测试多种展宽 | 展宽测试;不能与普通 OPT 同时使用 |
| -4 | 不带 Blöchl 修正的四面体法 | 静态积分;通常不如 -5 常用 |
| -5 | 带 Blöchl 修正的四面体法 | 精确静态总能、DOS;均匀且足够密的 Γ 中心 K 网格 |
| -14 | 带 Fermi-Dirac 展宽的四面体法 | 需要温度占据与四面体插值的特殊计算 |
| -15 | 带 Blöchl 修正及 Fermi-Dirac 展宽的四面体法 | 精确占据、输运等新版特殊任务 |
不同任务的快速选择
| 任务 | 推荐起点 |
|---|---|
| 不知道材料是否金属 | ISMEAR = 0,SIGMA = 0.03~0.10 |
| 半导体/绝缘体 OPT | ISMEAR = 0,SIGMA ≈ 0.05 |
| 明确金属 OPT | ISMEAR = 1 或 2;SIGMA 按 entropy T*S 测试 |
| 半导体/绝缘体高精度静态能SCF | ISMEAR = -5,密集 Γ 中心网格 |
| DOS | ISMEAR = -5,密集均匀 K 网格 |
| BAND 线性路径 | 通常 ICHARG = 11;不要用线性 K 路径做四面体积分 |
4.3 SIGMA:展宽宽度
- SIGMA 太大会产生过多部分占据、模糊带隙并改变自由能、受力和应力。
- SIGMA 太小会使金属 SCF 变慢、占据跳变,并对 K 点更加敏感。
| 项目 | 内容 |
|---|---|
| 类型 | 实数 |
| 单位 | eV |
| 默认值 | 0.2 eV |
| 是否总生效 | ISMEAR = -4、-5 时不作为普通展宽宽度使用 |
SIGMA 的合理值取决于 ISMEAR,不能单独选择。
| ISMEAR 和体系 | SIGMA 常见起点 | 判断标准 |
|---|---|---|
| ISMEAR = 0,半导体/绝缘体 | 0.03~0.10 eV | 力、应力和总能对 SIGMA 收敛 |
| ISMEAR = 0,金属性未知 | 0.05~0.10 eV | 先保证稳健,再判断体系类型 |
| ISMEAR = 1/2,金属 OPT | 0.10~0.20 eV | entropy T*S 小于约 1 meV/atom |
| ISMEAR = -1 | SIGMA = kBT | 根据目标电子温度 |
5. 离子与晶胞优化
5.1 IBRION:离子更新、MD、声子或过渡态方法
IBRION 的取值不都属于结构优化,其中还包括 MD、声子和过渡态方法。
主要合法取值
| IBRION | 功能 | 什么时候使用 |
|---|---|---|
| -1 | 不更新原子或晶胞 | 静态 SCF、BAND、DOS;配合 NSW = 0 |
| 0 | 分子动力学 | AIMD;POTIM 是时间步,单位 fs |
| 1 | RMM-DIIS 离子优化 | 自由度较多且 已接近极小值 |
| 2 | 共轭梯度优化 | 普通 OPT 的稳健默认选择 |
| 3 | 阻尼分子动力学优化 | 初始结构较差、离极小值较远时 |
| 5 | 有限差分声子,不利用对称性 | 当前不推荐;需不用对称性时才考虑 |
| 6 | 有限差分声子,利用对称性 | 常用有限位移 Γ 点声子 |
| 7 | DFPT 声子,不利用对称性 | 当前不推荐 |
| 8 | DFPT 声子,利用对称性 | 线性响应声子 |
| 11 | 从标准输入交互提供结构 | 特殊交互工作流 |
| 12 | 通过 Python 插件修改结构 | 自定义程序耦合 |
| 40 | IRC 计算 | 从过渡态沿内禀反应坐标跟踪 |
| 44 | 改进 dimer method | 搜索过渡态 |
IBRION = -1
不更新结构。常用:
ini
IBRION = -1
NSW = 0
不要写 IBRION = -1、NSW > 0,否则可能重复计算同一结构。
IBRION = 1
使用历史结构和力近似 Hessian,接近极小值时很快。
适合已经用 IBRION = 2 预优化、力较小、自由度较多的结构。初始结构很差、受力噪声大或电子自洽不稳时不适合。
通常需要可靠的力,并可配合 NELMIN = 4~8。
IBRION = 2
共轭梯度法,稳健,对 POTIM 不如 IBRION = 1/3 敏感,适合大多数普通 OPT。接近最低点时可能比 IBRION = 1 慢。
IBRION = 3
通过带阻尼的离子动力学逐渐降低力。
适合初始结构离最低点较远、结构大幅移动或 IBRION = 1 失败时。可先用 3 预优化,再切换 2 或 1。需要合理设置 POTIM 和 SMASS。
IBRION = 5、6、7、8
这些是声子计算:
- 5/6:有限差分;
- 7/8:DFPT;
- 6/8:利用对称性,通常显著降低计算量;
- 5/7:当前官方建议优先改用 6/8。
声子还需更严格 EDIFF、合理 NFREE、POTIM、超胞和 K 点。
5.2 NSW:最大离子步数
- 静态计算一般为 0。
- 默认值是 NSW = 0。
| NSW | 使用场景 |
|---|---|
| 0 | SCF、BAND、DOS、单点能 |
| 20~60 | 已接近稳定结构的精修 |
| 80~200 | 普通结构优化 |
| 更大 | 大尺度重构或 MD;应分段检查 |
5.3 ISIF:应力和结构自由度
ISIF = 0~8 完整对照
| ISIF | 原子受力 | 应力 | 优化原子 | 晶胞形状 | 晶胞体积 | 典型用途 |
|---|---|---|---|---|---|---|
| 0 | 是 | 否 | 是 | 否 | 否 | 固定晶胞 OPT,不需要应力;MD 或特殊昂贵方法 |
| 1 | 是 | 仅迹/总压力 | 是 | 否 | 否 | 固定晶胞 OPT,只关心总压力 |
| 2 | 是 | 完整 | 是 | 否 | 否 | 固定晶胞 OPT,同时检查完整应力 |
| 3 | 是 | 完整 | 是 | 是 | 是 | 三维体相全优化 |
| 4 | 是 | 完整 | 是 | 是 | 否 | 优化原子和晶胞形状,保持体积 |
| 5 | 是 | 完整 | 否 | 是 | 否 | 固定原子,只改变晶胞形状且保持体积 |
| 6 | 是 | 完整 | 否 | 是 | 是 | 固定原子,完全优化晶胞 |
| 7 | 是 | 完整 | 否 | 否 | 是 | 固定原子和形状,只等比例改变体积 |
| 8 | 是 | 完整 | 是 | 否 | 是 | 优化原子并只改变体积;VASP 6.4.1 起 |
Selective dynamics 与 ISIF
- ISIF 控制总体自由度;
- POSCAR 的 Selective dynamics 控制具体原子和方向。
它不能自动实现"只优化二维材料面内晶格而固定真空"的全部晶格约束。新版可结合 LATTICE_CONSTRAINTS,旧版常需分阶段或外部脚本。
ISIF ≥ 3 的精度要求
- 更充足的 ENCUT;
- PREC = Accurate;
- 收敛的 K 点;
- 最终检查应力;
- 不能只依赖 EDIFFG。
5.4 POTIM:结构步长、MD 时间步或声子位移
- POTIM 是实数,单位和意义取决于 IBRION。
| IBRION | POTIM 的含义 | 默认或常用起点 |
|---|---|---|
| 0 | MD 时间步,单位 fs | 必须设置;依最轻元素和温度 |
| 1 | RMM-DIIS 结构更新尺度 | 默认 0.5;较敏感 |
| 2 | 共轭梯度试探步尺度 | 默认 0.5;0.3~0.5 常用起点 |
| 3 | 阻尼动力学更新尺度 | 默认 0.5;与 SMASS 一起调 |
| 5、6 | 有限差分声子位移,单位 Å | VASP 5.1 起默认约 0.015 Å |
POTIM = 0.3 不是每步固定移动 0.3 Å。在 IBRION = 1、2、3 中,它只是内部缩放因子。
对 IBRION = 2,0.3 是较保守起点,0.5 是默认值。输出中的 trialstep 可用于估计:
text
建议的新 POTIM ≈ 当前 POTIM × trialstep
POTIM 太大会造成能量和力振荡、越过最低点、晶胞突变或异常短键;太小会让优化非常慢。
初始结构差、轻原子受力大、吸附物移动剧烈或晶胞振荡时可减小。
5.5 EDIFFG:离子优化停止条件
- EDIFFG 是实数,正、负、零含义不同。
- 默认是 EDIFFG = 10 × EDIFF,通常为正。
- 正式 OPT 一般主动设为负值。正值较少用于正式 OPT,因为能量变化小不一定代表所有原子受力小。
- ISIF = 3 时还要检查应力张量、外部压力、晶格常数和体积变化。
| EDIFFG | 停止条件 | 使用建议 |
|---|---|---|
| 正数 | 相邻两个离子步总能量变化小于 EDIFFG,单位 eV | 可用,但不如受力阈值直观 |
| 负数 | 所有原子受力范数小于绝对值,单位 eV/Å | OPT 最常用 |
| 0 | 不提前停止,执行到 NSW | 特殊测试 |
常见负值
| EDIFFG | 受力要求 | 常见用途 |
|---|---|---|
| -0.05 | 0.05 eV/Å | 粗略预优化 |
| -0.03 | 0.03 eV/Å | 一般预优化 |
| -0.02 | 0.02 eV/Å | 常规正式 OPT |
| -0.01 | 0.01 eV/Å | 精细结构、吸附、缺陷、能垒 |
| -0.005 或更严 | 0.005 eV/Å | 高精度任务;数值噪声必须更小 |
这些不是强制标准,应根据研究性质确定。
6. 文件输出
6.1 LWAVE:是否输出波函数
- 默认值是 .TRUE.;
- LH5 = .FALSE. 时通常输出 WAVECAR;
- LH5 = .TRUE. 时写入 vaspwave.h5;
- LWAVE 不影响本次能量、受力和结构,只控制输出。
| LWAVE | 含义 | 什么时候使用 |
|---|---|---|
| .TRUE. | 输出波函数 | 续算、后续静态或波函数后处理 |
| .FALSE. | 不输出波函数 | 不需要续算,节省磁盘和 I/O |
WAVECAR 不能盲目跨任务复用。改变 K 点、NBANDS、晶胞、ENCUT、POTCAR、自旋或 SOC 后要检查兼容性。
标准 BAND 改用线性 K 路径后,OPT/SCF 的 WAVECAR 通常不能按原 K 点直接复用。当前常用流程是 CHGCAR + ICHARG = 11。
6.2 LCHARG:是否输出电荷密度
- 默认值通常是 .TRUE.;
- 常规模式输出 CHGCAR 和 CHG;
- LH5 = .TRUE. 时电荷密度可能写入 vaspwave.h5;
- CHGCAR 可用于 ICHARG = 1 续算、ICHARG = 11 的 BAND/DOS、电荷密度差和 Bader 分析。
| LCHARG | 含义 | 什么时候使用 |
|---|---|---|
| .TRUE. | 输出电荷密度 | 续算、BAND、DOS、电荷分析 |
| .FALSE. | 不输出电荷密度 | 不需要后续读取,节省磁盘 |
三、 根据体系选择基础 OPT 设置
1 非磁性半导体或绝缘体三维体相
ini
ISPIN = 1
ISMEAR = 0
SIGMA = 0.05
IBRION = 2
ISIF = 3
EDIFFG = -0.02
前提是已确认非磁性,并且 ENCUT、K 点和晶胞优化精度已收敛。
2 明确的金属三维体相
ini
ISPIN = 1 # 若可能磁性则改为 2
ISMEAR = 1
SIGMA = 0.15 # 示例值;需根据 entropy T*S 测试
IBRION = 2
ISIF = 3
检查 entropy T*S,并测试 SIGMA 和 K 点。
3 磁性材料
ini
ISPIN = 2
MAGMOM = ...
LASPH = .TRUE.
还要构造不同磁序,比较最终能量和磁矩,必要时使用 DFT+U,并检查 ALGO。
4 表面或二维材料
ini
IBRION = 2
ISIF = 2
通常固定含真空的晶胞,只优化原子。只优化面内晶格时需要晶格约束或分阶段流程。
5 分子或团簇
ini
IBRION = 2
ISIF = 2
真空盒尺寸是人为隔离距离,不是平衡晶格,因此一般不用 ISIF = 3。
6 大超胞
可以测试:
ini
LREAL = Auto
ALGO = Fast
但应和 LREAL = .FALSE.、ALGO = Normal 比较。正式静态能量最好统一用同一高精度设置。
四、 同一体系连续计算时,哪些参数不能随意改?
"不能修改"不是程序禁止修改,而是修改后会改变理论模型、数值精度或能量参考,使结果不能直接比较。
1 OPT → SCF → BAND → DOS 中应一致的物理模型
| 参数或文件 | 是否应一致 | 原因 |
|---|---|---|
| POTCAR 类型和版本 | 必须一致 | 改变赝势就改变哈密顿量和价电子定义 |
| 元素顺序 | 必须一致 | POSCAR、POTCAR、MAGMOM、LDAU 按顺序对应 |
| 交换关联泛函 | 必须一致 | PBE、SCAN、HSE 是不同理论模型 |
| DFT+U 参数 | 必须一致 | U、J 改变结构、能带、磁矩和总能量 |
| 自旋设置和磁序 | 原则上一致 | 改变电子基态 |
| SOC/非共线设置 | 原则上一致 | 改变能级和波函数 |
| vdW 修正 | 必须一致 | 改变能量、层间作用和结构 |
| ENCUT | 对比任务应一致 | 避免不同基组误差 |
| LASPH | 应一致 | 改变 PAW 球内势和能量 |
2 可以随阶段改变的参数
| 参数 | 为什么可以改 | 典型变化 |
|---|---|---|
| NSW、IBRION、EDIFFG | 控制是否移动原子和停止条件 | OPT 有离子步;SCF/BAND/DOS 设 NSW = 0 |
| ISIF | 不同阶段是否允许晶胞变化 | OPT 用 2/3;静态不优化 |
| KPOINTS | 不同阶段采样目的不同 | OPT 适中;SCF/DOS 更密;BAND 走高对称路径 |
| ISMEAR、SIGMA | 优化稳定性和最终积分需求不同 | OPT 用展宽;DOS/静态常用 -5 |
| LORBIT、NEDOS | 只影响投影和 DOS 输出 | DOS 阶段打开 |
| LWAVE、LCHARG | 只控制输出 | 按续算和后处理需要调整 |
| ISTART、ICHARG | 阶段需要从头、自洽或固定密度 | 新 OPT 用 0/2;BAND 用 ICHARG = 11 |
3 可以采用分层理论,但必须说明
例如先 PBE 优化,再 HSE 做单点能或能带是允许的,但必须说明:
- 结构来自 PBE;
- 电子性质由 HSE 计算;
- 不能描述成全程 HSE 优化。
五、 计算前后检查清单
计算前
- POSCAR 是否有异常短键;
- POTCAR 顺序是否与 POSCAR 一致;
- ENCUT 和 K 点是否收敛;
- 是否可能有磁性;
- 金属和绝缘体是否选对 ISMEAR;
- 二维、表面或分子是否错误使用 ISIF = 3;
- 是否需要 DFT+U、SOC、vdW 或杂化泛函;
- WAVECAR 和 CHGCAR 是否兼容。
计算中
- 每个离子步是否达到 EDIFF;
- 是否反复达到 NELM;
- 能量和力是否振荡;
- 晶胞是否异常突变;
- 磁矩是否跳变;
- 是否频繁出现 ZBRENT;
- 原子是否形成异常短键。
计算结束后
- 是满足 EDIFFG,还是只达到 NSW;
- 最大原子受力是否满足要求;
- ISIF = 3 时最终应力是否足够小;
- 晶格常数、体积和键长是否合理;
- 是否落入不合理局部极小值;
- 是否需要最终静态 SCF;
- 后续 BAND、DOS 是否保持同一物理模型。
六、 例二
ini
# ============================================================
# 1. 启动设置
# ============================================================
SYSTEM = material_OPT # 计算名称,建议写明材料、泛函和计算类型
ISTART = 0 # 全新OPT:不读取旧WAVECAR
ICHARG = 2 # 全新OPT:由原子电荷叠加生成初始电荷密度
# ISTART = 1 # 普通续算时使用:读取已有WAVECAR
# ICHARG = 1 # 普通续算时使用:读取已有CHGCAR
# ISTART = 2 # 严格接续同一次变晶胞优化时可以考虑
# INIWAV = 1 # 从头计算时随机初始化波函数;通常保持默认即可
# ============================================================
# 2. 平面波与总体精度
# ============================================================
ENCUT = 500 # 平面波截断能;必须依据POTCAR和收敛测试确定
PREC = Accurate # 使用较高精度FFT网格,正式OPT一般推荐
LREAL = .FALSE. # 使用倒空间投影,适合精确受力和能量比较
LASPH = .TRUE. # 考虑PAW球内非球形贡献,d/f电子及DFT+U尤其重要
ADDGRID = .TRUE. # 增加辅助网格,通常可降低受力噪声
# LREAL = Auto # 数百原子大超胞可测试使用,以降低计算量
# GGA = PE # 明确指定PBE泛函时使用;应与整体计算方法一致
# ============================================================
# 3. 电子自洽
# ============================================================
ALGO = Normal # 稳定性较好的电子求解算法,正式OPT常用
EDIFF = 1E-6 # 每个离子步内的电子自洽收敛标准
NELM = 100 # 每个离子步最多进行100次电子迭代
NELMIN = 4 # 每个离子步至少进行4次电子迭代
# NELMDL = -5 # 特殊情况下先固定电荷优化波函数;普通计算不需要
# ALGO = Fast # 电子容易收敛时可用于加速预优化
# ALGO = All # Normal难收敛的磁性或复杂体系可尝试
# ALGO = Damped # HSE等杂化泛函常用;需替换上面的Normal
# TIME = 0.4 # 配合ALGO=Damped使用的阻尼步长
# ============================================================
# 4. 电子占据与展宽
# ============================================================
ISMEAR = 0 # 通用OPT设置,适合半导体、绝缘体和金属性未知体系
SIGMA = 0.05 # Gaussian展宽宽度,单位eV
# ISMEAR = 1 # 金属OPT时替换上面的ISMEAR=0
# SIGMA = 0.15 # 金属常用展宽起点,一般测试0.10~0.20 eV
# ISMEAR = -1 # 需要Fermi-Dirac占据时使用,普通OPT较少采用
# SIGMA = 0.05 # 与Fermi-Dirac占据配合的电子温度参数
# 不建议把ISMEAR=-5作为所有结构优化的通用设置
# ISMEAR=-5更适合最终静态能量和DOS计算
# ============================================================
# 5. 离子与晶胞优化
# ============================================================
IBRION = 2 # 使用共轭梯度法移动原子,普通OPT的稳妥选择
NSW = 150 # 最多进行150个离子步
ISIF = 3 # 三维体相:优化原子、晶胞形状和晶胞体积
POTIM = 0.3 # 原子移动步长尺度
EDIFFG = -0.02 # 最大残余力小于0.02 eV/Å时停止
PSTRESS = 0 # 不额外施加外部压力
# ISIF = 2 # slab、分子、含真空层体系或固定晶格时使用
# ISIF = 4 # 固定晶胞体积,优化原子和晶胞形状
# ISIF = 6 # 固定原子,只优化晶胞形状和体积
# ISIF = 7 # 固定原子和晶胞形状,只改变体积
# IBRION = 1 # 已接近稳定结构时可用于加快最后阶段优化
# IBRION = 3 # 初始结构较差或优化剧烈振荡时可尝试
# POTIM = 0.1 # 原子移动过大或优化振荡时减小步长
# EDIFFG = -0.05 # 预优化可采用相对宽松的受力标准
# EDIFFG = -0.01 # 精细优化可采用更严格的受力标准
# PSTRESS = 100 # 施加10 GPa外部压力时使用;1 GPa约等于10 kB
# ============================================================
# 6. 磁性设置
# ============================================================
ISPIN = 1 # 普通非磁性体系使用
# ISPIN = 2 # Fe、Co、Ni、Mn、Cr、自由基和磁性缺陷等使用
# MAGMOM = ... # 按POSCAR原子顺序设置每个原子的初始磁矩
# NUPDOWN = ... # 固定总自旋差;只在研究特定自旋态时使用
# 示例:
# MAGMOM = 4*3.0 4*2.0 4*1.0 4*0.0
# 前4个原子初始磁矩3.0,接下来分别为2.0、1.0和0.0
# ============================================================
# 7. 对称性与结构约束
# ============================================================
ISYM = 2 # 完美晶体使用对称性,提高计算效率
# ISYM = 0 # SQS、缺陷、吸附、局域畸变体系通常使用
# ISYM = -1 # SOC、非共线磁性、磁各向异性常使用
# 具体固定哪些原子不在INCAR中设置
# slab底层固定、部分方向固定等,应在POSCAR中使用Selective dynamics
# ============================================================
# 8. DFT+U
# ============================================================
# LDAU = .TRUE. # 开启DFT+U
# LDAUTYPE = 2 # 使用常见的Dudarev形式
# LDAUL = 2 -1 # 对第一类元素的d轨道加U,第二类元素不加U
# LDAUU = 4.0 0.0 # 各类元素的U值,顺序对应POSCAR元素顺序
# LDAUJ = 0.0 0.0 # 各类元素的J值
# LDAUPRINT = 1 # 输出DFT+U相关信息
# LMAXMIX = 4 # d电子体系提高PAW球内电荷展开阶数
# LMAXMIX = 6 # f电子体系使用更高阶数
# DFT+U参数一旦确定,OPT、SCF、BAND、DOS必须保持一致
# ============================================================
# 9. 自旋-轨道耦合SOC
# ============================================================
# LSORBIT = .TRUE. # 开启SOC,Pb、Bi、Sb、Te等重元素可评估
# ISYM = -1 # SOC计算通常关闭普通对称性处理
# SAXIS = 0 0 1 # 设置自旋量子化轴
# GGA_COMPAT = .FALSE. # SOC高精度计算中常关闭GGA兼容近似
# LORBIT = 11 # 输出原子和轨道投影信息
# SOC结构优化计算量较高,一般先判断SOC是否会明显影响晶格和键长
# ============================================================
# 10. 范德华相互作用
# ============================================================
# IVDW = 11 # 使用D3零阻尼修正
# IVDW = 12 # 使用D3(BJ)修正,二者选择其一
# 层状材料、分子晶体、有机-无机杂化晶体等可能需要范德华修正
# 所有对比材料必须使用相同的范德华方法
# ============================================================
# 11. 杂化泛函HSE
# ============================================================
# LHFCALC = .TRUE. # 开启杂化泛函
# HFSCREEN = 0.2 # HSE06的屏蔽参数
# AEXX = 0.25 # 精确交换比例
# ALGO = Damped # 替换上面的ALGO=Normal
# TIME = 0.4 # Damped算法的步长参数
# PRECFOCK = Fast # 控制精确交换部分的计算精度和成本
# HSE直接优化结构计算量很大,通常只在确有必要时使用
# ============================================================
# 12. meta-GGA/SCAN
# ============================================================
# METAGGA = SCAN # 使用SCAN泛函
# LMIXTAU = .TRUE. # 混合动能密度,常用于改善meta-GGA收敛
# LASPH = .TRUE. # SCAN计算应保留非球形PAW贡献
# ============================================================
# 13. slab、表面和非对称体系
# ============================================================
# ISIF = 2 # 含真空层的slab只优化原子,不优化整个晶胞
# ISYM = 0 # 吸附或非对称表面一般关闭对称化
# LDIPOL = .TRUE. # 开启偶极修正
# IDIPOL = 3 # 真空沿z方向时,在z方向施加偶极修正
# DIPOL = 0.5 0.5 0.5 # 偶极修正参考位置,需结合体系中心调整
# slab底层原子是否固定应在POSCAR中设置Selective dynamics
# ============================================================
# 14. 带电体系
# ============================================================
# NELECT = ... # 手动改变总电子数,用于带电缺陷或带电吸附体系
# LDIPOL = .TRUE. # 带电或强偶极体系可考虑偶极修正
# IDIPOL = 3 # 根据真空方向选择修正方向
# NELECT不能凭氧化态直接填写,应根据POTCAR总价电子数和目标电荷计算
# ============================================================
# 15. 电子不收敛备用参数
# ============================================================
# ALGO = All # Normal持续不收敛时可以尝试
# AMIX = 0.10 # 减小总电荷混合幅度,降低电子振荡
# BMIX = 0.0001 # 使电荷混合接近缓慢线性混合
# AMIX_MAG = 0.40 # 减小磁化密度混合幅度
# BMIX_MAG = 0.0001 # 减缓磁化密度振荡
# MAXMIX = 20 # 控制电荷混合所保留的历史信息
# NELM = 150 # 确认方法合理后再适度增加最大电子步数
# 这些参数不是常规必开项,只在观察到明确的电子振荡后使用
# ============================================================
# 16. 离子优化不稳定备用参数
# ============================================================
# IBRION = 3 # 初始结构较差时使用阻尼式优化
# POTIM = 0.10 # 减小原子移动步长
# NSW = 200 # 复杂体系适当增加最大离子步数
# 如果存在极短键或原子重叠,应先修改初始结构,而不是只增加NSW
# ============================================================
# 17. 文件输出
# ============================================================
LWAVE = .TRUE. # 保存最终WAVECAR,方便续算
LCHARG = .TRUE. # 保存最终CHGCAR,方便续算
NWRITE = 2 # 输出常规详细程度的计算信息
# LWAVE = .FALSE. # 大体系预优化、不需要续算时可关闭
# LCHARG = .FALSE. # OPT后一定重新做SCF时可以关闭
# LVTOT = .TRUE. # 输出总局域势到LOCPOT;普通OPT不需要
# LVHAR = .TRUE. # 输出离子势与Hartree势;普通OPT不需要
# LELF = .TRUE. # 输出ELF;通常应在最终SCF阶段计算
# LAECHG = .TRUE. # 输出全电子电荷相关文件;Bader分析常在SCF阶段使用
# ============================================================
# 18. 并行设置
# ============================================================
# NCORE = 13 # 每个轨道组使用的核心数;必须根据计算节点调整
# KPAR = 2 # 将K点分组并行;K点较多时可提高效率
# 并行参数主要影响速度和内存,不应改变材料的物理结果
强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
引用文本