Bohrium
robot
新建

空间站广场

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

我的工作空间

任务
节点
文件
数据集
镜像
项目
数据库
公开
ABACUS计算模拟实例 | I. 原子及小分子气体能量计算
ABACUS使用教程
ABACUS
计算材料学
DFT
ABACUS使用教程ABACUS计算材料学DFT
FermiNoodles
weiqingzhou@whu.edu.cn
更新于 2024-06-21
推荐镜像 :abacus:3.6.3-user-guide
推荐机型 :c2_m4_cpu
赞 2
2
ABACUS-cases(v9)

ABACUS计算模拟实例 | I. 原子及小分子气体能量计算

代码
文本

©️ Copyright 2023 @ Authors
作者:Jinghang Wang (AISI电子结构团队实习生) 📨
日期:2024-6-21
共享协议:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
快速开始:点击上方的 开始连接 按钮,选择 abacus:3.6.3-user-guide 镜像及 c2_m4_cpu 节点配置,并在连接后点击右上方的切换内核,选择Bash内核稍等片刻即可运行。

代码
文本

🎯 本教程旨在帮助初学者了解ABACUS的输入输出文件,以及完成原子及小分子气体的能量计算

代码
文本

本节教程目录如下:
1. 氢原子能量计算及输入输出文件
2. 氧原子能量计算
3. 氢分子能量及结合能计算
4. 氧分子能量及结合能计算

代码
文本

在使用ABACUS进行计算时,所有操作都需要在指定的文件夹目录下进行。我们已经准备好了数据集ABACUS-cases,,其中文件夹“1”对应本节教程。

代码
文本

1. 氢原子能量计算及输入输出文件

代码
文本

首先我们将数据集中的文件复制到根目录下(否则可能碰到文件没有执行权限的情况):

代码
文本
[1]
cp -r /bohr/ABACUS-cases-nu6t/v9/ABACUS-cases/1 . && cd 1
代码
文本
[2]
tree
.
├── H-atom
│   ├── 0
│   │   ├── INPUT
│   │   ├── KPT
│   │   ├── OUT.H-atom
│   │   │   ├── INPUT
│   │   │   ├── STRU_READIN_ADJUST.cif
│   │   │   ├── istate.info
│   │   │   ├── kpoints
│   │   │   ├── running_scf.log
│   │   │   └── warning.log
│   │   ├── STRU
│   │   ├── result
│   │   └── time.json
│   └── 1
│       ├── INPUT
│       ├── KPT
│       ├── OUT.H-atom
│       │   ├── INPUT
│       │   ├── STRU_READIN_ADJUST.cif
│       │   ├── istate.info
│       │   ├── kpoints
│       │   ├── running_scf.log
│       │   └── warning.log
│       ├── STRU
│       ├── result
│       └── time.json
├── H2-molecule
│   ├── INPUT
│   ├── KPT
│   ├── OUT.H2
│   │   ├── INPUT
│   │   ├── STRU_READIN_ADJUST.cif
│   │   ├── istate.info
│   │   ├── kpoints
│   │   ├── running_scf.log
│   │   └── warning.log
│   ├── STRU
│   ├── result
│   └── time.json
├── O-atom
│   ├── 0
│   │   ├── INPUT
│   │   ├── KPT
│   │   ├── OUT.O-atom
│   │   │   ├── INPUT
│   │   │   ├── STRU_READIN_ADJUST.cif
│   │   │   ├── istate.info
│   │   │   ├── kpoints
│   │   │   ├── running_scf.log
│   │   │   └── warning.log
│   │   ├── STRU
│   │   ├── result
│   │   └── time.json
│   ├── 1
│   │   ├── INPUT
│   │   ├── KPT
│   │   ├── OUT.O-atom
│   │   │   ├── INPUT
│   │   │   ├── STRU_READIN_ADJUST.cif
│   │   │   ├── istate.info
│   │   │   ├── kpoints
│   │   │   ├── running_scf.log
│   │   │   └── warning.log
│   │   ├── STRU
│   │   ├── result
│   │   └── time.json
│   └── 2
│       ├── INPUT
│       ├── KPT
│       ├── OUT.O-atom
│       │   ├── INPUT
│       │   ├── STRU_READIN_ADJUST.cif
│       │   ├── istate.info
│       │   ├── kpoints
│       │   ├── running_scf.log
│       │   └── warning.log
│       ├── STRU
│       ├── result
│       └── time.json
└── O2-molecule
    ├── 0
    │   ├── INPUT
    │   ├── KPT
    │   ├── OUT.O2
    │   │   ├── INPUT
    │   │   ├── STRU_READIN_ADJUST.cif
    │   │   ├── istate.info
    │   │   ├── kpoints
    │   │   ├── running_scf.log
    │   │   └── warning.log
    │   ├── STRU
    │   ├── result
    │   └── time.json
    └── 1
        ├── INPUT
        ├── KPT
        ├── OUT.O2
        │   ├── INPUT
        │   ├── STRU_READIN_ADJUST.cif
        │   ├── istate.info
        │   ├── kpoints
        │   ├── running_scf.log
        │   └── warning.log
        ├── STRU
        ├── result
        └── time.json

19 directories, 88 files

代码
文本

我们从氢原子开始。氢原子能量计算一共包含两个文件夹,对应H-atom文件夹下的0和1,分别代表自旋非极化和自旋极化计算。

代码
文本
[3]
cd H-atom/0
代码
文本
[4]
ls
INPUT  KPT  OUT.H-atom  STRU  result  time.json

代码
文本

进入文件夹后,我们可以看到一共有5个文件和一个文件夹,分别是INPUT、KPT、STRU、result、time.json和OUT.xxx。其中前三个是ABACUS必要的输入文件,且文件名必须全部大写;result并非ABACUS的标准输出文件,而是教程作者将ABACUS的标准输出重定向到result文件中 (abacus |tee result),以方便读者查看标准输出;time.json文件是ABACUS开发团队使用rapidjson做一些格式化的输出,主要用来监控软件的耗时和效率;OUT.xxx文件夹包含ABACUS产生的所有输出文件。下来我们将详细介绍在本节算例中如何准备这些输入文件,以及如何分析输出文件。

代码
文本

1.1 INPUT

代码
文本

INPUT文件是ABACUS的核心控制文件,它指定了ABACUS需要完成的任务和所采用的方法等关键信息。类似VASP,ABACUS的INPUT文件中的指令也采用“tag=value”的形式,其中tag是ABACUS规定的关键词,value是用户输入的符合ABACUS规定的值。但是区别在于:1.ABACUS中不能使用等号来赋值,因为ABACUS中参数的读取实际上使用的是C++里的getline函数,所以不能有“=”号 2.如果同一个tag在INPUT中出现多次,VASP只会识别第一次出现的值,而ABAUCS只会识别最后一次出现的值。

代码
文本
[5]
cat INPUT
INPUT_PARAMETERS
suffix             H-atom
pseudo_dir         /abacus-develop/tests/PP_ORB
orbital_dir        /abacus-develop/tests/PP_ORB
ecutwfc            50                               # unit: Ry, 1Ry = 13.6eV; Default: 50
scf_thr            1e-7
basis_type         lcao
calculation        scf 
symmetry           -1                               # No symmetry
smearing_method    gauss                            # Default: gauss
smearing_sigma     0.0037                           # unit: Ry; Default: 0.015 Ry(= 0.2 eV)

代码
文本

我们来分析一下INPUT文件:可类比VASP的INCAR文件
1.第一行为关键词,不能有任何修改,否则ABACUS无法识别该文件。并且任何在该关键词之前的内容都会被忽略。
2.ABACUS中使用#当做注释符。
3.suffix为OUT文件的后缀
4.pseudo_dirorbital_dir为分别为原子的赝势和轨道所在的文件夹,对于平面波 (PW) 计算,只需要指定赝势;如果选用数值原子轨道作为基组 (LCAO) 进行计算,还需要额外指定轨道文件。大部分ABAUCS相关镜像都会在系统盘下自带/abacus-develop文件夹,即ABACUS源代码,在其中的/abacus-develop/tests/PP_ORB文件夹中就包含赝势和轨道文件。
5.ecutwfc为平面波函数的截断能。首先,这里能量的单位为Ry;其次,即便使用数值原子轨道算法,也需要设置该值,因为ABACUS中局部赝势部分和相关力是由平面波基集计算的。详情见官方说明:ecutwfc
6.scf_thr决定自洽收敛的精度。
7.basis_type决定使用的基组类型。ABACUS目前同时支持pw和lcao基组。
8.calculation决定计算类型:不同于VASP使用ISTART,ICHARG,IBRION等参数控制计算类型,ABACUS直接使用关键词控制。scf-自洽计算,nscf-非自洽计算,relax-离子弛豫等。详情见:calculation
9.symmetry决定是否打开体系的对称性,1是打开对称性;0关闭晶体对称性,但保留时间反演对称性;-1关闭所有对称性。对于自洽计算,默认值为1。对于本节所计算的原子和分子体系,不需要考虑点群对称性,因此全部关闭(设为0/-1)。
10.smearing_methodsmearing_sigma:这两个参数决定了在做布里渊区积分时如何计算分布函数。smearing_method决定展宽方式,默认为gauss(高斯展宽);smearing_sigma决定展宽大小。注意,这里sigma的单位也为Ry。

全部的输入参数列表和说明详见官方文档:Full List of INPUT Keywords

代码
文本

1.2. KPT

代码
文本
[6]
cat KPT
K_POINTS     # keyword for start
0            # total number of k-point, 0 means generate automatically
Gamma        # Gamma-point centered
1 1 1 0 0 0  # first three number: subdivisions along reciprocal vectors; last three number: shift of the mesh


代码
文本

KPT文件:可类比VASP的KPOINTS文件
1.第一行也为关键词。
2.第二行K点数量。手动设置K点时需最后修改该值为K点总数,若自动生成K点则设置该值为0.
3.第三行为产生K点的方式,有Gamma和Monkhorst Pack (MP) 两种。Gamma方式保证k点一定包含倒空间原点,而MP方式则不一定。
4.第四行为由空格分开的6个整数。前三个数字表示沿三个倒易基矢方向的k点数目,后三个数字表示k点网格的平移。

代码
文本

对于超胞内的原子或者小分子,我们只需考虑Gamma点。

代码
文本

1.3. STRU

代码
文本
[7]
cat STRU
ATOMIC_SPECIES
H 1.008 H_ONCV_PBE-1.2.upf upf201  # label; mass; pseudo_file

NUMERICAL_ORBITAL
H_gga_6au_60Ry_2s1p.orb            # numerical_orbital_file

LATTICE_CONSTANT
1.8897259886                       # lattice scaling factor (Bohr), 1.8897259886 Bohr = 1.0 Angstrom

LATTICE_VECTORS
10.100 0.000 0.000
0.000 10.000 0.000
0.000 0.000 10.000

ATOMIC_POSITIONS
Cartesian                          # Cartesian or Direct coordinate.
H                                  # Element type
0.0                                # magnetism
1                                  # number of atoms
0.000 0.000 0.000 0 0 0            # the position of atoms and other parameter specify by key word

代码
文本

STRU文件:可类比VASP的POSCAR文件
按ATOMIC_SPECIES,NUMERICAL_ORBITAL等关键字分为不同的section。

  1. ATOMIC_SPECIES 下的每一行对应一种元素,每种元素需要:元素类型 相对原子质量,赝势文件名,赝势文件类型。
  2. NUMERICAL_ORBITAL下为每种的元素的轨道。关于轨道的命名和使用详见:NAO
  3. LATTICE_CONSTANT 下为“盒子”(晶胞)的缩放因子。注意这里的单位为Bohr。 1.8897259886 Bohr = 1.0 Angstrom。
  4. LATTICE_VECTORS 下为晶胞的三个基矢,它们乘上面的缩放因子得到晶胞真正的大小。
  5. ATOMIC_POSITIONS 下为原子坐标。首先第一行为原子坐标的类型,有分数坐标“Direct”和直角坐标“Cartesian”。再下面开始以“元素类型 磁矩 原子数 原子位置”为一组,多种原子就有多个组。原子位置一行,前三个数为原子位置,后三个数决定原子在弛豫时能否移动。0:不能移动;1:可以移动。
代码
文本

完整的输入文件的参数说明见官方文档:The STRU file

代码
文本

然后便可开始执行计算:

代码
文本
[8]
abacus |tee result #这里不使用2核并行计算的原因是c2节点实际上只有一个物理核,所以mpirun -n 2多进程反倒会导致计算变慢
                                                                                     
                              ABACUS v3.6.3

               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: 615828b (Tue May 21 10:48:51 2024 +0800)

 Fri Jun 21 09:01:51 2024
 MAKE THE DIR         : OUT.H-atom/
 RUNNING WITH DEVICE  : CPU / Intel(R) Xeon(R) Platinum
 UNIFORM GRID DIM        : 90 * 90 * 90
 UNIFORM GRID DIM(BIG)   : 30 * 30 * 30
 DONE(0.157024   SEC) : SETUP UNITCELL
 DONE(0.157271   SEC) : INIT K-POINTS
 ---------------------------------------------------------
 Self-consistent calculations for electrons
 ---------------------------------------------------------
 SPIN    KPOINTS         PROCESSORS  NBASE       
 1       1               1           5           
 ---------------------------------------------------------
 Use Systematically Improvable Atomic bases
 ---------------------------------------------------------
 ELEMENT ORBITALS        NBASE       NATOM       XC          
 H       2s1p-6au        5           1           
 ---------------------------------------------------------
 Initial plane wave basis and FFT box
 ---------------------------------------------------------
 DONE(0.165894   SEC) : INIT PLANEWAVE
 -------------------------------------------
 SELF-CONSISTENT : 
 -------------------------------------------
 START CHARGE      : atomic
 DONE(1.15396    SEC) : INIT SCF
 ITER   ETOT(eV)       EDIFF(eV)      DRHO       TIME(s)    
 GE1    -1.228596e+01  0.000000e+00   8.565e-02  5.488e-01  
 GE2    -1.228595e+01  6.320434e-06   2.680e-02  5.165e-01  
 GE3    -1.228614e+01  -1.909914e-04  1.098e-02  4.788e-01  
 GE4    -1.228628e+01  -1.383033e-04  5.529e-03  4.745e-01  
 GE5    -1.228635e+01  -7.302417e-05  3.171e-03  4.783e-01  
 GE6    -1.228637e+01  -1.496410e-05  1.481e-03  4.774e-01  
 GE7    -1.228638e+01  -9.645295e-06  8.673e-04  4.848e-01  
 GE8    -1.228638e+01  -2.651628e-06  3.044e-04  4.896e-01  
 GE9    -1.228638e+01  -6.875554e-07  5.124e-05  4.780e-01  
 GE10   -1.228638e+01  -1.046384e-08  8.262e-06  4.778e-01  
 GE11   -1.228638e+01  1.895593e-09   1.929e-06  4.833e-01  
 GE12   -1.228638e+01  2.565494e-10   9.979e-07  4.856e-01  
 GE13   -1.228638e+01  -1.102876e-09  6.005e-07  4.416e-01  
 GE14   -1.228638e+01  4.850678e-10   3.046e-07  4.437e-01  
 GE15   -1.228638e+01  3.416878e-10   1.090e-07  4.445e-01  
 GE16   -1.228638e+01  -2.778480e-11  1.615e-08  3.717e-01  
