用户工具

站点工具


atk:非共线自旋

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
atk:非共线自旋 [2016/12/15 16:01] – [从共线到非共线计算] nie.hanatk:非共线自旋 [2018/03/20 22:09] (当前版本) liu.jun
行 17: 行 17:
 </WRAP> </WRAP>
  
-非共线自旋体系是相当普遍存在的,并包含螺旋自旋(比如铬),螺旋体,斜交自旋(比如锰氧化物),和最通常的铁磁材料中的畴壁。ATK可以让您通过第一性原理来研究具有非线性自旋的体系,但它与熟悉的共线自旋的例子在技术上和概念上有很大差异。+非共线自旋体系是相当普遍存在的,并包含螺旋自旋(比如铬),螺旋体,斜交自旋(比如锰氧化物),和最通常的铁磁材料中的畴壁。QuantumATK可以让您通过第一性原理来研究具有非线性自旋的体系,但它与熟悉的共线自旋的例子在技术上和概念上有很大差异。
  
 {{ :atk:intro.jpg?300 |}} {{ :atk:intro.jpg?300 |}}
行 32: 行 32:
 </WRAP> </WRAP>
  
-在实际中非共线计算另一个重要方面是它们比对应的自旋极化或非极化计算在总体上需要更多的时间和内存。SCF自洽也可能更难达到,由于电子态有更多的自由度。为了提高非共线计算的自洽速率,两个重要特性被执行于ATK中:+在实际中非共线计算另一个重要方面是它们比对应的自旋极化或非极化计算在总体上需要更多的时间和内存。SCF自洽也可能更难达到,由于电子态有更多的自由度。为了提高非共线计算的自洽速率,两个重要特性被执行于QuantumATK中:
  
   - 使用一个共线自旋极化计算作为初始点;   - 使用一个共线自旋极化计算作为初始点;
