用户工具

站点工具


atk:磁性隧道结中的自旋输运

差别

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

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
atk:磁性隧道结中的自旋输运 [2016/12/14 22:54] – [反平行自旋] nie.hanatk:磁性隧道结中的自旋输运 [2018/03/20 22:12] (当前版本) liu.jun
行 4: 行 4:
 本实例将为您展示如何对磁性隧道结(MTJs)的电子输运性质进行模拟和分析(通常用于自旋电子学应用的研究)。你将考虑一个Fe|MgO|Fe磁性隧道结,它是一个比较复杂的自旋极化体系,MacLaren和他的合作者们首次研究了这个体系[BZSM01]。 本实例将为您展示如何对磁性隧道结(MTJs)的电子输运性质进行模拟和分析(通常用于自旋电子学应用的研究)。你将考虑一个Fe|MgO|Fe磁性隧道结,它是一个比较复杂的自旋极化体系,MacLaren和他的合作者们首次研究了这个体系[BZSM01]。
  
-您将使用ATK来学习共线/非共线自旋相关输运性质,包括电子传输,隧穿磁阻和自旋转移矩。你也将变得熟悉AdaptiveGrid方法,它是对于k点取样的传统Monkhorst-Pack型格点的一种自适应选择。 +您将使用QuantumATK来学习共线/非共线自旋相关输运性质,包括电子传输,隧穿磁阻和自旋转移矩。你也将变得熟悉AdaptiveGrid方法,它是对于k点取样的传统Monkhorst-Pack型格点的一种自适应选择。 
-{{ :atk:introbar.png?800 |}}+ 
 +{{ :atk:introbar.png?500 |}}
 ===== 入门指南 ===== ===== 入门指南 =====
  
