一、基础理论与计算准备
差分电荷密度(Differential Charge Density, DCD)反映体系形成过程中的电荷重新分布
硬件要求:建议使用多核服务器(≥16 核),内存≥64GB,磁盘空间≥1TB
软件配置:VASP 5.4.4/6.3.0 版本,并行库(OpenMPI/Intel MPI),赝势库(PBE/PAW)
必要工具:Python(NumPy, SciPy),可视化软件(VESTA, XCrysDen)
二、计算流程详解
# 创建O原子计算目录
mkdir O_atom && cd O_atom
# POSCAR文件(单O原子,置于大晶胞中心)
cat > POSCAR << EOF
O atom
1.0
20.0 0.0 0.0
0.0 20.0 0.0
0.0 0.0 20.0
O
1
Cartesian
0.0 0.0 0.0
EOF
# INCAR参数设置
cat > INCAR << EOF
SYSTEM = O atom
ISTART = 0 # 新计算
ICHARG = 2 # 原子电荷密度
ENCUT = 400 # 平面波截断能(eV)
ISMEAR = 0 # Gaussian展宽
SIGMA = 0.05 # 展宽参数
NELM = 60 # 最大自洽循环数
PREC = Accurate # 精度设置
EOF
# KPOINTS设置(单点计算)
cat > KPOINTS << EOF
Gamma
0
Gamma
1 1 1
0 0 0
EOF
# 提交计算
mpirun -np 8 vasp_std > out
# 创建完整体系计算目录
mkdir TiO2_O2 && cd TiO2_O2
# POSCAR文件(包含TiO₂表面和吸附的O₂分子)
# ... [此处省略具体结构] ...
# INCAR参数设置(与孤立原子类似,但ICHARG需调整)
cat > INCAR << EOF
SYSTEM = TiO2_O2
ISTART = 0
ICHARG = 2 # 初始电荷密度由原子叠加生成
ENCUT = 400
ISMEAR = 0
SIGMA = 0.05
NELM = 60
PREC = Accurate
LCHARG = .TRUE. # 保存电荷密度文件
LORBIT = 11 # 保存投影电荷密度
EOF
# KPOINTS设置(使用适当的k点网格)
cat > KPOINTS << EOF
Automatic mesh
0
Monkhorst-Pack
3 3 1
0 0 0
EOF
# 提交计算
mpirun -np 16 vasp_std > out
# 创建差分计算目录
mkdir diff_chg && cd diff_chg
# 复制必要的CHGCAR文件
cp ../TiO2_O2/CHGCAR CHGCAR_system
cp ../Ti_atom/CHGCAR CHGCAR_Ti
cp ../O_atom/CHGCAR CHGCAR_O
使用VESTA处理得到差分电荷密度图
关键参数优化与注意事项
1. 赝势选择
对于过渡金属体系(如 Fe、Co、Ni),建议使用 PAW_PBE_54 赝势
处理含有 f 电子的体系(如稀土元素)时,需启用 RWIGS 参数
2. 精度控制
ENCUT 应比默认值高 20%-30%,确保电荷密度收敛
对于金属体系,建议使用 ISMEAR = -5(tetrahedron method)
3. 计算效率优化
使用 IALGO = 38(RMM-DIIS 算法)加速 SCF 收敛
设置 NCORE 参数(通常为 4-8)优化内存使用
四、结果分析与可视化
1. 使用 VESTA 可视化差分电荷密度
# 加载差分电荷密度文件
vesta CHGCAR_diff
# 设置等值面参数
- 选择Isosurface功能
- 设置Positive值为0.005 e/ų(电子聚集区域)
- 设置Negative值为-0.005 e/ų(电子耗尽区域)
- 调整颜色映射(如Blue-White-Red)
2. Bader 电荷分析
# 准备Bader分析
cp CHGCAR_diff ACF.dat # 复制差分电荷密度文件
bader CHGCAR_diff -ref CHGCAR_system # 基于完整体系划分
# 分析结果
cat ACF.dat # 查看各原子的电荷得失
常见问题与解决方案
1. CHGCAR 文件不兼容问题
确保所有 CHGCAR 文件具有相同的网格大小(NGXF, NGYF, NGZF)
使用 vaspkit 的 101 任务调整网格一致性
2. 计算收敛困难
尝试使用 ALGO = All + ISTART = 2 进行二次 SCF 计算
对金属体系启用 AMIX = 0.2, BMIX = 0.001
3. 可视化效果不佳
若等值面显示不连续,可尝试降低等值面值(如 0.002 e/ų)
对于复杂体系,建议结合电子局域函数(ELF)分析