行 40: 行 40:
  
 ===== 准备开始 ===== ===== 准备开始 =====
 +
 +如上所述,对于非共线计算好的收敛的推荐近似是使用一个共线铁磁计算作为初始态。本实例由此使用实例[[http://docs.quantumwise.com/tutorials/transmission_atomic_chain/transmission_atomic_chain.html#transmission-atomic-chain|Transmission spectrum of a spin-polarized atomic chain]]作为出发点。
 +
 +打开VNL并创建一个新项目来开始。如果您没有做这个,完成之前提到的实例,或者至少共线(铁磁)计算,来产生文件 ''carbon_para.nc''
 +
 +实际计算耗时少于5分钟。
 +
 +现在您将使用在这个文件中存储的自洽计算作为对于相同的共线一维碳链原子的一个非共线计算的出发点。然而这次,不仅可以研究反平行自旋构型(左电极上,右电极下),而且可以考虑两个电极之间任意角度旋转的自旋。
  
  
 ===== 自旋旋转120° ===== ===== 自旋旋转120° =====
 +
 +打开VNL Editor{{:atk:editor.png?20|}} (或者您自己喜欢的编辑器)并将下列行的Python代码拷贝/粘贴在上面:
 +
 +<code 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)
 +</code>
 +
 +对应左电极原子的自旋极化自旋设置指向沿着输运Z轴,而在右电极极化被旋转了120度(极角在一个XY面为赤道的坐标系中)。在中心区域,角度在这两个值之间被内插。注意这只是初始自旋构型-实际的自旋极化矢量将会被自洽地计算并可能由此改变(您可以在下面看到结果)。
 +
 +<WRAP center round info 100%>
 +**注意!**
 +
 +电极自旋被隐含地设置在中心区域“电极拷贝”原子上,在本例中是前三个和末三个原子。
 +</WRAP>
 +
 +保存脚本为''carbon_nc120.py'',并运行它;只需几分钟完成。记住您可以使用**Job Manager**{{:atk:job_manager.png?20|}}来完成它。
 +
  
  
 ===== 后SCF分析:密立根布居和透射谱 ===== ===== 后SCF分析:密立根布居和透射谱 =====
 +
 +SCF计算完成了,是时候做些分析了。使用Script Generator{{:atk:script_generator.png?20|}}来设置计算:
 +  - 打开**Script Generator**。
 +  - 双击{{:atk:analysis_from_file.png?20|}}Analysis from File模块来将其嵌入脚本栏。然后双击嵌入的模块并选择文件 carbon_nc120.nc,这是由之前部分产生的。
 +  - 添加一个{{:atk:analysis.png?20|}}**MullikenPopulation**分析模块。
 +  - 添加一个{{:atk:analysis.png?20|}}**TransmissionSpectrum**分析模块(默认参数即可)。
 +  - 设置输出文件为''carbon_nc120.nc''
 +  - 使用Job Manager{{:atk:job_manager.png?20|}} 运行脚本。
 +
 +{{ :atk:fig1.png?500 |}}
 +
 +==== 密立根布居 ====
 +
 +密立根布居可以通过Job Manager中的log窗口来进行查看:
 +
 +{{ :atk:fig2.png?500 |}}
 +
 +您会立刻注意到与共线情形的差异:现在每个原子上的密立根布居被4个变量描述;“up”, “down”, “theta”和“phi”。上和下布居的总和依然对应密立根电荷(电子数),它们的差异-结合两个角度-形成一个自旋极化矢量,可以在VNL Viewer{{:atk:viewer.png?20|}} 中被可视化:
 +
 +{{ :atk:fig3.png?500 |}}
 +
 +很显然自旋极化方向在电极两个数值之间平滑地变化。
 +
 +==== 透射谱 ====
 +观察log文件中的透射谱输出,您再一次看到它有四个分量;“up”, “down”, “real-up-down”和“imag-up-down”:
 +很显然最后一个自旋分量(“imag-up-down”)在这个简单体系中非常小,但它在自旋有其它方向的例子中通常是重要的。
 +
 +为了绘出透射谱,打开Transmission Analyzer插件。所有4个透射分量都已经包含在图中:
 +
 +{{ :atk:fig4.png?500 |}}
 +
 +很显然最后一个自旋分量(“imag-up-down”)在这个简单体系中非常小,但它在自旋有其它方向的例子中通常是重要的。
 +
 +为了绘出透射谱,打开Transmission Analyzer插件。所有4个透射分量都已经包含在图中:
 +
 +{{ :atk:fig5.png?500 |}}
 +
 +<WRAP center round tip 100%>
 +**提示!**
 +
 +在窗口左上角的下拉菜单“Curves”使您选择包含哪条透射曲线(默认选项为Sum, X, Y, Z-您也可以添加Up/Down),而下面的“Active curve”选项是用来选择在右手边“Coefficients”图中显示哪条k点分辨谱(对于这个1D体系只有一个透射系数,在(kA,kB)=(0,0),所以对应的图是相对乏味的)。通过点击对应的透射曲线也可以进行选择。
 +</WRAP>
 +
 +这个透射谱与平行共线情况的很相似,与反平行共线情况的很不同。这也许很令人惊奇,因为电极的自旋构型是反平行的而非平行的。然而,由于非共线自由度,电子从左移动到右可以以一个螺旋态传播,而且这允许一个高的透射。实际上,如果您设置旋转角度为180度,对应电极的反平行排列,结果将会几乎相同。
 +
 +下图比较了共线自旋平行态和非共线态的透射谱,使用了Compare Data插件。
 +
 +{{ :atk:fig6.png?500 |}}
 +
 +
 +
 +
 +
 +
 +
  
  
 ===== 自旋转移矩 ===== ===== 自旋转移矩 =====
 +
 +我们接下来通过线性响应原理来计算自旋转移矩(STT)。计算遵循technical notes([[http://docs.quantumwise.com/_downloads/TechNotes_Noncollinear1.pdf|TechNotes_Noncollinear.pdf]])中的Eq. (6)。
 +
 +{{ :atk:wer.png?300 |}}
 +
 +<WRAP center round info 100%>
 +**注意!**
 +
 +自旋转移矩(STT)是一个电子效应,通过在磁性隧道结或自旋阀上施加一个自旋极化电流,可以利用该效应改变磁性层取向。
 +在上图中,通过在一个厚磁层(“固定层”)通入一个电流来产生一个自旋极化电流,然后这个自旋极化电流随后指向第二个薄一些的磁层(“自由层”)。这使在自由层中的电子极化从而使它们的自旋方向与固定层的自旋方向对齐。固定层对自由层电子施加了一个扭矩以旋转它们的自旋角动量。然而,由于角动量守恒,“转动”电子对固定层施加一个相等但反向的扭矩-自旋转移矩。注意为了研究这个效应我们需要一个电子自旋的非共线表述!
 +</WRAP>
 +
 +自旋转移矩可被用来翻转磁性随机存取存储器(MRAM)中的活性元素。这样的STT-MRAM具有低功耗和相比传统磁阻MRAM(使用磁场来翻转活性元素)更好的可扩展性的优势。
 +在原子尺度模型下计算STT主要有两种不同的方法:
 +  - STT可以通过求自旋电流密度的散度来得到,$\nabla \cdot I_s$,在QuantumATK中可以通过格林函数方法求得。
 +  - 另一个计算STT的方法,这里以$\tau$来表示,是基于表达式$\tau = \bf{Tr} ( \delta \rho_\mathrm{neq} \bf{\sigma} \times \bf{B_\mathrm{xc}} )$,其中$\delta \rho_\mathrm{neq}$是非平衡贡献的自旋密度,$\bf{\sigma}$是泡利矩阵的一个矢量,而$\bf{B_\mathrm{xc}}$是交换关联磁场。
 +接下来您将使用方法2,它基于线性响应和推迟/高级格林函数。
 +
 +  * 重新打开Script Generator,移除旧的分析项目,添加{{:atk:analysis.png?20|}} **SpinTransferTorque**分析模块。 
 +  * 双击SpinTransferTorque模块并为contribution选择**Left**。这样,您将计算**left -> right**线性响应电流。
 +  * 将脚本送到Job Manager并运行-这很快。
 +
 +{{ :atk:fig7.png?500 |}}
 +
 +使用Viewer您现在可以可视化STT的空间分量。下图所示是Z分量的一个等值面(为了绘出构型放在等值面顶部,只需拖拽构型项到绘图上)。
 +
 +{{ :atk:fig8.png?500 |}}
 +
 +使用1D Projector也可以很方便地将不同分量一起绘出。选择Vector component“x”, “y”, “z”,并点击Add line:
 +
 +{{ :atk:fig9.png?500 |}}
 +
 +
 +
  
  
 ===== 自旋轨道相互作用 ===== ===== 自旋轨道相互作用 =====
 +
 +自旋轨道(SO)耦合在电子结构计算中通常被忽略,但它实际上可以被包含在一个非共线计算中,只要使用合适的赝势。您可以从这个实例中找到更多细节[[http://docs.quantumwise.com/tutorials/spin_orbit_bandstructures/spin_orbit_bandstructures.html#spin-orbit-bandstructures|Spin-orbit splitting of semiconductor band structures]]。
 +
 +这里考虑的碳链具有一个很小的SO耦合,所以包含自旋轨道相互作用的电子结构其结果与上面部分得到的结果基本相同。即使这样,如果您希望在如上概述的计算中包含SO相互作用,只需将初始LSDA计算赝势变为OMX,并选择SOLDA作为交换关联代替在[[http://docs.quantumwise.com/tutorials/noncollinear_intro/noncollinear_intro.html#spin-rot-120|Spin rotation of 120°]]部分计算中的NCLDA。
 +
 +==== OMX赝势 ====
 +
 +当设置初始LSDA计算,保存为''carbon_para.nc'',打开New Calculator ‣ Basis set/exchange correlation并选择一个OMX赝势。您将通常有Medium和High精度基组选项可供选择(有时也有Low精度):
 +
 +{{ :atk:fig10.png?500 |}}
 +
 +{{ :atk:fig11.png?500 |}}
 +
 +OMX赝势总的来说需要大于默认75 Hartree的一个mesh cut-off。将其增加到比如150 Hartree:
 +
 +{{ :atk:fig12.png?500 |}}
 +
 +==== SOLDA交换关联 ====
 +
 +在脚本中使用SOLDA代替NCLDA来读取''carbon_para.nc''并执行一个自旋旋转120°的计算:
 +
 +<code python>
 +# Get the calculator and modify it for noncollinear LDA with spin-orbit (SOLDA)
 +calculator = device_configuration.calculator()
 +calculator = calculator(
 +    exchange_correlation = SOLDA.PZ,
 +    iteration_control_parameters = iteration_control_parameters
 +    )
 +</code>
 +
 +
 +
  
  
atk/非共线自旋.1481788865.txt.gz · 最后更改: 2016/12/15 16:01 由 nie.han

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