TIME STATISTICS
-------------------------------------------------------------------------------------
      CLASS_NAME                  NAME            TIME(Sec)  CALLS   AVG(Sec) PER(%) 
-------------------------------------------------------------------------------------
                       total                      8.75      9        0.97     100.00 
 Driver                reading                    0.02      1        0.02     0.23   
 Input                 Init                       0.02      1        0.02     0.20   
 Input_Conv            Convert                    0.00      1        0.00     0.01   
 Driver                driver_line                8.73      1        8.73     99.77  
 UnitCell              check_tau                  0.00      1        0.00     0.00   
 ESolver_KS_LCAO       before_all_runners         0.42      1        0.42     4.76   
 PW_Basis_Sup          setuptransform             0.02      1        0.02     0.24   
 PW_Basis_Sup          distributeg                0.00      1        0.00     0.06   
 mymath                heapsort                   0.05      3        0.02     0.62   
 PW_Basis_K            setuptransform             0.00      1        0.00     0.05   
 PW_Basis_K            distributeg                0.00      1        0.00     0.03   
 PW_Basis              setup_struc_factor         0.01      1        0.01     0.10   
 NOrbital_Lm           extra_uniform              0.00      3        0.00     0.02   
 Mathzone_Add1         SplineD2                   0.00      3        0.00     0.00   
 Mathzone_Add1         Cubic_Spline_Interpolation 0.00      3        0.00     0.01   
 ppcell_vl             init_vloc                  0.17      1        0.17     1.90   
 Ions                  opt_ions                   8.28      1        8.28     94.72  
 ESolver_KS_LCAO       runner                     8.28      1        8.28     94.71  
 ESolver_KS_LCAO       before_scf                 0.70      1        0.70     8.03   
 ESolver_KS_LCAO       beforesolver               0.02      1        0.02     0.20   
 ESolver_KS_LCAO       set_matrix_grid            0.01      1        0.01     0.15   
 atom_arrange          search                     0.00      1        0.00     0.00   
 Grid_Technique        init                       0.01      1        0.01     0.14   
 Grid_BigCell          grid_expansion_index       0.01      2        0.00     0.09   
 Record_adj            for_2d                     0.00      1        0.00     0.01   
 Grid_Driver           Find_atom                  0.00      25       0.00     0.00   
 LCAO_domain           grid_prepare               0.00      1        0.00     0.00   
 Veff                  initialize_HR              0.00      1        0.00     0.01   
 OverlapNew            initialize_SR              0.00      1        0.00     0.00   
 EkineticNew           initialize_HR              0.00      1        0.00     0.00   
 NonlocalNew           initialize_HR              0.00      1        0.00     0.00   
 Charge                set_rho_core               0.00      1        0.00     0.01   
 Charge                atomic_rho                 0.24      1        0.24     2.71   
 PW_Basis_Sup          recip2real                 1.81      102      0.02     20.70  
 PW_Basis_Sup          gathers_scatterp           0.34      102      0.00     3.90   
 Potential             init_pot                   0.42      1        0.42     4.85   
 Potential             update_from_charge         5.66      17       0.33     64.71  
 Potential             cal_fixed_v                0.02      1        0.02     0.27   
 PotLocal              cal_fixed_v                0.02      1        0.02     0.26   
 Potential             cal_v_eff                  5.61      17       0.33     64.09  
 H_Hartree_pw          v_hartree                  0.72      17       0.04     8.19   
 PW_Basis_Sup          real2recip                 1.80      117      0.02     20.53  
 PW_Basis_Sup          gatherp_scatters           0.15      117      0.00     1.75   
 PotXC                 cal_v_eff                  4.84      17       0.28     55.28  
 XC_Functional         v_xc                       4.81      17       0.28     55.03  
 Potential             interpolate_vrs            0.03      17       0.00     0.33   
 H_Ewald_pw            compute_ewald              0.01      1        0.01     0.16   
 Charge_Mixing         init_mixing                0.00      1        0.00     0.00   
 HSolverLCAO           solve                      0.90      16       0.06     10.29  
 HamiltLCAO            updateHk                   0.36      16       0.02     4.15   
 OperatorLCAO          init                       0.36      48       0.01     4.15   
 Veff                  contributeHR               0.36      16       0.02     4.10   
 Gint_interface        cal_gint                   0.75      32       0.02     8.61   
 Gint_interface        cal_gint_vlocal            0.36      16       0.02     4.09   
 Gint_Tools            cal_psir_ylm               0.19      96096    0.00     2.18   
 Gint_k                transfer_pvpR              0.00      16       0.00     0.00   
 OverlapNew            calculate_SR               0.00      1        0.00     0.00   
 OverlapNew            contributeHk               0.00      16       0.00     0.00   
 EkineticNew           contributeHR               0.00      16       0.00     0.00   
 EkineticNew           calculate_HR               0.00      1        0.00     0.00   
 NonlocalNew           contributeHR               0.00      16       0.00     0.01   
 NonlocalNew           calculate_HR               0.00      1        0.00     0.01   
 OperatorLCAO          contributeHk               0.00      16       0.00     0.00   
 HSolverLCAO           hamiltSolvePsiK            0.07      16       0.00     0.76   
 DiagoElpa             elpa_solve                 0.05      16       0.00     0.61   
 ElecStateLCAO         psiToRho                   0.47      16       0.03     5.38   
 elecstate             cal_dm                     0.00      16       0.00     0.02   
 psiMulPsiMpi          pdgemm                     0.00      16       0.00     0.01   
 DensityMatrix         cal_DMR                    0.00      16       0.00     0.00   
 Local_Orbital_wfc     wfc_2d_to_grid             0.00      17       0.00     0.01   
 Gint                  transfer_DMR               0.00      16       0.00     0.02   
 Gint_interface        cal_gint_rho               0.40      16       0.02     4.52   
 Charge_Mixing         get_drho                   0.01      16       0.00     0.16   
 Charge                mix_rho                    1.08      15       0.07     12.30  
 Charge                Broyden_mixing             0.21      15       0.01     2.38   
 ESolver_KS_LCAO       out_deepks_labels          0.00      1        0.00     0.00   
 LCAO_Deepks_Interface out_deepks_labels          0.00      1        0.00     0.00   
 ESolver_KS_LCAO       after_all_runners          0.00      1        0.00     0.00   
 ModuleIO              write_istate_info          0.00      1        0.00     0.00   
-------------------------------------------------------------------------------------


 START  Time  : Fri Jun 21 09:01:51 2024
 FINISH Time  : Fri Jun 21 09:02:00 2024
 TOTAL  Time  : 9
 SEE INFORMATION IN : OUT.H-atom/

代码
文本

如果不重定向标准输出,那么可以在命令行界面看到自洽迭代过程,并且在结束后会产生time.json文件和OUT.H-atom文件夹,让我们看看OUT.H-atom文件夹中都有什么文件:

代码
文本

1.4. OUT.suffix

代码
文本
[9]
ls OUT.H-atom
INPUT                   istate.info  running_scf.log
STRU_READIN_ADJUST.cif  kpoints      warning.log

代码
文本
  1. INPUT:与输入文件INPUT同名,但其内容更多,因为其中包含了运行前输入文件INPUT中没有设置的变量的默认值。
  2. STRU_READIN_ADJUST.cif:输入文件STRU的cif格式,可以用VESTA等可视化软件打开。
  3. istate.info:包含电子能级和占据数。
  4. kpoints:包含k点位置和权重。
  5. running_scf.log:可类比VASP的OUTCAR文件。最重要的输出文件,记录了ABACUS详尽的计算过程。
  6. warning.log:ABACUS执行中的stderr。
代码
文本

我们可以用grep命令直接从running_scf.log文件中获取氢原子的能量:

代码
文本
[10]
grep -n "ETOT" OUT.H-atom/running_scf.log
529: !FINAL_ETOT_IS -12.28638015769740 eV

代码
文本

查看能级和占据数:

代码
文本
[11]
cat OUT.H-atom/istate.info
BAND               Energy(ev)               Occupation                Kpoint = 1                        (0 0 0)
     1                 -5.91314                        1
     2                   16.318                        0
     3                   36.882                        0
     4                   36.882                        0
     5                   36.882                        0



代码
文本

1.5. 自旋极化计算

代码
文本

由于氢原子含有未配对电子,其自旋磁矩不为0,此时要考虑自旋极化计算,即在INPUT文件中加设一个参数nspin,值为2,并且在STRU文件中设置初始磁矩为1。我们进入自旋极化计算的文件夹:

代码
文本
[12]
cd ../1
代码
文本
[13]
cat INPUT
INPUT_PARAMETERS
suffix             H-atom
nspin              2
pseudo_dir         /abacus-develop/tests/PP_ORB
orbital_dir        /abacus-develop/tests/PP_ORB
ecutwfc            50                               # unit: Ry, 1Ry = 13.6eV; Default: 50
scf_thr            1e-7
basis_type         lcao
calculation        scf 
symmetry           -1                               # No symmetry
smearing_method    gauss                            # Default: gauss
smearing_sigma     0.0037                           # unit: Ry; Default: 0.015 Ry(= 0.2 eV)
mixing_beta             0.4  # for metal: 0.05-0.4, 0 - 0.1 for difficult
mixing_beta_mag         0.4
mixing_gg0              0.0  # only for transition metal
mixing_gg0_mag          0.0

代码
文本
[14]
cat STRU
ATOMIC_SPECIES
H 1.008 H_ONCV_PBE-1.2.upf upf201  # label; mass; pseudo_file

NUMERICAL_ORBITAL
H_gga_6au_60Ry_2s1p.orb            # numerical_orbital_file

LATTICE_CONSTANT
1.8897259886                       # lattice scaling factor (Bohr), 1.8897259886 Bohr = 1.0 Angstrom

LATTICE_VECTORS
10.100 0.000 0.000
0.000 10.000 0.000
0.000 0.000 10.000

ATOMIC_POSITIONS
Cartesian                          # Cartesian or Direct coordinate.
H                                  # Element type
1.0                                # magnetism
1                                  # number of atoms
0.000 0.000 0.000 0 0 0            # the position of atoms and other parameter specify by key word

代码
文本
[15]
abacus
                                                                                     
                              ABACUS v3.6.3

               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: 615828b (Tue May 21 10:48:51 2024 +0800)

 Fri Jun 21 09:02:01 2024
 MAKE THE DIR         : OUT.H-atom/
 RUNNING WITH DEVICE  : CPU / Intel(R) Xeon(R) Platinum
 UNIFORM GRID DIM        : 90 * 90 * 90
 UNIFORM GRID DIM(BIG)   : 30 * 30 * 30
 DONE(0.126893   SEC) : SETUP UNITCELL
 DONE(0.127169   SEC) : INIT K-POINTS
 ---------------------------------------------------------
 Self-consistent calculations for electrons
 ---------------------------------------------------------
 SPIN    KPOINTS         PROCESSORS  NBASE       
 2       2               1           5           
 ---------------------------------------------------------
 Use Systematically Improvable Atomic bases
 ---------------------------------------------------------
 ELEMENT ORBITALS        NBASE       NATOM       XC          
 H       2s1p-6au        5           1           
 ---------------------------------------------------------
 Initial plane wave basis and FFT box
 ---------------------------------------------------------
 DONE(0.139262   SEC) : INIT PLANEWAVE
 -------------------------------------------
 SELF-CONSISTENT : 
 -------------------------------------------
 START CHARGE      : atomic
 DONE(1.53867    SEC) : INIT SCF
 ITER   TMAG      AMAG      ETOT(eV)       EDIFF(eV)      DRHO       TIME(s)    
 GE1    1.00e+00  1.00e+00  -1.342926e+01  0.000000e+00   1.395e-01  8.561e-01  
 GE2    1.00e+00  1.00e+00  -1.342452e+01  4.737931e-03   7.890e-02  8.366e-01  
 GE3    1.00e+00  1.00e+00  -1.342497e+01  -4.462247e-04  3.646e-03  7.573e-01  
 GE4    1.00e+00  1.00e+00  -1.342497e+01  1.530331e-06   1.549e-03  7.014e-01  
 GE5    1.00e+00  1.00e+00  -1.342497e+01  -1.296950e-07  1.174e-05  7.155e-01  
 GE6    1.00e+00  1.00e+00  -1.342497e+01  -8.504317e-13  1.024e-05  7.373e-01  
 GE7    1.00e+00  1.00e+00  -1.342497e+01  -1.776692e-11  4.686e-07  7.161e-01  
 GE8    1.00e+00  1.00e+00  -1.342497e+01  2.249188e-12   3.397e-07  7.222e-01  
 GE9    1.00e+00  1.00e+00  -1.342497e+01  3.353390e-13   3.417e-09  6.584e-01  
TIME STATISTICS
-------------------------------------------------------------------------------------
      CLASS_NAME                  NAME            TIME(Sec)  CALLS   AVG(Sec) PER(%) 
