Bohrium
robot
新建

空间站广场

论文
Notebooks
比赛
课程
Apps
我的主页
我的Notebooks
我的论文库
我的足迹

我的工作空间

任务
节点
文件
数据集
镜像
项目
数据库
公开
用密度泛函理论(DFT)分析碲(Te)元素及其基本化合物的结构性质
DFT
碲元素
ABACUS
教程
DFT碲元素ABACUS教程
bohr047ede
发布于 2024-05-19
推荐镜像 :ABACUS:3.6.0-dpdata-dpgen
推荐机型 :c2_m4_cpu
赞 1
1
1.碲元素的背景知识
碲单质的提炼
碲单质的结构与物化性质
常见化合物及应用
2.密度泛函理论(Density Functional Theory)
基本原理
计算步骤
应用
3.ABACUS软件使用和分析方法
基态能量计算
平面波计算与收敛性测试
结构优化分析稳定结构

1.碲元素的背景知识

碲单质的提炼

大多数碲都是从斑岩铜矿床中获取的,它是高炉提炼铅的粉尘成分之一,处理 1000 吨铜矿可获得约一公斤的碲。
含碲约3%的阳极泥干燥后在250℃下进行硫酸化焙烧,然后在700℃使二氧化硒挥发,碲留在焙烧渣中。用水浸出硫酸铜,再用氢氧化钠溶液浸出,得到亚碲酸钠溶液。浸出液用硫酸中和,生成粗氧化碲沉淀。两次重复沉淀氧化物,然后进行水溶液电解,可得含碲为98%~99%的碲。
记M为阳极泥中的贵金属成分(Cu,Ag等),相应的化学反应式为:
2020年,中国的碲产量约占世界总产量的50%,是唯一以碲为主要开采对象而非副产品的国家。

碲单质的结构与物化性质

碲有两种同素异形体,即晶体和非晶体。结晶态的碲呈银白色,带有金属光泽,晶体呈三方手性(空间群152或154,取决于手性)。它是一种易碎、易粉碎的类金属。非晶体碲、即无定形碲是从碲酸或碲酸溶液中析出的黑褐色粉末。
碲是一种半导体,根据原子排列的不同,在某些方向上具有较强的导电性;在光线照射下,导电性会略有增加。碲的化学性质很像硫和硒,有一定的毒性。在空气中把它加热熔化,会生成氧化碲的白烟。它会使人感到恶心、头痛、口渴,皮肤骚痒和心悸。
在氧族元素中,碲的熔点和沸点最高,分别为722.66 K(449.51 °C)和1261 K(988 °C)。在所有的非金属同伴中,它的金属性是最强的。碲在空气中燃烧带有蓝色火焰,生成二氧化碲;可与卤素反应,但不与硫、硒反应。溶于硫酸、硝酸、氢氧化钾和氰化钾溶液。和熔融反应产生。溶于水生成的氢碲酸具有类似氢硫酸的性质。碲也生成亚碲酸H2TeO3及相应的盐。用强氧化剂()作用于碲或(稳定白色晶态),生成,它在160℃转变为粉末状,进一步加热则转变为易溶于水(25.3%)成为碲酸,是一种弱酸。

常见化合物及应用

氧化碲():用于制造光学玻璃,具有良好的透明性和抗光腐蚀性,可用于制造光学仪器、玻璃镜片等,在化学工业中也用作氧化剂和催化剂,以及制备其他碲化合物的原料。
碲化镉():是一种半导体材料,用于制造光伏电池,特别是薄膜太阳能电池。CdTe太阳能电池具有高效率、低成本等优点,在太阳能领域具有重要应用。也可用于制造光电探测器、X射线探测器和核辐射探测器等。
碲化铋():是一种热电材料,具有在温差下产生电压的特性,被广泛用于制造热电偶、制冷器等热电器件,也用于制造热电模块,将废热转化为电能,在一些半导体材料中也有使用。
碲化铯():应用在许多光电阴极中,这些光电阴极用于太阳光电倍增管和驱动现代粒子加速器的高亮度光注入器。

代码
文本

2.密度泛函理论(Density Functional Theory)

密度泛函理论(Density Functional Theory,简称DFT)是量子力学的一种计算方法,主要用于研究多电子系统(如原子、分子和固体)的电子结构。DFT的基本原理是通过电子密度而不是多体波函数来描述系统的基态性质,这大大简化了计算复杂度。

