VASP计算层错能(SFE)全攻略2
目录
步骤1: 准备Ni单胞
步骤2: 构建超胞
步骤3: 引入堆垛层错
步骤4: 运行VASP计算
步骤5: 计算层错能
注意事项
层错能(Stacking Fault Energy, SFE)是衡量金属材料中堆垛层错形成难易程度的重要参数,对于镍(Ni)这样的面心立方(FCC)金属,计算SFE有助于理解其变形行为。上期介绍了层错能的定义和VASP计算层错能的一般流程,本期将以计算纯金属Ni的层错能为例,给出具体的计算步骤。(需注意:所有计算需在Linux环境下运行,或者具备远程提交任务的条件)
上期内容回顾:
https://blog.csdn.net/weixin_50519490/article/details/150770544?spm=1001.2014.3001.5501https://blog.csdn.net/weixin_50519490/article/details/150770544?spm=1001.2014.3001.5501
步骤1: 准备Ni单胞
纯Ni为FCC结构,空间群为Fm-3m,晶格常数a=3.52 Å。首先创建Ni单胞的POSCAR文件。
- atomsk进行单胞构建:让[110] [-110] [001]分别沿着atomsk的x, y, z方向,注意.cfg文件可被多种可视化软件打开,所以推荐设置为.cfg格式。随后可以用VESTA软件将格式转为VASP可以读取的POSCAR文件。实际计算中需扩展为超胞(见步骤2)。
atomsk --create fcc 3.52 Ni orient [112] [110] [111] Ni.cfg
步骤2: 构建超胞
为引入层错,需沿[111]方向创建超胞(例如,6-12个原子层)。使用Materials studio,atomsk,VESTA或ASE工具生成超胞。
- atomsk扩胞:例如要构建2*3*4的supercell,此时沿[111]方向有12层原子。。随后可以用VESTA对文件格式进行转换。
atomsk Ni.cfg -duplicate 2 3 4 supercell.xyz
步骤3: 引入堆垛层错
本征堆垛层错(ISF)通过修改原子位置模拟。例如,在超胞中部移除一层原子或改变堆垛顺序(ABCAB|C|ABC → ABCAB|A|BCABC)。
方法:
- 使用Python脚本(如ASE库)移动原子:
import ase from ase.build import stack_fault # 加载完美超胞 atoms = ase.io.read('POSCAR_perfect') # 引入层错(在z=0.5位置) atoms_fault = stack_fault(atoms, layer_index=6, offset=0.5) ase.io.write('POSCAR_fault', atoms_fault, format='vasp')
- 使用atomsk进行层错能构建:将上半部超胞沿着x方向平移1.463Å。(-wrap指令避免原子溢出)
atomsk supercell.xyz -shift above 0.5*box Z 1.463 0.0 0.0 -wrap Ni_SF.xsf
步骤4: 运行VASP计算
准备VASP输入文件,分别计算完美晶体和有层错结构的能量。
- INCAR文件关键参数:
SYSTEM = Ni SFE Calculation PREC = Accurate ENCUT = 500 # 截断能,需测试收敛 ISMEAR = 1; SIGMA = 0.1 # 金属体系推荐 IBRION = -1 # 静态计算 NSW = 0 LREAL = .FALSE. ALGO = Fast EDIFF = 1e-6 # 能量收敛标准
- KPOINTS文件: 使用Monkhorst-Pack网格。
- POTCAR文件: 选择Ni的PAW赝势(如POTCAR_Ni)。
- 执行命令:
# 完美晶体计算 mpirun -np 4 vasp_std > log_perfect.out # 层错结构计算 cp POSCAR_fault POSCAR mpirun -np 4 vasp_std > log_fault.out
如果需要远程提交任务,请参考往期内容:VASP新手入门,远程超算提交——1 准备文件_vasp提交计算的命令-CSDN博客:
https://blog.csdn.net/weixin_50519490/article/details/143467594https://blog.csdn.net/weixin_50519490/article/details/143467594
步骤5: 计算层错能
首先从OUTCAR提取总能量E_0(完美超胞的能量)和E_SF(构建层错后体系能量)。
层错能由能量差除以层错面积给出: γ = (E_SF - E_0)/A 其中:
- E_SF和E_0单位为eV,从OUTCAR获取。
- A为层错面积(单位为Ų)。
示例计算:
- 假设E_0 = -1000.0 eV, E_SF = -999.5 eV。
- a = 3.52 Å, 假设沿x,y方向上扩胞为3*3,则A =
*3.52*3.52*3*3 ≈ 96.6 Ų。
- γ = ((-999.5) - (-1000.0)) / 96.6 ≈ 0.0052 eV/Ų ≈ 82.9 mJ/m² 。
注意事项
- 收敛测试: 必须测试K-点网格、截断能(ENCUT)和超胞尺寸的收敛性(例如,增大密排面方向原子层N至18层检查能量变化)。
- 赝势选择: 使用PAW赝势,并验证其对Ni的结合能是否准确(实验晶格常数约3.52 Å)。
- 误差控制: 层错能对原子位置敏感,建议使用ISIF=2优化离子位置(但静态计算更高效)。计算后检查OSZICAR确保能量收敛。
- 扩展: 对于更精确结果,可考虑广义层错能(GSFE)曲线,通过多点计算拟合。
- 工具推荐: 使用ASE、pymatgen或VASPKIT辅助脚本生成结构,避免手动错误。
通过以上步骤,可以系统计算Ni的层错能。
参考:Effect of alloying elements on stacking fault energies of γ and γʹ phases in Ni-based superalloy calculated by first principles.