-------------------------------------------------------------------------------------
                       total                      8.26      9        0.92     100.00 
 Driver                reading                    0.02      1        0.02     0.20   
 Input                 Init                       0.01      1        0.01     0.18   
 Input_Conv            Convert                    0.00      1        0.00     0.00   
 Driver                driver_line                8.25      1        8.25     99.80  
 UnitCell              check_tau                  0.00      1        0.00     0.00   
 ESolver_KS_LCAO       before_all_runners         0.49      1        0.49     5.87   
 PW_Basis_Sup          setuptransform             0.01      1        0.01     0.09   
 PW_Basis_Sup          distributeg                0.00      1        0.00     0.06   
 mymath                heapsort                   0.05      3        0.02     0.66   
 PW_Basis_K            setuptransform             0.01      1        0.01     0.08   
 PW_Basis_K            distributeg                0.00      1        0.00     0.03   
 PW_Basis              setup_struc_factor         0.01      1        0.01     0.11   
 NOrbital_Lm           extra_uniform              0.00      3        0.00     0.02   
 Mathzone_Add1         SplineD2                   0.00      3        0.00     0.00   
 Mathzone_Add1         Cubic_Spline_Interpolation 0.00      3        0.00     0.01   
 ppcell_vl             init_vloc                  0.24      1        0.24     2.92   
 Ions                  opt_ions                   7.74      1        7.74     93.68  
 ESolver_KS_LCAO       runner                     7.74      1        7.74     93.68  
 ESolver_KS_LCAO       before_scf                 1.04      1        1.04     12.53  
 ESolver_KS_LCAO       beforesolver               0.01      1        0.01     0.16   
 ESolver_KS_LCAO       set_matrix_grid            0.01      1        0.01     0.15   
 atom_arrange          search                     0.00      1        0.00     0.00   
 Grid_Technique        init                       0.01      1        0.01     0.15   
 Grid_BigCell          grid_expansion_index       0.01      2        0.00     0.10   
 Record_adj            for_2d                     0.00      1        0.00     0.00   
 Grid_Driver           Find_atom                  0.00      27       0.00     0.00   
 LCAO_domain           grid_prepare               0.00      1        0.00     0.00   
 Veff                  initialize_HR              0.00      1        0.00     0.00   
 OverlapNew            initialize_SR              0.00      1        0.00     0.00   
 EkineticNew           initialize_HR              0.00      1        0.00     0.00   
 NonlocalNew           initialize_HR              0.00      1        0.00     0.00   
 Charge                set_rho_core               0.00      1        0.00     0.01   
 Charge                atomic_rho                 0.27      1        0.27     3.27   
 PW_Basis_Sup          recip2real                 1.37      93       0.01     16.58  
 PW_Basis_Sup          gathers_scatterp           0.25      93       0.00     3.00   
 Potential             init_pot                   0.73      1        0.73     8.83   
 Potential             update_from_charge         5.70      10       0.57     69.01  
 Potential             cal_fixed_v                0.02      1        0.02     0.26   
 PotLocal              cal_fixed_v                0.02      1        0.02     0.25   
 Potential             cal_v_eff                  5.62      10       0.56     68.02  
 H_Hartree_pw          v_hartree                  0.43      10       0.04     5.26   
 PW_Basis_Sup          real2recip                 1.35      100      0.01     16.38  
 PW_Basis_Sup          gatherp_scatters           0.12      100      0.00     1.42   
 PotXC                 cal_v_eff                  5.11      10       0.51     61.89  
 XC_Functional         v_xc                       5.08      10       0.51     61.48  
 Potential             interpolate_vrs            0.06      10       0.01     0.74   
 H_Ewald_pw            compute_ewald              0.01      1        0.01     0.16   
 Charge_Mixing         init_mixing                0.00      1        0.00     0.00   
 HSolverLCAO           solve                      0.75      9        0.08     9.09   
 HamiltLCAO            updateHk                   0.37      18       0.02     4.44   
 OperatorLCAO          init                       0.37      54       0.01     4.44   
 Veff                  contributeHR               0.37      18       0.02     4.43   
 Gint_interface        cal_gint                   0.65      27       0.02     7.88   
 Gint_interface        cal_gint_vlocal            0.37      18       0.02     4.43   
 Gint_Tools            cal_psir_ylm               0.15      81081    0.00     1.76   
 Gint_k                transfer_pvpR              0.00      18       0.00     0.00   
 OverlapNew            calculate_SR               0.00      1        0.00     0.00   
 OverlapNew            contributeHk               0.00      18       0.00     0.00   
 EkineticNew           contributeHR               0.00      18       0.00     0.00   
 EkineticNew           calculate_HR               0.00      1        0.00     0.00   
 NonlocalNew           contributeHR               0.00      18       0.00     0.00   
 NonlocalNew           calculate_HR               0.00      1        0.00     0.00   
 OperatorLCAO          contributeHk               0.00      18       0.00     0.00   
 HSolverLCAO           hamiltSolvePsiK            0.02      18       0.00     0.22   
 DiagoElpa             elpa_solve                 0.01      18       0.00     0.13   
 ElecStateLCAO         psiToRho                   0.37      9        0.04     4.43   
 elecstate             cal_dm                     0.00      9        0.00     0.00   
 psiMulPsiMpi          pdgemm                     0.00      18       0.00     0.00   
 DensityMatrix         cal_DMR                    0.00      9        0.00     0.00   
 Local_Orbital_wfc     wfc_2d_to_grid             0.00      20       0.00     0.00   
 Gint                  transfer_DMR               0.00      9        0.00     0.01   
 Gint_interface        cal_gint_rho               0.29      9        0.03     3.45   
 Charge_Mixing         get_drho                   0.02      9        0.00     0.18   
 Charge                mix_rho                    0.60      8        0.08     7.28   
 Charge                Broyden_mixing             0.17      8        0.02     2.03   
 ESolver_KS_LCAO       out_deepks_labels          0.00      1        0.00     0.00   
 LCAO_Deepks_Interface out_deepks_labels          0.00      1        0.00     0.00   
 ESolver_KS_LCAO       after_all_runners          0.00      1        0.00     0.00   
 ModuleIO              write_istate_info          0.00      1        0.00     0.00   
-------------------------------------------------------------------------------------


 START  Time  : Fri Jun 21 09:02:01 2024
 FINISH Time  : Fri Jun 21 09:02:09 2024
 TOTAL  Time  : 8
 SEE INFORMATION IN : OUT.H-atom/

代码
文本

从命令行的输出可以看到,现在的迭代过程会多出两列,分别为总磁矩和绝对值磁矩。并且可以发现计算量相对于非自旋极化的情况加倍,这是由于计算中需要分别考虑两种自旋(spin-up/spin-down)情况的方程求解。
我们可以用下述命令从running_scf.log文件中读出最后一步迭代后的磁矩:

代码
文本
[16]
grep -n -i "mag" OUT.H-atom/running_scf.log | tail -n 2
450:          total magnetism (Bohr mag/cell) = 1
451:       absolute magnetism (Bohr mag/cell) = 1

代码
文本
[17]
grep -n "ETOT" OUT.H-atom/running_scf.log
498: !FINAL_ETOT_IS -13.42496865673618 eV

代码
文本

对比可以发现,此时得到的氢原子能量更低。我们就用这个能量作为后面氢分子结合能计算中的原子能量。

代码
文本

1.6. 注意

这里需要强调一下mixing_betamixing_beta_mag这两个参数,这两个参数对于原子体系的自洽计算能否收敛十分关键。我们可以在这里简单的分析一下。
首先想要正确得到氢原子的基态能量需要打开自旋极化(nspin=2)。ABACUS自从v3.5.0之后采用电荷密度、磁密度的分开混合新算法替换不同自旋分量密度混合的旧算法:
ρ u p = 1 2 ( ρ + m ) , ρ d o w n = 1 2 ( ρ m ) 其中引入了新的参数:mixing_beta_mag α m
由于默认设置为 α m = 4 α ρ ,这就导致在 ρ u p 有限时 ρ d o w n 永远不会为0(鉴于他们的和为ρ,并且不会和磁密度m抵消),从而无法收敛。
解决办法:设置两个mixing_beta_mag和mixing_beta两个混合参数相等。
更深一点的理解:对于原子体系,基态的 ρ u p & ρ d o w n 对应不同的KS轨道。KS轨道应该相互正交。但默认设置下两个电荷密度并非完全独立,因此永远无法找到基态。所以对于所有原子体系都应该如此设置。
如果在计算中遇到不收敛的例子,可以参考ABACUS收敛性问题解决手册

代码
文本

2. 氧原子能量计算

代码
文本

类似地,我们可以进行氧原子的能量计算。氧原子的基态存在两个未配对电子,存在净磁矩。对于氧原子,我们在O-atom下准备了三个计算文件夹:0,1,2,分别代表非自旋极化,自旋极化,自旋极化并且调整晶胞形状计算,让我们看看这三种方式分别会得到什么样的结果:

代码
文本
[18]
cd ../../O-atom
代码
文本
[19]
ls
0  1  2

代码
文本

2.1. 氧原子非自旋极化计算

代码
文本
[20]
cd 0
代码
文本
[21]
cat INPUT
INPUT_PARAMETERS
suffix             O-atom
pseudo_dir         /abacus-develop/tests/PP_ORB
orbital_dir        /abacus-develop/tests/PP_ORB
ecutwfc            50                            # unit: Ry, 1Ry = 13.6eV; Default: 50
scf_thr            1e-7
basis_type         lcao
calculation        scf 
symmetry           -1                            # No symmetry 
smearing_method    gauss                         # Default: gauss
smearing_sigma     0.0037                        # unit: Ry; Default: 0.015 Ry(= 0.2 eV)

代码
文本

我们首先进行非自旋极化计算(nspin默认为1,即spin degeneracy)

代码
文本
[22]
cat STRU
ATOMIC_SPECIES
O 15.999 O_ONCV_PBE-1.2.upf upf201 # label; mass; pseudo_file

NUMERICAL_ORBITAL
O_gga_8au_100Ry_2s2p1d.orb         # numerical_orbital_file

LATTICE_CONSTANT
1.8897259886                       # lattice scaling factor (Bohr), 1.8897259886 Bohr = 1.0 Angstrom

LATTICE_VECTORS
10.000 0.000 0.000
0.000 10.000 0.000
0.000 0.000 10.000

ATOMIC_POSITIONS
Cartesian                          # Cartesian or Direct coordinate.
O                                  # Element type
0.0                                # magnetism
1                                  # number of atoms
0.000 0.000 0.000 0 0 0            # the position of atoms and other parameter specify by key word

代码
文本
[23]
abacus
                                                                                     
                              ABACUS v3.6.3

               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: 615828b (Tue May 21 10:48:51 2024 +0800)

 Fri Jun 21 09:02:11 2024
 MAKE THE DIR         : OUT.O-atom/
 RUNNING WITH DEVICE  : CPU / Intel(R) Xeon(R) Platinum
 UNIFORM GRID DIM        : 90 * 90 * 90
 UNIFORM GRID DIM(BIG)   : 30 * 30 * 30
 DONE(0.126606   SEC) : SETUP UNITCELL
 DONE(0.126877   SEC) : INIT K-POINTS
 ---------------------------------------------------------
 Self-consistent calculations for electrons
 ---------------------------------------------------------
 SPIN    KPOINTS         PROCESSORS  NBASE       
 1       1               1           13          
 ---------------------------------------------------------
 Use Systematically Improvable Atomic bases
 ---------------------------------------------------------
 ELEMENT ORBITALS        NBASE       NATOM       XC          
 O       2s2p1d-8au      13          1           
 ---------------------------------------------------------
 Initial plane wave basis and FFT box
 ---------------------------------------------------------
 DONE(0.135452   SEC) : INIT PLANEWAVE
 -------------------------------------------
 SELF-CONSISTENT : 
 -------------------------------------------
 START CHARGE      : atomic
 DONE(0.839925   SEC) : INIT SCF
 ITER   ETOT(eV)       EDIFF(eV)      DRHO       TIME(s)    
 GE1    -4.276363e+02  0.000000e+00   1.866e-02  5.611e-01  
 GE2    -4.276365e+02  -1.127699e-04  4.606e-03  5.116e-01  
 GE3    -4.276366e+02  -1.376582e-04  2.043e-03  5.154e-01  
 GE4    -4.276366e+02  -4.030776e-05  7.198e-04  5.053e-01  
 GE5    -4.276367e+02  -2.466832e-05  3.620e-04  5.129e-01  
 GE6    -4.276367e+02  -2.251014e-05  2.072e-04  5.115e-01  
 GE7    -4.276367e+02  -7.991455e-07  9.862e-05  5.278e-01  
 GE8    -4.276367e+02  -1.141796e-05  9.009e-05  5.232e-01  
 GE9    -4.276367e+02  -7.098193e-07  3.656e-05  5.108e-01  
 GE10   -4.276367e+02  -1.567814e-06  3.278e-05  5.336e-01  
 GE11   -4.276367e+02  -8.013716e-07  1.587e-05  5.390e-01  
 GE12   -4.276367e+02  -3.647315e-07  6.777e-06  5.073e-01  
 GE13   -4.276367e+02  -1.751390e-08  8.986e-07  5.315e-01  
 GE14   -4.276367e+02  -8.444162e-09  1.017e-06  5.065e-01  
 GE15   -4.276367e+02  -1.065931e-09  2.234e-07  4.954e-01  
 GE16   -4.276367e+02  5.356723e-10   9.308e-08  4.444e-01  
TIME STATISTICS
-------------------------------------------------------------------------------------
      CLASS_NAME                  NAME            TIME(Sec)  CALLS   AVG(Sec) PER(%) 