基本原理

  1. 电子密度:DFT的核心思想是电子密度 能够完全描述系统的基态性质。电子密度 表示在空间位置 处的电子数目密度。

  2. Hohenberg-Kohn 定理

    • 第一定理:对于一个给定的系统,其基态电子密度 完全决定了外部势能 (即原子核对电子的作用势),其中外势场可以相差一个常数。
    • 第二定理:电子能量作为电子密度的泛函 具有最小化性质。基态能量 的全局极小值,对应的电子密度 为基态电子密度。
  3. Kohn-Sham 方程:Kohn 和 Sham 提出了一个实用的方法,将原始的多体问题转换为单电子问题。具体步骤如下:

    • 辅助系统:引入一个辅助系统,其电子与实际系统具有相同的电子密度,但不考虑电子间的相互作用,只考虑有效势(包括电子相互作用效应)。
    • Kohn-Sham 方程:利用一组单电子的Kohn-Sham轨道 来表示电子密度: 这些轨道满足如下的单电子薛定谔方程: 其中, 是有效势,包括外部势、Hartree势(电子间的经典库仑相互作用)和交换-关联势
  4. 交换-关联势 :这是DFT中最复杂和关键的一部分,用于描述电子间的量子力学效应。具体形式通常未知,需要使用近似方法,如局域密度近似(Local Density Approxiamation, LDA)和广义梯度近似(Generalized Gradient Approxiamation, GGA),以及较少用的meta-GGA近似和杂化泛函(Hybrid Functional)等。

计算步骤

  1. 初始猜测:给定一个初始的电子密度 或Kohn-Sham轨道
  2. 计算有效势 :根据当前的电子密度,计算出有效势。
  3. 求解Kohn-Sham方程:利用有效势求解单电子Kohn-Sham方程,得到新的Kohn-Sham轨道 和能量
  4. 更新电子密度:使用新的Kohn-Sham轨道更新电子密度。
  5. 迭代收敛:重复上述步骤,直到电子密度收敛,即前后两次计算的电子密度差异在预设的精度范围内。

应用

DFT在计算物理和计算化学中具有广泛的应用,包括:

  • 分子和固体的基态能量计算。
  • 电子结构、能带结构的研究。
  • 分子和材料的反应性和稳定性预测。

DFT因其较高的计算效率和较好的精度,在理论化学和物理学研究中占据了重要地位。

代码
文本

3.ABACUS软件使用和分析方法

ABACUS是一个实现DFT仿真的开源软件,基本信息和下载方法可以从ABACUS官网中了解,程序开发在DeepModeling社区(Github)仓库下。这里介绍Bohrium平台上使用ABACUS软件的方法。在Bohrium上创建节点并加载ABACUS镜像软件,选择合适版本(这里用的是3.6.0)。一般而言完整的输入需要三部分文件,分别是:

  • 输入文件INPUT:输入物质基本性质和计算命令
  • 结构文件STRU:输入原子种类,个数,位置,轨道等信息
  • 倒格子文件KPT:输入布里渊区的采点

基态能量计算

赝势库中下载Te的赝势文件Te_ONCV_PBE-1.2.upf。根据之前教程《ABACUS 使用教程|电子自洽迭代》,找到其提供的数据组ABACUS_SCF,由于Te同为六方结构,对应文件中的ABACUS_SCF\MgO_PW\SCF,将Te_ONCV_PBE-1.2.upf和对应的INPUT、KPT和STRU文件导入个人存储空间personal之下。通过Wikipedia查找Te的晶格常数:Lanthanum - Wikipedia,将案例中的MgO改为单质Te,对应晶格常数也进行修改,得到所需的INPUT、STRU和KPT文件,成功设置两种元素对应的晶体结构(基态)并进行自洽迭代计算(scf)。

代码
文本
[ ]
# INPUT文件
INPUT_PARAMETERS
suffix Te
ntype 1
pseudo_dir ./
ecutwfc 100
basis_type pw
calculation scf
代码
文本
[ ]
# STRU文件
ATOMIC_SPECIES
Te 127.6 Te_ONCV_PBE-1.2.upf


LATTICE_CONSTANT
1.8897259886 # 1.8897259886 Bohr = 1.0 Angstrom

LATTICE_VECTORS
2.23 -3.86 0.00000
2.23 3.86 0.00000
0.00000 0.00000 5.93

ATOMIC_POSITIONS
Direct
Te # 元素种类
0.0
3 # 原子个数
0.0000000000000000 0.0000000000000000 0.0000000000000000 Ti # 原子 1 位置
0.3333333333333333 0.6666666666666666 0.5000000000000000 Ti # 原子 2 位置
0.6666666666666667 0.3333333333333334 0.5000000000000000 Ti # 原子 3 位置

代码
文本
[ ]
# KPT文件
K_POINTS
0
Gamma
4 4 4 0 0 0
代码
文本

若所分析的物质结构为其他结构,就需要修改STRU文件和KPT文件,将各原子的位置正确的表示出。具体可见ABACUS教程。进入工作文件夹后,输入命令进行计算:

