两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版后一修订版两侧同时换到之后的修订记录 |
atk:硅p-n结中的非弹性电流 [2020/02/26 13:11] – [硅p-n结中的非弹性电流] xie.congwei | atk:硅p-n结中的非弹性电流 [2020/02/26 17:42] – [使用块体动力学矩阵和哈密顿量导数] xie.congwei |
---|
| |
版本:2017.2 | 版本:2017.2 |
| |
由电子-声子相互作用产生的非弹性散射效应在确定通过器件的载流子传输中起到了基本作用。在本教程中,你将研究在反向偏压情况下,这种效应对通过硅 $p$-$n$ 结中电流的影响。在这个系统中,载流子的传输主要是由 $p$ 区价带和 $n$ 区导带之间的带间隧穿控制。非弹性散射效应可大大增强该过程。 | 由电子-声子相互作用产生的非弹性散射效应在确定通过器件的载流子传输中起到了基本作用。在本教程中,你将研究在反向偏压情况下,这种效应对通过硅 $p$-$n$ 结中电流的影响。在这个系统中,载流子的传输主要是由 $p$ 区价带和 $n$ 区导带之间的带间隧穿控制。非弹性散射效应可大大增强该过程。 |
| |
===== 构建一个硅p-n结 ===== | ===== 构建一个硅p-n结 ===== |
| |
| 为构建器件,您可以按照 [[https://docs.quantumatk.com/tutorials/silicon_pn_junction/silicon_pn_junction.html#silicon-p-n|Silicon p-n junction]] 教程中//“构建器件”//部分的说明进行操作。但在本教程中,您将创建一个较短的器件以加快计算速度。在 {{:atk:builder.png?direct&25|}} **Builder**,按照以下变动创建器件: |
| |
===== 无电子-声子相互作用的透射计算 ===== | * 利用 **Surface (Cleave)** 插件创建一个 <100> 向结构时,将 **thickness** 从 52 层更改为 24 层; |
| * 使用 **Device from Bulk plugin** 插件时,设置 **electrode length** 为 5.4306 Å; |
| * 点击 Miscellaneous {{:atk:arrow.png?direct&5|}} Doping 的 **Doping** 插件设置 $p$ 区和 $n$ 区的掺杂。在本例中,选中器件的一半设置为 $p$ 掺杂区,按下 ''ctrl + i'' 反向选中剩余的一半器件设置为 $n$ 掺杂区,掺杂浓度为 $2 \cdot 10^{19} \mathrm{e/cm^{3}}$。 |
| |
| {{:atk:doping1-20200226.png?900|}} |
| |
| 您可以在此处下载生成的器件构型:[[https://docs.quantumatk.com/_downloads/Si_pn_junction.py|↓ Si_pn_junction.py]]。 |
| ===== 无电子-声子相互作用的透射计算 ===== |
| |
| 在本节,您将计算分析 $p$-$n$ 结在反向偏压 $V_\mathrm{bias} = -0.4\ \mathrm{V}$ 下的电子结构,以及使用 **ATK** 中 [[https://docs.quantumatk.com/manual/Types/TransmissionSpectrum/TransmissionSpectrum.html#transmissionspectrum-c|TransmissionSpectrum]] 模块里常规 Landauer 公式获得的没有电子-声子相互作用的相关传输光谱。 |
==== 设置计算 ==== | ==== 设置计算 ==== |
| |
| 点击 {{:atk:sendto.png?direct&20|}} 按钮,将结构从 {{:atk:builder.png?direct&25|}} **Builder** 发送到 {{:atk:script_generator.png?direct&25|}} **Script generator**。按照以下添加模块并设置参数: |
| |
| * {{:atk:calculator.png?direct&25|}} Calculators {{:atk:arrow.png?direct&5|}} SemiEmpiricalCalculator |
| * 在 **Main**: |
| * 设置 **Left electrode voltage** 为 $-0.2\ \mathrm{V}$ |
| * 设置 **Right electrode voltage** 为 $0.2\ \mathrm{V}$ |
| * 在 **Hamiltonian**: |
| * 不勾选 //“No SCF iteration”// 选项 |
| * 在 **Numerical Accuracy**,设置 **k-point Sampling** 为: |
| * $\mathrm{k_A} = 7$ |
| * $\mathrm{k_B} = 7$ |
| * $\mathrm{k_C} = 101$ |
| * 在 **Iteration control parameters** 设置 **Tolerance** 为 //“4e-05”// |
| |
| |
| * {{:atk:analysis.png?direct&25|}} Analysis {{:atk:arrow.png?direct&5|}} ProjectedLocalDensityOfStates |
| * 设置 **k-point Sampling** 为: |
| * $\mathrm{k_A} = 21$ |
| * $\mathrm{k_B} = 21$ |
| |
| * {{:atk:analysis.png?direct&25|}} Analysis {{:atk:arrow.png?direct&5|}} TransmissionSpectrum |
| * 设置 **k-point Sampling** 为: |
| * $\mathrm{k_A} = 21$ |
| * $\mathrm{k_B} = 21$ |
| |
| 最后,在 **Global IO** 选项,更改 **Default output file** 名称为 ''transmission_V-0.4.hdf5''。 |
| |
| 利用 {{:atk:sendto.png?direct&20|}} 按钮将脚本发送到 {{:atk:job_manager.png?direct&25|}} **Job manager**,保存为 ''transmission_V-0.4.py'',然后按下 {{:atk:start.png?direct&20|}} 运行计算。使用 4 个 CPU 只需要不到 2 分钟就能完成。您可以在此处下载完整的脚本:[[https://docs.quantumatk.com/_downloads/transmission_V-0.4.py|↓ transmission_V-0.4.py]]。 |
| |
| |
| ==== 结果分析 ==== |
| |
| 在 **LabFloor**,从文件 ''transmission_V-0.4.hdf5'' 中选择 {{:atk:labfloor_projectedlocaldensityofstates.png?60|}} **ProjectedLocalDensityOfStates** 数据块,点击 **Projected Local Density of States** 插件。在插件窗口,从左上角的下拉菜单选择 Spectral Current,设置 Data range 的最大值为 0.1。在屏幕左侧的面板中,使用 **Zoom** 按钮确保电流的最小值约为 $10^{-24} \mathrm{A/eV}$。低于此值的特性可能与数字噪声相关。 |
| |
| {{ :atk:pldos_spectralcurrent-20200226.png |}} |
| |
| 从上图的左侧面板可以看出,谱电流的最大值出现在偏压窗口内($-0.2\ \mathrm{eV} \leq \mathrm{Energy} \leq 0.2\ \mathrm{eV}$)。此外,从右侧面板显示的器件态密度可以看出,在偏压窗口内,器件的中心区域(20\ \mathrm{Å} \leq \mathrm{z} \leq 45\ \mathrm{Å})没有电子态。因此,左右电极之间的隧穿是唯一可能的传输机制。这表明反向偏压下器件的电子输运受隧穿控制。 |
| |
| 为分析在 $\mathbf{k}$ 空间隧穿的可能性。选择同一文件中 {{:atk:labfloor_transmissionspectrum.png?60|}} **Transmission Spectrum** 数据块,点击 **Transmission Analyzer** 插件。在插件窗口,设置 **Data range** 的最大值为 0.1。 |
| |
| {{ :atk:transmission_analyzer-20200226.png?600 |}} |
| |
| 从上图可以看出,费米能级处布里渊区的 $\Gamma$ 点是隧穿的隧道概率的最高峰值。 |
| |
| |
===== 电子-声子作用下的透射计算 ===== | ===== 电子-声子作用下的透射计算 ===== |
| |
| 在本节,您将采用 **XLOE** 近似 <color #00a2e8>[LCF+14]</color> 计算硅 $p$-$n$ 结在反向偏压 $V_\mathrm{bias} = -0.4\ \mathrm{V}$ 和电子-声子相互作用下的透射谱。 |
| |
| 为计算 [[https://docs.quantumatk.com/manual/Types/InelasticTransmissionSpectrum/InelasticTransmissionSpectrum.html#inelastictransmissionspectrum-c|InelasticTransmissionSpectrum]],您首先需要计算系统的 **DynamicalMatrix** 和 **HamiltonianDerivatives**。 |
==== 设置动力矩阵计算 ==== | ==== 设置动力矩阵计算 ==== |
| |
| 在 **LabFloor**,将文件 ''transmission_V-0.4.hdf5'' 中的 **DeviceConfiguration** 数据块拖拽到 {{:atk:script_generator.png?direct&25|}} **Script generator**。删除 **DeviceSemiEmpiricalCalculator** 并替换为 {{:atk:calculator.png?direct&25|}} **ForceFieldCalculator**。 |
| |
| * 在 **Parameter set** 菜单的可选经典势中选择//“StillingerWeber_Si_1985”//。 |
| |
| 按照以下添加模块并设置其参数: |
| |
| * {{:atk:studyobject.png?25|}} Study Objects {{:atk:arrow.png?direct&5|}} DynamicalMatrix |
| * 设置 **Repetitions** 为 //“Custom”// |
| * 设置 **number of repetitions** 为: |
| * $\mathrm{n_A} = 3$ |
| * $\mathrm{n_B} = 3$ |
| * $\mathrm{n_C} = 1$ |
| * 取消勾选 //“Acooustic sum rule”// 选项 |
| * 勾选 //“Constrain electrodes”// 选项 |
| * 取消勾选 //“Equivalent bulk”// 选项 |
| |
| * {{:atk:analysis.png?direct&25|}} Analysis {{:atk:arrow.png?direct&5|}} VibrationalMode |
| |
| 最后,在 **Global IO** 选项处,将 **Default output file** 的名称更改为 ''dynmat.hdf5''。 |
| |
| 点击 {{:atk:sendto.png?direct&20|}} 按钮将脚本发送到 {{:atk:job_manager.png?direct&25|}} **Job manager**,保存为 ''dynmat.py''。按下 {{:atk:start.png?direct&20|}} 按钮运行计算。您也可以在此处下载完整的脚本:[[https://docs.quantumatk.com/_downloads/dynmat.py|↓ dynmat.py]]。 |
| |
| <WRAP center important 100%> |
| === 注意 === |
| 或者,您也可以采用 [[https://docs.quantumatk.com/tutorials/inelastic_current_in_si_pn_junction/inelastic_current_in_si_pn_junction.html|special thermal displacement - Landauer method (STD-Landauer)]]将电声耦合效应包含在传输计算内,计算成本会降低很多。[[https://docs.quantumatk.com/casestudies/std_transport/std_transport.html#std-transport|The STD-Landauer case study]] 中探讨的系统与本教程讨论的相似。 |
| </WRAP> |
| |
| |
| |
| |
==== 设置哈密顿量导数计算 ==== | ==== 设置哈密顿量导数计算 ==== |
| |
| 在 **LabFloor**,将文件 ''transmission_V-0.4.hdf5'' 中的 **DeviceConfiguration** 数据块拖拽到 {{:atk:script_generator.png?direct&25|}} **Script generator**,按照以下修改 {{:atk:calculator.png?direct&25|}} **New Calculator** 模块: |
| |
| * 在 **Hamiltonian**,勾选 //“No SCF iteration”// 选项 |
| |
| 添加一个 {{:atk:studyobject.png?25|}} Study Objects {{:atk:arrow.png?direct&5|}} HamiltonianDerivatives 模块,参照以下设置参数: |
| |
| |
| * 设置 **Repetitions** 为 //“Custom”// |
| * 设置 **number of repetitions** 为 |
| * $\mathrm{n_A} = 3$ |
| * $\mathrm{n_B} = 3$ |
| * $\mathrm{n_C} = 1$ |
| * 在 **Constraints**,点击 **Add**,利用 //Fixed// 约束电极重读,因此受到约束的原子应该是://0,1,2,3,44,45,46,47//。 |
| * 取消勾选 //“Equivalent Bulk”// 选项。 |
| |
| 在 **Global IO** 的选项里,更改 **Default output file** 的名称为 ''dHdR_V-0.4.hdf5''。 |
| |
| 点击 {{:atk:sendto.png?direct&20|}} 按钮将脚本发送到 {{:atk:job_manager.png?direct&25|}} **Job manager**,保存为 ''dHdR_V-0.4.py'',按下 {{:atk:start.png?direct&20|}} 按钮运行计算。本次计算使用 8 个 CPU 将耗时 20 分钟。您可以在此处下载完整的脚本:[[https://docs.quantumatk.com/_downloads/dHdR_V-0.4.py|↓ dHdR_V-0.4.py]]。 |
| |
| |
| <WRAP center important 100%> |
| === 注意 === |
| 在此,为加快计算速度,对哈密顿量导数做了非自洽计算。 |
| </WRAP> |
| |
==== 计算非弹性透射谱 ==== | ==== 计算非弹性透射谱 ==== |
| |
| 为计算电流的非弹性部分,点击 {{:atk:script_generator.png?direct&25|}} **Script generator**,添加以下模块: |
| |
| * {{:atk:analysis_from_file.png?direct&25|}} Analysis from File |
| * {{:atk:analysis.png?direct&25|}} Analysis {{:atk:arrow.png?direct&5|}} InelasticTransmissionSpectrum |
| |
| 打开 {{:atk:analysis_from_file.png?direct&25|}} Analysis from File 模块,选择 ''transmission_V-0.4.hdf5'' 文件,加载文件中包含的 //DeviceConfiguration// 数据块。 |
| |
| 您将会注意到还添加了两个其他的模块: |
| |
| * {{:atk:studyobject.png?25|}} DynamicalMatrix |
| * {{:atk:studyobject.png?25|}} HamiltonianDerivaties |
| |
| 在我们的示例中,动力学矩阵和哈密顿量导数已经在之前计算出来了,可以重复使用。删除这两个模块,再添加两个 {{:atk:analysis_from_file.png?direct&25|}} Analysis from File 模块,按照下图排列: |
| |
| {{ :atk:script_generator_inelastictransmissionspectrum-20200226.png |}} |
| |
| 点击从上数第二个 {{:atk:analysis_from_file.png?direct&25|}} Analysis from File 模块。选择 ''dynmat.hdf5'' 文件,加载 //DynamicalMatrix// 数据块。取消勾选这个文件中包含的 //DeviceConfiguration// 数据块。该面板应如下图所示: |
| |
| {{ :atk:script_generator_dynamicalmatrix-20200226.png |}} |
| |
| |
| 然后,点击从上数第三个 {{:atk:analysis_from_file.png?direct&25|}} Analysis from File 模块。选择 ''dHdR_V-0.4.hdf5'' 文件,加载 //HamiltonianDerivatives// 数据块。该面板应如下图所示: |
| |
| |
| |
| {{ :atk:script_generator_hamiltonianderivatives-20200226.png |}} |
| |
| 最后,为 {{:atk:analysis.png?direct&25|}} Analysis {{:atk:arrow.png?direct&5|}} InelasticTransmissionSpectrum 模块设置如下参数: |
| |
| * 在 **Energy** 部分,设置: |
| * $\mathrm{E_0} = -0.5\ \mathrm{eV}$ |
| * $\mathrm{E_1} = 0.5\ \mathrm{eV}$ |
| * Points = 25 |
| |
| * 在 **k-point Sampling** 部分: |
| * 设置 **Grid type** 为 //“Regular k-point grid”// |
| * 设置 $\mathrm{k_A}$ 和 $\mathrm{k_B}$ 的网格范围为 $[-0.2 : 0.2]$ |
| * 设置 **Sampling** 为: |
| * $\mathrm{k_A} = 3$ |
| * $\mathrm{k_B} = 3$ |
| |
| * 在 **q-point Sampling** 部分: |
| * 设置 **Grid type** 为 //“Regular q-point grid”// |
| * 设置 $\mathrm{q_A}$ 和 $\mathrm{q_B}$ 的网格范围为 $[-0.5 : 0.5]$ |
| * 设置 **Sampling** 为: |
| * $\mathrm{q_A} = 9$ |
| * $\mathrm{q_B} = 9$ |
| |
| {{ :atk:inelastictransmissionsetup_phall-20200226.png |}} |
| |
| 在 **Global IO** 选项里,更改 **Default output file** 的名称为 ''xloe_V-0.4.hdf5''。 |
| |
| 点击 {{:atk:sendto.png?direct&20|}} 按钮将脚本发送到 {{:atk:job_manager.png?direct&25|}} **Job manager**,保存为 ''xloe_V-0.4.py'',按下 {{:atk:start.png?direct&20|}} 按钮运行计算。本次计算使用 24 个 CPU 将耗时一个半小时。您可以在此处下载完整的脚本:[[https://docs.quantumatk.com/_downloads/xloe_V-0.4.py|↓ xloe_V-0.4.py]]。 |
| |
| |
==== 分析非弹性透射谱 ==== | ==== 分析非弹性透射谱 ==== |
| |
| 利用 **Inelastic Transmission Spectrum Analyzer** 可以详细地分析非弹性透射谱的结果。 |
| |
| 在 **LabFloor**,选择文件 ''xloe_V-0.4.hdf5'' 的 {{:atk:labfloor_inelastictransmissionspectrum.png?25|}} **InelasticTransmissionSpectrum** 数据块,然后点击屏幕右侧插件面板中的 **Inelastic Transmission Spectrum Analyzer** 插件。 |
| |
| 首先,您将分析电流对 $\mathbf{k}$ 和 $\mathbf{q}$ 的依赖性。在分析器的主窗口,设置以下参数: |
| |
| * **Plot type**://“Current vs. k-points”// |
| * **Bias voltage**:$-0.4\ \mathrm{V}$ |
| |
| 您将获得的图与下图相似,展示了在取样的 k 点范围内电流对 $\mathbf{k}$ 依赖性。从图中可以明显看出,对电流的主要贡献来源于由 $k_\mathrm{A}$ 和 $k_\mathrm{B}$ 定义的二维布里渊区的 $\Gamma$ 点,也不可忽视有限 $\mathbf{k}$ 矢量的贡献。 |
| |
| |
| {{ :atk:current_vs_kpoints-20200226.png |}} |
| |
| |
| 接下来,把 **Plot type** 更改为 //“Current vs. q-points”//。您将获得与以下相似的图,展示了电流对 $\mathbf{q}$ 的依赖性。从图中可以明显看出,对电流的主要贡献来源于由 $q_\mathrm{A}$ 和 $q_\mathrm{B}$ 定义的二维布里渊区的 $\Gamma$ 点,也不可忽视有限 $\mathbf{q}$ 矢量的贡献。 |
| |
| |
| {{ :atk:current_vs_qpoints-20200226.png |}} |
| |
| |
| 上面的两个图都表明电流主要与发生在二维布里渊区 $\Gamma$ 点的传输右端,无论是 $\mathbf{k}$ 空间和 $\mathbf{q}$ 空间。为分析得出 $\Gamma$ 点的哪一种声子模贡献最大,按照下面设置分析器的主窗口: |
| |
| * **Plot type**://“Current vs. phonon mode”// |
| * **k-points**://“(0.00, 0.00)”// |
| * **q-points**://“(0.00, 0.00)”// |
| |
| {{ :atk:current_vs_phononmode-20200226.png |}} |
| |
| |
| |
| 从上图可以看出,对电流贡献最大的声子指数为 66,能量为 $\hbar \omega = 63.01\ \mathrm{meV}$。 |
| |
| 选择在 <color #00a2e8>“设置动力学矩阵计算”</color> 部分得到的文件 ''dynmat.hdf5'' 中的 **VibrationalMode** 数据块,使用 **Vibration Visualizer** 可以将声子模可视化。 |
| |
| {{ :atk:vibration_visualizer-20200226.png |}} |
| |
| {{ :atk:mode66-20200226.gif |}} |
| |
| <WRAP center important 100%> |
| === 注意 === |
| 在上面显示的图中,电流值是负的,因为模拟是在反向偏压条件下执行的。 |
| </WRAP> |
| |
| |
| |
| |
| |
==== 分别在有和无电子-声子作用下电流的计算 ==== | ==== 分别在有和无电子-声子作用下电流的计算 ==== |
| |
| 为计算无电子-声子作用下的电流,下载脚本 [[https://docs.quantumatk.com/_downloads/current1.py|↓ current.py]] 并利用以下命令在终端运行: |
| |
| ''atkpython current.py transmission_V-0.4.hdf5 xloe_V-0.4.hdf5'' |
| |
| <WRAP center important 100%> |
| === 注意 === |
| 在 Windows 系统,从终端运行脚本 ''current.py'' 并不方便。在此脚本中,您可以将 filename1 和 filename2 替换为 ''transmission_V-0.4.hdf5'' 和 ''xloe-V-0.4.hdf5''。将其拖到 {{:atk:job_manager.png?direct&25|}} **Job manager** 运行。 |
| </WRAP> |
| |
| 脚本将会计算电流的弹性($I_\mathrm{el}$)和非弹性($I_\mathrm{inel}$)成分。有和无电子-声子作用下的总电流将通过以下公式计算得出: |
| |
| $$I (\mathrm{w/o\ interactions}) = I_\mathrm{el}$$ |
| $$I (\mathrm{w\ interactions}) = I_\mathrm{el} + I_\mathrm{inel}$$ |
| |
| 计算的输出将显示用作输入的文件名称,以及计算出的电流值(黄色突出显示): |
| |
| {{ :atk:jt1-20200226.png?800 |}} |
| |
| <WRAP centerround important 100%> |
| === 注意 === |
| 因为不同的 k 点取样,上面计算的<color #00a2e8>电流</color>与 InelasticTransmissionSpectrum 分析之前的电流不同。同样的在本例中,电流的值为负,因为模拟是在反向偏压条件下执行的。 |
| </WRAP> |
| |
| 可以看出,电子-声子散射导致反向偏压电流增加了大约三个数量级! |
| |
| |
| |
| |
===== 加速计算 ===== | ===== 加速计算 ===== |
| |
| |
| **ATK** 实现了一些可用于大大加快计算速度并能够计算包含数千个原子器件非弹性透射的方法。这些方法是: |
| |
| * <color #00a2e8>“声子能量间隔”法</color> |
| * <color #00a2e8>使用体积动力学矩阵和哈密顿量导数</color>的可能性 |
| |
| 关于这些方法的详细说明,请参见 **ATK 手册**中 [[https://docs.quantumatk.com/manual/Types/InelasticTransmissionSpectrum/InelasticTransmissionSpectrum.html#inelastictransmissionspectrum-c|InelasticTransmissionSpectrum]] 模块的 //Large Device Calculations// 部分。 |
==== “声子能量间隔”法 ==== | ==== “声子能量间隔”法 ==== |
| |
| |
| 该方法允许我们将含有 $N$ 个振动原子器件的 $3N$ 个声子模分隔成 $M$ 个能量间隔以形成 $M$ 个新的有效声子模,其中 $M << 3N$。因此,将仅针对这 $M$ 个有效声子模计算非弹性透射谱,从而大大降低了计算成本。 |
| |
| 在 **LabFloor**,将文件 ''transmission_V-0.4.hdf5'' 中的 **DeviceConfiguration** 数据块拖拽到 {{:atk:script_generator.png?direct&25|}} Script generator。如 <color #00a2e8>“计算非弹性透射谱”</color> 章节中那样设置计算,但在此处 **Phonons** 部分的 **Phonon Method** 设为 //“Phonon energy intervals”//。 |
| |
| {{ :atk:inelastictransmissionsetup_phenergyintervals-20200226.png?750 |}} |
| |
| |
| <WRAP center important 100%> |
| === 注意 === |
| Phonon energy intervals 的默认参数对于当前的计算是可以的,但是一般人们应该要确保能量范围 $[E_\mathrm{0}:E_\mathrm{1}]$ 的跨越计算得到动力学矩阵声子模的范围。 |
| </WRAP> |
| |
| |
| 在 **Global IO** 选项,变更 Default output file 名称为 ''xloe_pheint_V-0.4.hdf5''。 |
| |
| 点击 {{:atk:sendto.png?direct&20|}} 按钮将脚本发送到 {{:atk:job_manager.png?direct&25|}} **Job manager**,保存为 ''xloe_pheint_V-0.4.py'',按下 {{:atk:start.png?direct&20|}} 按钮运行计算。本次计算使用 24 个 CPU 将耗时 20 分钟。您可以在此处下载完整的脚本:[[https://docs.quantumatk.com/_downloads/xloe_pheint_V-0.4.py|↓ xloe_pheint_V-0.4.py]]。 |
| |
| 计算完成后,输入以下命令运行脚本 [[https://docs.quantumatk.com/_downloads/current1.py|↓ current.py]]: |
| |
| ''atkpython current.py transmission_V-0.4.hdf5 xloe_pheint_V-0.4.hdf5'' |
| |
| 如果您是 Windows 用户,可参考 [[https://docs.quantumatk.com/tutorials/inelastic_current_in_si_pn_junction/inelastic_current_in_si_pn_junction.html#windows-users-script|how to run the script]]。 |
| |
| 结果输出如下: |
| |
| {{ :atk:jt2-20200226.png?800 |}} |
| |
| 您可以看到,尽管现在的计算要快得多,但电流的计算值与 <color #00a2e8>“分别在有和无电子-声子作用下电流的计算”</color> 结果基本相同。 |
| |
| |
| |
| |
| |
==== 使用块体动力学矩阵和哈密顿量导数 ==== | ==== 使用块体动力学矩阵和哈密顿量导数 ==== |
| |
| 加快计算速度的另一种方法是使用块体电极的动力学矩阵和哈密顿导数,而不是器件的。但是,除了掺杂、静电区和施加的偏置电压,这仅对于具有沿 $\mathrm{C}$ 方向平移不变的结构器件是可行的。 |
| |
| 可以从此处下载计算块状电极的动力学矩阵和哈密顿量导数所需的脚本:[[https://docs.quantumatk.com/_downloads/dynmat_bulk.py|↓ dynmat_bulk.py]],[[https://docs.quantumatk.com/_downloads/dHdR_bulk.py|↓ dHdR_bulk.py]]。使用 4 个 CPU 只需要不到 2 分钟就能完成这两个计算。 |
| |
| 为了使用块体动力学矩阵和哈密顿量导数计算电流的非弹性透射谱,请重复遵循 <color #00a2e8>“计算非弹性透射谱”</color> 章节中的步骤,并按照下面的描述更改: |
| |
| 首先,点击 {{:atk:script_generator.png?direct&25|}} **Script generator**,添加以下模块,按照如下修改参数: |
| |
| * {{:atk:analysis_from_file.png?direct&25|}} Analysis from File |
| * 从 ''tranmission_V-0.4.hdf5'' 文件下载 //DeviceConfiguration// 数据块 |
| |
| * {{:atk:analysis.png?direct&25|}} Analysis {{:atk:arrow.png?direct&5|}} InelasticTransmissionSpectrum |
| * 按照 <color #00a2e8>“计算非弹性透射谱”</color> 章节内容设置参数。 |
| |
| 删除 {{:atk:studyobject.png?25|}} DynamicalMatrix 和 {{:atk:studyobject.png?25|}} HamiltonianDerivatives 模块,在之前已经存在的 {{:atk:analysis_from_file.png?direct&25|}} Analysis from File 之后添加另外两个 {{:atk:analysis_from_file.png?direct&25|}} Analysis from File 模块,按照如下设置参数: |
| |
| * 点击从上数第二个 {{:atk:analysis.png?direct&25|}} Analysis from File 模块,选择 ''dynamic_bulk.hdf5'' 文件并下载其中的 //DynamicalMatrix// 数据块。 |
| |
| * 点击从上数第二个 {{:atk:analysis.png?direct&25|}} Analysis from File 模块,选择 ''dHdR_bulk.hdf5'' 文件并下载其中的 //HamiltonianDerivatives// 数据块。 |
| |
| 在 **Global IO** 选项,将 **Default output file** 名称设置为 ''xloe_V-0.4_bulk.py''。在本例中,按照以下修改 {{:atk:editor.png?direct&25|}} **Editor** 中的 **Inelastic Transmission Spectrum** 模块。 |
| |
| <code python> |
| 1 inelastic_transmission_spectrum = InelasticTransmissionSpectrum( |
| 2 configuration=device_configuration, |
| 3 bulk_dynamical_matrix=dynamical_matrix, |
| 4 bulk_hamiltonian_derivatives=hamiltonian_derivatives, |
| 5 energies=numpy.linspace(-0.5, 0.5, 25)*eV, |
| 6 kpoints=kpoints, |
| 7 qpoints=qpoints, |
| 8 self_energy_calculator=RecursionSelfEnergy(), |
| 9 energy_zero_parameter=AverageFermiLevel, |
| 10 infinitesimal=1e-06*eV, |
| 11 phonon_modes=All, |
| 12 method=XLOE, |
| 13 spectral_representation=True, |
| 14 electrode_extensions=[0, 0], |
| </code> |
| |
| 点击 {{:atk:sendto.png?direct&20|}} 按钮,将脚本发送到 {{:atk:job_manager.png?direct&25|}} **Job manager**,保存为 ''xloe_V-0.4_bulk.py'',按下 {{:atk:start.png?direct&20|}} 按钮运行计算。同样在本例中,使用 24 个 CPU时计算仅需 20 分钟。您也可以在此处下载完整的脚本:[[https://docs.quantumatk.com/_downloads/xloe_V-0.4_bulk.py|↓ xloe_V-0.4_bulk.py]]。 |
| |
| 计算完成后,输入以下命令运行脚本 [[https://docs.quantumatk.com/_downloads/current1.py|↓ current.py]] : |
| |
| ''atkpython current.py transmission_V-0.4.hdf5 xloe_V-0.4_bulk.hdf5'' |
| |
| 如果您使用的是 Windows 系统,请参考上文提到的注意事项。 |
| |
| 结果输出将是: |
| |
| {{ :atk:jt3-20200226.png?800 |}} |
| |
| |
| 尽管由于现实的原因存在一些差异,如没有考虑因施加偏压使哈密顿导数丢失了平移不变性,但我们可以看出,电流的计算值与利用器件构型的动力学矩阵和哈密顿导数计算的电流相似。 |
| |
| |
| |
| |