-------------------------------------------------------------------------------------
                       total                      9.09      9        1.01     100.00 
 Driver                reading                    0.02      1        0.02     0.18   
 Input                 Init                       0.01      1        0.01     0.16   
 Input_Conv            Convert                    0.00      1        0.00     0.00   
 Driver                driver_line                9.08      1        9.08     99.82  
 UnitCell              check_tau                  0.00      1        0.00     0.00   
 ESolver_KS_LCAO       before_all_runners         0.27      1        0.27     3.01   
 PW_Basis_Sup          setuptransform             0.01      1        0.01     0.08   
 PW_Basis_Sup          distributeg                0.00      1        0.00     0.05   
 mymath                heapsort                   0.05      3        0.02     0.56   
 PW_Basis_K            setuptransform             0.00      1        0.00     0.05   
 PW_Basis_K            distributeg                0.00      1        0.00     0.03   
 PW_Basis              setup_struc_factor         0.01      1        0.01     0.09   
 NOrbital_Lm           extra_uniform              0.00      5        0.00     0.04   
 Mathzone_Add1         SplineD2                   0.00      5        0.00     0.00   
 Mathzone_Add1         Cubic_Spline_Interpolation 0.00      5        0.00     0.02   
 ppcell_vl             init_vloc                  0.01      1        0.01     0.16   
 Ions                  opt_ions                   8.79      1        8.79     96.67  
 ESolver_KS_LCAO       runner                     8.79      1        8.79     96.67  
 ESolver_KS_LCAO       before_scf                 0.55      1        0.55     6.02   
 ESolver_KS_LCAO       beforesolver               0.02      1        0.02     0.21   
 ESolver_KS_LCAO       set_matrix_grid            0.02      1        0.02     0.20   
 atom_arrange          search                     0.00      1        0.00     0.00   
 Grid_Technique        init                       0.02      1        0.02     0.20   
 Grid_BigCell          grid_expansion_index       0.01      2        0.01     0.13   
 Record_adj            for_2d                     0.00      1        0.00     0.00   
 Grid_Driver           Find_atom                  0.00      25       0.00     0.00   
 LCAO_domain           grid_prepare               0.00      1        0.00     0.00   
 Veff                  initialize_HR              0.00      1        0.00     0.00   
 OverlapNew            initialize_SR              0.00      1        0.00     0.00   
 EkineticNew           initialize_HR              0.00      1        0.00     0.00   
 NonlocalNew           initialize_HR              0.00      1        0.00     0.00   
 Charge                set_rho_core               0.00      1        0.00     0.01   
 Charge                atomic_rho                 0.05      1        0.05     0.53   
 PW_Basis_Sup          recip2real                 1.49      102      0.01     16.44  
 PW_Basis_Sup          gathers_scatterp           0.26      102      0.00     2.84   
 Potential             init_pot                   0.46      1        0.46     5.08   
 Potential             update_from_charge         5.53      17       0.33     60.82  
 Potential             cal_fixed_v                0.02      1        0.02     0.23   
 PotLocal              cal_fixed_v                0.02      1        0.02     0.22   
 Potential             cal_v_eff                  5.48      17       0.32     60.30  
 H_Hartree_pw          v_hartree                  0.66      17       0.04     7.27   
 PW_Basis_Sup          real2recip                 1.63      117      0.01     17.88  
 PW_Basis_Sup          gatherp_scatters           0.14      117      0.00     1.49   
 PotXC                 cal_v_eff                  4.77      17       0.28     52.45  
 XC_Functional         v_xc                       4.75      17       0.28     52.22  
 Potential             interpolate_vrs            0.03      17       0.00     0.29   
 H_Ewald_pw            compute_ewald              0.01      1        0.01     0.15   
 Charge_Mixing         init_mixing                0.00      1        0.00     0.00   
 HSolverLCAO           solve                      1.86      16       0.12     20.44  
 HamiltLCAO            updateHk                   0.84      16       0.05     9.26   
 OperatorLCAO          init                       0.84      48       0.02     9.25   
 Veff                  contributeHR               0.84      16       0.05     9.24   
 Gint_interface        cal_gint                   1.76      32       0.06     19.38  
 Gint_interface        cal_gint_vlocal            0.84      16       0.05     9.24   
 Gint_Tools            cal_psir_ylm               0.56      200768   0.00     6.19   
 Gint_k                transfer_pvpR              0.00      16       0.00     0.00   
 OverlapNew            calculate_SR               0.00      1        0.00     0.01   
 OverlapNew            contributeHk               0.00      16       0.00     0.00   
 EkineticNew           contributeHR               0.00      16       0.00     0.01   
 EkineticNew           calculate_HR               0.00      1        0.00     0.01   
 NonlocalNew           contributeHR               0.00      16       0.00     0.00   
 NonlocalNew           calculate_HR               0.00      1        0.00     0.00   
 OperatorLCAO          contributeHk               0.00      16       0.00     0.00   
 HSolverLCAO           hamiltSolvePsiK            0.02      16       0.00     0.23   
 DiagoElpa             elpa_solve                 0.01      16       0.00     0.16   
 ElecStateLCAO         psiToRho                   1.00      16       0.06     10.94  
 elecstate             cal_dm                     0.00      16       0.00     0.00   
 psiMulPsiMpi          pdgemm                     0.00      16       0.00     0.00   
 DensityMatrix         cal_DMR                    0.00      16       0.00     0.00   
 Local_Orbital_wfc     wfc_2d_to_grid             0.00      17       0.00     0.00   
 Gint                  transfer_DMR               0.00      16       0.00     0.02   
 Gint_interface        cal_gint_rho               0.92      16       0.06     10.15  
 Charge_Mixing         get_drho                   0.01      16       0.00     0.14   
 Charge                mix_rho                    0.99      15       0.07     10.87  
 Charge                Broyden_mixing             0.19      15       0.01     2.12   
 ESolver_KS_LCAO       out_deepks_labels          0.00      1        0.00     0.00   
 LCAO_Deepks_Interface out_deepks_labels          0.00      1        0.00     0.00   
 ESolver_KS_LCAO       after_all_runners          0.00      1        0.00     0.00   
 ModuleIO              write_istate_info          0.00      1        0.00     0.00   
-------------------------------------------------------------------------------------


 START  Time  : Fri Jun 21 09:02:11 2024
 FINISH Time  : Fri Jun 21 09:02:20 2024
 TOTAL  Time  : 9
 SEE INFORMATION IN : OUT.O-atom/

代码
文本
[24]
grep -n "ETOT" OUT.O-atom/running_scf.log
540: !FINAL_ETOT_IS -427.6367009979188 eV

代码
文本
[25]
cat OUT.O-atom/istate.info
BAND               Energy(ev)               Occupation                Kpoint = 1                        (0 0 0)
     1                 -23.7491                        2
     2                 -8.84264                  1.33333
     3                 -8.84264                  1.33333
     4                 -8.84264                  1.33333
     5                  9.10723                        0
     6                  9.10723                        0
     7                  9.10723                        0
     8                  11.1297                        0
     9                  43.8131                        0
    10                  43.8131                        0
    11                  43.8131                        0
    12                  43.8132                        0
    13                  43.8132                        0



代码
文本

可以看到,非自旋极化的结果是2p轨道分别被1.3个电子占据,这显然是错误的。

代码
文本

正确的能级占据应该是:
alt

代码
文本

2.2. 氧原子自旋极化计算

代码
文本

在来看看打开自旋极化会有什么结果:

代码
文本
[26]
cd ../1
代码
文本
[27]
cat INPUT
INPUT_PARAMETERS
suffix             O-atom
nspin              2
pseudo_dir         /abacus-develop/tests/PP_ORB
orbital_dir        /abacus-develop/tests/PP_ORB
ecutwfc            50                            # unit: Ry, 1Ry = 13.6eV; Default: 50
scf_thr            1e-7
basis_type         lcao
calculation        scf 
symmetry           -1                            # No symmetry 
smearing_method    gauss                         # Default: gauss
smearing_sigma     0.0037                        # unit: Ry; Default: 0.015 Ry(= 0.2 eV)
mixing_beta             0.4  # for metal: 0.05-0.4, 0 - 0.1 for difficult
mixing_beta_mag         0.4
mixing_gg0              0.0  # only for transition metal
mixing_gg0_mag          0.0

代码
文本

nspin被设置为2 (collinear spin polarized)

代码
文本
[28]
cat STRU
ATOMIC_SPECIES
O 15.999 O_ONCV_PBE-1.2.upf upf201 # label; mass; pseudo_file

NUMERICAL_ORBITAL
O_gga_8au_100Ry_2s2p1d.orb         # numerical_orbital_file

LATTICE_CONSTANT
1.8897259886                       # lattice scaling factor (Bohr), 1.8897259886 Bohr = 1.0 Angstrom

LATTICE_VECTORS
10.000 0.000 0.000
0.000 10.000 0.000
0.000 0.000 10.000

ATOMIC_POSITIONS
Cartesian                          # Cartesian or Direct coordinate.
O                                  # Element type
2.0                                # magnetism
1                                  # number of atoms
0.000 0.000 0.000 0 0 0            # the position of atoms and other parameter specify by key word

代码
文本

初始磁矩设为2.0

代码
文本
[29]
abacus
                                                                                     
                              ABACUS v3.6.3

               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: 615828b (Tue May 21 10:48:51 2024 +0800)

 Fri Jun 21 09:02:22 2024
 MAKE THE DIR         : OUT.O-atom/
 RUNNING WITH DEVICE  : CPU / Intel(R) Xeon(R) Platinum
 UNIFORM GRID DIM        : 90 * 90 * 90
 UNIFORM GRID DIM(BIG)   : 30 * 30 * 30
 DONE(0.1259     SEC) : SETUP UNITCELL
 DONE(0.126185   SEC) : INIT K-POINTS
 ---------------------------------------------------------
 Self-consistent calculations for electrons
 ---------------------------------------------------------
 SPIN    KPOINTS         PROCESSORS  NBASE       
 2       2               1           13          
 ---------------------------------------------------------
 Use Systematically Improvable Atomic bases
 ---------------------------------------------------------
 ELEMENT ORBITALS        NBASE       NATOM       XC          
 O       2s2p1d-8au      13          1           
 ---------------------------------------------------------
 Initial plane wave basis and FFT box
 ---------------------------------------------------------
 DONE(0.13833    SEC) : INIT PLANEWAVE
 -------------------------------------------
 SELF-CONSISTENT : 
 -------------------------------------------
 START CHARGE      : atomic
 DONE(1.2806     SEC) : INIT SCF
 ITER   TMAG      AMAG      ETOT(eV)       EDIFF(eV)      DRHO       TIME(s)    
 GE1    2.00e+00  2.00e+00  -4.291790e+02  0.000000e+00   2.834e-02  1.059e+00  
 GE2    2.00e+00  2.00e+00  -4.291853e+02  -6.356795e-03  1.643e-02  1.012e+00  
 GE3    2.00e+00  2.00e+00  -4.291858e+02  -4.999497e-04  1.967e-03  1.010e+00  
 GE4    2.00e+00  2.00e+00  -4.291859e+02  -6.834132e-05  1.101e-03  9.368e-01  
 GE5    2.00e+00  2.00e+00  -4.291859e+02  -1.112699e-06  8.431e-05  9.406e-01  
 GE6    2.00e+00  2.00e+00  -4.291859e+02  -1.978620e-07  1.677e-05  8.904e-01  
 GE7    2.00e+00  2.00e+00  -4.291859e+02  -5.129007e-09  1.125e-06  8.879e-01  
 GE8    2.00e+00  2.00e+00  -4.291859e+02  3.712776e-10   1.210e-06  9.073e-01  
 GE9    2.00e+00  2.00e+00  -4.291859e+02  4.395780e-10   1.848e-08  7.879e-01  
TIME STATISTICS
-------------------------------------------------------------------------------------
      CLASS_NAME                  NAME            TIME(Sec)  CALLS   AVG(Sec) PER(%) 
-------------------------------------------------------------------------------------
                       total                      9.73      9        1.08     100.00 
 Driver                reading                    0.02      1        0.02     0.18   
 Input                 Init                       0.02      1        0.02     0.16   
 Input_Conv            Convert                    0.00      1        0.00     0.00   
 Driver                driver_line                9.72      1        9.72     99.82  
 UnitCell              check_tau                  0.00      1        0.00     0.00   
 ESolver_KS_LCAO       before_all_runners         0.32      1        0.32     3.31   
 PW_Basis_Sup          setuptransform             0.01      1        0.01     0.08   
 PW_Basis_Sup          distributeg                0.01      1        0.01     0.05   
 mymath                heapsort                   0.05      3        0.02     0.53   
 PW_Basis_K            setuptransform             0.01      1        0.01     0.06   
 PW_Basis_K            distributeg                0.00      1        0.00     0.03   
 PW_Basis              setup_struc_factor         0.01      1        0.01     0.08   
 NOrbital_Lm           extra_uniform              0.00      5        0.00     0.04   
 Mathzone_Add1         SplineD2                   0.00      5        0.00     0.00   
 Mathzone_Add1         Cubic_Spline_Interpolation 0.00      5        0.00     0.02   
 ppcell_vl             init_vloc                  0.01      1        0.01     0.15   
 Ions                  opt_ions                   9.37      1        9.37     96.30  
 ESolver_KS_LCAO       runner                     9.37      1        9.37     96.29  
 ESolver_KS_LCAO       before_scf                 0.94      1        0.94     9.65   
 ESolver_KS_LCAO       beforesolver               0.02      1        0.02     0.19   
 ESolver_KS_LCAO       set_matrix_grid            0.02      1        0.02     0.19   
 atom_arrange          search                     0.00      1        0.00     0.00   
 Grid_Technique        init                       0.02      1        0.02     0.19   
 Grid_BigCell          grid_expansion_index       0.01      2        0.01     0.12   
 Record_adj            for_2d                     0.00      1        0.00     0.00   
 Grid_Driver           Find_atom                  0.00      27       0.00     0.00   
 LCAO_domain           grid_prepare               0.00      1        0.00     0.00   
 Veff                  initialize_HR              0.00      1        0.00     0.00   
 OverlapNew            initialize_SR              0.00      1        0.00     0.00   
 EkineticNew           initialize_HR              0.00      1        0.00     0.00   
 NonlocalNew           initialize_HR              0.00      1        0.00     0.00   
 Charge                set_rho_core               0.00      1        0.00     0.01   
 Charge                atomic_rho                 0.07      1        0.07     0.75   
 PW_Basis_Sup          recip2real                 1.39      93       0.01     14.26  
 PW_Basis_Sup          gathers_scatterp           0.24      93       0.00     2.51   
 Potential             init_pot                   0.83      1        0.83     8.47   
 Potential             update_from_charge         6.49      10       0.65     66.67  
 Potential             cal_fixed_v                0.02      1        0.02     0.23   
 PotLocal              cal_fixed_v                0.02      1        0.02     0.22   
 Potential             cal_v_eff                  6.44      10       0.64     66.12  
 H_Hartree_pw          v_hartree                  0.44      10       0.04     4.50   
 PW_Basis_Sup          real2recip                 1.34      100      0.01     13.73  
 PW_Basis_Sup          gatherp_scatters           0.12      100      0.00     1.19   
 PotXC                 cal_v_eff                  5.92      10       0.59     60.84  
 XC_Functional         v_xc                       5.90      10       0.59     60.59  
 Potential             interpolate_vrs            0.03      10       0.00     0.33   
 H_Ewald_pw            compute_ewald              0.01      1        0.01     0.14   
 Charge_Mixing         init_mixing                0.00      1        0.00     0.00   
 HSolverLCAO           solve                      1.78      9        0.20     18.27  
 HamiltLCAO            updateHk                   0.97      18       0.05     9.94   
 OperatorLCAO          init                       0.97      54       0.02     9.93   
 Veff                  contributeHR               0.97      18       0.05     9.91   
 Gint_interface        cal_gint                   1.67      27       0.06     17.14  
 Gint_interface        cal_gint_vlocal            0.96      18       0.05     9.91   
 Gint_Tools            cal_psir_ylm               0.44      169398   0.00     4.50   
 Gint_k                transfer_pvpR              0.00      18       0.00     0.00   
 OverlapNew            calculate_SR               0.00      1        0.00     0.01   
 OverlapNew            contributeHk               0.00      18       0.00     0.00   
 EkineticNew           contributeHR               0.00      18       0.00     0.01   
 EkineticNew           calculate_HR               0.00      1        0.00     0.01   
 NonlocalNew           contributeHR               0.00      18       0.00     0.00   
 NonlocalNew           calculate_HR               0.00      1        0.00     0.00   
 OperatorLCAO          contributeHk               0.00      18       0.00     0.00   
 HSolverLCAO           hamiltSolvePsiK            0.02      18       0.00     0.23   
 DiagoElpa             elpa_solve                 0.02      18       0.00     0.16   
 ElecStateLCAO         psiToRho                   0.79      9        0.09     8.11   
 elecstate             cal_dm                     0.00      9        0.00     0.00   
 psiMulPsiMpi          pdgemm                     0.00      18       0.00     0.00   
 DensityMatrix         cal_DMR                    0.00      9        0.00     0.00   
 Local_Orbital_wfc     wfc_2d_to_grid             0.00      20       0.00     0.00   
 Gint                  transfer_DMR               0.00      9        0.00     0.01   
 Gint_interface        cal_gint_rho               0.70      9        0.08     7.23   
 Charge_Mixing         get_drho                   0.02      9        0.00     0.19   
 Charge                mix_rho                    0.61      8        0.08     6.24   
 Charge                Broyden_mixing             0.17      8        0.02     1.79   
 ESolver_KS_LCAO       out_deepks_labels          0.00      1        0.00     0.00   
 LCAO_Deepks_Interface out_deepks_labels          0.00      1        0.00     0.00   
 ESolver_KS_LCAO       after_all_runners          0.00      1        0.00     0.00   
 ModuleIO              write_istate_info          0.00      1        0.00     0.00   