-使用在Builder插件中的Magnetic Tunnel Junction来创建一个Fe|MgO|Fe隧道结很容易。然而,器件构型需要进行结构优化,而这不是本实例的主要目的。我们为此提供了优化好的器件中心区的ATK Python脚本,[[http://docs.quantumwise.com/_downloads/central_region.py|central_region.py]],您可以使用它来构建MTJ器件。如果您想学习如何进行几何弛豫,您也可以跳到 Relaxing the device central region部分。+使用在Builder插件中的Magnetic Tunnel Junction来创建一个Fe|MgO|Fe隧道结很容易。然而,器件构型需要进行结构优化,而这不是本实例的主要目的。我们为此提供了优化好的器件中心区的QuantumATK Python脚本,[[http://docs.quantumwise.com/_downloads/central_region.py|central_region.py]],您可以使用它来构建MTJ器件。如果您想学习如何进行几何弛豫,您也可以跳到 Relaxing the device central region部分。
  
 现在,打开VNL,创建一个新项目并命名,选中它然后点击Open。下载[[http://docs.quantumwise.com/_downloads/central_region.py|central_region.py]] 并将其保存在Project Folder中。然后将脚本拖入VNL {{:atk:builder.png?20|}} Builder中,然后使用Device from Bulk工具栏为中心区域添加电极,从而创建Fe|MgO|Fe器件。 现在,打开VNL,创建一个新项目并命名,选中它然后点击Open。下载[[http://docs.quantumwise.com/_downloads/central_region.py|central_region.py]] 并将其保存在Project Folder中。然后将脚本拖入VNL {{:atk:builder.png?20|}} Builder中,然后使用Device from Bulk工具栏为中心区域添加电极,从而创建Fe|MgO|Fe器件。
行 19: 行 20:
 **注意!** **注意!**
  
-Device from Bulk工具栏将会建议几个不同的电极长度。这是通过搜索中心区域的周期性来检测到的。应检查和仔细选择这些重要参数。更多信息详见实例[[atk:使用atk研究电子输运|Transport calculations with ATK]]。+Device from Bulk工具栏将会建议几个不同的电极长度。这是通过搜索中心区域的周期性来检测到的。应检查和仔细选择这些重要参数。更多信息详见实例[[atk:使用atk研究电子输运|使用QuantumATK研究电子输运]]。
 </WRAP> </WRAP>
  
行 137: 行 138:
 ===== 隧道磁电阻 ===== ===== 隧道磁电阻 =====
  
 +隧道磁电阻(TMR)的定义是
 +
 +$\mathrm{TMR} = \frac{G_P-G_{AP}}{G_{AP}}$,
 +
 +其中$G_P$是平行自旋排列隧道结的电导,$G_{AP}$是反平行自旋排列的电导。
 +
 +电导可以通过它们各自的透射谱来计算。下面的脚本实现了这个计算。您可以在这里下载:[[http://docs.quantumwise.com/_downloads/tmr.py|tmr.py]]。
 +
 +<code python>
 +# Calculate conductance for parallel spin
 +transmission_para = nlread('mgo_para.nc', TransmissionSpectrum)[0]
 +conductance_para_uu = transmission_para.conductance(spin=Spin.Up)
 +conductance_para_dd = transmission_para.conductance(spin=Spin.Down)
 +conductance_para = conductance_para_uu + conductance_para_dd
 +
 +# Calculate conductance for anti-parallel spin
 +transmission_anti = nlread('mgo_anti.nc', TransmissionSpectrum)[0]
 +conductance_anti_uu = transmission_anti.conductance(spin=Spin.Up)
 +conductance_anti_dd = transmission_anti.conductance(spin=Spin.Down)
 +conductance_anti = conductance_anti_uu + conductance_anti_dd
 +
 +print 'Conductance Parallel Spin (Siemens)'
 +print 'Up=%8.2e, Down=%8.2e' % (conductance_para_uu.inUnitsOf(Siemens),
 +                                conductance_para_dd.inUnitsOf(Siemens))
 +print 'Total = %8.2e' % (conductance_para.inUnitsOf(Siemens))
 +print
 +
 +print 'Conductance Anti-Parallel Spin (Siemens)'
 +print 'Up=%8.2e, Down=%8.2e' % (conductance_anti_uu.inUnitsOf(Siemens),
 +                                conductance_anti_dd.inUnitsOf(Siemens))
 +print 'Total = %8.2e' % (conductance_anti.inUnitsOf(Siemens))
 +print
 +
 +print 'TMR (optimistic)  = %8.2f percent' % \
 +      (100.*(conductance_para-conductance_anti)/conductance_anti)
 +print 'TMR (pessimistic) = %8.2f percent' % \
 +      (100.*(conductance_para-conductance_anti)/(conductance_para+conductance_anti))
 +</code>
 +
 +执行脚本,找到TMR:
 +
 +<code python>
 +Conductance Parallel Spin (Siemens)
 +Up=4.11e-09, Down=2.79e-10
 +Total = 4.39e-09
 +
 +Conductance Anti-Parallel Spin (Siemens)
 +Up=4.22e-11, Down=4.00e-11
 +Total = 8.22e-11
 +
 +TMR (optimistic)  =  5240.12 percent
 +TMR (pessimistic) =    96.32 percent
 +</code>
 ===== 自适应k点网格 ===== ===== 自适应k点网格 =====
  
 +AdaptiveGrid类为对于k点取样的传统的Monkhorst-Pack(MP)网格实现了可供替代的选择。正如QuantumATK参考手册条目AdaptiveGrid中所详述,自适应k点网格可被用于自动放大电子透射谱的重要特征。当k依赖透射以局部峰值为主导时(比如在Fe|MgO|Fe MTJ中),总的计算的透射会严重依赖这些峰值的解析,对此使用自适应k点网格是尤为有用的。
 +
 +自适应算法本质上将布里渊区(BZ)按三角形划分并对所有三角形求积分。每个三角形以迭代的方式显著变小直到达到收敛,但当细化级别数达到 ''maximum_number_of_levels''(默认值为20)时停止。有两种误差测定可供使用:
 +
 +**Absolute**:当对所有三角形的BZ积分的绝对值低于所选的**tolerance**时收敛。
 +**Relative**:当对所有三角形的BZ积分的相对值低于所选的**tolerance**时收敛。
 +
 +<WRAP center round info 60%>
 +**提示!**
 +
 +自适应网格功能从2016版开始可供使用。
 +</WRAP>
 +
 +图显示了Fe|MgO|Fe MTJ中的总透射如何随平行/反平行的k依赖透射函数所使用的k点分辨率变化。将使用MP方法k点网格的结果与使用自适应k点网格的结果进行了比较。
 +
 +{{ :atk:adaptive_grid_plot.png?500 |}}
 +
 +这里考虑的MTJ中总透射的计算在不少于10<sup>3</sup> Monkhorst–Pack k点时收敛,大约对应一个31x31网格。对于自适应k点网格,一个10<sub>-2</sub>的relative tolerance似乎就已经很充足了。
 +
 +==== 平行透射 ====
 +脚本[[http://docs.quantumwise.com/_downloads/adaptive_grid1.py|adaptive_grid.py]]同时使用一个稠密的MP网格和自适应网格方法计算了自旋方向平行的Fe|MgO|Fe器件的透射:
 +
 +<code python>
 +# -------------------------------------------------------------
 +# Load device configuration
 +# -------------------------------------------------------------
 +device_configuration = nlread('mgo_para.nc', DeviceConfiguration)[0]
 +
 +# -------------------------------------------------------------
 +# Transmission Spectrum using a dense Monkhorst-Pack grid.
 +# -------------------------------------------------------------
 +transmission_spectrum = TransmissionSpectrum(
 +    configuration=device_configuration,
 +    energies=numpy.linspace(0,0,1)*eV,
 +    kpoints=MonkhorstPackGrid(500,500),
 +    )
 +nlsave('adaptive_grid.nc', transmission_spectrum)
 +
 +# -------------------------------------------------------------
 +# AdaptiveGrid.
 +# -------------------------------------------------------------
 +adaptive_grid = AdaptiveGrid(
 +    tolerance=0.01,
 +    error_measure=Relative)
 +
 +# -------------------------------------------------------------
 +# Transmission Spectrum using the AdaptiveGrid.
 +# -------------------------------------------------------------
 +transmission_spectrum = TransmissionSpectrum(
 +    configuration=device_configuration,
 +    energies=numpy.linspace(0,0,1)*eV,
 +    kpoints=adaptive_grid,
 +    )
 +nlsave('adaptive_grid.nc', transmission_spectrum)
 +</code>
 +
 +Monkhorst-Pack网格有500x500的k点,而自适应网格被设置为10<sup>-2</sup>的relative tolerance。下载并运行脚本。如果在一个具有4 MPI进程的现代笔记本电脑上进行并行执行则需要大约25分钟完成。
 ===== 自旋向上透射 ===== ===== 自旋向上透射 =====
 +
 +<WRAP center round box 100%>
 +{{ :atk:monkhorstpack_up.png?500 |}}
 +图94 使用500x500 Monkhorst–Pack网格评估自旋向上透射谱。总的k点平均自旋向上透射为$4.6\cdot10-4$。左图:整个BZ视图。右图:Г点周围放大图。
 +</WRAP>
 +
 +使用稠密Monkhorst–Pack网格得到的自旋向上透射谱与在Elecron transmission部分使用较稀疏网格得到的透射谱有所不同:我们可以看到透射谱中间的特征实际上是环形的,并在直接围绕Г点处为零透射。显然,需要一个很稠密的网格来解析这个事实。然而,注意到改进的k点取样仅将总k点平均自旋向上透射增加了4倍。
 +
 +<WRAP center round box 100%>
 +{{ :atk:adaptive_up.png?500 |}}
 +图95 使用relative tolerance为10<sup>-2</sup>的自适应网格评估自旋向上透射谱。黑点表明了k点取样。总k点平均自旋向上透射为$4.2\cdot10-4$。左图:整个BZ视图。右图:Г点周围放大图。
 +</WRAP>
 +
 +使用自适应网格评估的自旋向上透射谱如上图所示,黑点表明了k点取样。自适应算法明显地放大了k依赖透射的环形特征,导致环形透射特征周围的k点密度最大。
 +
 +==== 自旋向下透射 ====
 +
 +<WRAP center round box 100%>
 +{{ :atk:monkhorstpack_dn.png?500 |}}
 +图96 使用500x500 Monkhorst–Pack网格评估自旋向下透射谱。总的k点平均自旋向下透射为$3.7\cdot10-5$。左图:整个BZ视图。右图:右手边透射峰值周围放大图。
 +</WRAP>
 +
 +在密集取样的自旋向下透射中的4个峰值在对其中之一放大之前很难被观测。将使用MP网格(上图)得到的透射与使用自适应网格(下图)得到的透射进行比较,显然,自适应算法放大了透射峰值。然而,总k点平均自旋向上透射仅改变了5%。
 +
 +<WRAP center round box 100%>
 +{{ :atk:adaptive_dn.png?500 |}}
 +图97 使用relative tolerance为10<sup>-2</sup>的自适应网格评估自旋向下透射谱。黑点表明了k点取样。总k点平均自旋向下透射为$3.5\cdot10-5$。左图:整个BZ视图。右图:右手边透射峰值周围放大图。
 +</WRAP>
 +
 +==== 限制网格范围 ====
 +自适应网格类也可被用来解析k依赖透射的一个特定的部分。下面所示的脚本([[http://docs.quantumwise.com/_downloads/zoom.py|zoom.py]])给出了一个例子,其中自适应网格被限制在特定的$k_A,k_B$范围内,并对自旋向上和自旋向下k依赖透射的特定特征分别进行放大。使用10<sup>-3</sup>的relative tolerance来完全解析透射特征。
 +
 +得出的自旋向下和自旋向下透射阐明如下。注意图片坐标轴的不同刻度。
 +
 +<code python>
 +# -------------------------------------------------------------
 +# Load device configuration
 +# -------------------------------------------------------------
 +device_configuration = nlread('mgo_para.nc', DeviceConfiguration)[0]
 +
 +# -------------------------------------------------------------
 +# Transmission Spectrum zoom #1.
 +# -------------------------------------------------------------
 +adaptive_grid = AdaptiveGrid(
 +    kA_range=[-0.04, 0.04],
 +    kB_range=[-0.04, 0.04],
 +    tolerance=0.001,
 +    error_measure=Relative)
 +
 +transmission_spectrum = TransmissionSpectrum(
 +    configuration=device_configuration,
 +    energies=numpy.linspace(0,0,1)*eV,
 +    kpoints=adaptive_grid,
 +    )
 +nlsave('zoom.nc', transmission_spectrum)
 +
 +# -------------------------------------------------------------
 +# Transmission Spectrum zoom #2.
 +# -------------------------------------------------------------
 +adaptive_grid = AdaptiveGrid(
 +    kA_range=[0.275, 0.285],
 +    kB_range=[-0.03, 0.03],
 +    tolerance=0.001,
 +    error_measure=Relative)
 +
 +transmission_spectrum = TransmissionSpectrum(
 +    configuration=device_configuration,
 +    energies=numpy.linspace(0,0,1)*eV,
 +    kpoints=adaptive_grid,
 +    )
 +nlsave('zoom.nc', transmission_spectrum)
 +</code>
 +
 +{{ :atk:zoom1.png?500 |}}
 +
 +<WRAP center round important 100%>
 +**警告!**
 +
 +如果您选择只对布里渊区一个特定部分取样,总(k点平均)透射很可能是不正确的。使用整个布里渊区取样来计算器件中的总透射,这也是默认的设置。
 +</WRAP>
 +
 +==== 自旋转移矩 ====
 +您将在这个部分计算自旋转移矩(STT),其中需要非共线自旋。实例[[http://docs.quantumwise.com/tutorials/noncollinear_intro/noncollinear_intro.html#noncollinear-intro|Introduction to noncollinear spin]]给出关于如何执行STT计算和非共线自旋的更多信息。
 +接下来,您将:
 +
 +  - 计算非线性器件构型;
 +  - 计算密立根布居和自旋转移矩。
 +
 +==== 计算非共线器件构型 ====
 +脚本[[http://docs.quantumwise.com/_downloads/mgo_nonco_dc.py|mgo_nonco_dc.py]]通过使用共线铁磁计算作为起点和一个密度混合方案(在混合之前对角化密度矩阵)计算了器件构型的非共线基态。请注意这个脚本将自旋极化交换关联势(SGGA.PBE)用非共线的(NCGGA.PBE)来替代。
 +
 +<code python>
 +# Read in the collinear calculation
 +device_configuration = nlread('mgo_para.nc', DeviceConfiguration)[0]
 +
 +# Use the special noncollinear mixing scheme
 +iteration_control_parameters = IterationControlParameters(
 +    algorithm=PulayMixer(noncollinear_mixing=True)
 +    )
 +# Get the calculator 
 +calculator = device_configuration.calculator()
 +new_calculator = calculator(
 +       exchange_correlation=NCGGA.PBE,
 +       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 
 +device_configuration.setCalculator(
 +    calculator=new_calculator, 
 +    initial_spin=initial_spin,
 +    initial_state=device_configuration)
 +
 +# Calculate and save
 +device_configuration.update()
 +nlsave("mgo_nonco_dc.nc", device_configuration)
 +</code>
 +
 +对应左电极中原子自旋极化的自旋设置指向沿着输运Z轴方向,而在右电极中极化旋转了120度。在中心区域,角度是这两个值的内插值。注意到这只是初始自旋构型-实际的自旋极化矢量将被自洽地计算并因此可能会改变(您可以在下一个部分看到结果)。
 +
 +==== 计算密立根布居和自旋转移矩 ====
 +当计算结束时,您会在LabFloor中找到非共线器件构型。为了计算密立根布居和自旋转移矩,去往{{:atk:script_generator.png?20|}} Script Generator并为脚本添加如下模块:
 +
 +  * {{:atk:analysis_from_file.png?20|}}Analysis from File
 +  * {{:atk:analysis.png?20|}}MullikenPopulation
 +  * {{:atk:analysis.png?20|}}SpinTransferTorque
 +
 +然后,将默认输出文件名改为''mgo_nonco_dc_analysis.nc''
 +
 +{{ :atk:mgo_script_generator_analff.png?500 |}}
 +
 +调整一些模块的设置:
 +
 +• **Analysis From File**:
 +  * 选择''mgo_nonco_dc.nc'' 文件。
 +• **SpinTransferTorque**:
 +  * Contributions选择**Left**。这样,您将计算从左到右的线性响应电流。
 +
 +{{ :atk:mgo_stt_window.png?500 |}}
 +
 +使用发送按钮({{:atk:sendto.png?20|}} 图标)将脚本送往editor并按照如下所示将Monkhorst-Pack网格用Adaptive网格来替代。
 +
 +<code python>
 +# Setup adaptive grid object.
 +adaptive_grid = AdaptiveGrid(
 +        kA_range=[-0.5, 0.5],
 +        kB_range=[-0.5, 0.5],
 +        tolerance=1e-2,
 +        error_measure=Relative,
 +        )
 +# -------------------------------------------------------------
 +# Spin Transfer Torque
 +# -------------------------------------------------------------
 +spin_transfer_torque = SpinTransferTorque(
 +    configuration=device_configuration,
 +    energy=0*eV,
 +    kpoints=adaptive_grid,
 +    contributions=Left,
 +    energy_zero_parameter=AverageFermiLevel,
 +    infinitesimal=1e-06*eV,
 +    self_energy_calculator=RecursionSelfEnergy(),
 +    )
 +nlsave('mgo_nonco_dc_analysis.nc', spin_transfer_torque)
 +</code>
 +
 +如果您愿意,您可以在这里下载脚本([[http://docs.quantumwise.com/_downloads/mgo_nonco_dc_analysis.py|mgo_nonco_dc_analysis.py]])。
 +STT的计算应该使用足够稠密的k点取样以使器件右手侧的总扭矩得到一个收敛很好的值。在这个脚本中我们使用relative tolerance为10<sup>-2</sup>的自适应网格。下图显示了不同relative tolerance下Fe|MgO|Fe MTJ中右侧总自旋转移矩的转移情况。
 +
 +{{ :atk:plot_stt_total.png?500 |}}
 +
 +这个图片显示了使用relative tolerance为10<sup>-2</sup>对于本实例中考虑的MTJ达到计算收敛看起来是足够的。我们也使用了一个更为稠密的Monkhorst-Pack网格计算了右侧的总自旋转移矩。
 +
 +{{ :atk:plot_stt_total_mg.png?500 |}}
 +
 +可以看出使用一个Monkhorst-Pack网格,总STT不会达到完全收敛。
 +
 +==== 结果分析 ====
 +当计算完成时,您将在LabFloor中得到**MullikenPopulation**和**SpinTransferTorque**项目。您可以使用text representation来检查密立根电荷和自旋极化矢量分量。
 +
 +{{ :atk:mtj_mulliken_text.png?500 |}}
 +
 +在非共线计算中,‘上’和‘下’布居的总和对应着通常的密立根电荷(电子数量),它们的差异-结合两个角度-形成了自旋极化矢量。这个矢量可以使用{{:atk:viewer.png?20|}}**Viewer**来可视化:
 +
 +{{ :atk:mtj_mulliken.png?500 |}}
 +
 +您也可以使用**1D Projector**来绘出STT的空间分量:
 +
 +{{ :atk:mtj_spintransfertorque_text.png?500 |}}
 +
 +下图显示了MTJ构型和STT的“y”分量。
 +
 +{{ :atk:mtj_spintransfertorque_y.png?500 |}}
 +
 +
 +
 +
 +
 +
  
 ===== 弛豫器件中心区 ===== ===== 弛豫器件中心区 =====
 +
 +这部分为您显示如何创建和几何优化Fe|MgO|Fe隧道结的中心区域。实例[[http://docs.quantumwise.com/tutorials/device_relaxation/device_relaxation.html#device-relaxation|Advanced device relaxation]]给出更多关于整体器件优化(包括优化的电极和最佳中心区域长度)的细节说明。为了简洁,我们只执行器件中心区的受力最小化。
 +
 +==== 初始构型 ====
 +
 +首先,打开{{ :atk:builder.png?20|}}Builder。为了给Fe|MgO|Fe器件设置初始几何构型,您将使用**MTJ Builder**工具栏,它被特定地设计用以构建这类几何构型。这样找到它:Add ‣ From Plugin ‣ Magnetic Tunnel Junction (FeMgO-style)。
 +
 +**MTJ builder**可以构建多种不同磁性隧道结几何构型。对于当前的目的,将barrier中number of layers改为6,将number of left surface layers和number of right surface layers改为2,保持其他参数为默认值不变。点击Preview按钮查看几何构型,然后点击Build将其加入Stash。
 +
 +{{ :atk:mtj_1.png?500 |}}
 +
 +<WRAP center round info 60%>
 +**小提示!**
 +
 +将鼠标放到每个输入区上面来得到输入参数的说明。
 +</WRAP>
 +
 +通过点击插件工具栏上的{{:atk:bulkmode02.png?20|}} Bulk工具将器件几何构型转换为一个块体构型。这只是移除电极,为您留下块体中心区域。
 +
 +==== 几何优化 ====
 +
 +将器件中心区域送到{{:atk:script_generator.png?20|}} Script Generator并向脚本添加如下模块:
 +
 +  * {{:atk:calculator.png?20|}}New Calculator
 +  * {{:atk:initial_state.png?20|}}Initial State
 +  * {{:atk:optimization.png?20|}}OptimizeGeometry
 +  * {{:atk:analysis.png?20|}}Forces
 +
 +同时,改变默认输出文件名为''mgo_relax.nc''
 +
 +{{ :atk:mtj_2.png?500 |}}
 +
 +Calculator和InitialState设置应与在Parallel spin部分所使用的设置很相似:
 +
 +• **Calculator**:
 +  * 选择SGGA交换关联方法。
 +  * 增加电子温度到1200K。
 +  * 设置k点网格为7x7x2。这个选择给出一个在x和y方向合理的k点取样。在z方向,您想要构建一个器件构型,所以在边缘的铁原子必须是块材类似的。在z方向选择2个k点使铁边缘原子的描述更像块体。
 +  * 普通列表项目为铁元素选择SingleZetaPolarized 基组。
 +
 +• **Initial State**:
 +  * 选择User spin作为初始态的类型。
 +  * 设置氧原子和镁原子的相对自旋为0。
 +
 +接下来,打开{{:atk:optimization.png?20|}} Optimization模块来指定中心区域(电极扩展处的原子)的前四个和最后四个原子应在优化过程中保持固定。这很重要-如果这些原子中的任何一个移动了,中心胞边缘将不再是周期结构,而在之后的产生和附着器件电极时需要中心胞边缘是周期结构的。
 +点击Add Constraints来打开**Constraints Editor**。之后进行如下操作:
 +
 +  * 通过按住Ctrl键并在原子周围点住鼠标画矩形来选择下图所示的原子。然后点击Add tag from Selection来为这些原子分配标签为“Selection 0”。
 +  * 对右手边电极扩展的原子做同样的操作,但使得约束类型为“Fixed”。
 +
 +{{ :atk:mtj_5.png?300 |}}
 +
 +{{ :atk:mtj_6.png?300 |}}
 +
 +将脚本保存为 ''mgo_relax.py'' 并使用{{:atk:job_manager.png?20|}}Job Manager或者如下命令语句来运行:
 +
 +<code python>
 +atkpython mgo_relax.py > mgo_relax.log
 +</code>
 +
 +如果需要,您也可以在此下载脚本:[[http://docs.quantumwise.com/_downloads/mgo_relax.py|mgo_relax.py]]。这个计算在标准个人电脑上会耗时1-2个小时,但如果分布于4个并行MPI进程下会在20分钟内完成。
 +
 +=== 检查结果 ===
 +
 +在**LabFloor**上找到计算数据项。选择**Forces**项(//gID002//),点击**Text Representation**插件。您将看到所有原子最终受力的报告。
 +
 +{{ :atk:forces_relax.png?500 |}}
 +
 +注意所有x-y方向的力为了实用目的都为零。对于已经被优化的原子,它们的受力小于优化标准0.05 eV/Ang。对于电极延伸原子,受力略微大一些。而且,力矢量指向晶胞外,表明晶胞受压应力。增加更多表面层来增加晶胞z方向长度会降低应力,但在本例中对结果影响不大。
 +
 +您现在可以使用优化好的器件中心区域来进行器件输运性质的计算,参考Getting started部分。
 +
 +
 +
  
  
  
 ===== 参考文献 ===== ===== 参考文献 =====
 +[BZSM01] (1, 2) W. H. Butler, X.-G. Zhang, T. C. Schulthess, and J. M. MacLaren. Spin-dependent tunneling conductance of Fe|MgO|Fe sandwiches. Physical Review B, 63(5):054416, 2001.[[http://dx.doi.org/10.1103/PhysRevB.63.054416|doi:10.1103/PhysRevB.63.054416]].
 +
 +本文翻译:王吉章
 +
  
atk/磁性隧道结中的自旋输运.1481727270.txt.gz · 最后更改: 2016/12/14 22:54 由 nie.han

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