用户工具

站点工具

本页面的其他翻译:
  • zh

atk:块体金的相对论效应

体相金的相对论效应

脚本文件下载:

金是较重的元素之一。体相的金,其电子结构受到相对论效应,包括自旋轨道耦合(SOC)的显著影响。

金的相对论能带结构从头计算首次发表于70年代早期1)2)3) 这些研究,以及后来的研究都表明,相对论效应导致金的电子能带发生了明显的重构。特别是标准GGA计算的深价带的能带交叉,大部分被相对论效应消除了。本例将示范ATK-DFT使用标准的标量相对论GGA计算和旋轨耦合相对论计算金的能带结构。

GGA能带计算

使用VNL中Builder创建金块体结构:通过Add ‣ From Database导入。保持晶格常数为实验值4.078Å。

进入Script Generator,设置标准的GGA-PBE能带计算,使用OMX赝势: 首先,双击添加一个New Calculator,以及一个Bandstructure,并且设置输出文件名为gold_gga.nc,如下图所示:

编辑New Calculator设置:

在Basis set/exchange correlation菜单选择GGA-PBE交换相关泛函,以及OMX赝势,Medium精度基组,如下图所示:

在Basis菜单选择Density mesh-cutoff到300Hartree,k-point采样增加到9x9x9:

编辑Bandstructure设置:

设置Points per segment为101,这样高对称点之间的能带很光滑;Brillouin zone route设置为G, X, W, L,

保存脚本的名为gold_gga.py,通过Job Manager运行。如果是单线程计算的话,耗时约一分钟左右。

结果:

在VNL LabFloor中找到输出文件的Bandstructure项,并使用Bandstructure Analyzer作图。结果如下图所示:

与文献2)和文献3)的结果非常相似。金显然不是绝缘体,有很多能带穿越费米线。同样值得注意的是,费米能以下更深的价带(-2eV到-5eV之间)区域存在大量的能带交叉。我们可以看到,这些交叉在考虑自旋轨道耦合之后,大部分会消失。

旋轨耦合相对论GGA能带计算

下面演示使用GGA泛函计算包含自旋轨道耦合的能带结构。电子的自旋必须设置为非共线。这样比标准的GGA计算耗时更大,并且不容易收敛。可以使用两个方法来解决:a) 从自旋极化的计算结果(SGGA)开始计算;b)使用电子密度混合的方法。

注意: 我们知道金是没有磁性的,因此对金进行自旋极化的计算实际上看起来有些傻瓜。这样得到的结果和共线、自旋补偿计算的到的结果是一致的。 实际上,和自旋补偿态的结果相比,收敛的自旋极化的计算结果,能够给非共线旋轨耦合态提供一个好得多的初始猜测。如果从自旋极化电子态出发,非共线的自洽迭代只需要少量几步就能收敛,从而能够大大节省计算时间。

SGGA初始态:

需要设置两个选项,来进行SGGA计算: a.使用Scripter:和上一节的设置完全一致,但Basic菜单中Spin项改为Polarized,删除Scripter栏的Bandstructure项,输出文件名字设置为gold_sgga.nc,保存脚本名为gold_sgga.py。

b.使用Editor:拷贝gold_gga.py到gold_sgga.py,并在Editor中打开gold_sgga.py,做少量的修改:设置交换相关泛函为SGGA.PBE,删除最后面,计算能带结构的几行,修改输出文件名字为gold_sgga.nc。修改后的脚本如下:

gold_sgga.py
# -------------------------------------------------------------
# Bulk Configuration
# -------------------------------------------------------------
 
# Set up lattice
lattice = FaceCenteredCubic(4.07825*Angstrom)
 
# Define elements
elements = [Gold]
 
# Define coordinates
fractional_coordinates = [[ 0.,  0.,  0.]]
 
# Set up configuration
bulk_configuration = BulkConfiguration(
    bravais_lattice=lattice,
    elements=elements,
    fractional_coordinates=fractional_coordinates
    )
 
# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
#----------------------------------------
# Basis Set
#----------------------------------------
 