-------------------------------------------------------------------------------------


 START  Time  : Fri Jun 21 09:02:22 2024
 FINISH Time  : Fri Jun 21 09:02:32 2024
 TOTAL  Time  : 10
 SEE INFORMATION IN : OUT.O-atom/

代码
文本
[30]
grep -n "ETOT" OUT.O-atom/running_scf.log
517: !FINAL_ETOT_IS -429.1858964705988 eV

代码
文本
[31]
grep -n -i "mag" OUT.O-atom/running_scf.log | tail -n 2
453:          total magnetism (Bohr mag/cell) = 2
454:       absolute magnetism (Bohr mag/cell) = 2.00027

代码
文本
[32]
cat OUT.O-atom/istate.info
BAND       Spin up Energy(ev)               Occupation     Spin down Energy(ev)               Occupation                Kpoint = 1                        (0 0 0)
     1                 -25.0634                        1                 -21.6677                        1
     2                 -10.0903                        1                 -6.90171                 0.333333
     3                 -10.0903                        1                 -6.90171                 0.333333
     4                 -10.0903                        1                 -6.90171                 0.333333
     5                  8.58799                        0                  10.0098                        0
     6                  8.58799                        0                  10.0098                        0
     7                  8.58799                        0                  10.0098                        0
     8                    10.55                        0                  12.0896                        0
     9                  42.8006                        0                  45.4149                        0
    10                  42.8006                        0                  45.4149                        0
    11                  42.8006                        0                  45.4149                        0
    12                  42.8007                        0                   45.415                        0
    13                  42.8007                        0                   45.415                        0



代码
文本

虽然能量减小,总的磁矩正确(=2μB),并且区分了自旋向上和自旋向下的状态,但3个alpha电子能量相同,beta电子还是平均分配在3个轨道上,所以结果仍然错误。这样的结果是由体系的高对称性导致的简并所造成的。氧原子的基态波函数并不满足立方晶格的对称性,但由于周期性边界条件,ABACUS会把立方晶格的对称性强加在氧原子的基态波函数上,导致了能级简并。修正的方法也很简单,就是调整基矢使得晶胞形状不再是立方。

代码
文本

2.3. 氧原子自旋极化并调整晶胞形状计算

代码
文本
[33]
cd ../2
代码
文本
[34]
cat INPUT
INPUT_PARAMETERS
suffix             O-atom
nspin              2
pseudo_dir         /abacus-develop/tests/PP_ORB
orbital_dir        /abacus-develop/tests/PP_ORB
ecutwfc            50                            # unit: Ry, 1Ry = 13.6eV; Default: 50
scf_thr            1e-7
basis_type         lcao
calculation        scf 
symmetry           -1                            # No symmetry 
smearing_method    gauss                         # Default: gauss
smearing_sigma     0.000037                      # unit: Ry; Default: 0.015 Ry(= 0.2 eV)
mixing_beta             0.4  # for metal: 0.05-0.4, 0 - 0.1 for difficult
mixing_beta_mag         0.4
mixing_gg0              0.0  # only for transition metal
mixing_gg0_mag          0.0

代码
文本

这里有一个小细节,就是smearing的sigma值需要比之前的再小两个数量级以上,否则由于展宽,还是会得到错误的能级占据。(读者可以尝试:不改变sigma值得到的结果和2.2.相同,小一个数量级得到两个p轨道分别被0.5个beta电子占据)

代码
文本
[35]
cat STRU
ATOMIC_SPECIES
O 15.999 O_ONCV_PBE-1.2.upf upf201 # label; mass; pseudo_file

NUMERICAL_ORBITAL
O_gga_8au_100Ry_2s2p1d.orb         # numerical_orbital_file

LATTICE_CONSTANT
1.8897259886                       # lattice scaling factor (Bohr), 1.8897259886 Bohr = 1.0 Angstrom

LATTICE_VECTORS
9.000  0.000 0.000
0.000 10.100 0.000
0.000 0.000 10.900

ATOMIC_POSITIONS
Cartesian                          # Cartesian or Direct coordinate.
O                                  # Element type
2.0                                # magnetism
1                                  # number of atoms
0.000 0.000 0.000 0 0 0            # the position of atoms and other parameter specify by key word

代码
文本

调整晶格基矢

代码
文本
[36]
abacus
                                                                                     
                              ABACUS v3.6.3

               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: 615828b (Tue May 21 10:48:51 2024 +0800)

 Fri Jun 21 09:02:33 2024
 MAKE THE DIR         : OUT.O-atom/
 RUNNING WITH DEVICE  : CPU / Intel(R) Xeon(R) Platinum
 UNIFORM GRID DIM        : 80 * 90 * 96
 UNIFORM GRID DIM(BIG)   : 16 * 18 * 24
 DONE(0.128696   SEC) : SETUP UNITCELL
 DONE(0.128953   SEC) : INIT K-POINTS
 ---------------------------------------------------------
 Self-consistent calculations for electrons
 ---------------------------------------------------------
 SPIN    KPOINTS         PROCESSORS  NBASE       
 2       2               1           13          
 ---------------------------------------------------------
 Use Systematically Improvable Atomic bases
 ---------------------------------------------------------
 ELEMENT ORBITALS        NBASE       NATOM       XC          
 O       2s2p1d-8au      13          1           
 ---------------------------------------------------------
 Initial plane wave basis and FFT box
 ---------------------------------------------------------
 DONE(0.140501   SEC) : INIT PLANEWAVE
 -------------------------------------------
 SELF-CONSISTENT : 
 -------------------------------------------
 START CHARGE      : atomic
 DONE(1.98248    SEC) : INIT SCF
 ITER   TMAG      AMAG      ETOT(eV)       EDIFF(eV)      DRHO       TIME(s)    
 GE1    2.00e+00  2.00e+00  -4.291431e+02  0.000000e+00   3.296e-02  9.848e-01  
 GE2    2.00e+00  2.02e+00  -4.291459e+02  -2.812673e-03  1.345e-01  9.970e-01  
 GE3    2.00e+00  2.02e+00  -4.291402e+02  5.658815e-03   1.346e-01  1.030e+00  
 GE4    2.00e+00  2.01e+00  -4.292931e+02  -1.528794e-01  1.087e-01  9.302e-01  
 GE5    2.00e+00  2.02e+00  -4.293094e+02  -1.627599e-02  1.051e-01  9.545e-01  
 GE6    2.00e+00  2.02e+00  -4.293046e+02  4.772784e-03   1.038e-01  9.381e-01  
 GE7    2.00e+00  2.02e+00  -4.292966e+02  7.982797e-03   1.043e-01  9.442e-01  
 GE8    2.00e+00  2.02e+00  -4.293032e+02  -6.607929e-03  1.044e-01  9.644e-01  
 GE9    2.00e+00  2.02e+00  -4.292990e+02  4.198744e-03   1.039e-01  9.233e-01  
 GE10   2.00e+00  2.02e+00  -4.292975e+02  1.508327e-03   1.019e-01  9.037e-01  
 GE11   2.00e+00  2.02e+00  -4.292992e+02  -1.649717e-03  1.041e-01  8.421e-01  
 GE12   2.00e+00  2.02e+00  -4.292996e+02  -3.919632e-04  9.796e-02  8.274e-01  
 GE13   2.00e+00  2.01e+00  -4.293005e+02  -9.130051e-04  6.985e-02  8.485e-01  
 GE14   2.00e+00  2.02e+00  -4.293003e+02  1.294081e-04   9.923e-02  8.372e-01  
 GE15   2.00e+00  2.01e+00  -4.293001e+02  2.169740e-04   8.781e-02  8.548e-01  
 GE16   2.00e+00  2.00e+00  -4.293001e+02  7.652402e-05   4.904e-02  8.387e-01  
 GE17   2.00e+00  2.00e+00  -4.293001e+02  -4.549538e-05  8.513e-03  8.262e-01  
 GE18   2.00e+00  2.00e+00  -4.293000e+02  6.701416e-05   5.459e-02  8.168e-01  
 GE19   2.00e+00  2.00e+00  -4.293001e+02  -7.127339e-05  1.116e-02  8.541e-01  
 GE20   2.00e+00  2.00e+00  -4.293001e+02  -1.211892e-05  3.085e-02  8.214e-01  
 GE21   2.00e+00  2.00e+00  -4.293001e+02  -1.423311e-06  1.194e-02  8.221e-01  
 GE22   2.00e+00  2.00e+00  -4.293001e+02  -3.368104e-06  8.629e-04  8.546e-01  
 GE23   2.00e+00  2.00e+00  -4.293001e+02  5.129392e-07   5.315e-03  8.279e-01  
 GE24   2.00e+00  2.00e+00  -4.293001e+02  -3.448710e-07  9.367e-04  8.289e-01  
 GE25   2.00e+00  2.00e+00  -4.293001e+02  -2.475070e-08  2.791e-04  8.616e-01  
 GE26   2.00e+00  2.00e+00  -4.293001e+02  -8.088449e-09  2.125e-04  8.601e-01  
 GE27   2.00e+00  2.00e+00  -4.293001e+02  5.451125e-09   6.283e-04  8.291e-01  
 GE28   2.00e+00  2.00e+00  -4.293001e+02  3.104212e-10   2.752e-04  8.367e-01  
 GE29   2.00e+00  2.00e+00  -4.293001e+02  -1.206399e-09  4.066e-06  9.238e-01  
 GE30   2.00e+00  2.00e+00  -4.293001e+02  -7.228821e-10  3.451e-07  8.402e-01  
 GE31   2.00e+00  2.00e+00  -4.293001e+02  1.050125e-09   4.186e-08  7.788e-01  
TIME STATISTICS
-------------------------------------------------------------------------------------
      CLASS_NAME                  NAME            TIME(Sec)  CALLS   AVG(Sec) PER(%) 
