用户工具

站点工具


atk:quantumatk-se中的dftb模型

差别

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

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
atk:quantumatk-se中的dftb模型 [2019/05/26 22:53] – [下载参数] xie.congweiatk:quantumatk-se中的dftb模型 [2019/05/28 21:46] (当前版本) – [参考] xie.congwei
行 30: 行 30:
 登录 dftb.org 并下载您感兴趣的参数集。下载的文件将位于压缩的 tar 文件(''.tar.gz'')中。 登录 dftb.org 并下载您感兴趣的参数集。下载的文件将位于压缩的 tar 文件(''.tar.gz'')中。
 ==== 安装参数 ==== ==== 安装参数 ====
 +
 +**ATK** 为三个 DFTB 参数集中的每一个都设立了一个特殊的文件夹。例如,安装“mio”参数集势,请解压缩下载的 tar 文件并将 ''.skf'' 文件复制到安装 **ATK** 的目录下 ''share / tightbinding / dftb / mio /'' 。在 Linux 中,您可以使用以下命令:
 +
 +<code python>  
 +tar zxvf mio-1-1.tar.gz
 +cp mio-1-1/* [ATKPATH]/share/tightbinding/dftb/mio
 +</code>
 +
 +其中 ''[ATKPATH]'' 是安装 QuantumATK 的路径。同样地,应将“pbc”和“matsci”参数文件分别复制到 ''dftb / pbc'' 和 ''dftb / matsci'' 目录中。请注意,这些目录都是已经存在的,但是空的。
 +
 +<WRAP center alert 100%>
 +=== 警告 ===
 +如果您在笔记本电脑或工作站上使用 **QuantumATK** 设置计算,然后在集群上单独安装 **ATK** 运行计算,则必须分别在两个系统上都安装参数文件。
 +</WRAP>
 +
 +
  
 ===== 测试安装 ===== ===== 测试安装 =====
行 35: 行 51:
  
 ==== 能带结构计算 ==== ==== 能带结构计算 ====
 +
 +==== 能带结构计算 ====
 +
 +为了测试参数是否正确安装,您可以对石墨烯执行以下的能带结构计算。
 +
 +  * 启动 **QuantumATK** 并创建一个新项目,然后单击 **Open**。
 +  * 启动 {{:atk:builder.png?direct&25|}} **Builder**,然后单击 Add {{:atk:arrow.png?direct&5|}} From Database,找到石墨烯。
 +
 +
 +{{ :atk:dftb_atkse_graphene-20190526.png?450 |}}
 +
 +
 +  * 将结构添加到 **Stash** (双击或使用 {{:atk:plus.png?25|}} 按钮)。
 +  * 利用 {{:atk:sendto.png?direct&20|}} 按钮将结构发送到 {{:atk:script_generator.png?direct&25|}} **Script Generator**。
 +  * 在 **Script Generator**,添加以下模块:
 +           - {{:atk:calculator.png?direct&25|}} **New Calculator**
 +           - {{:atk:analysis.png?direct&25|}} **Bandstructure**
 +  * 修改输出文件名称为 ''graphene.nc''
 +
 +**Script Generator** 现在应该具有以下设置:
 +
 +{{ :atk:dftb_atkse_graphene_script-20190526.png?600 |}}
 +
 +
 +现在打开 {{:atk:calculator.png?direct&25|}} **New Calculator** 模块,并做如下更改:
 +
 +  * 选择 **ATK-SE: Slater-Koster** 计算器。
 +  * 更改 **k-point sampling** 为 (5, 5, 1)。
 +  * 转至 **Slater-Koster basis set**,检查已安装的基组是否在基组列表里。选择 “DFTB [mio]” 基组。
 +
 +<WRAP center important 100%>
 +=== 注意 ===
 +如果您没有在列表中看到“DFTB [mio]”基组,则是安装过程中出现了问题。检查在您的 **ATK** 安装目录中是否存在文件 ''atkpython / share / tightbinding / dftb / mio / C-C.skf''
 +</WRAP>
 +
 +为调用自洽的 DFTB 计算,取消勾选 **No SCF iteration** 的选项框。
 +
 +
 +{{ :atk:dftb_atkse_graphene_dftb-20190526.png?800 |}}
 +
 +
 +
 +<WRAP center todo 100%>
 +=== 关注 ===
 +默认的假设为紧束缚模型是非自洽的。对于自洽的模型,用户需要取消勾选 **No SCF iteration** 的选项框。大多数 DFTB 模型都是自洽的。
 +</WRAP>
 +
 +
 +  * 使用 **Send To** 按钮({{:atk:sendto.png?direct&20|}})将脚本传输到 {{:atk:job_manager.png?direct&25|}} **Job Manager**,然后启动计算。
 +  * 作业完成后,在 **QuantumATK** 主窗口的项目文件下找到文件 ''graphene.nc'',使用右侧工具栏中的 //Bandstructure Analyzer// 绘制能带结构。您应该能够得到如下所示的结果:
 +
 +{{ :atk:dftb_atkse_graphene_band-20190526.png?550 |}}
 +
 +<WRAP center important 100%>
 +=== 注意 ===
 +如果测试进展顺利,则已正确安装了 DFTB 参数。然后,您可以在 QuantumWise 网站上提供的一些其他 ATK 教程(包括量子传输计算)中采用 DFTB 参数代替 DFT 以节省计算时间。
 +
 +显然,这仅适用于 DFTB 基组所涵盖的元素。
 +</WRAP>
 +
 +
 +
 +
 +
  
  
行 41: 行 121:
  
 ==== 计算石墨烯带的自旋极化 ==== ==== 计算石墨烯带的自旋极化 ====
 +
 +接下来,您将设置石墨烯纳米带,并使用 DFTB [mio] 模型执行自旋极化计算。
 +
 +  * 打开 {{:atk:builder.png?direct&25|}} Builder,然后点击 Add {{:atk:arrow.png?direct&5|}} From Plugin {{:atk:arrow.png?direct&5|}} Nanoribbon。
 +  * 构建一个具有 8 个原子宽的锯齿形带。
 +
 +{{ :atk:dftb_atkse_graphene_ribbon_builder-20190528.png?650 |}}
 +
 +使用 builder 窗口右下角的 {{:atk:sendto.png?direct&20|}} 按钮将结构发送到 {{:atk:script_generator.png?direct&25|}} **Script Generator**,设置能带结构的计算。
 +
 +在 **Script Generator**,添加以下模块:
 +
 +  * {{:atk:calculator.png?direct&25|}} **New Calculator**
 +  * {{:atk:initial_state.png?25|}} **Initial State**
 +  * {{:atk:analysis.png?direct&25|}} **Bandstructure**
 +
 +更改输出文件名称为 ''ribbon.nc''
 +
 +**Script Generator** 现在应该具有如下设置:
 +
 +{{ :atk:dftb_stkse_script_generator_tool-20190528.png?650 |}}
 +
 +打开 {{:atk:calculator.png?direct&25|}} **New Calculator** 模块。
 +
 +  * 选择 **ATK-SE: Slater-Koster** 计算器。
 +  * 更改 **k-point sampling** 为 (1,1,11)。
 +  * 转至 **Slater-Koster basis set**,选择 “DFTB [mio]” 基组。
 +  * 为执行自旋极化 DFTB 计算,勾选 **Use polarized spin** 的选框。
 +
 +<WRAP center important 100%>
 +=== 注意 ===
 +DFTB 参数集不包括自旋极化参数。代替地,我们将从 ATK_W 数据库获得自旋极化参数。
 +</WRAP>
 +
 +点击 **OK**,完成设置。
 +
 +下一步,
 +  * 双击打开 {{:atk:initial_state.png?25|}} **Initial State** 模块。
 +  * 设置 **Initial state type** 为 //User spin//。
 +  * 在 Spin 下,设置 Carbon 和 Hydrogen 的默认旋转为 0。
 +  * **在 3D 视图:**
 +        * 单击上方的碳原子(原子列表中的索引为 0),将它的 **initial relative spin** 设置为 1.0。
 +        * 对位于较低位置的碳原子(列表中的编号为 1)重复以上步骤,将其 **initial relative spins** 设置为 -1.0。(不要被碳原子并不是按 Y 坐标排序的事实所混淆)。
 +        * 保持氢原子和其他碳原子的 **initial relative spins** 值为 0.0。
 +
 +对话框现在看起来应如下所示。
 +
 +{{ :atk:dftb_atkse_spin_dialog-20190528.png?500 |}}
 +
 +
 +最后,打开 {{:atk:analysis.png?direct&25|}} **Bandstructure** 模块:
 +
 +  * 将 **Points pr. Segment** 设置为 200。这意味着每条能带将以 200 个点的分辨率计算。
 +  * 另外请注意默认建议的布里渊区(以倒易晶格矢量为单位,从 $\Gamma$ 点 G=(0,0,0) 到 Z=(0,0,1/2) )是很合适的。
 +
 +{{ :atk:dftb_atkse_bandstructure_dialog-20190528.png?400 |}}
 +
 +  * 发送脚本到 {{:atk:job_manager.png?direct&25|}} **Job Manager** 并运行。
 +  * 返回至主 **QuantumATK** 窗口,选中文件 ''ribbon.nc'',绘制能带结构图。
 +  * 利用放大功能,您应该可以得到如下所示的图:
 +
 +{{ :atk:dftb_atkse_ribbon_bandstructure-20190528.png?500 |}}
 +
 +
 +
  
  
 ==== 使用脚本计算一系列构型的性质 ==== ==== 使用脚本计算一系列构型的性质 ====
 +
 +如果您想要计算多个纳米带的能带结构,使用 Python 脚本将会非常方便。下面的脚本用于执行手性指数为(n,n)的纳米带能带结构计算,其中n是从 1 到 10。
 +
 +<WRAP center important 100%>
 +=== 注意 ===
 +**ATK** 中纳米带的//手性指数//符号基于用于形成单胞的平面石墨烯单位矢量的线性组合。因此,(n,n)具有锯齿形边缘,并且实际上对应于具有相同手性指数的展开的扶手椅形纳米管。
 +
 +对于扶手椅形边缘纳米带,手性指数为(n,0)。
 +</WRAP>
 +
 +<code python>  
 +# Setup the DFTB Calculator
 +basis_set = DFTBDirectory("dftb/mio/")
 +pair_potentials = DFTBDirectory("dftb/mio/")
 +
 +numerical_accuracy_parameters = NumericalAccuracyParameters(
 +    k_point_sampling=(1, 1, 51),
 +    )
 +
 +iteration_control_parameters = IterationControlParameters()
 +
 +calculator = SlaterKosterCalculator(
 +    basis_set=basis_set,
 +    pair_potentials=pair_potentials,
 +    numerical_accuracy_parameters=numerical_accuracy_parameters,
 +    iteration_control_parameters=iteration_control_parameters,
 +    spin_polarization=True,
 +    )
 +
 +#loop over different NanoRibbons
 +for n in range(1,10):
 +    #generate the nanoribbon
 +    bulk_configuration = NanoRibbon(n,n)
 +
 +    #Determine the initial spin of the configuration
 +    elements = bulk_configuration.elements()
 +    coords = bulk_configuration.fractionalCoordinates()
 +    scaled_spins = numpy.zeros(len(elements))
 +
 +    #find the index of the two edge Carbon atoms,
 +    ymin = 0.5
 +    ymax = 0.5
 +    imin=0
 +    imax=0
 +    for i in range(len(elements)):
 +        if coords[i][1] < ymin and elements[i] == Carbon:
 +            ymin = coords[i][1]
 +            imin = i
 +        if coords[i][1] > ymax and elements[i] == Carbon:
 +            ymax = coords[i][1]
 +            imax = i
 +
 +    # set opposite spins on the edge Carbon atoms
 +    scaled_spins[imin] = 1
 +    scaled_spins[imax] = -1
 +
 +    #attach calculator, and set the initial spin
 +    bulk_configuration.setCalculator(
 +        calculator(),
 +        initial_spin=InitialSpin(scaled_spins=scaled_spins),
 +        )
 +    bulk_configuration.update()
 +
 +    # Calculate Bandstructure
 +    bandstructure = Bandstructure(
 +        configuration=bulk_configuration,
 +        route=['G', 'Z'],
 +        points_per_segment=200,
 +        bands_above_fermi_level=All
 +    )
 +    nlsave('bandgap.nc',bandstructure)
 +</code>
 +
 +
 +下载脚本到项目文件夹([[https://docs.quantumwise.com/_downloads/bandgap.py|↓ bandgap.py]]),在 **QuantumATK** 窗口通过拖放将其发送到 {{:atk:job_manager.png?direct&25|}} **Job Manager**。
 +生成文件 ''bandgap.nc''
 +为分析数据,下载([[https://docs.quantumwise.com/_downloads/analyze_bandgap.py|↓ analyze_bandgap.py]]),将以下脚本发送到 **Job Manager**。
 +
 +<code python>  
 +w_list = []
 +gap0_list = []
 +gap1_list = []
 +# read a list with the bandstructure data
 +bandstructure = nlread('bandgap.hdf5', Bandstructure)
 +
 +for i in range(len(bandstructure)):
 +    # get all the bandlines
 +    energies = bandstructure[i].evaluate().inUnitsOf(eV)
 +    #calculate the number of occupied bands
 +    occupied_bands = numpy.sum(numpy.array(energies[0]) < 0)
 +    #calculate the minimum direct band gap
 +    gap0 = numpy.min(energies[:,occupied_bands]- energies[:,occupied_bands-1])
 +    #calculate the band gap at the zone boundary
 +    gap1 = energies[-1,occupied_bands]- energies[-1,occupied_bands-1]
 +    #determine the coordinates in the y direction
 +    y_values = NanoRibbon(i+1,i+1).cartesianCoordinates().inUnitsOf(Ang)[:,1]
 +    # calculate the width, as distance between furthest carbon atoms
 +    # i.e. calculate the  H-H distance and subtracting the C-H distance
 +    w = numpy.max(y_values)-numpy.min(y_values)-2.2
 +    #append calculated values to the list
 +    w_list.append(w)
 +    gap0_list.append(gap0)
 +    gap1_list.append(gap1)
 +
 +#print the data
 +import pylab
 +pylab.figure()
 +pylab.plot(w_list,gap0_list, 'k-o')
 +pylab.plot(w_list,gap1_list, 'k-o', markerfacecolor='white')
 +pylab.xlabel(r"$w_z$ ($\AA$)", size=16)
 +pylab.ylabel("$\Delta_z$ (eV)", size=16)
 +pylab.show()
 +</code>
 +
 +
 +{{ :atk:dftb_atkse_analyze_bandgap-20190528.png?600 |}}
 +
 +图25 直接带隙(实心圆)和区域边界处的带隙作为纳米带宽度的函数。
 +
 +<WRAP center important 100%>
 +=== 关注 ===
 +除了最小的能带外,该图显示了与参考文献<sup>[3]</sup>中图 4c 相同的定性行为。与 DFT-LDA 计算相比,结果的差异与 DFTB 方法的准确性有关。为了测试,您可以修改脚本,更改计算器的定义:
 +
 +<code python>  
 +calculator = LCAOCalculator(
 +    numerical_accuracy_parameters=numerical_accuracy_parameters,
 +    exchange_correlation = LSDA.PZ
 +    )
 +</code>
 +
 +请记住还要修改输出文件的名称,以便将新数据与旧数据区分开。然后执行脚本。
 +</WRAP>
 +
 +
  
  
 ===== 参考 ===== ===== 参考 =====
  
 +  * [1] Elstner, D. Porezag, G. Jungnickel, J. Elsner, M. Haug, T. Frauenheim, S. Suhai, and G. Seifert, Phys. Rev. B 58, 07260 (1998)
 +  * [2] Kohler, T. Frauenheim, B. Hourahine, G. Seifert, and M. Sternberg, J. Phys. Chem. A 111, 5622 (2007)
 +  * [3] Y.W. Son, M.L. Cohen, and S.G. Louie, Phys. Rev. Lett. 97, 216803 (2006)
 +  * 英文原文:https://docs.quantumwise.com/tutorials/dftb_atkse/dftb_atkse.html#spin-polarized-calculations-with-dftb
  
  
atk/quantumatk-se中的dftb模型.1558882439.txt.gz · 最后更改: 2019/05/26 22:53 由 xie.congwei

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