代码
文本
[ ]
# OMP_NUM_THREADS=1 表示使用单线程,如果你的机器配置比较高,可以使用多线程,比如 4 线程,就可以写成 OMP_NUM_THREADS=4
# mpirun -n 后面的数字表示计算所使用的 CPU 核心数,这里使用 2 个核心,你可以根据你的机器配置进行修改。
OMP_NUM_THREADS=1 mpirun -n 2 abacus
代码
文本

输出文件储存在当前文件夹下的 OUT.Te 文件夹中,输出文件夹的名称为 OUT.<suffix>,其中 <suffix> 由 INPUT 文件中的 suffix 值指定。

计算结果主要储存在 OUT.Te/running_scf.log 文件中,它的开始部分如下所示:
ABACUS v3.6.0

           Atomic-orbital Based Ab-initio Computation at UStc                    

                 Website: http://abacus.ustc.edu.cn/                             
           Documentation: https://abacus.deepmodeling.com/                       
              Repository: https://github.com/abacusmodeling/abacus-develop       
                          https://github.com/deepmodeling/abacus-develop         
                  Commit: 0dd5623 (Fri Mar 29 09:55:16 2024 +0800)

Start Time is Mon May  6 08:19:15 2024
                                                                                 

READING GENERAL INFORMATION global_out_dir = OUT.Te/ global_in_card = INPUT pseudo_dir = orbital_dir = DRANK = 1 DSIZE = 2 DCOLOR = 1 GRANK = 1 GSIZE = 1 The esolver type has been set to : ksdft_pw

RUNNING WITH DEVICE : CPU / Intel(R) Xeon(R) Platinum

代码
文本

如果 ABACUS 自洽场计算成功完成,能量会输出在 OUT.Te/running_scf.log 文件中:

 --------------------------------------------
 !FINAL_ETOT_IS -7129.952431598989 eV
 --------------------------------------------
代码
文本

平面波计算与收敛性测试

参考平面波计算与收敛性测试教程,选择pw基组进行计算,不会用到轨道文件。由于是分析相同的物质,不需要改变STRU文件和KPT文件,但是命令文件INPUT要进行修改。

代码
文本
[ ]
#Parameters (1.General)
suffix Te
calculation scf
symmetry 1
pseudo_dir .
orbital_dir .
basis_type pw
ecutwfc 100

#Parameters (2. SCF iterations)
scf_nmax 100
scf_thr 1e-8

#Parameters (3. Solve KS equation)
nbands 26
ks_solver cg

#Parameters (4.Smearing)
smearing_method gauss
smearing_sigma 0.01

#Parameters (5.Mixing)
mixing_type broyden
mixing_beta 0.7
mixing_gg0 0
代码
文本

平面波(pw)作为一种可以用于描述周期性边界条件下的电子波函数和电荷密度基矢量,它们都是正交的,且可以通过一个 ecutwfc 参数来控制基矢量的个数,ecut 其实代表了每一个平面波所对应的动能,如果 ecut 取得越大,则基矢量可以描述震荡得越剧烈的物理量(例如氧原子的 2p 轨道),那么计算结果就会越精确,但同时所带来的机时成本消耗也越大。因此我们采用 pw 基组做真正计算前,需要对 ecut 进行测试来获得一个足够准确且效率也高的取值。

保持前文用于计算的基组为"pw",进行 ecut 的收敛性测试,ecut 取值范围为:20~100 Ry。这个例子在 4 进程下启动 MPI 进行并行计算,一般推荐总核数(=线程数*进程数)取 2 的 n 次方或者 n 倍。一个较为粗糙、但基本不会造成计算资源浪费的选取 n 值原则是:体系有多少个原子,不要用超过这个原子个数太多的总核数进行并行计算。例如,体系如果有 16 个原子,不要用远大于 16 的总核数进行计算,一般取 16 的总核数或者更少就够了,具体需要测试。

代码
文本
[ ]
mpirun -n 4 abacus
代码
文本

计算完成后,用脚本提取 ecut 数值下OUT.Te文件夹里running_scf.log文件中收敛的系统总能量,计算单原子能量并绘制其随着 ecut 的变化曲线。

代码
文本

结构优化分析稳定结构

参考ABACUS 使用教程|结构优化。下载教程上附带的ABACUS_Relax文件夹,其案例为
我以常见的氧化物为例,介绍其计算方式。室温下一般存在的形态为,成四方晶胞形态,晶胞参数:埃,埃,点群为422,这意味着晶体的对称性将在所有三个轴向上是相同的。原子的排列方式是一个原子位于晶胞的中心,两个原子分别位于z方向上的1/4和3/4处,所以有1个原子,有2个原子。

代码
文本
[ ]
# STRU文件设置
LATTICE_VECTORS
4.796 0.000 0.000
0.000 4.796 0.000
0.000 0.000 7.626

