这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
atk:迁移率 [2018/04/23 17:17] – [哈密顿量微分] fermi | atk:迁移率 [2018/05/10 15:15] (当前版本) – [载流子迁移率] fermi | ||
---|---|---|---|
行 1: | 行 1: | ||
====== 载流子迁移率 ====== | ====== 载流子迁移率 ====== | ||
- | **关键词:迁移率,电声耦合(电子-声子相互作用),温度相关载流子输运性质,电导率(conductivity),畸变势(deformation potential)** | + | **关键词:迁移率,电声耦合(电子-声子相互作用),温度相关载流子输运性质,电导率(conductivity)** |
- | 在本教程中吗,我们将介绍如何计算石墨烯(graphene)中的声子限制的电子迁移率。结合电子态和玻尔兹曼输运方程,同时考虑声子模式与电子-声子相互作用,使用 DFT 方法计算电子迁移率。我们将使用 **QuantumATK** 新版中提供的分析模块 **ElectronPhononCoupling**,**DeformationPotential** 和 **Mobility** 功能来完成。 | + | 在本教程中,我们将介绍如何计算石墨烯(graphene)中的声子限制的电子迁移率。结合电子态和玻尔兹曼输运方程,同时考虑声子模式与电子-声子相互作用,使用 DFT 方法计算电子迁移率。我们将使用 **QuantumATK** 新版中提供的分析模块 **ElectronPhononCoupling** 和 **Mobility** 功能来完成。 |
计算迁移率 $\mu$ 的关键是计算电子的弛豫时间 $\tau$。弛豫时间有两种计算方法: | 计算迁移率 $\mu$ 的关键是计算电子的弛豫时间 $\tau$。弛豫时间有两种计算方法: | ||
- | - 全角度(k, | + | - 全角度(k, |
- | - 各向同性散射:这种方法仅考虑能量有关的 $\tau=\tau(E)$,假定 $\tau(E)$ 在动量空间中的变化是各向同性的。下面称为**E-相关方法**。 | + | - 各向同性散射:这种方法仅考虑能量有关的 $\tau=\tau(E)$,假定 $\tau(E)$ 在动量空间中的变化是各向同性的。下面称为 **E-相关方法**。 |
下面的计算表明,两种方法得到的结果相差无几,但是第二种方法比第一种方法计算速度大大提高。 | 下面的计算表明,两种方法得到的结果相差无几,但是第二种方法比第一种方法计算速度大大提高。 | ||
行 110: | 行 110: | ||
==== 哈密顿量微分 ==== | ==== 哈密顿量微分 ==== | ||
- | 为了计算电子-声子耦合,需要首先计算哈密顿量的一阶偏微分。哈密顿量对第 $i$ 个原子的笛卡尔坐标$\alpha$的一阶偏微分,$\frac{\partial \hat{H}}{\partial R_{i,\alpha}}$,可以使用 **HamiltonianDerivatives** 对象计算得到。 | + | 为了计算电子-声子耦合,需要首先计算哈密顿量的一阶偏微分。哈密顿量对第 $i$ 个原子的笛卡尔坐标$\alpha$的一阶偏微分,$\partial \hat{H}/ \partial R_{i, |
现在,按下面步骤操作: | 现在,按下面步骤操作: | ||
- | * 打开 LabFloor 中的 '' | + | * 打开 |
- | * 添加计算器 | + | * 在 New Calculator,设置 K 点网格:(3,3,1) |
- | * 设置 K 点网格:(1,1,1) | + | * 添加 Analysis -> HamiltonianDerivatives 模块,设置 nA=11,nB=11,nC=1. |
- | * 添加 Analysis -> HamiltonianDerivatives 模块,设置 nA=7,nB=7. | + | * 设置默认输出文件名Default output file: '' |
- | * 设置默认输出文件名Default output file: '' | + | |
- | 由于计算量较大(7X7X1=98原子),为提高计算速度,手动调整设置如下: | + | <WRAP center important 100%> |
- | * 在 Show defaults 中设置脚本细节 | + | **注意** |
- | 发送脚本到编辑器 Editor,找到 DiagonalizationSolver 行,设置 bands_above_fermi_level=100。 | + | 此处的超胞重复次数需要和计算动力学矩阵的一致。 |
- | <code python> | + | </WRAP> |
- | Density_matrix_method = DiagonalizationSolver( | + | |
- | bands_above_fermi_level=100, | + | |
- | processes_per_kpoint=1, | + | |
- | ) | + | |
- | </code> | + | |
- | 发送任务到任务管理器 Job manager,运行计算任务。 | + | 发送任务到任务管理器 Job manager,保存输入文件'' |
- | {{ : | + | |
- | <WRAP center | + | |
+ | <WRAP center info 100%> | ||
**注意** | **注意** | ||
- | 由于(7X7X1)超胞由 98 个原子重复构成石墨烯结构,哈密顿量的偏微分计算需要非常大的计算量。HamiltonianDerivatives 可以并行计算原子偏移。石墨烯原胞中有 2 个原子,每个原子在x,y,z方向上偏移,因此,共需要计算 6 次。 | ||
- | 为了使并行数大于 6 MPI 任务,需要设置 nprocesses_per_kpoint 参数为 4,这样可以有效使用 | + | 与动力学矩阵类似,哈密顿量导数计算相当耗时,但是可以将原子位移在多核上并行。此例子在24核上并行的计算时间大约1小时。 |
</ | </ | ||
- | 计算哈密顿量偏微分时,原子位置需要重复多次,但实际上只有中心原胞(见下图)的原子被移动。鉴于计算的是非常大的超胞,无需精细的k点网格,这也是设置 k 点为(1, | ||
- | {{ : | ||
==== (k, | ==== (k, | ||
+ | 要计算弛豫时间 $\tau(\mathbf{k}, | ||
+ | === 电声耦合 === | ||
- | ==== E-相关方法 ==== | + | 单击**Script Generator**,添加如下计算单元: |
+ | * Analysis from File,打开选择文件'' | ||
+ | * Analysis | ||
+ | 以下两个计算单元自动添加: | ||
+ | * Analysis -> DynamicMatrix | ||
+ | * Analysis -> HamiltonianDerivatives | ||
+ | 在本例里,由于动力学矩阵和哈密顿量微分都已经计算过了,因此可以将这两个计算删去,添加两个Analysis from File,直接使用已有的结果。 | ||
- | ===== 形变势计算 ===== | + | {{ : |
- | 现在,我们已得到计算电子-声子耦合性质的要素:1)动力学矩阵;2)哈密顿量微分。首先,我们将在倒空间沿特定方向拟合形变势。然后,在 q 网格中计算电子-声子耦合,及声学声子极限下的迁移率。 | + | 打开第二个Analysis from File,选择'' |
- | 首先,为得到声学模的形变势,我们考虑电子-声子耦合矩阵元随q的变化关系,$|M_{\mathbf{k},\mathbf{q}}^\lambda|$,操作如下: | + | {{ : |
- | * 打开 LabFloor 中的 graphene_relax.nc 文件,发送弛豫后的原子结构文件(gID001)到脚本生成器 Script generator。 | + | |
- | * 添加分析器Analysis -> DeformationPotential, | + | |
- | 当添加 DeformationPotential 模块,DynamicalMatrix 和 HamiltonianDerivatives 将被自动添加到脚本生成器中,得到如下: | + | 打开第三个Analysis from File,选择'' |
- | {{ : | + | |
- | 查看计算器 Calculator 中 k-point 取 (7, | + | {{ : |
- | 现在,打开 DeformationPotential,首先设置电子初态的 k-point,设置如下: | + | 最后在ElectronPhononCoupling里设置如下参数: |
- | * 初始设置k-point | + | * 在k-point |
- | * 设置 k-point = Other(Fractional) | + | * 在q-point sampling里,设置k |
- | * 设置 a = b = 0.33334 | + | * 选择Electron Band为3,4。 |
- | K点右侧价带(valence band, VB)和导带(conduction band, CB)简并。这表明,任何两个态的线性组合都是电子本征态。由于价带和导带有不同的对称性,他们耦合为不同的声子。波矢稍稍偏离 K 点时,我们假设为纯价带和纯导带。 | + | {{ : |
- | 下面,需要指定考虑的声子 q 点值。大多情况下,我们对决定形变势和迁移率的小$|q|$值感兴趣。我们可以通过由一个初始 q 点和方向矢量来确定一条线上的 q 点值。初始 q 点和方向矢量由分数坐标给出。我们可以选取布里渊区的一个路径。使用前面的参数: | + | <WRAP center info> |
- | * 保持 First point 为 $\Gamma$ 点 | + | k和q的采样范围选择为仅在布里渊区的相关区域。对于前者是在$K$-点([1.7063,0.0,0.0])附近,后者是在$\Gamma$-点([0.0,0.0,0.0])附近。 |
- | * 设置方向矢量:a, | + | </ |
- | * 设置每段的 q 点数:20 | + | |
- | * 设置电子能带:3,4 | + | |
- | + | ||
- | {{ : | + | |
- | 再增加一个 DeformationPotential 对象,其他参数一样,除 | + | |
- | * 方向矢量:a, | + | |
- | {{ : | + | |
- | * 设置默认输出文件名 Default output file: graphene.nc | + | |
- | + | ||
- | 由于我们已计算了动力学矩阵和哈密顿量微分,不必再重新计算,直接从文件读取数据即可。发送脚本到编辑器 Editor,并替换 Dynamical Matrix 和 Hamiltonian Derivatives 部分如下: | + | |
+ | 在**Script Generator**主面板里设置输出文件为'' | ||
<code python> | <code python> | ||
- | # ------------------------------------------------------------- | + | |
- | # Dynamical matrix | + | configuration=bulk_configuration, |
- | # ------------------------------------------------------------- | + | |
- | dynamical_matrix = nlread(' | + | hamiltonian_derivatives=hamiltonian_derivatives, |
- | + | kpoints_cartesian=kpoints, | |
- | # ------------------------------------------------------------- | + | qpoints_cartesian=qpoints, |
- | # Hamiltonian derivatives | + | electron_bands=[3, |
- | # ------------------------------------------------------------- | + | phonon_modes=All, |
- | hamiltonian_derivatives | + | |
+ | | ||
+ | | ||
+ | ) | ||
</ | </ | ||
- | 发送计算任务至任务管理器 Job manager 并运行计算任务。任务耗时几分钟完成。 | + | <WRAP center info> |
- | + | 对$k$- 和 $q$-空间进行高密度采样意味着计算非常耗时。合理设置// | |
- | ==== 形变势分析 ==== | + | 这样可以大大减少计算时间和对内存的需求。本例的计算在24核服务器上大约需要1.5小时。有关这两个参数的详细说明参见手册:[[https:// |
- | + | ||
- | 计算完成后使用 Deformation Potential Analyzer 分析器可视化 **LabFloor** 中的计算结果文件 graphene.nc。两张图分别显示了所选模式的声子能量随 $|q|$(上图)和电子-声子耦合矩阵元随 $|q|$(下图)的变化规律。图的下部显示有一些分析选项。可以选择如下: | + | |
- | * 初始和最终电子能带的指标 | + | |
- | * 声子模式 | + | |
- | * 耦合矩阵类型,unscaled 或 scaled | + | |
- | * 线性拟合区间 | + | |
- | + | ||
- | 在 //Fitting output// 下方显示线性拟合结果,零阶、一阶形变势,以及线性拟合的质量。 | + | |
- | {{ : | + | |
- | + | ||
- | 试着改变不同的电子能带、声子模式、拟合区间,看看有什么变化。对比各 DeformationPotential 对象,q 取沿 (0, 0, 0)→(0.1, 0.1, 0)方向。分析计算数据,得到如下结论: | + | |
- | * 平面外声子模式(0)与电子价带(3)、导带(4)均不耦合。 | + | |
- | * 在小 q 值处,声子模式 1 和 2(LA 和 TA)呈线性规律,表示一阶形变势模型的准确性。但是,拟合形变势值取决于特定的 q 方向。简化形变势近似中,假设球对称性,并由 q 决定,因此,应使用合适的平均形变势值。 | + | |
- | * 尽管应考虑更多的方向来得到精确的期望值,TA 和 LA 声子模式的一阶形变势值仍在 2-5eV 区间内。 | + | |
- | * LO 和 TO 光学模式(4, | + | |
- | + | ||
- | <WRAP center round info 100%> | + | |
- | **注意** | + | |
- | 有些情况下,可能会有“有趣”的声子能量或耦合矩阵跳跃。这通常是由于声子能带排序造成的。我们按照能量对声子模式进行排序。例如,LO 和 TO模式多次交叉,有时 LO 模式的指标是 4,有时该模式的指标是 5。这些跳跃和交叉可以通过绘制“所有”声子模式得到印证。 | + | |
</ | </ | ||
- | 为更精确研究形变势随角度的变化,尝试下面的步骤: | + | 将脚本发送到Job Manager,保存输入文件为'' |
- | * 退回到前面计算形变势的 python 脚本 | + | |
- | * 删除最后的 DeformationPotential 模块 | + | |
- | * 修改脚本中的 Deformation 部分的程序行,将下面的程序语句: | + | |
- | <code python> | + | === 迁移率 === |
- | # ------------------------------------------------------------- | + | |
- | # Deformation potential | + | |
- | # ------------------------------------------------------------- | + | |
- | q_0 = numpy.array([0, | + | |
- | q_direction | + | |
- | points_per_segment | + | |
- | q_path | + | |
- | </ | + | |
- | 替换为: | + | 在**LabFloor**里,选择'' |
- | <code python> | + | * Analysis->Mobility |
- | # ------------------------------------------------------------- | + | * **Method** 选择 //Full angular (k,q)-dependence// |
- | # Deformation potential | + | * 选择 **Fermi Shift** 为 0.13 eV |
- | # ------------------------------------------------------------- | + | * 不勾选 //Calculate Hall coefficient// |
- | # Load function to convert from cartesian to fractional coordinates. | + | |
- | from NL.CommonConcepts.Configurations.Utilities import cartesian2fractional | + | |
- | # Radius of circle, in units of Ang^-1. | + | {{ : |
- | q_norm = 0.01 | + | |
- | thetas = numpy.linspace(0, | + | |
- | # Setup list of cartesian q-points in a circle. | + | <WRAP center info> |
- | q_circle_cartesian = [[q_norm*numpy.cos(t), | + | Fermi shift 0.13 eV相当于载流子浓度$n=10^{12}\mathrm{cm}^{-2}$ |
- | + | ||
- | # Get the reciprocal lattice vectors. | + | |
- | reciprocal_vectors = bulk_configuration.bravaisLattice().reciprocalVectors() | + | |
- | + | ||
- | # Convert q-point to fractional. | + | |
- | q_path = cartesian2fractional(q_circle_cartesian, | + | |
- | </code> | + | |
- | + | ||
- | 首先设置笛卡尔坐标系下圆形的一系列 q 点,然后转化为 q 点的分数坐标。运行脚本,查看 DeformationPotential 对象,如下图所示为初始能带和最终能带均为 4,声子模指标为 2(LA 模)的情况。电子-声子耦合矩阵元显示出明显的震荡。平均值接近 | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | ==== 电子-声子耦合 ==== | + | |
- | DeformationPotential对象中包含了计算迁移率所需的一些信息,即电子-声子耦合项。但是,为计算弛豫时间和迁移率,我们需要知道初始 k 值构成的有限 q 网格下的耦合项。这是由 ATK 中 ElectronPhononCoupling 分析对象处理的。 | + | |
- | + | ||
- | 下面将使用两个 ElectronPhononCoupling 对象。首先,计算 k 空间中完整 q 网格下沿一条线上的耦合元,用来分析 ($q_x$, $q_y$) 点的耦合矩阵元,及特定能量和温度下的弛豫时间的计算。操作如下: | + | |
- | * 打开 LabFloor 中的 '' | + | |
- | * 添加分析器 Analysis -> ElectronPhononCoupling | + | |
- | + | ||
- | <WRAP center round info 100%> | + | |
- | === 注意 === | + | |
- | 与添加DeformationPotential对象一样,添加ElectronPhononCoupling对象时,DynamicalMatrix和HamiltonianDerivatives将被自动添加。 | + | |
</ | </ | ||
- | 我们要计算 Δ 连线(由原点至 K 点)上 k 点的电子-声子耦合。笛卡尔坐标系中,K 点坐标为(1.69044, 0, 0),可以由电子能带结构Bandstructure 对象中得到该信息,即在 LabFloor 中点击 Text Representation。现在,打开 ElectronPhononCoupling 对象,设置如下: | + | 在**Script Generator**主面板里,将 **Default output file** 设为'' |
- | | + | |
- | | + | |
- | | + | |
- | | + | |
- | {{ : | + | 计算一旦完成,在**LabFloor**里'' |
- | 运行计算前,发送脚本至编辑器 Editor,用下面的程序语句替换动力学矩阵和哈密顿量微分部分的语句: | + | < |
- | < | + | +------------------------------------------------------------------------------+ |
- | # ------------------------------------------------------------- | + | | Mobility Report |
- | # Dynamical matrix | + | | ---------------------------------------------------------------------------- | |
- | # ------------------------------------------------------------- | + | | Input parameters: |
- | dynamical_matrix | + | |
- | # ------------------------------------------------------------- | + | |
- | # Hamiltonian derivatives | + | | |
- | # ------------------------------------------------------------- | + | |
- | hamiltonian_derivatives | + | |
+ | +------------------------------------------------------------------------------+ | ||
+ | | Trace of linear responce tensors: | ||
+ | +------------------------------------------------------------------------------+ | ||
+ | | | | ||
+ | | Electrons: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | Holes: | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
</ | </ | ||
- | 运行计算前,注意: | + | 计算得到的电子迁移率为$2.56 \cdot 10^{5}\ \mathrm{cm^{2} V^{-1} s^{-1}}$,与过去文献中在载流子浓度为$n = 10^{12} \mathrm{cm^{-2}}$和室温时的结果一致。 |
- | <WRAP center round info 100%> | + | ==== E-相关方法 ==== |
- | === 注意 | + | |
- | 我们将计算非常多(q, | + | |
- | </ | + | |
- | 当计算结束后,使用Electron-Phonon Coupling Analyzer分析器可视化结果。显示如下图的窗口: | + | === 电声耦合 === |
- | {{ : | + | 下面我们用计算能量相关的弛豫时间的$\tau(E)$的方法来计算迁移率,为此我们需要重新计算电声耦合。我们假定弛豫时间在$\mathrm{k}$-空间是各向同性的。这意味着我们只需要从Dirac点(K点)向外计算一条线段上的电声耦合就足够了,很显然这样可以大大降低计算量。 |
- | 电子-声子耦合分析工具提供了丰富的信息,在工具窗口左侧你可以设置一些输入的参数用于作图: | + | 单击**Script Generator**,添加如下计算单元: |
- | | + | * Analysis from File |
- | | + | * Analysis |
- | | + | |
- | | + | |
- | * Coupling matrix,可设置为 “scaled”或“unscaled”, | + | |
- | * Energy broadening,此参数决定了绘图窗口中$\delta$-函数的展宽。$\delta$-函数在程序中用 Lorentzian 函数 $\delta(E)\approx \frac{1}{2\pi}\frac{\Gamma}{\Gamma^2 + E^2}$。能量展宽决定了 $\Gamma$ 的值。取较小的能量展宽,将会得到较窄的$\delta$-函数。q 网格优化的设置限制了能够取多小的值。 | + | |
- | * 最后,通过 Refinement 参数设置优化 q 点网格。因此,如果最初进行了 (20, 20, 1) q 网格的计算,通过设置 Refinement = 2 可以得到 (40, 40, 1) q 网格。所有与 q 有关的性质,在新的 q 网格中可以线性插值得到。增加 Refinement 可以使您选择更小的能量展宽值。 | + | |
- | <WRAP center round info 100%> | + | |
- | === 注意 === | + | |
- | 优化参数和能量展宽是计算迁移率的输入参数。 | + | |
- | </WRAP> | + | |
- | Electron-Phonon Coupling Analyzer 中作图的所有物理量均以 $q_x$ 和 $q_y$ 为自变量。上面一行画出声子能量(左图),吸收声子的终态电子能量 $E_{k+q}$(中图),产生声子的终态电子能量 $E_{k-q}$(中图)。下面一行画出电子-声子耦合矩阵元(左图),吸收(中图)和发射(右图)声子的能量守恒 $\delta$-函数。 | + | 与上一节一样从'' |
- | 尝试调整绘图参数查看作图。 | + | 在ElectronPhononCoupling单元,将参数作如下修改: |
+ | * 在 **k-points sampling** 里,设置**k grid** 为 // | ||
+ | * 在 **q-points sampling** 里,设置**q grid** 为 // | ||
+ | * Electron Band 设为// | ||
- | 在开始迁移率计算之前,我们需要查看 Electron-Phonon Coupling Analyzer 中的: | + | {{ : |
- | * q-区间选取是否足够大?$\delta$-函数图中的环应被完全覆盖,而不是仅显示部分环。否则将不能覆盖散射相关的q区间。需要注意的是,通过改变初态的k指标,我们可以改变$\delta$-函数图中环的大小和形状。这是因为石墨烯布里渊区狄拉克点(Dirac cones)相应的发生移动。 | + | |
- | * q 网格采样是否足够完备?鉴于计算迁移率时使用的温度(见下图),能量展宽通常应满足 $\Gamma < k_BT$。低温下,需要设置小的能量展宽和完备的 q 采样。无需重新计算电子-声子耦合,这个工作可以通过增加优化系数得到。 | + | |
- | ==== 弛豫时间倒数 ==== | + | 在**Script |
- | + | ||
- | 在计算实际迁移率之前,我们需要使用 Mobility 对象分析导带的弛豫时间 $\tau_{k, | + | |
- | | + | |
- | | + | |
- | + | ||
- | 打开 Mobility 对象,按照下图设置参数: | + | |
- | + | ||
- | {{ : | + | |
- | + | ||
- | 发送脚本到编辑器 | + | |
<code python> | <code python> | ||
- | bulk_configuration | + | |
- | electron_phonon_coupling | + | configuration=bulk_configuration, |
- | + | dynamical_matrix=dynamical_matrix, | |
- | # ------------------------------------------------------------- | + | hamiltonian_derivatives=hamiltonian_derivatives, |
- | # Mobility | + | kpoints_cartesian=kpoints, |
- | # ------------------------------------------------------------- | + | qpoints_cartesian=qpoints, |
- | mobility | + | electron_bands=[3,4], |
- | | + | phonon_modes=All, |
- | | + | |
- | | + | initial_state_energy_range=[-0.5,0.5]*eV, // |
- | | + | |
- | | + | |
- | | + | |
- | refinement=15, | + | |
- | ) | + | |
- | nlsave(' | + | |
</ | </ | ||
- | 计算大约耗时 10-20 分钟。如此长的计算时间,是由于为精确描述低温下的情况,需要密的优化网格。迁移率计算完成后,使用下面的脚本可视化弛豫时间倒数随能量的变化。 | + | 脚本发送至**Job Manager**,保存输入文件为'' |
+ | <WRAP center info> | ||
+ | 由于计算只对k空间的一个线段采样,计算比(k, | ||
+ | </ | ||
- | <code python> | ||
- | import pylab as pl | ||
- | mobility | + | === 迁移率 === |
- | # The phonon mode that should be considered. | + | 现在我们可以用两步计算来得到基于能量相关的弛豫时间$\tau(E)$的室温下的迁移率$\mu$。 |
- | mode = 1 | + | |
- | # Get the inverse life time in ns^-1 | + | * 第一步,计算从K-点向外、沿着线段的$\mathrm{k}$- 和$\mathrm{q}$-相关的弛豫时间$\tau(\mathrm{k}, |
- | gamma = mobility.inverseLifeTime().inUnitsOf(Second**-1)*1e-9 | + | |
- | # Get the Fermi shift | + | 单击**Script Generator**,添加以下计算单元: |
- | fermi_shift = mobility.fermiShift() | + | * Analysis from File |
+ | * Analysis -> Mobility | ||
- | # Get the eigenvalues at k. | + | 打开Analysis from File,选择文件'' |
- | e_k = mobility.eigenvaluesK().inUnitsOf(eV) | + | |
- | # Get Fermi level | + | 另外有三个计算单元自动添加: |
- | Ef = mobility._fermiLevel().inUnitsOf(eV) | + | * Analysis -> DynamicalMatrix |
+ | * Analysis -> HamiltonianDerivatives | ||
+ | * Analysis -> ElectronPhononCoupling | ||
- | # Spin index | + | 在此例中,这三个数据都已经计算过了,因此可以将其删除,选择从相应的文件读取。添加三个‘Analysis from File’,按如下排序: |
- | i_spin = 0 | + | |
- | # Bloch state index. The electron-phonon coupling was calculated for bands 3 and 4. We look at 4, which has index 1. | + | {{ : |
- | i_bloch = 1 | + | |
- | pl.figure(1) | + | 单击第二个‘Analysis from File’,选择'' |
- | pl.plot((e_k[i_spin, | + | |
- | pl.xlabel('$\epsilon/ | + | |
- | pl.ylabel(' | + | |
- | pl.legend(loc=0) | + | |
- | pl.xlim([0, 1.7]) | + | |
- | pl.show() | + | |
- | </ | + | |
- | {{ : | + | |
- | 图中弛豫时间倒数的下降(低散射率)对应费米能级处电子态满足 Bloch-Gruneisen 定理。二维系统中,低温下反向散射在相空间中被抑制,散射几率降低。这一效应的理论研究以前在其他二维电子气异质结[KS92]和类石墨烯材料[GMSB16], | + | 单击第三个‘Analysis from File’,选择'' |
- | ==== 迁移率 ==== | + | 单击第四个‘Analysis from File’,选择'' |
- | 为了计算迁移率,需要在石墨烯狄拉克点 $K$ 附近进行 k 点采样,因此,需要建立一个新的 ElectronPhononCoupling 对象。操作如下: | + | |
- | * 打开 LabFloor 中的 graphene_relax.nc | + | |
- | * 添加分析器 Analysis -> ElectronPhononCoupling | + | |
- | <WRAP center round info 100%> | + | 最后单击打开 Mobility,按如下图设置参数: |
- | === 注意 === | + | |
- | 与前面一样,添加ElectronPhononCoupling对象时,DynamicalMatrix和HamiltonianDerivatives对象将被自动添加进来。 | + | |
- | </ | + | |
- | 打开ElectronPhononCoupling对象,设置如下图的参数: | + | * Mobility |
+ | * Method 选择 Full angular(k, | ||
+ | * Fermi Shift 选择 0.13 eV | ||
+ | * 不勾选 Calculate Hall coefficients | ||
- | {{ :atk:electron_phonon_fine.png?300 |}} | + | {{ :atk:mobility_mobility_2a.png?direct& |
- | 运行计算前,将脚本发送至编辑器 Editor,用下面的语句替换 Dynamical Matrix 和 Hamiltonian Derivatives 段: | + | 在**Script Generator**主窗口中,将Default output file设为 '' |
- | <code python> | + | 计算结束后,就可以使用各向同性方法计算迁移率了。在本例中,我们使用前面计算得到的' |
- | # ------------------------------------------------------------- | + | |
- | # Dynamical matrix | + | |
- | # ------------------------------------------------------------- | + | |
- | dynamical_matrix = nlread('graphene.nc', | + | |
- | # ------------------------------------------------------------- | + | 单击打开**Script Generator**,添加: |
- | # Hamiltonian derivatives | + | * Analysis from File |
- | # ------------------------------------------------------------- | + | * 选择'' |
- | hamiltonian_derivatives | + | * Analysis |
- | </ | + | * Method 选择 //Isotropic scattering rate// |
+ | * Fermi Shift 设为 0.13 eV | ||
+ | * 不勾选 Calculate Hall effecients | ||
+ | * 设置Energy Range: | ||
+ | * E0=-0.24eV | ||
+ | * E1=0.24eV | ||
+ | * Points=100 | ||
+ | * k-point sampling设为 99x99x1 | ||
- | 8 MPI 进程并行计算大约需要 2 小时完成计算任务。 | + | {{ : |
- | <WRAP center round info 100%> | + | 在 **Script Generator** 主面板中将 **Default output file** 设为 '' |
- | === 注意 === | + | |
- | 正方形网格k和q点采样时,在比较大k空间区域考虑了非常多的k点,因此计算会非常耗时。取$20 \times 20$ k点和 $20 \times 20 $ q 点(即 $20^4=1.6 \times 10^5$ 个k或q点)时 8 核 MPI 并行运算大约耗时 2 小时。 | + | |
- | 增加 | + | 在 **Editor** 里,修改脚本,读入全(k,q)-相关的迁移率数据,并修改mobility的计算: |
- | 如果要计算能量窗口以外的迁移率,需要增加额外的 k 点,也耗费更多的计算时间。 | + | <code python> |
+ | # ------------------------------------------------------------- | ||
+ | # Analysis from File | ||
+ | # ------------------------------------------------------------- | ||
+ | path = u' | ||
+ | | ||
- | 此外,要计算低能量电子的迁移率,需要缩小k点的选取窗口,以便节省计算时间和确保足够高的网格密度。 | + | # 增加这一段 |
- | </ | + | # ------------------------------------------------------------- |
+ | # Mobility | ||
+ | # ------------------------------------------------------------- | ||
+ | | ||
- | 计算完成后,按照下面步骤操作: | + | # ------------------------------------------------------------- |
- | * 打开 LabFloor 中的 graphene_relax.nc 文件,发送弛豫后的原子结构文件(gID001)到脚本生成器 Script generator。 | + | # |
- | * 添加分析器 Analysis | + | # ------------------------------------------------------------- |
+ | | ||
+ | | ||
+ | | ||
+ | ) | ||
- | <WRAP center round info 100%> | + | |
- | === 注意 | + | |
- | 添加 Mobility 对象时,DynamicalMatrix,HamiltonianDerivatives 和 EelctronPhononCoupling 对象将被自动添加进来。 | + | |
- | </WRAP> | + | |
- | 打开 Mobility 对象,按照下图设置参数: | + | inverse_relaxation_time=numpy.linspace(0, |
- | {{ : | + | |
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | energy_broadening=0.003*eV, | ||
+ | | ||
+ | ) | ||
+ | | ||
+ | </code> | ||
+ | |||
+ | 将脚本发送至 **Job Manager**,保存 '' | ||
- | <WRAP center round info 100%> | + | <code> |
- | === 注意 === | + | +------------------------------------------------------------------------------+ |
- | 载流子浓度 $n \approx 10^{12} cm^{-2}$ 时费米移动 0.13eV。 | + | | Mobility Report |
- | </ | + | | ---------------------------------------------------------------------------- | |
- | + | | Input parameters: | |
- | 发送脚本至编辑器,删除上面的 Mobility 语句,并添加下面脚本中前两行(剩下的部分是迁移率对象,与脚本中一致)。 | + | | |
- | <code python> | + | | Fermi level shift = 0.13 eV | |
- | bulk_configuration | + | | |
- | electron_phonon_coupling | + | |
- | # ------------------------------------------------------------- | + | |
- | # Mobility | + | +------------------------------------------------------------------------------+ |
- | # ------------------------------------------------------------- | + | | Trace of linear responce tensors: |
- | mobility = Mobility( | + | +------------------------------------------------------------------------------+ |
- | | + | | | |
- | | + | | Electrons: |
- | | + | |
- | | + | |
- | | + | | |
- | | + | | |
- | | + | | |
- | ) | + | | |
- | nlsave(' | + | | | |
+ | | ||
+ | | Holes: | ||
+ | | ||
+ | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | | ||
+ | | ||
</ | </ | ||
- | 计算约耗时几秒钟。 | + | 计算得到的迁移率为 $2.58 \cdot 10^{5}\ \mathrm{cm^{2} V^{-1} s^{-1}}$,与(k, |
- | 计算完成后,打开 LabFloor 中的 '' | + | ==== 迁移率与温度的关系:(k, |
- | 为得到石墨烯形变势的值,可以由 DFT 方法计算迁移率随温度的变化,然后通过($\ref{7}$)式拟合得到。迁移率计算完成后,迁移率随温度变化关系的简单计算脚本如下: | + | |
- | <file python plot_mu_t.py> | + | |
- | # Load packages | + | |
- | from pylab import * | + | |
- | from scipy.optimize import curve_fit | + | |
- | # Read in the relaxed structure and the electron-phonon coupling | + | 对能量相关方法更严格的测试是计算迁移率在室温范围对温度的依赖关系。 |
- | bulk_configuration = nlread(' | + | |
- | electron_phonon_coupling = nlread(' | + | |
- | # Define parameters for graphene | + | |
- | fermi_velocity = 1e6*Meter*Second**(-1) | + | * 在能量相关方法里,计算的两步(线段上的k, |
- | sound_velocity = 14.1*1e3*Meter*Second**(-1) | + | |
- | mass_density = 7.6*1e-7*kiloGram*Meter**(-2) | + | |
- | fermi_shift = 130*meV | + | |
- | carrier_concentration = (130.0/ | + | |
- | # Analytical mobility as a function of temperature, | + | 从下图可以看出,在 $100 \mathrm{K} \leq T \leq 300 \mathrm{K}$ 范围里,两种方法计算的迁移率对温度的依赖关系都比较好的再现了$1/T$特性。 |
- | def f(temperature, | + | |
- | """ | + | |
- | temperature: | + | |
- | D : The deformation potential. No unit, but values in eV. | + | |
- | """ | + | |
- | mobility = 4*elementary_charge*hbar*mass_density*fermi_velocity**2*sound_velocity**2 / \ | + | |
- | (numpy.pi*carrier_concentration*boltzmann_constant*(temperature*Kelvin)*(D*eV)**2) | + | |
- | # Return mobility in units of cm^2/Vs | + | |
- | return mobility.inUnitsOf(Meter**2/(Volt*Second))*1e4 | + | |
- | # Loop over temperatures and calculate the mobility | + | {{ :atk: |
- | Ts = numpy.linspace(100.0, | + | |
- | mu_list = [] | + | |
- | for T in Ts: | + | |
- | temp=T*Kelvin | + | |
- | # ------------------------------------------------------------- | + | |
- | # Mobility | + | |
- | # ------------------------------------------------------------- | + | |
- | mobility = Mobility( | + | |
- | configuration=bulk_configuration, | + | |
- | electron_phonon_coupling=electron_phonon_coupling, | + | |
- | temperature=temp, | + | |
- | phonon_modes=[1], | + | |
- | fermi_shift=fermi_shift, | + | |
- | energy_broadening=0.003*eV, | + | |
- | refinement=1, | + | |
- | ) | + | |
- | mu_h, | + | |
- | mu_list.append(mu_e.inUnitsOf(Meter**2/ | + | |
- | # Plot the data | ||
- | plot(Ts, | ||
- | |||
- | # Fit the data | ||
- | D,tmp = curve_fit(f, | ||
- | |||
- | # Plot the fit | ||
- | plot(Ts, | ||
- | legend(loc=0) | ||
- | ylabel(' | ||
- | xlabel(' | ||
- | show() | ||
- | </ | ||
- | |||
- | <WRAP center round info 100%> | ||
- | === 注意 === | ||
- | 由于解析式中仅考虑了单个有效声子模式,因此此拟合中我们仅考虑了 TA 石墨烯模式的贡献。参数来自文献中的解析模型[KTJ12b]。 | ||
- | </ | ||
- | |||
- | {{ : | ||
- | |||
- | 拟合结果中明显可以看到迁移率与温度的反比 (~1/T) 的关系,与($\ref{7}$)式符合很好。计算得到的形变势 8.8eV 比已报道的结果略小[KTJ12b]。 | ||
===== 理论知识 ===== | ===== 理论知识 ===== | ||
行 631: | 行 520: | ||
* [KS92] T Kawamura and S Das Sarma. Phonon-scattering-limited electron mobilities in al x ga 1- x as/gaas heterojunctions. Physical review B, 45(7):3612, 1992. | * [KS92] T Kawamura and S Das Sarma. Phonon-scattering-limited electron mobilities in al x ga 1- x as/gaas heterojunctions. Physical review B, 45(7):3612, 1992. | ||
- | (本文翻译:朱元慧) | + |