GoldBasis = OpenMXBasisSet(
    element=PeriodicTable.Gold,
    filename="openmx/pao/Au7.0.pao.zip",
    atomic_species="s2p2d2f1",
    pseudopotential=NormConservingPseudoPotential("normconserving/upf2/Au_PBE13.upf.zip"),
    )
 
basis_set = [
    GoldBasis,
    ]
 
#----------------------------------------
# Exchange-Correlation
#----------------------------------------
exchange_correlation = SGGA.PBE
 
numerical_accuracy_parameters = NumericalAccuracyParameters(
    k_point_sampling=(9, 9, 9),
    density_mesh_cutoff=300.0*Hartree,
    )
 
calculator = LCAOCalculator(
    basis_set=basis_set,
    exchange_correlation=exchange_correlation,
    numerical_accuracy_parameters=numerical_accuracy_parameters,
    )
 
bulk_configuration.setCalculator(calculator)
nlprint(bulk_configuration)
bulk_configuration.update()
nlsave('gold_sgga.nc', bulk_configuration)

运行该脚本,速度应该非常快。注意将生成新的输出文件gold_sgga.nc,它只包含一个项目,也就是金的晶体结构,以及自洽的SGGA电子态,用于后面的计算。

SOGGA能带结构计算:

使用下面的脚本,完成工作流:

  1. 从读取gold_sgga.nc读取bulk_configuration;
  2. 使用SGGA计算的Calculator,略做修改;使用SOGGA交换相关泛函,对非共线计算使用密度混合的方法解决收敛的问题;
  3. 使用收敛点SGGA态作为SOGGA电子密度计算的初始猜测;
  4. 进行SOGGA基态计算,然后进行能带结构分析。

脚本如下:

gold_sogga.py
# -------------------------------------------------------------
# Bulk Configuration
# -------------------------------------------------------------
bulk_configuration = nlread('gold_sgga.nc', BulkConfiguration)[0]
 
# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
 
# Use the special noncollinear mixing scheme
iteration_control_parameters = IterationControlParameters(
    algorithm=PulayMixer(noncollinear_mixing=True)
    )
 
# Get the calculator and modify it for spin-orbit GGA
calculator = bulk_configuration.calculator()
calculator = calculator(
    exchange_correlation = SOGGA.PBE,
    iteration_control_parameters = iteration_control_parameters
    )
 
# Setup the initial state from the GGA calculation
bulk_configuration.setCalculator(
    calculator,
    initial_state = bulk_configuration
    )
nlprint(bulk_configuration)
bulk_configuration.update()
nlsave('gold_sogga.nc', bulk_configuration)
 
# -------------------------------------------------------------
# Bandstructure
# -------------------------------------------------------------
bandstructure = Bandstructure(
    configuration=bulk_configuration,
    route=['G', 'X', 'W', 'L', 'G', 'K'],
    points_per_segment=101,
    bands_above_fermi_level=All
    )
nlsave('gold_sogga.nc', bandstructure)

保存该脚本名为gold_sogga.py,并运行计算。使用4核进行并行化计算,大约需要6分钟。注意QuantumATK并行计算需要使用MPI库,具体参考安装配置MPI并行环境

结果:

下图为SOGGA计算得到的能带结构。与文献2)和文献3)的结果非常接近。实际上与文献4)的SOGGA能带结构是一致的。注意GGA计算中价带的大部分的能带交叉是如何解除的。

你可以使用Compare Data插件更直接的对比这两个能带(如下图所示)。同时高亮显示GGA能带和SOGGA能带,可以看到相对论效应对金的价带有显著影响。下图与文献4)中图6一致:

1)
M. G. Ramchandani. Energy band structure of gold. Journal of Physics C: Solid State Physics, 3(1S):S1, 1970.
2)
N. Egede Christensen and B. O. Seraphin. Relativistic band calculation and the optical properties of gold. Phys. Rev. B, 4:3321–3344, Nov 1971.
3)
N. Egede Christensen. High-energy band structure of gold. Phys. Rev. B, 13(6):2698–2701, 1976.
atk/块体金的相对论效应.txt · 最后更改: 2022/11/18 11:32 由 liu.jun

© 2014-2022 费米科技(京ICP备14023855号