ATOMIC_POSITIONS
Direct #Cartesian(Unit is LATTICE_CONSTANT)
Te #Name of element
0.0 #Magnetic for this element.
1 #Number of atoms
0.5 0.5 0.0 0 0 0 #x,y,z, move_x, move_y, move_z

O #Name of element
0.0 #Magnetic for this element.
2 #Number of atoms
0.5 0.5 0.25 0 0 0 #x,y,z, move_x, move_y, move_z
0.5 0.5 0.75 0 0 0 #x,y,z, move_x, move_y, move_z

代码
文本

INPUT文件只需把相应的suffix改为即可。在赝势轨道库中下载赝势和轨道文件,存储在PP_ORB文件夹中,我选取的Te_ONCV_PBE-1.2.upf、Te_gga_8au_100Ry_2s2p2d1f.orb、O_ONCV_PBE-1.0.upf和O_gga_7au_100Ry_2s2p1d.orb计算。
同样可以对LCAO和PW两种方法计算,这里代入测量值是为了减小迭代次数,更快的在精度要求内得到结果。两种方法的迭代次数相同,都是3次,但PW方法所用的时间远大于LCAO方法。计算结束后,打开两种方法计算的STRU_NOW.cif文件:

代码
文本
[ ]
! cat .../STRU_NOW.cif
代码
文本
[ ]
# LACO方法的结果:
_cell_length_a 4.79658
_cell_length_b 4.79658
_cell_length_c 7.60495
_cell_angle_alpha 90
_cell_angle_beta 90
_cell_angle_gamma 90

loop_
_atom_site_label
_atom_site_fract_x
_atom_site_fract_y
_atom_site_fract_z
Te 0.5 0.5 0
O 0.5 0.5 0.25
O 0.5 0.5 0.75
代码
文本
[ ]
# PW方法的结果:
_cell_length_a 4.79907
_cell_length_b 4.79907
_cell_length_c 7.54968
_cell_angle_alpha 90
_cell_angle_beta 90
_cell_angle_gamma 90

loop_
_atom_site_label
_atom_site_fract_x
_atom_site_fract_y
_atom_site_fract_z
Te 0.5 0.5 0
O 0.5 0.5 0.25
O 0.5 0.5 0.75
代码
文本

可以发现PW算法算的结果于LCAO基本一致,与参考值也非常接近,相对来说PW方法结果与参考值相差大一点,不过这都在计算要求的精度内。当然也可以任设一个初始值,但这样势必会增大迭代次数,增加计算时间。同时若设置值偏差过大,可能面临计算不收敛的问题。因此无论如何一定要对结果的量级进行估计,再进行计算。

对单质结构也是同样的方法,只不过把两个元素降为一个元素去计算。

代码
文本
[ ]
# INPUT文件:
INPUT_PARAMETERS
suffix Te # Suffix for output files
pseudo_dir ./ # Directory path for pseudopotential files
orbital_dir ./ # Directory path for orbital files
ecutwfc 100 # Plane-wave energy cutoff in Rydberg
scf_thr 1e-7 # Self-consistency threshold in Rydberg
basis_type lcao # Basis set type (e.g. lcao for linear combination of atomic orbitals)
calculation relax # Type of calculation (e.g. relax for geometry optimization)
force_thr_ev 0.1 # Force convergence threshold in eV/Angstrom
stress_thr 2.0 # Stress convergence threshold in kBar
relax_nmax 100 # Max ionic iteration steps for relaxation calculation
out_stru True # Output final optimized structure if set to True
cal_stress True # Calculate stress tensor if set to True
nspin 2 # Number of spin channels (e.g. 2 for spin-polarized calculations)
代码
文本

STRU文件与单质Te的相同,进行计算即可。输出结果为:

代码
文本
[ ]
_cell_length_a 4.45786
_cell_length_b 4.45786
_cell_length_c 5.93
_cell_angle_alpha 90
_cell_angle_beta 90
_cell_angle_gamma 119.968

loop_
_atom_site_label
_atom_site_fract_x
_atom_site_fract_y
_atom_site_fract_z
Te 0 0 0
Te 0.333333 0.666667 0.5
Te 0.666667 0.333333 0.5
代码
文本
DFT
碲元素
ABACUS
教程
DFT碲元素ABACUS教程
已赞1
推荐阅读
公开
快速开始ABACUS | 计算碲(Te)元素单质的晶体结构
DFT碲元素ABACUS教程
DFT碲元素ABACUS教程
donglikun@dp.tech
更新于 2024-07-16
公开
使用ABACUS软件实现收敛性测试、结构优化等DFT计算——以铱(Ir)元素为例
ABACUSirDFT
ABACUSirDFT
邱翔宇
发布于 2024-05-19
2 赞