3.3. Complex energy band structure

For periodic solids, the wave fuction in the Schrödinger equation

\[H\Psi_{nk}=E_{nk}S\Psi_{nk},\]

where \(S\) is the overlap matrix, can be written as

\[\Psi_{nk}(r)=e^{-ik\cdot r}U_{nk}(r),\]

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.

../../_images/Si-MgO-struc.svg

Fig. 3.3.1 The silicon (Si) and magnesium oxide (MgO) along (100).

The calculation steps are:

  1. Inport the crystal:

    • Si uni-cell;

    • Create the Si(100) crystal;

    • MgO unit uni-cell.

    • Create the MgO(100) crystal;

  2. Self-consistent calculation;

  3. 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.

  1. Open Device Studio software ➟ Create a new Project ➟ File name Complex Bands ➟ press Save;

  2. In the menu bar click FileImportImport Local to pop up the search box:

    • Go to DeviceStudio folder ➟ material3DmaterialsSemiconductor ➟ select Si.hzw ➟ click open.

    • Go to DeviceStudio folder ➟ material3Dmaterialsmetal_oxides ➟ select NiO.hzw ➟ click open.

  3. Select Si.hzw ➟ In the menu bar click BuildSurface/Slab;

    • Go to Cleave planeMiller indices set h = 1, k = 0, and l = 0 ➟ click Build.

  4. Select MgO.hzw ➟ In the menu bar click BuildSurface/Slab;

    • Go to Cleave planeMiller indices set h = 1, k = 0, and l = 0 ➟ click Build.

NanoDcal Graphical user interface

Fig. 3.3.2 NanoDCAL Graphical user interface .

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:

  1. Select the Si100.hzw than in the menu bar of Device Studio, click SimulatorNanoDCALSCF 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.

  2. Select the MgO100.hzw than in the menu bar of Device Studio, click SimulatorNanoDCALSCF 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:

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:

  1. Go to the Si100 folder ➟ right click over scf.input file ➟ run to pop up the Run dialog window;

  2. In the Run window, choose the Gateway location, number of cores and press run;

  3. Once the calculation has completed, the results will be returned to the Si100 folder.

  4. 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.

  1. In the Device Studio navigate to the menu bar, click on SimulatorNanoDCALAnalysis 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.

  2. In the kSpaceGridNumber set n1 = 0, n2 = 0, and n3 = 0;

  3. In the Energy range set -15, 10;

  4. Click on Generate files;

  5. In the Project window select MgO100.hzw and repeat the steps above to generate the complexBandStructure input file for MgO(100) system.

../../_images/CBS.svg

Fig. 3.3.3 Complex band structure interface of Device Studio.

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 SimulatorNanoDCALAnalysis 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.

../../_images/CBS-Si.svg

Fig. 3.3.4 Complex energy band diagram of Si(100)

MgO (100)

For the MgO(100) the imaginary band at the valence band maximum couple efficiently with the conduction band minimum [ZSW13].

../../_images/CBS-MgO.svg

Fig. 3.3.5 Complex energy band diagram of MgO(100)

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.

[PCH04]
  1. Pomorski, C. Roland, and H. Guo. Quantum transport through short semiconducting nanotubes: A complex band structure analysis. Phys. Rev. B 70 (2004), p. 115408.

[HMST]
  1. 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.

[ZSW13]
  1. 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.