一款拥有自主知识产权的基于第一性原理的输运软件

描述

 

Nanodcal是一款基于非平衡态格林函数-密度泛函理论(NEGF - DFT)的第一性原理计算软件,主要用于模拟器件材料中的非线性、非平衡的量子输运过程,是目前国内唯一一款拥有自主知识产权的基于第一性原理的输运软件。可预测材料的电流 - 电压特性、电子透射几率等众多输运性质。

迄今为止,Nanodcal 已成功应用于1维、2维、3维材料物性、分子电子器件、自旋电子器件、光电流器件、半导体电子器件设计等重要研究课题中,并将逐步推广到更广阔的电子输运性质研究的领域。

本期将给大家介绍Nanodcal自旋器件1.1的内容。

 

1. 自旋器件

1.1. 自旋极化原子链的透射谱

碳不具有天然磁性,但当链中的原子间距足够大且不过大时,电子基态实际上是自旋极化的。该系统当然是高度人为的,而且这种选择也只是出于说明方法的目的。本教程的模型结构如下:

模型

1.1.1. Device Studio建立一维碳链模型

(1)双击图标 DeviceStudio 快捷方式”打开软件;

(2)选择 Create a new Project → OK → 文件名:C atomic chain ,保存类型:ProjectFiles(*.hpf) →保存即可;

(3)点击 Build→Crystal ,构建晶格并添加C原子,其中 a=b=12 Å . c=2.9 Å , α=β=γ=90° ,C原子位于晶格中心,点击 Preview → Build ,如图:

模型

构建单个C原子晶胞图形界面

Tip: 沿A和B方向采用周期性边界条件,因此我们使用较大的a = 12Å晶胞矢量来最大程度地减少沿着A和B的链重复图像之间的静电相互作用。

(4)点击 Build → Redefine Crystal ,在c方向上扩胞 18 倍, Preview → Build ;

模型

扩胞的图形界面

(5)点击按钮 Convert to Device ,设置左右电极的长度为 -7 和 7 ,点击 Preview → Build ,得到 1D碳原子链器件模型 ,如图:

模型

晶体转换为器件的图形界面

(6)点击 Simulator → Nanodcal → SCF Calculation → Generate file ,设置参数并生成自洽计算所需的输入文件。

1.1.2. 计算自旋平行透射谱

现在,利用Nanodcal对自旋平行态下的器件进行 NEGF-DFT 计算,并为该自旋构型计算电子透射谱。本节将以碳-碳-碳(C-C-C)体系为例, 讲 Two-probe 体系电子自洽计算,分为以下三个步骤:(1)电极的自洽计算;(2)中心区的自洽计;(3)电子透射谱的计算。

Notes: 碳-碳-碳体系采用完全相同的左、右电极,故只需对其中一个电极进行自洽计算。

1.1.2.1. 电极自洽计算

(1) 准备输入文件 结构文件、参数文件: scf.input ;基组文件: C_LDA_DZP¬.nad

%%What quantities should be calculatedcalculation.name = scf%Basic settingcalculation.occupationFunction.temperature = 100calculation.realspacegrids.E_cutoff = 80 Hartreecalculation.xcFunctional.Type = LDA_PZ81calculation.k_spacegrids.number = [ 1 1 100 ]'system.centralCellVectors = [[12 0 0]' [0 12 0]' [0 0 7]']system.spinType = CollinearSpin%Iteration controlcalculation.SCF.monitoredVariableName={'rhoMatrix','hMatrix','totalEnergy','bandEnergy','gridCharge','orbitalCharge','spinPolar'}calculation.SCF.convergenceCriteria = {1e-04,1e-04,[],[],[],[],[]}calculation.SCF.maximumSteps = 200calculation.SCF.mixMethod = Pulaycalculation.SCF.mixRate = 0.1calculation.SCF.mixingMode = Hcalculation.SCF.startingMode = H%calculation.SCF.donatorObject = NanodcalObject.mat%Basic setsystem.neutralAtomDataDirectory = '../'system.atomBlock = 3AtomType OrbitalType X Y Z SpinPolarizationC       LDA-DZP 6.00000000      6.00000000      7.25000000      0.5C       LDA-DZP 6.00000000      6.00000000      4.35000000      0.5C       LDA-DZP 6.00000000      6.00000000      1.45000000      0.5end

(2)自洽计算 在Device Studio的 Project 窗口中,右击 scf.input , Run → Run 即开始自洽计算

1.1.2.2. 中心区自洽计算

(1)准备输入文件:结构文件、参数文件 scf.input ;基组文件 C_LDA_DZP¬.nad

