3.3. Complex energy band structure
For periodic solids, the wave fuction in the Schrödinger equation
where \(S\) is the overlap matrix, can be written as
where \(U_{nk}(r)\) is a periodic function with the same periodicity as the crystal itself. In general in the band structure calculations, the wave vector \(k\) is a real number. By solving the above Schrödinger equation the eigenvectors corresponding to different \(k\) values (usually located on the high symmetry line of the first Brillouin zone) are obtained, thereby determining the eigenenergy \(E_{nk}\) ( i.e., the band structure).
When calculating the complex band structure, the energy \(E\) is fixed and the value of \(k\) that satisfies the Schrödinger equation is solved. This solution can obtain real and complex \(k\). The solution of real \(k\) is the usual Bloch state, while the solution with imaginary part is exponentially decreasing in one direction and increasing in the opposite direction. Such solutions are usually not stable in bulk materials and are therefore usually ignored in band structure calculations. However, they can exist at surfaces or interfaces.
The complex band structure calculations thus provide a deeper understanding of the electronic structure of materials, particularly in scenarios where non-standard electronic behavior plays a critical role, such as in devices that exploit quantum mechanical effects [PCH04].
In this tutorial, we will learn how to calculate the complex band structure in an silicon (Si) and magnesium oxide (MgO) crystal along (100) (Fig. 3.3.1) using NanoDCAL.
The calculation steps are:
Inport the crystal:
Si uni-cell;
Create the Si(100) crystal;
MgO unit uni-cell.
Create the MgO(100) crystal;
Self-consistent calculation;
Complex band structure calculation;
3.3.1. Import unit cell
For purposes of this tutorial, we will import a Si and MgO crystal from Device Studio database, as shown Fig. 2.1.1.
Begin by starting the Device Studio software and creating a new project.
Open Device Studio software ➟ Create a new Project ➟ File name Complex Bands ➟ press Save;
In the menu bar click File ➟ Import ➟ Import Local to pop up the search box:
Go to DeviceStudio folder ➟ material ➟ 3Dmaterials ➟ Semiconductor ➟ select Si.hzw ➟ click open.
Go to DeviceStudio folder ➟ material ➟ 3Dmaterials ➟ metal_oxides ➟ select NiO.hzw ➟ click open.
Select Si.hzw ➟ In the menu bar click Build ➟ Surface/Slab;
Go to Cleave plane ➟ Miller indices set h = 1, k = 0, and l = 0 ➟ click Build.
Select MgO.hzw ➟ In the menu bar click Build ➟ Surface/Slab;
Go to Cleave plane ➟ Miller indices set h = 1, k = 0, and l = 0 ➟ click Build.
Tip
To make the calculations faster, we will not optimize the atom positions and cell vectors for the purposes of your project. However, ensure that the equilibrium geometry is confirmed for other projects.
The atomic coordinates for Si (100) and MgO (100) structures can be download here: Si100.hzw
and MgO100.hzw
.
Si100.hzw
% The number of probes
0
% Uni-cell vector
5.43070000 0.00000000 0.00000000
0.00000000 5.43070000 0.00000000
0.00000000 0.00000000 5.43070000
%Total number of device_structure
8
%Atom site
Si 0 0 0
Si 2.71535000 0 2.71534999
Si 0 2.71535000 2.71534999
Si 2.71534999 2.71535000 0
Si 1.35767500 1.35767500 1.35767500
Si 4.07302499 1.35767500 4.07302499
Si 1.35767500 4.07302499 4.07302499
Si 4.07302499 4.07302499 1.35767500
MgO100.hzw
% The number of probes
0
% Uni-cell vector
4.21120000 0.00000000 0.00000000
0.00000000 4.21120000 0.00000000
0.00000000 0.00000000 4.21120000
%Total number of device_structure
8
%Atom site
Mg 0 0 0
Mg 2.10559999 0 2.10559999
Mg 0 2.10559999 2.10559999
Mg 2.10559999 2.10559999 0
O 0 0 2.10559999
O 2.10559999 0 0
O 0 2.10559999 0
O 2.10559999 2.10559999 2.10559999
3.3.2. SCF for Si and MgO along (100)
Generate the input file
From the Si(100) and MgO(100), we can generate the input file to peform the self-consistent calculation.
The input file could be generated using Device Studio with NanoDCAL module simulator, as follows:
Select the Si100.hzw than in the menu bar of Device Studio, click Simulator ➟ NanoDCAL ➟ SCF Calculation to pop up the interface to set the parameters;
In the K-point Sampling set n1 = 4, n2 = 4, and n3 = 4 and click Generate files.
Select the MgO100.hzw than in the menu bar of Device Studio, click Simulator ➟ NanoDCAL ➟ SCF Calculation to pop up the interface to set the parameters;
In the K-point Sampling set n1 = 4, n2 = 4, and n3 = 4 and click Generate files.
The generated input files for Si(100) and MgO (100) could be downloaded here:
Silicon uni-cell scf.input file (
Si.scf.input
).Mgo uni-cell scf.input file (
MgO.scf.input
).
Si(100) scf input file
%%What quantities should be calculated
calculation.name = scf
%Basic setting
calculation.occupationFunction.temperature = 300
calculation.realspacegrids.E_cutoff = 80 Hartree
calculation.xcFunctional.Type = LDA_PZ81
calculation.k_spacegrids.number = [ 4 4 4 ]'
system.centralCellVectors = [[5.4307 0 0]' [3.32534e-16 5.4307 0]' [3.32534e-16 3.32534e-16 5.4307]']
system.spinType = NoSpin
%Iteration control
calculation.SCF.monitoredVariableName = {'rhoMatrix','hMatrix','totalEnergy','bandEnergy','gridCharge','orbitalCharge'}
calculation.SCF.convergenceCriteria = {1e-04,1e-04,[],[],[],[]}
calculation.SCF.maximumSteps = 200
calculation.SCF.mixMethod = Pulay
calculation.SCF.mixRate = 0.1
calculation.SCF.mixingMode = H
calculation.SCF.startingMode = H
%calculation.SCF.donatorObject = NanodcalObject.mat
%Basic set
system.neutralAtomDataDirectory = '../'
system.atomBlock = 8
AtomType OrbitalType X Y Z
Si LDA-DZP 0.00000000 0.00000000 0.00000000
Si LDA-DZP 2.71535000 0.00000000 2.71535000
Si LDA-DZP 0.00000000 2.71535000 2.71535000
Si LDA-DZP 2.71535000 2.71535000 0.00000000
Si LDA-DZP 1.35767500 1.35767500 1.35767500
Si LDA-DZP 4.07302500 1.35767500 4.07302500
Si LDA-DZP 1.35767500 4.07302500 4.07302500
Si LDA-DZP 4.07302500 4.07302500 1.35767500
end
MgO scf input file
%%What quantities should be calculated
calculation.name = scf
%Basic setting
calculation.occupationFunction.temperature = 300
calculation.realspacegrids.E_cutoff = 80 Hartree
calculation.xcFunctional.Type = LDA_PZ81
calculation.k_spacegrids.number = [ 4 4 4 ]'
system.centralCellVectors = [[4.2112 0 0]' [2.57862e-16 4.2112 0]' [2.57862e-16 2.57862e-16 4.2112]']
system.spinType = NoSpin
%Iteration control
calculation.SCF.monitoredVariableName = {'rhoMatrix','hMatrix','totalEnergy','bandEnergy','gridCharge','orbitalCharge'}
calculation.SCF.convergenceCriteria = {1e-04,1e-04,[],[],[],[]}
calculation.SCF.maximumSteps = 200
calculation.SCF.mixMethod = Pulay
calculation.SCF.mixRate = 0.1
calculation.SCF.mixingMode = H
calculation.SCF.startingMode = H
%calculation.SCF.donatorObject = NanodcalObject.mat
%Basic set
system.neutralAtomDataDirectory = '../'
system.atomBlock = 8
AtomType OrbitalType X Y Z
Mg LDA-DZP 0.00000000 0.00000000 0.00000000
Mg LDA-DZP 2.10560000 0.00000000 2.10560000
Mg LDA-DZP 0.00000000 2.10560000 2.10560000
Mg LDA-DZP 2.10560000 2.10560000 0.00000000
O LDA-DZP 0.00000000 0.00000000 2.10560000
O LDA-DZP 2.10560000 0.00000000 0.00000000
O LDA-DZP 0.00000000 2.10560000 0.00000000
O LDA-DZP 2.10560000 2.10560000 2.10560000
end
The keywords for both system were specified in the previous tutorial. It is can be check in keywords-scf.
Running the scf.input
To perform the calculation download the input file, or use Device Studio as following:
On the Device Studio navigate to the Project panel:
Go to the Si100 folder ➟ right click over scf.input file ➟ run to pop up the Run dialog window;
In the Run window, choose the Gateway location, number of cores and press run;
Once the calculation has completed, the results will be returned to the Si100 folder.
Repeat these steps for MgO100 input file.
Note
The NanodcalObject.mat files are required for the complex band structure calculations.
3.3.3. The complex band structure calculation
Now we will set the parameters to perform the complex band structure with NanoDCAL module simulator.
In the Device Studio navigate to the menu bar, click on Simulator ➟ NanoDCAL ➟ Analysis to set physical quantity, as shown in Fig. 3.3.3;
Navigate to the Analysis panel (left side) ➟ select ComplexBandStructure ➟ click on the Right arrow button to transfer ComplexBandStructure calculator to the Calculation Selected panel.
In the kSpaceGridNumber set n1 = 0, n2 = 0, and n3 = 0;
In the Energy range set -15, 10;
Click on Generate files;
In the Project window select MgO100.hzw and repeat the steps above to generate the complexBandStructure input file for MgO(100) system.
Complex band structure input file:
system.object = NanodcalObject.mat
calculation.name = complexBandStructure
calculation.complexBandStructure.kSpaceGridNumber = [ 0 0 0 ]'
calculation.complexBandStructure.energyRange = [-15,10]
calculation.complexBandStructure.numberOfEnergyPoints = 401
%calculation.complexBandStructure.plot = true
%calculation.complexBandStructure.fullplot = true
calculation.control.xml = true
The generated input files for complex band structure can be downloaded here: ComplexBandStructure.input
.
The keywords specify the following:
calculation.complexBandStructure.kSpaceGridNumber
The number of small \(k\)-space grids in each direction which, together with kSpaceGridShift, is used to produce the parameter kSpacePoints. The default value is [1 1 1]
calculation.complexBandStructure.energyRange
This parameter and numberOfEnergyPoints are used to produce the parameter energyPoints. Note that its values are measured from the Fermi energy.
calculation.complexBandStructure.numberOfEnergyPoints
The energy points at which the the complex-band structure is to be calculated.
Important
When performing complex-band structure calculation, one and only one of the three fractional coordinates of wavevectors, \(k_{1}\), \(k_{2}\), and \(k_{3}\), is allowed to be a complex number, while the other two are real. whatDirection is used to indicate the complex one. e.g., whatDirection = 2 means that \(k_{2}\) can be a complex number while \(k_{1}\) and \(k_{3}\) are kept real.
Possible values: 1, 2, or 3.
default value: 3
To include this flag use:
calculation.complexBandStructure.whatDirection = 3
Now, just run the ComplexBandStructure.input calculation following the steps showed here
After the calculation is finished, the following output files are generated:
CalculatedResults.mat;
log.txt;
ComplexBandStructure.mat;
ComplexBandStructure.xml.
The .mat results can be loaded using the MATLAB platform, and the .xml data file could be loaded in Device Studio to plot the complex band structure.
Complex band structure analysis
Next, you should analyze the results from the produced complex band structures dataset (.xml or .mat), which can then be plotted using MATLAB or Device Studio by:
In menu bar of Device Studio, click on Simulator ➟ NanoDCAL ➟ Analysis Plot ➟ import ComplexBandStructure.xml file.
Si(100)
The complex band structure of silicon, shown in Fig. 3.3.4, is rich with physical phenomena that are critical for various applications in electronics, optoelectronics, and nanotechnology [HMST].
For the Si (100) eigenvalue problem produces bloch sates, which half of these states propagate or decay to the right while the other half propagate to the left. The physically significant bands appear in the energy interval [-5, 5] eV. Where the complex bands (blue curves) emanating from the valence band maximum join onto the second and third conduction bands. Besides the imaginary bands at the second valence bands which connect to conduction-band minimum.
MgO (100)
For the MgO(100) the imaginary band at the valence band maximum couple efficiently with the conduction band minimum [ZSW13].
Tip
The complex energy band is closely related to electron transmission. In molecular junctions, the dependence of the total transmission and the eigenvalues of the single-state transmission on the length can be found through the complex energy band, and the tunneling behavior of the electronic state can be intuitively given. This provides a favorable window for understanding the transport characteristics of molecular junctions.
Pomorski, C. Roland, and H. Guo. Quantum transport through short semiconducting nanotubes: A complex band structure analysis. Phys. Rev. B 70 (2004), p. 115408.
Fitriawan, M. Ogawa, S. Souma, and T. Miyoshi. Non-equilibrium Green’s function method for modeling quantum electron transport in nano-scale devices with anisotropic multiband structure. J Mater Sci: Mater Electron 19 (2008), p. 107.
Bai, L. Shen, Q. Wu, M. Zeng, J.-S. Wang, G. Han, and Y. P. Feng. Boron diffusion induced symmetry reduction and scattering in CoFeB/MgO/CoFeB magnetic tunnel junctions. Phys. Rev. B 87 (2013), p. 014114.