![](https://cdn1.deepmd.net/static/img/d7d9741bda38a158-957c-4877-942f-4bf6f81fcc63.png?x-oss-process=image/resize,w_100,m_lfit)
![](https://cdn1.deepmd.net/bohrium/web/static/images/level-v2-1.png?x-oss-process=image/resize,w_50,m_lfit)
引言
在本案例中,我们将利用国产的密度泛函软件ABACUS对钡及其氧化物进行密度泛函计算。本文面向完全零基础的人群,致力于让您在阅读完后可以自己上手ABACUS。
Ba的背景知识
钡元素的发现历程涉及两次重要突破。首先,瑞典化学家卡尔·威廉·舍勒于1774年从软锰矿中识别出钡的化合物。然而,真正分离出金属钡并确认其为新元素的是英国化学家汉弗莱·戴维,他在1808年通过电解法完成了这一壮举。
钡位于元素周期表IIA族,第六周期,原子序数为56,原子量约为137.327。它是一种银白色的金属,密度低、延展性好且导电性强,属于碱土金属,化学性质活泼,容易与氧气、水、酸反应生成钡盐和氢气。在空气中,钡表面能迅速形成氧化膜以防止进一步氧化。
钡的重要化合物包括硫酸钡(BaSO₄,不溶于水和醇,用于制备油漆、塑料、橡胶填料,以及作为X射线造影剂“钡餐”)、碳酸钡(BaCO₃,用于玻璃、陶瓷、橡胶填料等工业,但因其在胃酸中可能产生有毒钡离子,已不再用于内服药物)和氢氧化钡(Ba(OH)₂,强碱,用于水处理、酸性气体吸收及有机合成)。钡在医疗诊断(硫酸钡作为消化道X射线造影剂)、工业材料(硫酸钡和碳酸钡用于特种玻璃、陶瓷、涂料、塑料填料的生产)、环保应用(氢氧化钡用于中和酸性废水,调节水质酸碱度)以及电子工业(钡化合物用于制造荧光粉和电容器)等领域均有所贡献。虽然硫酸钡作为传统X射线造影剂已广泛应用,但科研人员正在探索新型钡基造影剂,如纳米级硫酸钡或功能化的钡复合材料,以提高影像分辨率、缩短造影时间或降低副作用。此外,钡也可能在磁共振成像(MRI)和光声成像等新型医学成像技术中找到新的应用。
ABACUS和密度泛函理论介绍
密度泛函理论算法是用于第一性原理材料性质模拟的重要基础工具。目前,密度泛函理论算法已被实现在许多软件中,例如VASP,Quantum Espresso,ABIINT,CP2K等。
ABACUS是一款基于密度泛函理论发展起来的国内开源软件,支持平面波和数值原子轨道两种基矢量,主要采用模守恒赝势,功能较齐全,可适用于从小体系到上千原子大体系的电子结构优化、原子结构弛豫、分子动力学模拟等计算。
对于以上名词,想必零基础的读者有很多疑问,下面我将一一解释。
第一性原理计算是指基于量子力学原理的计算方法,通过求解薛定谔方程来预测材料的性质和行为。使用密度泛函理论来计算即为第一性原理计算的一种方法,目前是凝聚态物理计算材料学和计算化学领域最常用的方法之一。
对于多个电子的体系,解薛定谔方程里的波函数十分困难,1964年,Hohenberg 和 Kohn 提出了著名的 Hohenberg-Kohn 定理,简称 HK 定理,真正成为密度泛函理论的基础,标志着密度泛函理论的产生。定理如下
定理一:对于处在任一外势场下的由相互作用粒子组成的系统,外势场由基态粒子密度唯一确定。
定理二:对于任意给定的外势场,可以定义一个能量关于电子密度的泛函,使得当电子密度取系统的基态粒子密度时,该能量泛函取极小值,该值为系统的基态能量。
根据以上定理,可以以电子密度为基本变量,将能量表示为电子密度的泛函,研究多粒子体系电子结构性质的量子力学理论。由于电子密度只是空间坐标的函数,使得多电子体系的维度由 3N 降低到 3,大大简化了薛定谔方程的求解过程。但是,HK 定理并没有给出具体的能量泛函表达形式。
1965年,Kohn 和 Sham 建立了 Kohn-Sham 方程,给出了能量泛函各项的具体描述形式,使密度泛函理论真正进入实际应用阶段。我们这里不列出Kohn-Sham 方程,只是指出:
- Kohn-Sham 方程中需要一个泛函项叫做交换关联泛函,它的解析形式未知,需要做近似,近似的程度越好则计算的精确程度越高。
- 解Kohn-Sham 方程需要用迭代的方法,叫做自洽迭代。可以理解这个过程为先取一个试探的电子密度,然后代入Kohn-Sham 方程解出一个新的电子密度,比较新旧的电子密度,如果小于一个阈值就认为达到了自洽,也就找到了Kohn-Sham 方程的解。这个算法叫做电子自洽迭代计算(Self Consistent Field,简称SCF)
- 解Kohn-Sham 方程时,同时会解出电子密度和电子波函数,电子波函数可以在不同的基矢量下表示。ABACUS 以支持 LCAO(Linear Combination of Atomic Orbital,原子轨道线性组合)方法在计算周期性凝聚态系统方面而闻名。LCAO(Linear Combination of Atomic Orbitals)方法就是通过局域的原子轨道来求解量子力学问题。其中局域轨道的选取方式有多种,例如高斯轨道(Gaussian type Orbitals,GTOs 或 Gaussians)、数值原子轨道(Numerical Atomic Orbitals)、万尼尔函数(Wannier Functions)等。现在最常用的是基于数值原子轨道,即把数值原子轨道作为基矢量,有很多优点。
ABACUS 提供了已经生成好的数值原子轨道库打包文件供下载(官网下载链接),对于绝大多数计算任务,这些数值原子轨道是经过精度和可靠性验证,可以直接使用的。这些轨道文件的开头提供了关于该轨道的重要信息。以
O_gga_7au_100Ry_2s2p1d.orb
轨道文件为例,首先文件名包含的信息有:氧元素(o),GGA 泛函(gga),数值原子轨道截断半径(7au,即 7 Bohr),推荐能量截断值(100 Ry),数值原子轨道个数(2s2p1d,2 个 s 的径向轨道,2 个 p 的径向轨道,1 个 d 的径向轨道)。ABACUS 里用到的模守恒赝势和轨道是需要匹配的。因为不同的赝势可能有不同的价电子,而数值原子轨道是用来描述这些价电子的,如果赝势的价电子多,则相应的默认数值原子轨道基组数量也会增多。 - Kohn-Sham 方程中还涉及材料内部电子-离子相互作用项,通过赝势(pseudopotentials)来描述电子-离子相互作用,可极大减少计算量。我们一般只需要算价电子的能级和波函数,通常把核与内层电子对价电子的总的作用势称为赝势。第一性原理的赝势就是用一个平缓的势来代替很深的库伦势,使所得的价电子能级与全电子计算一致,波函数在核区外一致。
软件使用
准备赝势,数值原子轨道
赝势和数值原子轨道都可以在https://github.com/kirk0830/ABACUS-Pseudopot-Nao-Square/tree/main/download 中下载。赝势生成时,是解了个一维的kohn-sham方程,解方程时是需要指定交换关联泛函的,所以赝势文件天然会带着交换关联泛函,目前最常用的是PBE交换关联泛函。我们本次就下载nc-sr-05_pbe_standard_upf文件夹里的Ba.upf赝势
虽然上面说到ABACUS 以支持 LCAO方法在计算周期性凝聚态系统方面而闻名,但我们这里为了简单,就用pw基组(平面波基组),使用此基组时将不需要数值原子轨道
准备INPUT、STRU、KPT文件
为避免重复,具体的教程和各个参数的意思见ABACUS 的平面波计算与收敛性测试 · GitBook (mcresearch.github.io)。需要注意的是:
- INPUT文件开头应有INPUT_PARAMETERS一行
- KPT文件中k要换成具体的数字
对于Ba,我们设置如下。
INPUT:
INPUT_PARAMETERS
suffix Ba
ntype 1
nelec 0.0
calculation cell-relax
symmetry 1
pseudo_dir ./
orbital_dir ./
basis_type pw
ecutwfc 60
scf_thr 1e-4 # Rydberg
force_thr_ev 0.01 # the threshold of the force convergence, in unit of eV/Angstrom
stress_thr 2 # the threshold of the stress convergence, in unit of kBar
relax_nmax 100 # the maximal number of ionic iteration steps
out_stru 1
KPT:
K_POINTS
0
Gamma
4 4 4 0 0 0
STRU:
ATOMIC_SPECIES
Ba 137.327 Ba.upf
NUMERICAL_ORBITAL
Ba_gga_10au_100Ry_4s2p1d.orb
LATTICE_CONSTANT
1.889726
LATTICE_VECTORS
6.3519060000 0.0000000000 0.0000000000
0.0000000000 6.3519060000 0.0000000000
0.0000000000 0.0000000000 6.3519060000
ATOMIC_POSITIONS
Direct
Ba
0.0000000000
4
0.0000000000 0.0000000000 0.0000000000 1 1 1 mag 0.0
0.0000000000 0.5000000000 0.5000000000 1 1 1 mag 0.0
0.5000000000 0.0000000000 0.5000000000 1 1 1 mag 0.0
0.5000000000 0.8000000000 0.0000000000 1 1 1 mag 0.0
此STRU文件是来自mp-10679: Ba (cubic, Fm-3m, 225) (materialsproject.org)。使用此教程的方法转换为STRU文件
自洽迭代计算
将以上文件和赝势文件放在同一个目录,在此目录下输入命令
mpirun -n 2 abacus
即可启动ABACUS计算,若成功,应能看到类似如下的输出
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)
Tue May 14 12:12:59 2024
MAKE THE DIR : OUT.Ba/
RUNNING WITH DEVICE : CPU / Intel(R) Xeon(R) Platinum
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Warning: the number of valence electrons in pseudopotential > 2 for Ba: [Xe] 6s2
Pseudopotentials with additional electrons can yield (more) accurate outcomes, but may be less efficient.
If you're confident that your chosen pseudopotential is appropriate, you can safely ignore this warning.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
UNIFORM GRID DIM : 60 * 60 * 60
UNIFORM GRID DIM(BIG) : 60 * 60 * 60
DONE(0.336905 SEC) : SETUP UNITCELL
DONE(0.410666 SEC) : SYMMETRY
DONE(0.615126 SEC) : INIT K-POINTS
---------------------------------------------------------
Cell relaxation calculations
---------------------------------------------------------
SPIN KPOINTS PROCESSORS
1 18 2
---------------------------------------------------------
Use plane wave basis
---------------------------------------------------------
ELEMENT NATOM XC
Ba 4
---------------------------------------------------------
Initial plane wave basis and FFT box
---------------------------------------------------------
DONE(0.638622 SEC) : INIT PLANEWAVE
MEMORY FOR PSI (MB) : 56.6565
DONE(0.716124 SEC) : LOCAL POTENTIAL
DONE(0.829701 SEC) : NON-LOCAL POTENTIAL
DONE(1.01835 SEC) : INIT BASIS
-------------------------------------------
STEP OF RELAXATION : 1
-------------------------------------------
START CHARGE : atomic
DONE(1.24785 SEC) : INIT SCF
ITER ETOT(eV) EDIFF(eV) DRHO TIME(s)
之后可以修改k和ecut的值做收敛性检验。笔者提供脚本如下。
用此脚本来测试关于ecut的收敛性
#!/bin/bash
for ((ecut=60; ecut<=120; ecut+=10))
do
suffix="Ba,ecut=<span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.7778em;vertical-align:-0.0833em;"></span><span class="mord mathnormal">ec</span><span class="mord mathnormal">u</span><span class="mord mathnormal">t</span><span class="mord">"</span><span class="mord mathnormal">se</span><span class="mord mathnormal">d</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">i</span><span class="mord">"3</span><span class="mord mathnormal">s</span><span class="mord">/.</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">∗</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord">/</span><span class="mord mathnormal">s</span><span class="mord mathnormal">u</span><span class="mord mathnormal" style="margin-right:0.10764em;">ff</span><span class="mord mathnormal">i</span><span class="mord mathnormal">x</span></span></span></span>suffix/" "INPUT"
sed -i "9s/.*/ecutwfc $ecut/" "INPUT"
mpirun -n 2 abacus
etot=$(grep -oP 'final etot is \K-?\d+\.\d+' "./OUT.<span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">s</span><span class="mord mathnormal">u</span><span class="mord mathnormal" style="margin-right:0.10764em;">ff</span><span class="mord mathnormal">i</span><span class="mord mathnormal">x</span><span class="mord">/</span><span class="mord mathnormal" style="margin-right:0.02778em;">r</span><span class="mord mathnormal">u</span><span class="mord mathnormal">nnin</span><span class="mord"><span class="mord mathnormal" style="margin-right:0.03588em;">g</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.1514em;"><span style="top:-2.55em;margin-left:-0.0359em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mathnormal mtight">s</span></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord mathnormal">c</span><span class="mord mathnormal" style="margin-right:0.10764em;">f</span><span class="mord">.</span><span class="mord mathnormal" style="margin-right:0.01968em;">l</span><span class="mord mathnormal">o</span><span class="mord mathnormal" style="margin-right:0.03588em;">g</span><span class="mord">"</span><span class="mclose">)</span><span class="mord mathnormal">ec</span><span class="mord mathnormal">h</span><span class="mord mathnormal">o</span><span class="mord">"</span><span class="mord mathnormal">ec</span><span class="mord mathnormal">u</span><span class="mord mathnormal">t</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span></span></span></span>ecut,etot=$etot" >> "res.txt"
done
用此脚本来测试关于k的收敛性
#!/bin/bash
for ((k=2; k<=8; k+=2))
do
suffix="Ba,k=$k"
sed -i "4s/.*/<span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6944em;"></span><span class="mord mathnormal" style="margin-right:0.03148em;">k</span></span></span></span>k <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.03148em;">k</span><span class="mord">000/""</span><span class="mord mathnormal" style="margin-right:0.07153em;">K</span><span class="mord mathnormal" style="margin-right:0.13889em;">PT</span><span class="mord">"</span><span class="mord mathnormal">se</span><span class="mord mathnormal">d</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">i</span><span class="mord">"3</span><span class="mord mathnormal">s</span><span class="mord">/.</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">∗</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord">/</span><span class="mord mathnormal">s</span><span class="mord mathnormal">u</span><span class="mord mathnormal" style="margin-right:0.10764em;">ff</span><span class="mord mathnormal">i</span><span class="mord mathnormal">x</span></span></span></span>suffix/" "INPUT"
mpirun -n 2 abacus
etot=$(grep -oP 'final etot is \K-?\d+\.\d+' "./OUT.$suffix/running_scf.log")
echo "k=<span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8889em;vertical-align:-0.1944em;"></span><span class="mord mathnormal" style="margin-right:0.03148em;">k</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal">e</span><span class="mord mathnormal">t</span><span class="mord mathnormal">o</span><span class="mord mathnormal">t</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span></span></span></span>etot" >> "res.txt"
done
Ba晶格弛豫
请读者参考ABACUS 使用教程|结构优化 - Bohrium (dp.tech)。这里只是给出切实的例子。
k都设置为4,INPUT设置如下
INPUT_PARAMETERS
suffix Ba_test
ntype 1
nelec 0.0
calculation cell-relax
symmetry 1
pseudo_dir ./
orbital_dir ./
basis_type pw
ecutwfc 60
scf_thr 1e-4 # Rydberg
force_thr_ev 0.01 # the threshold of the force convergence, in unit of eV/Angstrom
stress_thr 2 # the threshold of the stress convergence, in unit of kBar
relax_nmax 100 # the maximal number of ionic iteration steps
out_stru 1
STRU仍然设置为之前的
ATOMIC_SPECIES
Ba 137.327 Ba.upf
NUMERICAL_ORBITAL
Ba_gga_10au_100Ry_4s2p1d.orb
LATTICE_CONSTANT
1.889726
LATTICE_VECTORS
6.3519060000 0.0000000000 0.0000000000
0.0000000000 6.3519060000 0.0000000000
0.0000000000 0.0000000000 6.3519060000
ATOMIC_POSITIONS
Direct
Ba
0.0000000000
4
0.0000000000 0.0000000000 0.0000000000 1 1 1 mag 0.0
0.0000000000 0.5000000000 0.5000000000 1 1 1 mag 0.0
0.5000000000 0.0000000000 0.5000000000 1 1 1 mag 0.0
0.5000000000 0.5000000000 0.0000000000 1 1 1 mag 0.0
时,仅仅经过2次迭代,就算出了结果,最后发现输出的结果里STRU_NOW.cif和STRU_READIN_ADJUST.cif的内容完全一样。内容都为
data_none
_audit_creation_method generated by ABACUS
_cell_length_a 6.3519
_cell_length_b 6.3519
_cell_length_c 6.3519
_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
Ba 0 0 0
Ba 0 0.5 0.5
Ba 0.5 0 0.5
Ba 0.5 0.5 0
原因推断为是本来输入的STRU已经是Ba的稳定结构了。可以尝试修改STRU,仅将最后一行的第二个数改为0.8。在经过26次迭代后,得到的STRU_NOW.cif的内容为
data_none
_audit_creation_method generated by ABACUS
_cell_length_a 7.02371
_cell_length_b 5.11794
_cell_length_c 7.02371
_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
Ba 0 0.0757965 0
Ba 0 0.575698 0.5
Ba 0.5 0.0757965 0.5
Ba 0.5 0.572709 0
可见,得到了一种新的Ba的稳定晶格结构。即指定不同的STRU初始值能得到不同的Ba的稳定构型。
BaO预测稳定晶格结构
INPUT设置为
INPUT_PARAMETERS
suffix BaO
ntype 2
pseudo_dir ./
orbital_dir ./
ecutwfc 60
scf_thr 1e-6
basis_type pw
calculation cell-relax
force_thr_ev 0.01
stress_thr 3
relax_nmax 100
out_stru 1
BaO初始的STRU来自[mp-1342: BaO (cubic, Fm-3m, 225) (materialsproject.org)](https://legacy.materialsproject.org/materials/mp-1342/,为
ATOMIC_SPECIES
Ba 137.327 Ba.upf
O 15.999 O.upf
LATTICE_CONSTANT
1.889726
LATTICE_VECTORS
5.6148840000 0.0000000000 0.0000000000
0.0000000000 5.6148840000 0.0000000000
0.0000000000 0.0000000000 5.6148840000
ATOMIC_POSITIONS
Direct
Ba
0.0000000000
4
0.0000000000 0.0000000000 0.0000000000 1 1 1 mag 0.0
0.0000000000 0.5000000000 0.5000000000 1 1 1 mag 0.0
0.5000000000 0.0000000000 0.5000000000 1 1 1 mag 0.0
0.5000000000 0.5000000000 0.0000000000 1 1 1 mag 0.0
O
0.0000000000
4
0.5000000000 0.0000000000 0.0000000000 1 1 1 mag 0.0
0.5000000000 0.5000000000 0.5000000000 1 1 1 mag 0.0
0.0000000000 0.0000000000 0.5000000000 1 1 1 mag 0.0
0.0000000000 0.5000000000 0.0000000000 1 1 1 mag 0.0
3次迭代计算后达到要求
STRU_READIN_ADJUST.cif为
data_none
_audit_creation_method generated by ABACUS
_cell_length_a 5.61488
_cell_length_b 5.61488
_cell_length_c 5.61488
_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
Ba 0 0 0
Ba 0 0.5 0.5
Ba 0.5 0 0.5
Ba 0.5 0.5 0
O 0.5 0 0
O 0.5 0.5 0.5
O 0 0 0.5
O 0 0.5 0
而STRU_NOW.cif为
data_none
_audit_creation_method generated by ABACUS
_cell_length_a 5.51162
_cell_length_b 5.51162
_cell_length_c 5.51162
_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
Ba 0 0 0
Ba 0 0.5 0.5
Ba 0.5 0 0.5
Ba 0.5 0.5 0
O 0.5 0 0
O 0.5 0.5 0.5
O 0 0 0.5
O 0 0.5 0
可见,软件计算得到的晶格常数为5.51162Angstrom,与网站上的标准值差别不大。
参考文献
了解第一性原理计算与密度泛函理论 - Bohrium (dp.tech)
ABACUS 使用教程|电子自洽迭代 - Bohrium (dp.tech)
ABACUS 使用教程 · GitBook (mcresearch.github.io)
ABACUS Documentation — ABACUS documentation
ABACUS 的平面波计算与收敛性测试 · GitBook (mcresearch.github.io)
![](https://cdn1.deepmd.net/static/img/d7d9741bda38a158-957c-4877-942f-4bf6f81fcc63.png?x-oss-process=image/resize,w_100,m_lfit)
![](https://cdn1.deepmd.net/bohrium/web/static/images/level-v2-1.png?x-oss-process=image/resize,w_50,m_lfit)
![](https://cdn1.deepmd.net/static/img/d7d9741bda38a158-957c-4877-942f-4bf6f81fcc63.png?x-oss-process=image/resize,w_100,m_lfit)
![](https://cdn1.deepmd.net/bohrium/web/static/images/level-v2-1.png?x-oss-process=image/resize,w_50,m_lfit)