ABACUS计算模拟实例 | VI. 空位形成能与间隙能计算
©️ Copyright 2023 @ Authors
作者:Jinghang Wang (AISI电子结构团队实习生) 📨
日期:2024-5-25
共享协议:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
快速开始:由于本案例需要比较长的计算时间(使用32核需要4h以上),因此本案例不会要求完成具体计算,只涉及预处理和结果分析,故使用c2_m4_cpu即可。如果你想进行具体计算,点击上方的 开始连接 按钮,选择 ABACUS:3.6.3-user-guide 镜像及 c64_m128_cpu 节点配置,并在连接后点击右上方的切换内核,选择Bash内核稍等片刻即可运行。
🎯 本教程旨在帮助初学者学习使用ABACUS使用完成空位形成能与间隙能的计算
本节教程目录如下:
1. 空位形成能和间隙能的定义
2. 空位形成能和间隙能的计算
3. 空位形成能和间隙能的计算结果讨论
在使用ABACUS进行计算时,所有操作都需要在指定的文件夹目录下进行。我们已经准备好了数据集ABACUS-cases,,其中文件夹“6”对应本节教程。
relax scf
relax
:完美晶格的BCC-W、含有一个空位的BCC-W、一个四面体间隙被Cr原子占据的BCC-W、一个八面体间隙被Cr原子占据的BCC-W的弛豫计算,以获得W原子的结合能。
scf
:Cr单胞的单点能计算,以获得Cr原子的结合能。
1. 空位形成能和间隙能的定义
金属及其金属间化合物中的缺陷 (如间隙、空位、堆垛层错等) 对材料的动力学和热力学性质具有重要影响。这些缺陷可以表现为原子键能、熔点、电阻率、弹性模量、德拜温度、扩散活化能、吉布斯自由能、界面能、热容和微观结构等的变化。单空位形成能是理解合金在机械变形或热处理过程中形成空位的原理的关键概念。至于间隙,金属体系通常包含四面体间隙和八面体间隙两种。我们将单个元素原子占据某个间隙的能量定义为间隙能。 在本节中,我们以W-Cr体系为例介绍空位形成能和间隙能的第一性原理计算。金属钨 (W) 因其高熔点、高热导率等优异性能而被认为是聚变堆托卡马克装置中最具潜力的面 向等离子体材料 (plasma-facing material,PFM)。然而,纯钨容易发生辐照脆化,而将Cr元素引入纯钨中有助于抑制这一现象。作为PFM的钨及其合金在等离子体辐照的工作环境下容易发生级联碰撞。级联碰撞过程结束后可能产生过饱和的空位和间隙原子这两种点缺陷,从而降低材料的使用性能。引入合金元素将改变这一过程,因此有必要研究合金元素对空位形成及迁移行为的影响。
单个空位的形成能定义为
上式中:n为完整晶胞中的原子总数;Ef 和Ei分别为含一个空位和不含空位的晶胞总能量;V为不含空位的完整晶胞(即n个原子)的体积;V'为含空位的晶胞(即n-1个原子和一个空位)的平衡体积(平衡体积是指晶胞中的原子以及晶胞本身大小都弛豫到能量极小值点时的体积);Ec表示一个单独的基质原子在完美晶格中的结合能,易知Ei(n,V)=n·Ec 。当只含一个W空位时,Ec就表示单个独立 W原子的结合能。
单个间隙原子的形成能定义为
式中:n为计完整晶胞中的原子总数;Ef和Ei分别为一个间隙位置被一个原子占据的晶胞和不含间隙原子的晶胞总能量;V为不含间隙原子的完整晶胞(即n个原子)的体积;V'为含间隙原子的晶胞(包含n+1个原子,n个基体原子和1个间隙原子)的平衡体积;Ec表示一个单独的间隙原子的能量。
计算完美晶体、含有空位的体系、含有间隙原子的体系的能量时首先需要进行结构优化,因为空位和间隙原子的产生可能会导致局部的晶格畸变。从而使体系的晶格常数以及体积发生一定的变化。
多数情况下,间隙原子出现在宿主晶胞中时会倾向于占据高对称性的位点。BCC晶体中的高对称间隙位点有四面体和八面体两种,如图1所示。
2. 空位形成能和间隙能的计算
我们构建了完美晶格的BCC-W、含有一个空位的BCC-W、一个四面体间隙被Cr原子占据的BCC-W、一个八面体间隙被Cr原子占据的BCC-W以及Cr单胞的STRU文件。在初始结构中,完美晶体共有54个原子,为了构造一个空位,我们移除了位于原点(0.0,0.0,0.0)处的W原子。Cr原子则分别掺入四面体和八面体间隙位点。
Cr_ONCV_PBE-1.0.upf STRU_W_v Cr_gga_9au_100Ry_4s2p2d1f.orb STRU_W_v_cell-relax INPUT W_ONCV_PBE-1.0.upf KPT W_gga_10au_100Ry_4s2p2d2f.orb OUT.ABACUS abacus.json STRU run_cell-relax_W.log STRU_W run_cell-relax_W_Cr_o.log STRU_W_Cr_o run_cell-relax_W_Cr_t.log STRU_W_Cr_o_cell-relax run_cell-relax_W_v.log STRU_W_Cr_t script.sh STRU_W_Cr_t_cell-relax time.json STRU_W_cell-relax
ATOMIC_SPECIES W 183.84 W_ONCV_PBE-1.0.upf NUMERICAL_ORBITAL W_gga_10au_100Ry_4s2p2d2f.orb LATTICE_CONSTANT 1.889726 LATTICE_VECTORS 9.4950000000 0.0000000000 0.0000000000 0.0000000000 9.4950000000 0.0000000000 0.0000000000 0.0000000000 9.4950000000 ATOMIC_POSITIONS Direct W 0.0000000000 53 0.1666700000 0.1666700000 0.1666700000 1 1 1 mag 0.0 0.3333300000 0.0000000000 0.0000000000 1 1 1 mag 0.0 0.5000000000 0.1666700000 0.1666700000 1 1 1 mag 0.0 0.6666700000 0.0000000000 0.0000000000 1 1 1 mag 0.0 0.8333300000 0.1666700000 0.1666700000 1 1 1 mag 0.0 0.0000000000 0.3333300000 0.0000000000 1 1 1 mag 0.0 0.1666700000 0.5000000000 0.1666700000 1 1 1 mag 0.0 0.3333300000 0.3333300000 0.0000000000 1 1 1 mag 0.0 0.5000000000 0.5000000000 0.1666700000 1 1 1 mag 0.0 0.6666700000 0.3333300000 0.0000000000 1 1 1 mag 0.0 0.8333300000 0.5000000000 0.1666700000 1 1 1 mag 0.0 0.0000000000 0.6666700000 0.0000000000 1 1 1 mag 0.0 0.1666700000 0.8333300000 0.1666700000 1 1 1 mag 0.0 0.3333300000 0.6666700000 0.0000000000 1 1 1 mag 0.0 0.5000000000 0.8333300000 0.1666700000 1 1 1 mag 0.0 0.6666700000 0.6666700000 0.0000000000 1 1 1 mag 0.0 0.8333300000 0.8333300000 0.1666700000 1 1 1 mag 0.0 0.0000000000 0.0000000000 0.3333300000 1 1 1 mag 0.0 0.1666700000 0.1666700000 0.5000000000 1 1 1 mag 0.0 0.3333300000 0.0000000000 0.3333300000 1 1 1 mag 0.0 0.5000000000 0.1666700000 0.5000000000 1 1 1 mag 0.0 0.6666700000 0.0000000000 0.3333300000 1 1 1 mag 0.0 0.8333300000 0.1666700000 0.5000000000 1 1 1 mag 0.0 0.0000000000 0.3333300000 0.3333300000 1 1 1 mag 0.0 0.1666700000 0.5000000000 0.5000000000 1 1 1 mag 0.0 0.3333300000 0.3333300000 0.3333300000 1 1 1 mag 0.0 0.5000000000 0.5000000000 0.5000000000 1 1 1 mag 0.0 0.6666700000 0.3333300000 0.3333300000 1 1 1 mag 0.0 0.8333300000 0.5000000000 0.5000000000 1 1 1 mag 0.0 0.0000000000 0.6666700000 0.3333300000 1 1 1 mag 0.0 0.1666700000 0.8333300000 0.5000000000 1 1 1 mag 0.0 0.3333300000 0.6666700000 0.3333300000 1 1 1 mag 0.0 0.5000000000 0.8333300000 0.5000000000 1 1 1 mag 0.0 0.6666700000 0.6666700000 0.3333300000 1 1 1 mag 0.0 0.8333300000 0.8333300000 0.5000000000 1 1 1 mag 0.0 0.0000000000 0.0000000000 0.6666700000 1 1 1 mag 0.0 0.1666700000 0.1666700000 0.8333300000 1 1 1 mag 0.0 0.3333300000 0.0000000000 0.6666700000 1 1 1 mag 0.0 0.5000000000 0.1666700000 0.8333300000 1 1 1 mag 0.0 0.6666700000 0.0000000000 0.6666700000 1 1 1 mag 0.0 0.8333300000 0.1666700000 0.8333300000 1 1 1 mag 0.0 0.0000000000 0.3333300000 0.6666700000 1 1 1 mag 0.0 0.1666700000 0.5000000000 0.8333300000 1 1 1 mag 0.0 0.3333300000 0.3333300000 0.6666700000 1 1 1 mag 0.0 0.5000000000 0.5000000000 0.8333300000 1 1 1 mag 0.0 0.6666700000 0.3333300000 0.6666700000 1 1 1 mag 0.0 0.8333300000 0.5000000000 0.8333300000 1 1 1 mag 0.0 0.0000000000 0.6666700000 0.6666700000 1 1 1 mag 0.0 0.1666700000 0.8333300000 0.8333300000 1 1 1 mag 0.0 0.3333300000 0.6666700000 0.6666700000 1 1 1 mag 0.0 0.5000000000 0.8333300000 0.8333300000 1 1 1 mag 0.0 0.6666700000 0.6666700000 0.6666700000 1 1 1 mag 0.0 0.8333300000 0.8333300000 0.8333300000 1 1 1 mag 0.0
INPUT_PARAMETERS RUNNING ABACUS-DFT #Parameters (1.General) suffix ABACUS # suffix of OUTPUT DIR nspin 1 # 1/2/4 4 for SOC symmetry 1 # 0/1 1 for open, default # symmetry_autoclose 1 # if symmetry error: set symmetry to 0 # symmetry_prec 1e-5 # default esolver_type ksdft # ksdft, ofdft, sdft, tddft, lj, dp # dft_functional pbe # same as upf file, can be lda/pbe/scan/hf/pbe0/hse ks_solver genelpa #genelpa is default for ksdft-lcao, cg is default for ksdft-pw pseudo_dir ./ orbital_dir ./ #Parameters (2.Iteration) calculation cell-relax # scf relax cell-relax md ecutwfc 80 scf_thr 1e-7 scf_nmax 300 relax_nmax 200 relax_method cg # cg, bfgs, cg_bfgs, sd, "fire" force_thr_ev 0.05 # ev # stress_thr 5 #Parameters (3.Basis) basis_type lcao # lcao or pw # kspacing 0.25 # replace KPT # gamma_only 1 # 0/1, replace KPT #Parameters (4.Smearing) smearing_method mp # mp/gaussian/fd/fixed, mp for metal gau for semicon smearing_sigma 0.008 # Rydberg, 0.008 for mp 0.001 for gau #Parameters (5.Mixing) mixing_type broyden # pulay/broyden #mixing_beta 0.2 # for metal: 0.05-0.4, 0 - 0.1 for difficult #mixing_gg0 1.5 # only for transition metal #Parameters (6.Calculation) cal_force 1 cal_stress 1 out_stru 1 # print STRU in OUT out_chg 0 # print CHG or not out_bandgap 0 out_mul 0 # print Mulliken charge and mag of atom in mulliken.txt # restart_save auto # false, auto, other # restart_load false #Parameters (7. Dipole Correction) #efield_flag 1 # open added potential, if 0, all below useless #dip_cor_flag 1 # open dipole correction #efield_dir 2 # direction of dipole correction, 0,1,2 for x,y,z #efield_pos_max 0.0 # max frac-pos of correction , default 0.5. should be in vaccum #efield_pos_dec 0.1 # where the saw-like potential decreases, default 0.1 #efield_amp 0.0 # Amplitude of outer electric field , 0 for only dipole-corr
这里我们设置参数calculation
为cell-relax,表示在结构优化过程中允许改变晶胞的体积和形状。
K_POINTS 0 Gamma 3 3 3 0 0 0
cp STRU_W STRU && mpirun -n 32 abacus | tee run_cell-relax_W.log # host relaxation cp OUT.ABACUS/running_cell-relax.log OUT.ABACUS/running_cell-relax_W.log # save running log cp OUT.ABACUS/STRU_ION_D ./STRU_W_cell-relax # save STRU cp STRU_W_v STRU && mpirun -n 32 abacus | tee run_cell-relax_W_v.log # vacancy relaxation cp OUT.ABACUS/running_cell-relax.log OUT.ABACUS/running_cell-relax_W_v.log # save running log cp OUT.ABACUS/STRU_ION_D ./STRU_W_v_cell-relax # save STRU cp STRU_W_Cr_t STRU && mpirun -n 32 abacus | tee run_cell-relax_W_Cr_t.log # tetrahedral interstitial relaxation cp OUT.ABACUS/running_cell-relax.log OUT.ABACUS/running_cell-relax_W_Cr_t.log # save running log cp OUT.ABACUS/STRU_ION_D ./STRU_W_Cr_t_cell-relax # save STRU cp STRU_W_Cr_o STRU && mpirun -n 32 abacus | tee run_cell-relax_W_Cr_o.log # octahedral interstitial relaxation cp OUT.ABACUS/running_cell-relax.log OUT.ABACUS/running_cell-relax_W_Cr_o.log # save running log cp OUT.ABACUS/STRU_ION_D ./STRU_W_Cr_o_cell-relax # save STRU
- Note: 对于LCAO计算,我们可以直接抓取cell-relax之后的总能作为基态的总能。但值得一提的是,对于平面波基组PW的计算,这种做法是危险的。因为在cell-relax的过程中,晶格矢量发生改变,但是构建PW基组的倒格矢却没有相对应的更新,这就会导致一定的误差,这种误差常见于几乎所有的平面波DFT软件。一般的做法是,先进行cell-relax的计算,再基于收敛的构型再进行一次scf计算获得基态能量。
24402: !FINAL_ETOT_IS -399641.2508406224078499 eV 55721: !FINAL_ETOT_IS -392237.5849717045202851 eV 96852: !FINAL_ETOT_IS -401912.4696299918578006 eV 374042: !FINAL_ETOT_IS -401912.9385621633846313 eV
1546: !FINAL_ETOT_IS -4558.6295937936420160 eV
3. 空位形成能和间隙能的计算结果讨论
BCC-W的空位形成能、四面体间隙能、八面体间隙能(间隙被单个Cr原子占据)计算结果如下:
- 空位形成能: eV
- 四面体间隙能: eV
- 八面体间隙能: eV
可以看出,当BCC-W晶格中形成点缺陷时,三种能量均大于完美晶格总能,导致体系的不稳定性增强。四面体间隙能和八面体间隙能都是较大的正值,这实际上与钨中Cr原子的占位以及原子半径有关。Cr原子半径 (rw=0.128 nm) 与W原子半径 (rw=0.139 nm) 相当接近,因而占据间隙位置将会引起较大的局部应力,使得体系能量升高。
OUT.ABACUS中的STRU_ION_D
文件记录了结构优化完成之后的原子坐标信息,通过STRU_ION_D
文件我们发现,当Cr原子位于间隙位置时,由于Cr原子半径远大于间隙半径 (rinter≈0.040 nm),Cr原子会挤压周围W原子,使W晶格发生局部畸变,进而使超胞优化后的晶胞参数变大,如表1所示:
本节通过第一性原理计算得到了BCC-W的空位形成能以及Cr原子占据四面体和八面体间隙的形成能。空位形成能的结果与实验研究结果相当接近,证实了该方法的可靠性。因为Cr 原子半径与W原子半径接近,所以Cr原子在占据W原子间隙位置时会导致一定程度的晶格畸变。这种畸变体现为间隙能上升,进而增强了体系的不稳定性。在评估材料需要满足特定辐照和力学性能要求的情况下,空位形成能和间隙能成为非常重要的指标,它们对材料的动力学和热力学性质具有显著影响,对材料科学研究和应用具有重要意义。
恭喜你完成了第六个ABACUS计算模拟实例🎉
如果你还想尝试更多的计算实例,可以点击下方了解ABACUS计算模拟合集链接: ABACUS计算模拟实例 | 概述