Bohrium
robot
新建

空间站广场

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

我的工作空间

任务
节点
文件
数据集
镜像
项目
数据库
公开
ABACUS使用案例 | 零基础开始使用ABACUS对钡及其氧化物进行密度泛函计算
中文
ABACUS
ABACUS使用教程
中文ABACUSABACUS使用教程
roujin
发布于 2024-05-14
推荐镜像 :ABACUS:3.6.0
推荐机型 :c2_m4_cpu
赞 2
1
引言
Ba的背景知识
ABACUS和密度泛函理论介绍
软件使用
准备赝势,数值原子轨道
准备INPUT、STRU、KPT文件
自洽迭代计算
Ba晶格弛豫
BaO预测稳定晶格结构
参考文献

引言

在本案例中,我们将利用国产的密度泛函软件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 方程,只是指出:

  1. Kohn-Sham 方程中需要一个泛函项叫做交换关联泛函,它的解析形式未知,需要做近似,近似的程度越好则计算的精确程度越高。
  2. 解Kohn-Sham 方程需要用迭代的方法,叫做自洽迭代。可以理解这个过程为先取一个试探的电子密度,然后代入Kohn-Sham 方程解出一个新的电子密度,比较新旧的电子密度,如果小于一个阈值就认为达到了自洽,也就找到了Kohn-Sham 方程的解。这个算法叫做电子自洽迭代计算(Self Consistent Field,简称SCF)
  3. 解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 里用到的模守恒赝势和轨道是需要匹配的。因为不同的赝势可能有不同的价电子,而数值原子轨道是用来描述这些价电子的,如果赝势的价电子多,则相应的默认数值原子轨道基组数量也会增多。
  4. 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)。需要注意的是:

  1. INPUT文件开头应有INPUT_PARAMETERS一行
  2. 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">&quot;</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">&quot;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">&quot;</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">&quot;</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/&quot;&quot;</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">&quot;</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">&quot;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)

ABACUS 使用教程|结构优化 - Bohrium (dp.tech)

ABACUS 使用教程|如何转换 STRU 文件 - Bohrium (dp.tech)

代码
文本
中文
ABACUS
ABACUS使用教程
中文ABACUSABACUS使用教程
已赞2
推荐阅读
公开
快速开始ABACUS | 计算钡(Ba)元素单质及其化合物的晶体结构
中文ABACUSABACUS使用教程
中文ABACUSABACUS使用教程
donglikun@dp.tech
更新于 2024-07-16
公开
使用ABACUS软件实现收敛性测试、结构优化等DFT计算——以铱(Ir)元素为例
ABACUSirDFT
ABACUSirDFT
邱翔宇
发布于 2024-05-19
2 赞