用户工具

站点工具

本页面的其他翻译:
  • zh

atk:非共线自旋

这是本文档旧的修订版!


非共线自旋

“通常的”(共线)自旋极化计算为电子态添加自旋量子数(上或下),除此之外,非共线自旋引入一些更多的概念-和可能性!-它可能不为每个人所熟悉。本实例由此为这些新概念提供了一个简单的介绍来解释它们,而此过程并不需要执行冗长的模拟运行。

您将在一个原子链上计算非共线透射谱,分析就密立根布居而言的电子结构,并最终计算自旋转移矩。

注意!

本实例假定您已完成实例Transmission spectrum of a spin-polarized atomic chain的计算。

提示!

非共线磁性指的是依赖于位置的自旋方向没有特别的方向所有的自旋是(反)平行的。

非共线自旋体系是相当普遍存在的,并包含螺旋自旋(比如铬),螺旋体,斜交自旋(比如锰氧化物),和最通常的铁磁材料中的畴壁。ATK可以让您通过第一性原理来研究具有非线性自旋的体系,但它与熟悉的共线自旋的例子在技术上和概念上有很大差异。

从共线到非共线计算

认识到自旋非上即下这一熟知的概念-和所有导出量也被这个量子数标记-在一个非共线计算中并不起作用是很重要的。相反,一个原子的本征态是一个具有自旋向上和向下通道特定混合的自旋量,并且许多量-像透射谱-变为一个2×2矩阵而不是两个分开的数字(自旋向上和向下透射)。这也将在下面涉及。

提示!

更多细节请参考此专题的Technical Notes:TechNotes_Noncollinear.pdf

在实际中非共线计算另一个重要方面是它们比对应的自旋极化或非极化计算在总体上需要更多的时间和内存。SCF自洽也可能更难达到,由于电子态有更多的自由度。为了提高非共线计算的自洽速率,两个重要特性被执行于ATK中:

  1. 使用一个共线自旋极化计算作为初始点;
  2. 一个新的密度混合方案:在混合密度矩阵之前将其对角化。

使用这些技术,自洽循环所需的步数可以被大幅削减。

准备开始

如上所述,对于非共线计算好的收敛的推荐近似是使用一个共线铁磁计算作为初始态。本实例由此使用实例Transmission spectrum of a spin-polarized atomic chain作为出发点。

打开VNL并创建一个新项目来开始。如果您没有做这个,完成之前提到的实例,或者至少共线(铁磁)计算,来产生文件 carbon_para.nc

实际计算耗时少于5分钟。

现在您将使用在这个文件中存储的自洽计算作为对于相同的共线一维碳链原子的一个非共线计算的出发点。然而这次,不仅可以研究反平行自旋构型(左电极上,右电极下),而且可以考虑两个电极之间任意角度旋转的自旋。

自旋旋转120°

打开VNL Editor (或者您自己喜欢的编辑器)并将下列行的Python代码拷贝/粘贴在上面:

# Read in the collinear calculation
device_configuration = nlread('carbon_para.nc', DeviceConfiguration)[0]
 
# Use the special noncollinear mixing scheme
iteration_control_parameters = IterationControlParameters(
    algorithm=PulayMixer(noncollinear_mixing=True)
    )
 
# Get the calculator and modify it for noncollinear LDA
calculator = device_configuration.calculator()
calculator = calculator(
    exchange_correlation = NCLDA.PZ,
    iteration_control_parameters = iteration_control_parameters
    )
 
# Define the spin rotation
theta = 120*Degrees
left_spins = [(i, 1, 0*Degrees, 0*Degrees) for i in range(3)]
center_spins = [(i+3, 1, theta*i/5, 0*Degrees) for i in range(6)]
right_spins = [(i+9, 1, theta, 0*Degrees) for i in range(3)]
spin_list = left_spins+center_spins+right_spins
initial_spin = InitialSpin(scaled_spins=spin_list)
 
# Setup the initial state as a rotated collinear state
device_configuration.setCalculator(
    calculator,
    initial_spin=initial_spin,
    initial_state = device_configuration
    )
 
# Calculate and save
device_configuration.update()
nlsave("carbon_nc120.nc", device_configuration)

对应左电极原子的自旋极化自旋设置指向沿着输运Z轴,而在右电极极化被旋转了120度(极角在一个XY面为赤道的坐标系中)。在中心区域,角度在这两个值之间被内插。注意这只是初始自旋构型-实际的自旋极化矢量将会被自洽地计算并可能由此改变(您可以在下面看到结果)。

注意!

电极自旋被隐含地设置在中心区域“电极拷贝”原子上,在本例中是前三个和末三个原子。

保存脚本为carbon_nc120.py,并运行它;只需几分钟完成。记住您可以使用Job Manager来完成它。

后SCF分析:密立根布居和透射谱

SCF计算完成了,是时候做些分析了。使用Script Generator来设置计算:

  1. 打开Script Generator
  2. 双击Analysis from File模块来将其嵌入脚本栏。然后双击嵌入的模块并选择文件 carbon_nc120.nc,这是由之前部分产生的。
  3. 添加一个MullikenPopulation分析模块。
  4. 添加一个TransmissionSpectrum分析模块(默认参数即可)。
  5. 设置输出文件为carbon_nc120.nc
  6. 使用Job Manager 运行脚本。

密立根布居

自旋转移矩

自旋轨道相互作用

atk/非共线自旋.1481790492.txt.gz · 最后更改: 2016/12/15 16:28 由 nie.han

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