-------------------------------------------------------------------------------------
                       total                      29.21     9        3.25     100.00 
 Driver                reading                    0.02      1        0.02     0.06   
 Input                 Init                       0.01      1        0.01     0.05   
 Input_Conv            Convert                    0.00      1        0.00     0.00   
 Driver                driver_line                29.20     1        29.20    99.94  
 UnitCell              check_tau                  0.00      1        0.00     0.00   
 ESolver_KS_LCAO       before_all_runners         0.70      1        0.70     2.39   
 PW_Basis_Sup          setuptransform             0.01      1        0.01     0.02   
 PW_Basis_Sup          distributeg                0.00      1        0.00     0.02   
 mymath                heapsort                   0.06      3        0.02     0.19   
 PW_Basis_K            setuptransform             0.01      1        0.01     0.02   
 PW_Basis_K            distributeg                0.00      1        0.00     0.01   
 PW_Basis              setup_struc_factor         0.01      1        0.01     0.03   
 NOrbital_Lm           extra_uniform              0.00      5        0.00     0.01   
 Mathzone_Add1         SplineD2                   0.00      5        0.00     0.00   
 Mathzone_Add1         Cubic_Spline_Interpolation 0.00      5        0.00     0.01   
 ppcell_vl             init_vloc                  0.40      1        0.40     1.37   
 Ions                  opt_ions                   28.48     1        28.48    97.49  
 ESolver_KS_LCAO       runner                     28.48     1        28.48    97.49  
 ESolver_KS_LCAO       before_scf                 1.27      1        1.27     4.34   
 ESolver_KS_LCAO       beforesolver               0.01      1        0.01     0.02   
 ESolver_KS_LCAO       set_matrix_grid            0.01      1        0.01     0.02   
 atom_arrange          search                     0.00      1        0.00     0.00   
 Grid_Technique        init                       0.01      1        0.01     0.02   
 Grid_BigCell          grid_expansion_index       0.00      2        0.00     0.01   
 Record_adj            for_2d                     0.00      1        0.00     0.00   
 Grid_Driver           Find_atom                  0.00      71       0.00     0.00   
 LCAO_domain           grid_prepare               0.00      1        0.00     0.00   
 Veff                  initialize_HR              0.00      1        0.00     0.00   
 OverlapNew            initialize_SR              0.00      1        0.00     0.00   
 EkineticNew           initialize_HR              0.00      1        0.00     0.00   
 NonlocalNew           initialize_HR              0.00      1        0.00     0.00   
 Charge                set_rho_core               0.00      1        0.00     0.00   
 Charge                atomic_rho                 0.47      1        0.47     1.62   
 PW_Basis_Sup          recip2real                 3.95      291      0.01     13.51  
 PW_Basis_Sup          gathers_scatterp           0.73      291      0.00     2.51   
 Potential             init_pot                   0.77      1        0.77     2.62   
 Potential             update_from_charge         18.67     32       0.58     63.89  
 Potential             cal_fixed_v                0.02      1        0.02     0.07   
 PotLocal              cal_fixed_v                0.02      1        0.02     0.07   
 Potential             cal_v_eff                  18.55     32       0.58     63.49  
 H_Hartree_pw          v_hartree                  1.27      32       0.04     4.35   
 PW_Basis_Sup          real2recip                 3.98      320      0.01     13.64  
 PW_Basis_Sup          gatherp_scatters           0.37      320      0.00     1.27   
 PotXC                 cal_v_eff                  17.06     32       0.53     58.40  
 XC_Functional         v_xc                       16.98     32       0.53     58.13  
 Potential             interpolate_vrs            0.10      32       0.00     0.33   
 H_Ewald_pw            compute_ewald              0.01      1        0.01     0.05   
 Charge_Mixing         init_mixing                0.00      1        0.00     0.00   
 HSolverLCAO           solve                      5.74      31       0.19     19.65  
 HamiltLCAO            updateHk                   3.12      62       0.05     10.70  
 OperatorLCAO          init                       3.12      186      0.02     10.69  
 Veff                  contributeHR               3.12      62       0.05     10.67  
 Gint_interface        cal_gint                   5.37      93       0.06     18.37  
 Gint_interface        cal_gint_vlocal            3.12      62       0.05     10.67  
 Gint_Tools            cal_psir_ylm               1.36      176700   0.00     4.65   
 Gint_k                transfer_pvpR              0.00      62       0.00     0.00   
 OverlapNew            calculate_SR               0.00      1        0.00     0.00   
 OverlapNew            contributeHk               0.00      62       0.00     0.00   
 EkineticNew           contributeHR               0.00      62       0.00     0.00   
 EkineticNew           calculate_HR               0.00      1        0.00     0.00   
 NonlocalNew           contributeHR               0.00      62       0.00     0.00   
 NonlocalNew           calculate_HR               0.00      1        0.00     0.00   
 OperatorLCAO          contributeHk               0.00      62       0.00     0.00   
 HSolverLCAO           hamiltSolvePsiK            0.07      62       0.00     0.25   
 DiagoElpa             elpa_solve                 0.05      62       0.00     0.17   
 ElecStateLCAO         psiToRho                   2.54      31       0.08     8.70   
 elecstate             cal_dm                     0.01      31       0.00     0.02   
 psiMulPsiMpi          pdgemm                     0.00      62       0.00     0.00   
 DensityMatrix         cal_DMR                    0.00      31       0.00     0.00   
 Local_Orbital_wfc     wfc_2d_to_grid             0.00      64       0.00     0.00   
 Gint                  transfer_DMR               0.00      31       0.00     0.01   
 Gint_interface        cal_gint_rho               2.25      31       0.07     7.71   
 Charge_Mixing         get_drho                   0.05      31       0.00     0.18   
 Charge                mix_rho                    2.28      30       0.08     7.81   
 Charge                Broyden_mixing             0.79      30       0.03     2.71   
 ESolver_KS_LCAO       out_deepks_labels          0.00      1        0.00     0.00   
 LCAO_Deepks_Interface out_deepks_labels          0.00      1        0.00     0.00   
 ESolver_KS_LCAO       after_all_runners          0.00      1        0.00     0.00   
 ModuleIO              write_istate_info          0.00      1        0.00     0.00   
-------------------------------------------------------------------------------------


 START  Time  : Fri Jun 21 09:02:33 2024
 FINISH Time  : Fri Jun 21 09:03:02 2024
 TOTAL  Time  : 29
 SEE INFORMATION IN : OUT.O-atom/

代码
文本
[37]
grep -n "ETOT" OUT.O-atom/running_scf.log
869: !FINAL_ETOT_IS -429.3001168335124 eV

代码
文本
[38]
cat OUT.O-atom/istate.info
BAND       Spin up Energy(ev)               Occupation     Spin down Energy(ev)               Occupation                Kpoint = 1                        (0 0 0)
     1                 -25.0444                        1                 -21.4951                        1
     2                 -10.8316                        1                 -7.06623                 0.500033
     3                 -9.68406                        1                 -7.06623                 0.499967
     4                 -9.68388                        1                 -6.07364                        0
     5                  8.29863                        0                  9.90882                        0
     6                  8.75173                        0                  9.90901                        0
     7                  8.75173                        0                  10.5538                        0
     8                   10.564                        0                  12.1768                        0
     9                  42.3685                        0                  45.2654                        0
    10                   42.589                        0                  45.2659                        0
    11                  42.5891                        0                  45.5872                        0
    12                  43.2907                        0                  45.5872                        0
    13                  43.2909                        0                  45.9584                        0



代码
文本

这样我们就得到了正确的O原子磁矩和能级占据状态,并且总能量进一步降低。

代码
文本

3. 氢分子能量及结合能计算

代码
文本

接下来我们进行分子的能量及结合能计算。对于氢分子和氧分子,结合能就是分子能量减去2*原子能量。

代码
文本
[39]
cd ../../H2-molecule
代码
文本
[40]
cat INPUT
INPUT_PARAMETERS
suffix             H2
pseudo_dir         /abacus-develop/tests/PP_ORB
orbital_dir        /abacus-develop/tests/PP_ORB
ecutwfc            50                            # unit: Ry, 1Ry = 13.6eV; Default: 50
scf_thr            1e-7
basis_type         lcao
calculation        scf 
symmetry           -1                            # No symmetry
smearing_method    gauss                         # Default: gauss
smearing_sigma     0.0037                        # unit: Ry; Default: 0.015 Ry(= 0.2 eV)

代码
文本

由于氢分子没有未配对电子,所以这里我们进行非自旋极化计算(nspin默认为1)

代码
文本
[41]
cat STRU
ATOMIC_SPECIES
H 1.008 H_ONCV_PBE-1.2.upf upf201  # label; mass; pseudo_file

NUMERICAL_ORBITAL
H_gga_6au_60Ry_2s1p.orb            # numerical_orbital_file

LATTICE_CONSTANT
1.8897259886                       # lattice scaling factor (Bohr), 1.8897259886 Bohr = 1.0 Angstrom

LATTICE_VECTORS
10.000 0.000 0.000
0.000 10.000 0.000
0.000 0.000 10.000

ATOMIC_POSITIONS
Cartesian                          # Cartesian or Direct coordinate.
H                                  # Element type
0.0                                # magnetism
2                                  # number of atoms
0.000 0.000 0.000 0 0 0            # the position of atoms and other parameter specify by key word
0.000 0.000 0.742 0 0 0

代码
文本

这里我们设置一个H原子位于原点,另一个H原子位于z轴,最后一行的第三个数字即为H-H键的键长0.742 Angstrom.

代码
文本
[42]
abacus
                                                                                     
                              ABACUS v3.6.3

               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: 615828b (Tue May 21 10:48:51 2024 +0800)

 Fri Jun 21 09:03:04 2024
 MAKE THE DIR         : OUT.H2/
 RUNNING WITH DEVICE  : CPU / Intel(R) Xeon(R) Platinum
 UNIFORM GRID DIM        : 90 * 90 * 90
 UNIFORM GRID DIM(BIG)   : 30 * 30 * 30
 DONE(0.122874   SEC) : SETUP UNITCELL
 DONE(0.123135   SEC) : INIT K-POINTS
 ---------------------------------------------------------
 Self-consistent calculations for electrons
 ---------------------------------------------------------
 SPIN    KPOINTS         PROCESSORS  NBASE       
 1       1               1           10          
 ---------------------------------------------------------
 Use Systematically Improvable Atomic bases
 ---------------------------------------------------------
 ELEMENT ORBITALS        NBASE       NATOM       XC          
 H       2s1p-6au        5           2           
 ---------------------------------------------------------
 Initial plane wave basis and FFT box
 ---------------------------------------------------------
 DONE(0.131851   SEC) : INIT PLANEWAVE
 -------------------------------------------
 SELF-CONSISTENT : 
 -------------------------------------------
 START CHARGE      : atomic
 DONE(0.697262   SEC) : INIT SCF
 ITER   ETOT(eV)       EDIFF(eV)      DRHO       TIME(s)    
 GE1    -3.152662e+01  0.000000e+00   4.180e-01  4.811e-01  
 GE2    -3.159739e+01  -7.077849e-02  8.928e-02  4.753e-01  
 GE3    -3.160044e+01  -3.043509e-03  4.526e-02  4.822e-01  
 GE4    -3.160208e+01  -1.641386e-03  2.196e-02  4.796e-01  
 GE5    -3.160303e+01  -9.536240e-04  1.419e-02  4.684e-01  
 GE6    -3.160390e+01  -8.650884e-04  9.136e-03  5.108e-01  
 GE7    -3.160412e+01  -2.219038e-04  4.016e-03  4.911e-01  
 GE8    -3.160417e+01  -4.951651e-05  1.441e-03  5.160e-01  
 GE9    -3.160418e+01  -6.533386e-06  2.869e-04  4.866e-01  
 GE10   -3.160418e+01  -6.505930e-07  9.217e-05  4.894e-01  
 GE11   -3.160418e+01  -7.508300e-08  1.646e-05  4.733e-01  
 GE12   -3.160418e+01  3.992951e-08   5.282e-06  4.642e-01  
 GE13   -3.160418e+01  -2.772274e-09  1.350e-06  4.483e-01  
 GE14   -3.160418e+01  2.847300e-10   3.448e-07  4.386e-01  
 GE15   -3.160418e+01  1.971068e-10   1.910e-07  4.509e-01  
 GE16   -3.160418e+01  4.350343e-13   1.133e-07  4.666e-01  
 GE17   -3.160418e+01  -4.531608e-13  6.072e-08  3.908e-01  
TIME STATISTICS
-------------------------------------------------------------------------------------
      CLASS_NAME                  NAME            TIME(Sec)  CALLS   AVG(Sec) PER(%) 
-------------------------------------------------------------------------------------
                       total                      8.73      9        0.97     100.00 
 Driver                reading                    0.02      1        0.02     0.19   
 Input                 Init                       0.01      1        0.01     0.17   
 Input_Conv            Convert                    0.00      1        0.00     0.00   
 Driver                driver_line                8.71      1        8.71     99.81  
 UnitCell              check_tau                  0.00      1        0.00     0.00   
 ESolver_KS_LCAO       before_all_runners         0.23      1        0.23     2.66   
 PW_Basis_Sup          setuptransform             0.01      1        0.01     0.08   
 PW_Basis_Sup          distributeg                0.00      1        0.00     0.06   
 mymath                heapsort                   0.05      3        0.02     0.59   
 PW_Basis_K            setuptransform             0.00      1        0.00     0.05   
 PW_Basis_K            distributeg                0.00      1        0.00     0.03   
 PW_Basis              setup_struc_factor         0.02      1        0.02     0.19   
 NOrbital_Lm           extra_uniform              0.00      3        0.00     0.02   
 Mathzone_Add1         SplineD2                   0.00      3        0.00     0.00   
 Mathzone_Add1         Cubic_Spline_Interpolation 0.00      3        0.00     0.01   
 ppcell_vl             init_vloc                  0.01      1        0.01     0.17   
 Ions                  opt_ions                   8.47      1        8.47     97.02  
 ESolver_KS_LCAO       runner                     8.47      1        8.47     97.02  
 ESolver_KS_LCAO       before_scf                 0.45      1        0.45     5.13   
 ESolver_KS_LCAO       beforesolver               0.01      1        0.01     0.15   
 ESolver_KS_LCAO       set_matrix_grid            0.01      1        0.01     0.15   
 atom_arrange          search                     0.00      1        0.00     0.00   
 Grid_Technique        init                       0.01      1        0.01     0.15   
 Grid_BigCell          grid_expansion_index       0.01      2        0.00     0.10   
 Record_adj            for_2d                     0.00      1        0.00     0.00   
 Grid_Driver           Find_atom                  0.00      52       0.00     0.00   
 LCAO_domain           grid_prepare               0.00      1        0.00     0.00   
 Veff                  initialize_HR              0.00      1        0.00     0.00   
 OverlapNew            initialize_SR              0.00      1        0.00     0.00   
 EkineticNew           initialize_HR              0.00      1        0.00     0.00   
 NonlocalNew           initialize_HR              0.00      1        0.00     0.00   
 Charge                set_rho_core               0.00      1        0.00     0.01   
 Charge                atomic_rho                 0.05      1        0.05     0.56   
 PW_Basis_Sup          recip2real                 1.66      108      0.02     19.06  
 PW_Basis_Sup          gathers_scatterp           0.29      108      0.00     3.38   
 Potential             init_pot                   0.36      1        0.36     4.16   
 Potential             update_from_charge         5.70      18       0.32     65.31  
 Potential             cal_fixed_v                0.02      1        0.02     0.25   
 PotLocal              cal_fixed_v                0.02      1        0.02     0.24   
 Potential             cal_v_eff                  5.65      18       0.31     64.74  
 H_Hartree_pw          v_hartree                  0.73      18       0.04     8.35   
 PW_Basis_Sup          real2recip                 1.75      124      0.01     20.08  
 PW_Basis_Sup          gatherp_scatters           0.15      124      0.00     1.71   
 PotXC                 cal_v_eff                  4.86      18       0.27     55.72  
 XC_Functional         v_xc                       4.84      18       0.27     55.47  
 Potential             interpolate_vrs            0.03      18       0.00     0.32   
 H_Ewald_pw            compute_ewald              0.02      1        0.02     0.20   
 Charge_Mixing         init_mixing                0.00      1        0.00     0.00   
 HSolverLCAO           solve                      1.26      17       0.07     14.46  
 HamiltLCAO            updateHk                   0.56      17       0.03     6.43   
 OperatorLCAO          init                       0.56      51       0.01     6.43   
 Veff                  contributeHR               0.56      17       0.03     6.42   
 Gint_interface        cal_gint                   1.17      34       0.03     13.35  
 Gint_interface        cal_gint_vlocal            0.56      17       0.03     6.41   
 Gint_Tools            cal_psir_ylm               0.36      116450   0.00     4.15   
 Gint_k                transfer_pvpR              0.00      17       0.00     0.00   
 OverlapNew            calculate_SR               0.00      1        0.00     0.00   
 OverlapNew            contributeHk               0.00      17       0.00     0.00   
 EkineticNew           contributeHR               0.00      17       0.00     0.00   
 EkineticNew           calculate_HR               0.00      1        0.00     0.00   
 NonlocalNew           contributeHR               0.00      17       0.00     0.00   
 NonlocalNew           calculate_HR               0.00      1        0.00     0.00   
 OperatorLCAO          contributeHk               0.00      17       0.00     0.00   
 HSolverLCAO           hamiltSolvePsiK            0.02      17       0.00     0.24   
 DiagoElpa             elpa_solve                 0.01      17       0.00     0.16   
 ElecStateLCAO         psiToRho                   0.68      17       0.04     7.79   
 elecstate             cal_dm                     0.00      17       0.00     0.01   
 psiMulPsiMpi          pdgemm                     0.00      17       0.00     0.00   
 DensityMatrix         cal_DMR                    0.00      17       0.00     0.00   
 Local_Orbital_wfc     wfc_2d_to_grid             0.00      18       0.00     0.00   
 Gint                  transfer_DMR               0.00      17       0.00     0.01   
 Gint_interface        cal_gint_rho               0.61      17       0.04     6.94   
 Charge_Mixing         get_drho                   0.01      17       0.00     0.17   
 Charge                mix_rho                    1.07      16       0.07     12.24  
 Charge                Broyden_mixing             0.20      16       0.01     2.30   
 ESolver_KS_LCAO       out_deepks_labels          0.00      1        0.00     0.00   
 LCAO_Deepks_Interface out_deepks_labels          0.00      1        0.00     0.00   
 ESolver_KS_LCAO       after_all_runners          0.00      1        0.00     0.00   
 ModuleIO              write_istate_info          0.00      1        0.00     0.00   