%%What quantities should be calculatedcalculation.name = scf%Basic settingcalculation.occupationFunction.temperature = 100calculation.realspacegrids.E_cutoff = 80 Hartreecalculation.xcFunctional.Type = LDA_PZ81calculation.k_spacegrids.number = [ 1 1 1 ]'%Description of electrodesystem.numberOfLeads = 2system.typeOfLead1 = leftsystem.voltageOfLead1 = 0system.objectOfLead1 = ../LeftElectrode/NanodcalObject.matsystem.spinDirectionOfLead1 = [0 0 1]system.typeOfLead2 = rightsystem.voltageOfLead2 = 0system.spinDirectionOfLead2 = [0 0 1]system.objectOfLead2 = ../RightElectrode/NanodcalObject.mat%Contour integral%calculation.complexEcontour.lowestEnergyPoint = 1.5 Hartreecalculation.complexEcontour.numberOfPoints = 40calculation.realEcontour.interval = 0.0272114calculation.realEcontour.eta = 0.0272114system.centralCellVectors = [[12 0 0]' [0 12 0]' [0 0 34.8]']system.spinType = CollinearSpin%Iteration controlcalculation.SCF.monitoredVariableName={'rhoMatrix','hMatrix','totalEnergy','bandEnergy','gridCharge','orbitalCharge','spinPolar'}calculation.SCF.convergenceCriteria = {1e-04,1e-04,[],[],[],[],[]}calculation.SCF.maximumSteps = 200calculation.SCF.mixMethod = Pulaycalculation.SCF.mixRate = 0.05calculation.SCF.mixingMode = Hcalculation.SCF.startingMode = H%calculation.SCF.donatorObject = NanodcalObject.mat%Basic setsystem.neutralAtomDataDirectory = '../'system.atomBlock = 12AtomType OrbitalType X Y Z SpinPolarizationC       LDA-DZP 6.00000000      6.00000000      33.35000000     0.5C       LDA-DZP 6.00000000      6.00000000      24.65000000     0.5C       LDA-DZP 6.00000000      6.00000000      15.95000000     0.5C       LDA-DZP 6.00000000      6.00000000      7.25000000      0.5C       LDA-DZP 6.00000000      6.00000000      30.45000000     0.5C       LDA-DZP 6.00000000      6.00000000      21.75000000     0.5C       LDA-DZP 6.00000000      6.00000000      13.05000000     0.5C       LDA-DZP 6.00000000      6.00000000      4.35000000      0.5C       LDA-DZP 6.00000000      6.00000000      27.55000000     0.5C       LDA-DZP 6.00000000      6.00000000      185000000       0.5C       LDA-DZP 6.00000000      6.00000000      10.15000000     0.5C       LDA-DZP 6.00000000      6.00000000      1.45000000      0.5end

(2)自洽计算

在Device Studio的 Project 窗口中,右击 scf.input , Run → Run 即开始自洽计算会产生以下输出文件: log.txt 、 NanodcalObject.mat 、 TotalEnergy.mat 、 Temporarydata

自洽收敛后,我们就可以计算体系的各种物理性质。

小贴士:做电极自洽时,周期方向K点取多(10左右),输运方向K点取较多,真空方向K点取1;做中心区自洽时,周期方向K点取多(10左右),输运和真空方向K点取1;做Transmission计算时,周期方向K点取很多(100以上),输运和真空方向K点取1。

备注一:关于电极自洽输运方向取多

(1)当电极是一维体系时,此处K点建议取到100;

(2)当电极是二维和三维材料时,此处K点可取10左右。

初学者可以根据 Nanodcal 自动默认的 k-spacegrids.number 值来进行设置。做法是先将自洽计算输入文件中 calculation.k_spacegrids.number 一行注释掉, 再进行自洽计算。计算结束后,读取 Nanodcal 自动给出的 k-space grid numbers 即可。

1.1.2.3. 电子透射谱计算
  • (1)在中心区自洽计算的基础上,准备输入文件 Transmission.input 操作如下:

  • 点击 Simulator → Nanodcal → Analysis → Transmission →->→ Generate files

system.object = NanodcalObject.mat
calculation.name = transmission
calculation.transmission.kSpaceGridNumber = [ 1 1 1 ]'
calculation.transmission.energyPoints = -66     表示能量点的选取范围是:-2到2 eV,间隔为 0.01 eV。
calculation.transmission.plot = true
calculation.control.xml = true

(2)在Device Studio的 Project 窗口中,右击 Transmission.input , Run → Run 即开始透射谱计算;

计算结束后,会产生以下输出文件: Transmission.mat 、 Transmission.xml 、 Transmission.fig 、 CalculatedResults.mat和log.txt 。

(3)输出文件 Transmission.xml 在Device Studio中可视化分析,如图:

模型

自旋平行态下的透射谱
 

上图绘制了自旋向上(蓝色)和自旋向下(红色)的透射谱,并且它们之间存在显着差异:在费米能级处,自旋向下的透射率为零,自旋向上的透射率是 3 。

1.1.3. 计算自旋反平行透射谱

现在,进行自旋反平行态下的计算,并将透射谱与自旋平行情况进行比较。已计算的自旋平行态将用作反平行态计算的初始猜想。

(1)自旋反平行态下的电极自洽计算与自旋平行态下的所有输入文件一致;

(2)中心区自洽输入文件 scf.input 与平行态下的区别在于以下参数,其他参数一致

%Description of electrodesystem.numberOfLeads = 2system.typeOfLead1 = leftsystem.voltageOfLead1 = 0system.objectOfLead1 = ../LeftElectrode/NanodcalObject.matsystem.spinDirectionOfLead1 = [0 0 1]      %电极1的自旋方向system.typeOfLead2 = rightsystem.voltageOfLead2 = 0system.spinDirectionOfLead2 = [0 0 -1]      %电极2的自旋方向system.objectOfLead2 = ../RightElectrode/NanodcalObject.mat

(3)在中心区自洽计算的基础上,进行透射谱计算,方法与1.2.3小节相同。计算结束后,输出文件 Transmission.xml 在Device Studio中可视化分析,如图:

模型

自旋反平行态下的透射谱
 

在这种情况下,正如器件的对称性可预期的那样,两个自旋分量具有相同的透射谱。

(4)最后,处理数据得到自旋平行和反平行态下总的透射谱,如图:

模型

自旋平行和反平行态下总的透射谱
 

由图可知,在费米能级附近,自旋平行态(蓝色)的透射明显大于反平行态(红色)的透射。

审核编辑 :李倩

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分