做了十几年DFT计算,我越来越觉得建模是整个计算流程中技术含量最高的环节。跑VASP本身不难,INCAR参数有手册可查,K点有标准方案,但模型搭错了——表面slab厚度不够导致上下表面耦合、缺陷超胞太小导致缺陷-缺陷周期性相互作用、掺杂浓度和实验对不上——这些问题往往要等到结果分析阶段才暴露,返工成本极高。

我带过一个博士生做Ga₂O₃的缺陷态研究,他建了个2×2×1的超胞放一个氧空位,跑完DOS发现缺陷能级位置和实验光致发光峰对不上。我一看他的模型,超胞c方向只取了1个晶胞——Ga₂O₃的c轴约12.2Å,缺陷在c方向的周期镜像只隔了12Å,缺陷态波函数和周期镜像明显重叠。改成2×2×2超胞后缺陷能级下移了0.4eV,和实验值吻合。这种建模错误不是参数能救的。
DFT计算建模的起点通常是一个CIF文件,来源可能是Materials Project、ICSD数据库或实验文献。但CIF文件不能直接拿来跑计算,必须经过验证和预处理。
第一步是结构合理性检查。用VESTA打开CIF,查看原子坐标、占据率和对称性。数据库里的结构有时存在占据率不全(部分占据位点)或对称性标注错误的问题。我做β-Ga₂O₃的建模时,从Materials Project下载的CIF文件里Ga的Wyckoff位置占据率是1.0,但实际晶体中Ga有两种不同的配位环境(四面体和八面体),必须确认CIF是否正确区分了这两种Ga位点。
第二步是空间群验证。用spglib或Phonopy对结构做对称性分析,确认空间群和CIF标注一致。有时数据库结构经过高通量计算自动化处理,对称性可能和原始实验结构有偏差。空间群错了,高对称K点路径就跟着错,能带计算结果完全不可信。
第三步是晶格常数来源确认。数据库给出的晶格常数可能是DFT优化值(PBE级别),也可能是实验值。如果是DFT优化值,你拿来做计算时需要再做一次结构优化;如果是实验值,在300K下测的晶格常数和0K下的DFT优化值之间有热膨胀差异,氧化物体系差异约0.5%-1%。
表面计算是DFT建模中最容易出问题的场景。slab太薄,上下表面电子态耦合;真空层太薄,周期镜像之间波函数重叠;真空层太厚,K点在真空方向取1不够收敛。
slab厚度的判断标准是体相性质收敛。以TiO₂(110)表面为例,我从4层slab开始逐步增加到12层,监控表面能和表面弛豫量。6层以下表面能变化超过0.05J/m²,8层以上变化小于0.01J/m²,说明8层slab足够收敛。不同材料的收敛速度不同,离子晶体比共价晶体快,金属最慢——Cu(111)表面需要10-12层才能收敛。
真空层厚度一般取15-20Å。低于15Å时周期镜像的静电势没有衰减到零,高于20Å纯粹浪费计算资源。有一个例外:极性表面(如GaAs(111)的Ga面或As面)需要在真空层中加偶极修正(LDIPOL=.TRUE.,IDIPOL=3),否则slab两侧的静电势不连续,功函数计算完全不准。偶极修正会引入一个额外的电偶极矩来补偿slab的极性,修正后真空能级在slab两侧可以差2-3eV——这就是极性表面的固有特征。
在做DFT计算建模的表面吸附体系时,还有一个关键点:吸附分子的覆盖度必须和实验条件对应。实验上在低覆盖度(0.25ML)下做的吸附实验,建模时如果用了1.0ML(每个表面位点都吸附分子),吸附能可能偏差超过1eV,因为吸附分子之间的排斥相互作用在高覆盖度下显著。
缺陷计算的超胞设计有一个核心原则:缺陷态波函数和周期镜像之间的相互作用必须足够小。这个”足够小”的定量标准取决于缺陷态的局域化程度。
浅能级缺陷(如Si中的P掺杂)的缺陷态波函数扩展范围大,需要很大的超胞才能消除周期性相互作用。4×4×4的超胞(64个原子)对Si中的P掺杂来说,缺陷-缺陷距离约21.7Å,缺陷形成能的收敛误差仍有0.1-0.2eV。深能级缺陷(如Ga₂O₃中的氧空位)的缺陷态更局域化,3×3×3的超胞(80个原子)通常就够收敛。
判断超胞是否够大的方法是做尺寸收敛测试。从2×2×2开始逐步增大超胞,监控缺陷形成能的变化。当超胞尺寸翻倍后形成能变化小于0.1eV时,认为收敛。我的经验是金属体系比半导体体系需要更大的超胞,因为金属中的屏蔽效应使得缺陷态更扩展。
缺陷电荷态的处理是另一个容易出错的地方。带电缺陷(如V_O²⁺)在周期性边界条件下会引入一个均匀补偿背景电荷,这个背景电荷和缺陷之间的库仑相互作用是人为的,需要做有限尺寸修正。常用的修正方案有Makov-Payne修正和Lany-Zunger修正,修正量可以达到0.5-1eV。不做修正的带电缺陷形成能,超胞从2×2×2到3×3×3可能变化1eV以上——这种结果发文章会被审稿人直接质疑。
掺杂体系的建模核心是掺杂浓度。实验中掺杂浓度通常用at%或wt%表示,建模时需要换算成超胞中的替位原子数。2×2×2的超胞中替换1个原子,掺杂浓度是1/N_total(N_total是超胞总原子数)。TiO₂的2×2×2超胞有48个原子,替换1个Ti对应2.08at%的掺杂浓度。
浓度匹配只是第一步,K点网格也必须和超胞尺寸匹配。体相TiO₂用7×7×3的K点网格收敛,2×2×2超胞对应的K点网格大约是4×4×2(体相K点除以超胞倍数)。这个对应关系不是精确的除法,但作为起点是可靠的。实际操作中做一个K点收敛测试确认即可。
反占位缺陷(anti-site)的建模需要额外注意结构对称性。比如BaTiO₃中Ba占Ti位(Ba_Ti),替位后局部对称性从Ti的八面体配位变成Ba的十二配位环境,结构弛豫量很大。建模时必须给够弛豫步数(NSW≥200),EDIFFG=-0.01eV/Å,否则结构没收敛后续所有性质计算都不准。
在DFT计算建模的实践中,掺杂建模还有一个容易被忽略的细节:磁矩初值。过渡金属掺杂的氧化物体系,掺杂位的初始磁矩必须合理设置。Mn掺杂ZnO,Mn²⁺的d⁵高自旋态磁矩5μB,如果INCAR里MAGMOM设成0或不设,自洽计算可能收敛到错误的低自旋态。我的做法是在INCAR中显式指定每个原子的初始磁矩,过渡金属位设3-5μB,O位设0。
模型搭建完成后,在提交计算之前过一遍这个清单,能避免80%的返工。
第一项,对称性验证。用spglib检查超胞的对称性,确认空间群和预期一致。有时手动扩胞会破坏对称性,导致不可约K点数异常增多。
第二项,原子间距检查。用VESTA查看最近邻原子间距,确认没有异常短的键长(<0.5Å),这通常是原子坐标输入错误的信号。
第三项,电荷中性检查。超胞中所有原子的价电子总数必须等于POTCAR中价电子数之和。替位掺杂后电子数变了,体系可能变成带电状态,需要通过增加/减少电子(NELECT参数)来补偿,或者在INCAR中显式设置电子数。
第四项,K点收敛测试。对体相超胞做3×3×3、5×5×5、7×7×7的K点收敛测试,确认能量收敛到1meV/atom。表面slab在真空方向取1,面内方向需要加密。
第五项,POTCAR一致性。同一个项目里所有计算必须用同一版本的POTCAR。PAW势的2012版和2015版在某些元素上的差异可达0.3eV,混用会导致结果不可比。
第六项,CONTCAR接力。结构优化→静态计算→能带计算的流程中,每一步都从前一步的CONTCAR出发。手动复制CONTCAR到下一步的POSCAR时,检查文件是否完整(没有截断)。
回过头看,DFT计算建模的核心不在于软件操作,而在于对物理问题的预判能力。做表面计算之前先问自己:这个表面的极性如何?需不需要偶极修正?slab厚度够不够收敛表面能?做缺陷计算之前先判断:缺陷态是局域的还是扩展的?超胞够不够大?带电缺陷需不需要有限尺寸修正?
这些预判能力来自对具体体系的物理理解,不是看教程能学会的。我带学生的时候,建模型之前先让他们写一段话描述这个体系的物理特征——晶体结构类型、键合特征、电子结构特征、缺陷态的预期局域化程度。描述清楚了,建模方案自然就出来了。描述不清楚,说明对体系的理解还不够,这时候急着跑计算就是在浪费时间。
建模这件事,值得花整个项目30%以上的时间。模型对了,后面的计算是水到渠成;模型错了,再精确的参数和再高级的泛函都只是在错误的基础上堆砌精度。
CP2K计算能带:大体系电子结构模拟的混合基组方案
能带理论计算:固体能带结构的DFT模拟方法与工程应用
CP2K计算能带:混合基组DFT方法在周期性体系中的实战应用
CP2K分子动力学模拟详解:大体系加速策略与GPW方法实战
CP2K吸附能计算:混合基组在大体系表面吸附上的效率优势和精度陷阱
CP2K计算声子谱:从力常数矩阵到有限位移法的关键步骤
材料能带DFT计算:带隙预测与缺陷态分析的工程实践
力学有限元分析:从材料本构到应力判据的工程实战
DFT计算能带结构:高对称路径选取与投影能带分析的实战经验
DFT计算建模:从晶体结构到超胞设计的实战经验与避坑指南
DFT计算带隙:从PBE低估到HSE06修正的完整实战路径
DFT计算孔径分布:多孔材料N₂吸附等温线的从头算模拟
DFT计算分析:能带态密度电荷密度三层数据如何串联解读
DFT计算内电场:铁电材料极化翻转机制从头算起
DFT计算详解:VASP参数选择让新手少走两年弯路
高斯定理计算电场强度:对称电荷分布的精确求解路径
高斯静电势计算:从理论到实操的完整指南
高斯计算电场强度:参数选择与精度控制的实践路径
高斯计算在有机共轭分子电子结构分析中的基组选择与计算精度
GROMACS计算自由能:FEP与热力学积分的高精度实施方案
高斯静电势计算:Gaussian分子表面静电势映射的完整技术方案
高斯计算结合能:Gaussian在分子相互作用能量量化中的实战方法
Gaussian计算在有机光伏分子设计中的电子结构精确求解