-------------------------------------------------------------------------------------


 START  Time  : Fri Jun 21 09:03:04 2024
 FINISH Time  : Fri Jun 21 09:03:13 2024
 TOTAL  Time  : 9
 SEE INFORMATION IN : OUT.H2/

代码
文本
[43]
grep -n "ETOT" OUT.H2/running_scf.log
547: !FINAL_ETOT_IS -31.60417626324018 eV

代码
文本

通过简单的计算可以得到氢分子的结合能为:-4.656 eV

代码
文本

4. 氧分子能量及结合能计算

代码
文本

接下来我们进行氧分子的能量和结合能计算。氧分子的基态为三重态,存在两个未配对电子,因此应该存在净磁矩。同样地,我们可以对比一下非自旋极化和自旋极化计算的结果有什么不同。我们在O2-molecule下准备了两个文件夹:0,1,分别对应非自旋极化,自旋极化计算。

代码
文本

alt

代码
文本
[44]
cd ../O2-molecule
代码
文本
[45]
ls
0  1

代码
文本

4.1. 氧分子非自旋极化计算

代码
文本
[46]
cd 0
代码
文本
[47]
abacus
                                                                                     
                              ABACUS v3.6.3

               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: 615828b (Tue May 21 10:48:51 2024 +0800)

 Fri Jun 21 09:03:14 2024
 MAKE THE DIR         : OUT.O2/
 RUNNING WITH DEVICE  : CPU / Intel(R) Xeon(R) Platinum
 UNIFORM GRID DIM        : 90 * 90 * 90
 UNIFORM GRID DIM(BIG)   : 30 * 30 * 30
 DONE(0.124653   SEC) : SETUP UNITCELL
 DONE(0.12491    SEC) : INIT K-POINTS
 ---------------------------------------------------------
 Self-consistent calculations for electrons
 ---------------------------------------------------------
 SPIN    KPOINTS         PROCESSORS  NBASE       
 1       1               1           26          
 ---------------------------------------------------------
 Use Systematically Improvable Atomic bases
 ---------------------------------------------------------
 ELEMENT ORBITALS        NBASE       NATOM       XC          
 O       2s2p1d-8au      13          2           
 ---------------------------------------------------------
 Initial plane wave basis and FFT box
 ---------------------------------------------------------
 DONE(0.133616   SEC) : INIT PLANEWAVE
 -------------------------------------------
 SELF-CONSISTENT : 
 -------------------------------------------
 START CHARGE      : atomic
 DONE(0.81509    SEC) : INIT SCF
 ITER   ETOT(eV)       EDIFF(eV)      DRHO       TIME(s)    
 GE1    -8.637175e+02  0.000000e+00   7.302e-02  6.469e-01  
 GE2    -8.638253e+02  -1.078260e-01  1.609e-02  6.155e-01  
 GE3    -8.638276e+02  -2.347960e-03  4.174e-03  6.186e-01  
 GE4    -8.638280e+02  -4.025790e-04  1.574e-03  6.426e-01  
 GE5    -8.638282e+02  -2.020745e-04  9.361e-04  6.272e-01  
 GE6    -8.638283e+02  -7.308627e-05  7.718e-04  6.121e-01  
 GE7    -8.638285e+02  -2.104337e-04  6.191e-04  5.827e-01  
 GE8    -8.638286e+02  -1.190871e-04  3.369e-04  5.978e-01  
 GE9    -8.638286e+02  -4.681939e-06  1.467e-04  6.099e-01  
 GE10   -8.638287e+02  -2.969437e-05  1.314e-04  5.897e-01  
 GE11   -8.638287e+02  -1.807157e-05  6.731e-05  5.990e-01  
 GE12   -8.638287e+02  -2.054757e-07  1.996e-05  6.141e-01  
 GE13   -8.638287e+02  -2.994458e-06  1.794e-05  5.935e-01  
 GE14   -8.638287e+02  -5.609333e-08  3.559e-06  5.820e-01  
 GE15   -8.638287e+02  -3.427162e-08  9.870e-07  5.862e-01  
 GE16   -8.638287e+02  2.684839e-09   2.153e-07  5.960e-01  
 GE17   -8.638287e+02  3.494873e-09   1.103e-07  5.799e-01  
 GE18   -8.638287e+02  -1.734530e-09  7.254e-08  5.029e-01  
TIME STATISTICS
-------------------------------------------------------------------------------------
      CLASS_NAME                  NAME            TIME(Sec)  CALLS   AVG(Sec) PER(%) 
-------------------------------------------------------------------------------------
                       total                      11.63     9        1.29     100.00 
 Driver                reading                    0.02      1        0.02     0.14   
 Input                 Init                       0.02      1        0.02     0.13   
 Input_Conv            Convert                    0.00      1        0.00     0.00   
 Driver                driver_line                11.61     1        11.61    99.86  
 UnitCell              check_tau                  0.00      1        0.00     0.00   
 ESolver_KS_LCAO       before_all_runners         0.28      1        0.28     2.42   
 PW_Basis_Sup          setuptransform             0.01      1        0.01     0.06   
 PW_Basis_Sup          distributeg                0.00      1        0.00     0.04   
 mymath                heapsort                   0.05      3        0.02     0.44   
 PW_Basis_K            setuptransform             0.00      1        0.00     0.04   
 PW_Basis_K            distributeg                0.00      1        0.00     0.02   
 PW_Basis              setup_struc_factor         0.02      1        0.02     0.14   
 NOrbital_Lm           extra_uniform              0.00      5        0.00     0.03   
 Mathzone_Add1         SplineD2                   0.00      5        0.00     0.00   
 Mathzone_Add1         Cubic_Spline_Interpolation 0.00      5        0.00     0.02   
 ppcell_vl             init_vloc                  0.01      1        0.01     0.12   
 Ions                  opt_ions                   11.32     1        11.32    97.34  
 ESolver_KS_LCAO       runner                     11.32     1        11.32    97.34  
 ESolver_KS_LCAO       before_scf                 0.52      1        0.52     4.44   
 ESolver_KS_LCAO       beforesolver               0.02      1        0.02     0.16   
 ESolver_KS_LCAO       set_matrix_grid            0.02      1        0.02     0.16   
 atom_arrange          search                     0.00      1        0.00     0.00   
 Grid_Technique        init                       0.02      1        0.02     0.16   
 Grid_BigCell          grid_expansion_index       0.01      2        0.01     0.10   
 Record_adj            for_2d                     0.00      1        0.00     0.00   
 Grid_Driver           Find_atom                  0.00      54       0.00     0.00   
 LCAO_domain           grid_prepare               0.00      1        0.00     0.00   
 Veff                  initialize_HR              0.00      1        0.00     0.00   
 OverlapNew            initialize_SR              0.00      1        0.00     0.00   
 EkineticNew           initialize_HR              0.00      1        0.00     0.00   
 NonlocalNew           initialize_HR              0.00      1        0.00     0.00   
 Charge                set_rho_core               0.00      1        0.00     0.01   
 Charge                atomic_rho                 0.05      1        0.05     0.43   
 PW_Basis_Sup          recip2real                 1.64      114      0.01     14.10  
 PW_Basis_Sup          gathers_scatterp           0.29      114      0.00     2.46   
 Potential             init_pot                   0.43      1        0.43     3.66   
 Potential             update_from_charge         6.40      19       0.34     55.05  
 Potential             cal_fixed_v                0.02      1        0.02     0.19   
 PotLocal              cal_fixed_v                0.02      1        0.02     0.18   
 Potential             cal_v_eff                  6.35      19       0.33     54.61  
 H_Hartree_pw          v_hartree                  0.75      19       0.04     6.46   
 PW_Basis_Sup          real2recip                 1.80      131      0.01     15.48  
 PW_Basis_Sup          gatherp_scatters           0.15      131      0.00     1.32   
 PotXC                 cal_v_eff                  5.54      19       0.29     47.63  
 XC_Functional         v_xc                       5.52      19       0.29     47.43  
 Potential             interpolate_vrs            0.03      19       0.00     0.25   
 H_Ewald_pw            compute_ewald              0.02      1        0.02     0.14   
 Charge_Mixing         init_mixing                0.00      1        0.00     0.00   
 HSolverLCAO           solve                      3.33      18       0.18     28.63  
 HamiltLCAO            updateHk                   1.56      18       0.09     13.41  
 OperatorLCAO          init                       1.56      54       0.03     13.39  
 Veff                  contributeHR               1.55      18       0.09     13.37  
 Gint_interface        cal_gint                   3.21      36       0.09     27.57  
 Gint_interface        cal_gint_vlocal            1.55      18       0.09     13.36  
 Gint_Tools            cal_psir_ylm               1.17      260208   0.00     10.06  
 Gint_k                transfer_pvpR              0.00      18       0.00     0.00   
 OverlapNew            calculate_SR               0.00      1        0.00     0.01   
 OverlapNew            contributeHk               0.00      18       0.00     0.00   
 EkineticNew           contributeHR               0.00      18       0.00     0.01   
 EkineticNew           calculate_HR               0.00      1        0.00     0.01   
 NonlocalNew           contributeHR               0.00      18       0.00     0.01   
 NonlocalNew           calculate_HR               0.00      1        0.00     0.01   
 OperatorLCAO          contributeHk               0.00      18       0.00     0.00   
 HSolverLCAO           hamiltSolvePsiK            0.03      18       0.00     0.27   
 DiagoElpa             elpa_solve                 0.02      18       0.00     0.21   
 ElecStateLCAO         psiToRho                   1.74      18       0.10     14.95  
 elecstate             cal_dm                     0.00      18       0.00     0.01   
 psiMulPsiMpi          pdgemm                     0.00      18       0.00     0.00   
 DensityMatrix         cal_DMR                    0.00      18       0.00     0.00   
 Local_Orbital_wfc     wfc_2d_to_grid             0.00      19       0.00     0.00   
 Gint                  transfer_DMR               0.00      18       0.00     0.03   
 Gint_interface        cal_gint_rho               1.65      18       0.09     14.21  
 Charge_Mixing         get_drho                   0.02      18       0.00     0.13   
 Charge                mix_rho                    1.12      17       0.07     9.66   
 Charge                Broyden_mixing             0.21      17       0.01     1.83   
 ESolver_KS_LCAO       out_deepks_labels          0.00      1        0.00     0.00   
 LCAO_Deepks_Interface out_deepks_labels          0.00      1        0.00     0.00   
 ESolver_KS_LCAO       after_all_runners          0.00      1        0.00     0.00   
 ModuleIO              write_istate_info          0.00      1        0.00     0.00   
-------------------------------------------------------------------------------------


 START  Time  : Fri Jun 21 09:03:14 2024
 FINISH Time  : Fri Jun 21 09:03:26 2024
 TOTAL  Time  : 12
 SEE INFORMATION IN : OUT.O2/

代码
文本
[48]
grep -n "ETOT" OUT.O2/running_scf.log
568: !FINAL_ETOT_IS -863.8286878069905 eV

代码
文本
[49]
cat OUT.O2/istate.info
BAND               Energy(ev)               Occupation                Kpoint = 1                        (0 0 0)
     1                  -32.313                        2
     2                 -19.4683                        2
     3                 -12.9726                        2
     4                 -12.4935                        2
     5                 -12.4935                        2
     6                 -5.56572                        1
     7                 -5.56572                        1
     8                  3.34721                        0
     9                  8.00368                        0
    10                  8.00368                        0
    11                  8.63598                        0
    12                  9.98339                        0
    13                   11.786                        0
    14                  13.8885                        0
    15                  13.8885                        0
    16                  37.1953                        0



代码
文本

可以看到,非自旋极化的计算结果与结构化学中氧分子的电子结构并不一致。

代码
文本

4.2. 氧分子自旋极化计算

代码
文本
[50]
cd ../1
代码
文本
[51]
abacus
                                                                                     
                              ABACUS v3.6.3

               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: 615828b (Tue May 21 10:48:51 2024 +0800)

 Fri Jun 21 09:03:27 2024
 MAKE THE DIR         : OUT.O2/
 RUNNING WITH DEVICE  : CPU / Intel(R) Xeon(R) Platinum
 UNIFORM GRID DIM        : 90 * 90 * 90
 UNIFORM GRID DIM(BIG)   : 30 * 30 * 30
 DONE(0.137708   SEC) : SETUP UNITCELL
 DONE(0.137973   SEC) : INIT K-POINTS
 ---------------------------------------------------------
 Self-consistent calculations for electrons
 ---------------------------------------------------------
 SPIN    KPOINTS         PROCESSORS  NBASE       
 2       2               1           26          
 ---------------------------------------------------------
 Use Systematically Improvable Atomic bases
 ---------------------------------------------------------
 ELEMENT ORBITALS        NBASE       NATOM       XC          
 O       2s2p1d-8au      13          2           
 ---------------------------------------------------------
 Initial plane wave basis and FFT box
 ---------------------------------------------------------
 DONE(0.149903   SEC) : INIT PLANEWAVE
 -------------------------------------------
 SELF-CONSISTENT : 
 -------------------------------------------
 START CHARGE      : atomic
 DONE(1.28413    SEC) : INIT SCF
 ITER   TMAG      AMAG      ETOT(eV)       EDIFF(eV)      DRHO       TIME(s)    
 GE1    2.00e+00  2.01e+00  -8.648089e+02  0.000000e+00   1.056e-01  1.302e+00  
 GE2    2.00e+00  2.05e+00  -8.649836e+02  -1.746369e-01  5.237e-02  1.281e+00  
 GE3    2.00e+00  2.03e+00  -8.649720e+02  1.153243e-02   2.598e-02  1.356e+00  
 GE4    2.00e+00  2.03e+00  -8.649797e+02  -7.727290e-03  8.303e-03  1.349e+00  
 GE5    2.00e+00  2.03e+00  -8.649799e+02  -1.722923e-04  4.829e-03  1.332e+00  
 GE6    2.00e+00  2.03e+00  -8.649801e+02  -1.910745e-04  1.848e-03  1.323e+00  
 GE7    2.00e+00  2.03e+00  -8.649803e+02  -2.400115e-04  1.303e-03  1.354e+00  
 GE8    2.00e+00  2.03e+00  -8.649805e+02  -1.487623e-04  9.556e-04  1.304e+00  
 GE9    2.00e+00  2.03e+00  -8.649806e+02  -7.231446e-05  7.395e-04  1.298e+00  
 GE10   2.00e+00  2.03e+00  -8.649807e+02  -1.322579e-04  6.482e-04  1.274e+00  
 GE11   2.00e+00  2.03e+00  -8.649808e+02  -9.685546e-05  4.837e-04  1.263e+00  
 GE12   2.00e+00  2.03e+00  -8.649809e+02  -8.271361e-05  3.693e-04  1.229e+00  
 GE13   2.00e+00  2.03e+00  -8.649810e+02  -7.332501e-05  2.754e-04  1.246e+00  
 GE14   2.00e+00  2.03e+00  -8.649810e+02  -4.873827e-05  1.851e-04  1.224e+00  
 GE15   2.00e+00  2.03e+00  -8.649810e+02  -3.153635e-05  1.229e-04  1.247e+00  
 GE16   2.00e+00  2.03e+00  -8.649811e+02  -2.033682e-05  7.713e-05  1.227e+00  
 GE17   2.00e+00  2.03e+00  -8.649811e+02  -7.439679e-06  4.186e-05  1.232e+00  
 GE18   2.00e+00  2.03e+00  -8.649811e+02  -4.825735e-06  2.696e-05  1.215e+00  
 GE19   2.00e+00  2.03e+00  -8.649811e+02  -3.171728e-06  1.621e-05  1.243e+00  
 GE20   2.00e+00  2.03e+00  -8.649811e+02  -8.296004e-07  7.210e-06  1.211e+00  
 GE21   2.00e+00  2.03e+00  -8.649811e+02  -7.441959e-08  2.567e-06  1.219e+00  
 GE22   2.00e+00  2.03e+00  -8.649811e+02  -2.278178e-08  1.534e-06  1.203e+00  
 GE23   2.00e+00  2.03e+00  -8.649811e+02  -2.222571e-08  1.074e-06  1.260e+00  
 GE24   2.00e+00  2.03e+00  -8.649811e+02  -1.663011e-08  7.768e-07  1.207e+00  
 GE25   2.00e+00  2.03e+00  -8.649811e+02  -2.697725e-08  6.070e-07  1.205e+00  
 GE26   2.00e+00  2.03e+00  -8.649811e+02  -2.021779e-08  3.555e-07  1.272e+00  
 GE27   2.00e+00  2.03e+00  -8.649811e+02  -2.928361e-09  1.141e-07  1.210e+00  
 GE28   2.00e+00  2.03e+00  -8.649811e+02  7.716253e-09   6.380e-08  9.606e-01  
TIME STATISTICS
-------------------------------------------------------------------------------------
      CLASS_NAME                  NAME            TIME(Sec)  CALLS   AVG(Sec) PER(%) 
-------------------------------------------------------------------------------------
                       total                      36.36     9        4.04     100.00 
 Driver                reading                    0.02      1        0.02     0.05   
 Input                 Init                       0.01      1        0.01     0.04   
 Input_Conv            Convert                    0.00      1        0.00     0.00   
 Driver                driver_line                36.34     1        36.34    99.95  
 UnitCell              check_tau                  0.00      1        0.00     0.00   
 ESolver_KS_LCAO       before_all_runners         0.33      1        0.33     0.90   
 PW_Basis_Sup          setuptransform             0.01      1        0.01     0.02   
 PW_Basis_Sup          distributeg                0.00      1        0.00     0.01   
 mymath                heapsort                   0.05      3        0.02     0.15   
 PW_Basis_K            setuptransform             0.01      1        0.01     0.02   
 PW_Basis_K            distributeg                0.00      1        0.00     0.01   
 PW_Basis              setup_struc_factor         0.02      1        0.02     0.04   
 NOrbital_Lm           extra_uniform              0.00      5        0.00     0.01   
 Mathzone_Add1         SplineD2                   0.00      5        0.00     0.00   
 Mathzone_Add1         Cubic_Spline_Interpolation 0.00      5        0.00     0.01   
 ppcell_vl             init_vloc                  0.02      1        0.02     0.04   
 Ions                  opt_ions                   36.00     1        36.00    99.00  
 ESolver_KS_LCAO       runner                     36.00     1        36.00    99.00  
 ESolver_KS_LCAO       before_scf                 0.94      1        0.94     2.59   
 ESolver_KS_LCAO       beforesolver               0.02      1        0.02     0.05   
 ESolver_KS_LCAO       set_matrix_grid            0.02      1        0.02     0.05   
 atom_arrange          search                     0.00      1        0.00     0.00   
 Grid_Technique        init                       0.02      1        0.02     0.05   
 Grid_BigCell          grid_expansion_index       0.01      2        0.01     0.03   
 Record_adj            for_2d                     0.00      1        0.00     0.00   
 Grid_Driver           Find_atom                  0.00      130      0.00     0.00   
 LCAO_domain           grid_prepare               0.00      1        0.00     0.00   
 Veff                  initialize_HR              0.00      1        0.00     0.00   
 OverlapNew            initialize_SR              0.00      1        0.00     0.00   
 EkineticNew           initialize_HR              0.00      1        0.00     0.00   
 NonlocalNew           initialize_HR              0.00      1        0.00     0.00   
 Charge                set_rho_core               0.00      1        0.00     0.00   
 Charge                atomic_rho                 0.07      1        0.07     0.20   
 PW_Basis_Sup          recip2real                 4.59      318      0.01     12.63  
 PW_Basis_Sup          gathers_scatterp           0.83      318      0.00     2.28   
 Potential             init_pot                   0.82      1        0.82     2.26   
 Potential             update_from_charge         21.31     29       0.73     58.60  
 Potential             cal_fixed_v                0.02      1        0.02     0.06   
 PotLocal              cal_fixed_v                0.02      1        0.02     0.06   
 Potential             cal_v_eff                  21.19     29       0.73     58.29  
 H_Hartree_pw          v_hartree                  1.23      29       0.04     3.39   
 PW_Basis_Sup          real2recip                 4.57      344      0.01     12.57  
 PW_Basis_Sup          gatherp_scatters           0.38      344      0.00     1.05   
 PotXC                 cal_v_eff                  19.75     29       0.68     54.32  
 XC_Functional         v_xc                       19.68     29       0.68     54.12  
 Potential             interpolate_vrs            0.09      29       0.00     0.25   
 H_Ewald_pw            compute_ewald              0.02      1        0.02     0.05   
 Charge_Mixing         init_mixing                0.00      1        0.00     0.00   
 HSolverLCAO           solve                      9.34      28       0.33     25.68  
 HamiltLCAO            updateHk                   5.26      56       0.09     14.47  
 OperatorLCAO          init                       5.26      168      0.03     14.46  
 Veff                  contributeHR               5.25      56       0.09     14.45  
 Gint_interface        cal_gint                   8.98      84       0.11     24.68  
 Gint_interface        cal_gint_vlocal            5.25      56       0.09     14.44  
 Gint_Tools            cal_psir_ylm               2.72      607152   0.00     7.48   
 Gint_k                transfer_pvpR              0.00      56       0.00     0.00   
 OverlapNew            calculate_SR               0.00      1        0.00     0.00   
 OverlapNew            contributeHk               0.00      56       0.00     0.00   
 EkineticNew           contributeHR               0.00      56       0.00     0.00   
 EkineticNew           calculate_HR               0.00      1        0.00     0.00   
 NonlocalNew           contributeHR               0.00      56       0.00     0.00   
 NonlocalNew           calculate_HR               0.00      1        0.00     0.00   
 OperatorLCAO          contributeHk               0.00      56       0.00     0.00   
 HSolverLCAO           hamiltSolvePsiK            0.08      56       0.00     0.23   
 DiagoElpa             elpa_solve                 0.06      56       0.00     0.18   
 ElecStateLCAO         psiToRho                   3.99      28       0.14     10.98  
 elecstate             cal_dm                     0.00      28       0.00     0.00   
 psiMulPsiMpi          pdgemm                     0.00      56       0.00     0.00   
 DensityMatrix         cal_DMR                    0.00      28       0.00     0.00   
 Local_Orbital_wfc     wfc_2d_to_grid             0.00      58       0.00     0.00   
 Gint                  transfer_DMR               0.00      28       0.00     0.01   
 Gint_interface        cal_gint_rho               3.72      28       0.13     10.24  
 Charge_Mixing         get_drho                   0.09      28       0.00     0.26   
 Charge                mix_rho                    3.98      27       0.15     10.95  
 Charge                Broyden_mixing             0.77      27       0.03     2.10   
 ESolver_KS_LCAO       out_deepks_labels          0.00      1        0.00     0.00   
 LCAO_Deepks_Interface out_deepks_labels          0.00      1        0.00     0.00   
 ESolver_KS_LCAO       after_all_runners          0.00      1        0.00     0.00   
 ModuleIO              write_istate_info          0.00      1        0.00     0.00   
-------------------------------------------------------------------------------------


 START  Time  : Fri Jun 21 09:03:27 2024
 FINISH Time  : Fri Jun 21 09:04:04 2024
 TOTAL  Time  : 37
 SEE INFORMATION IN : OUT.O2/

代码
文本
[52]
grep -n "ETOT" OUT.O2/running_scf.log
832: !FINAL_ETOT_IS -864.9810720483788 eV

代码
文本
[53]
cat OUT.O2/istate.info
BAND       Spin up Energy(ev)               Occupation     Spin down Energy(ev)               Occupation                Kpoint = 1                        (0 0 0)
     1                 -32.8099                        1                 -31.5445                        1
     2                 -20.2508                        1                 -18.3928                        1
     3                 -13.3383                        1                 -12.4126                        1
     4                  -13.324                        1                  -11.342                        1
     5                  -13.324                        1                  -11.342                        1
     6                 -6.59556                        1                 -4.16125                        0
     7                 -6.59556                        1                 -4.16125                        0
     8                  3.01535                        0                  3.83108                        0
     9                  7.66718                        0                  8.49991                        0
    10                  7.66718                        0                  8.49991                        0
    11                  8.39406                        0                  9.03939                        0
    12                  9.70496                        0                  10.3879                        0
    13                  11.7155                        0                  11.9058                        0
    14                  13.4579                        0                   14.523                        0
    15                  13.4579                        0                   14.523                        0
    16                  36.7429                        0                  37.8405                        0
    17                  37.1411                        0                  38.0924                        0
    18                  37.1411                        0                  38.0924                        0



代码
文本
[54]
grep -n -i "mag" OUT.O2/running_scf.log | tail -n 2
758:          total magnetism (Bohr mag/cell) = 2
759:       absolute magnetism (Bohr mag/cell) = 2.03043

代码
文本

可以看到,开启自旋极化后的氧分子能量更低,并且得到了正确的能级占据状态以及磁矩。通过简单的计算可以得到氧分子的结合能为:-4.98 eV。

代码
文本

恭喜你完成了第一个ABACUS计算模拟实例🎉

代码
文本

如果你还想尝试更多的计算实例,可以点击下方了解ABACUS计算模拟合集链接: ABACUS计算模拟实例 | 概述

代码
文本
ABACUS使用教程
ABACUS
计算材料学
DFT
ABACUS使用教程ABACUS计算材料学DFT
已赞2
本文被以下合集收录
ABACUS@计算材料学 | 计算模拟实例
weiqingzhou@whu.edu.cn
更新于 2024-08-09
13 篇8 人关注
ABACUS计算模拟实例
FermiNoodles
更新于 2024-07-15
13 篇1 人关注
推荐阅读
公开
ABACUS计算模拟实例 | XII. Pt(111)表面羟基解离的过渡态搜索
notebookABACUS计算材料学ABACUS使用教程
notebookABACUS计算材料学ABACUS使用教程
FermiNoodles
更新于 2024-07-06
2 赞2 转存文件1 评论
公开
ABACUS计算模拟实例 | VIII. 基于HSE06的态密度与能带计算
ABACUS计算材料学ABACUS使用教程
ABACUS计算材料学ABACUS使用教程
FermiNoodles
发布于 2024-05-23
1 转存文件