1 % Creates
Hamiltonians for Three-terminal setup - based on EQuUs v4.9
2 % Copyright (C) 2015 Peter Rakyta, Ph.D.
4 % This program is free software: you can redistribute it and/or modify
5 % it under the terms of the GNU General Public License as published by
6 % the Free Software Foundation, either version 3 of the License, or
7 % (at your option) any later version.
9 % This program is distributed in the hope that it will be useful,
10 % but WITHOUT ANY WARRANTY; without even the implied warranty of
11 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 % GNU General Public License
for more details.
14 % You should have received a copy of the GNU General Public License
15 % along with
this program. If not, see http:
17 %> @addtogroup unit_tests Unit Tests
20 %> @brief Function to create custom
Hamiltonians for unit tests on a Three-terminal setup.
22 %> EQuUs v4.9 or later
25 %> @brief Function to create custom
Hamiltonians for unit tests on a Three-terminal setup.
29 %> @
return [1] Cell array of
Hamiltonians of one slab in the leads
30 %> @
return [2] Cell array of overlap integrals of one slab in the leads
31 %> @
return [3] Cell array of couplings between the slabs of the leads
32 %> @
return [4] Cell array of overlap integrals between the slabs of the leads
33 %> @
return [5] Cell array of transverse coupling between the unit cells of the lead
34 %> @
return [6] Cell array of #coordinates of the leads
35 %> @
return [7] Hamiltonian of the scattering region
36 %> @
return [8] Overlap integrals of the scattering region
37 %> @
return [9] Transverse coupling
for the scattering region
38 %> @
return [10] Overlap integrals
for the transverse coupling in the scattering region
39 %> @
return [11] #coordinates of the scattering region
40 %> @
return [12] Cell array of couplings between the scattering region and the leads
41 %> @
return [13] Cell array of overlap integrals between the scattering region and the leads
42 function [H0, S0, H1, S1, H1_transverse, coordinates, Hscatter, Sscatter, Hscatter_transverse, Sscatter_transverse, coordinates_scatter, Hcoupling, Scoupling] =
ThreeTerminalHamiltonians(
Opt,
param, varargin )
44 p.addParameter(
'q', []);
49 % setting lattice type to Squere
51 % turn of the BdG model
57 % creating
structures of physical parameters
for the scattering region
59 param_scatter_loc = param_scatter_loc.CopyParameters(
param.
scatter );
62 % creating
structures of physical parameters
for the leads
65 param_lead_loc = param_lead_loc.CopyParameters(
param.Leads{idx} );
70 % Create
class to crate the Hamiltonian of the scattering region
72 % Creating Hamiltonian
for the scattering region
73 createH.CreateScatterH();
74 % read out Hamiltonian and coordinates
75 Hscatter = createH.Read(
'Hscatter');
76 Sscatter = createH.Read(
'Sscatter');
77 coordinates_scatter = createH.Read(
'coordinates');
89 Hscatter_transverse = [];
90 Sscatter_transverse = [];
92 % setting the width of the third lead
100 % creating
class to describe a given lead
101 Lead_Orientation =
param.
Leads{jdx}.Lead_Orientation;
104 % creating the Hamiltonian of a given lead
105 Leads{jdx}.CreateHamiltonians();
109 H0{jdx} = Leads{jdx}.Read(
'H0');
110 H1{jdx} = Leads{jdx}.Read(
'H1');
111 S0{jdx} = Leads{jdx}.Read(
'S0');
112 S1{jdx} = Leads{jdx}.Read(
'S1');
113 H1_transverse{jdx} = Leads{jdx}.Read(
'H1_transverse');
114 coordinates{jdx} = Leads{jdx}.Read(
'coordinates');
121 % preallocating arrays
for the
Hamiltonians of the
interface regions
function LoadHamiltonians(varargin)
Obtain the Hamiltonians from the external source.
Lattice_Type
String describing the preprogrammed lattice type. See the documentation of lattice types for details.
lead_param Leads
A list of structures lead_param containing the physical parameters for the scattering region.
Structure Opt contains the basic computational parameters used in EQuUs.
Class to create and store Hamiltonian of the translational invariant leads.
function Hamiltonians(varargin)
Function to create the custom Hamiltonians for the 1D chain.
function ThreeTerminalHamiltonians(Opt, param, varargin)
Function to create custom Hamiltonians for unit tests on a Three-terminal setup.
A class to import custom Hamiltonians provided by other codes or created manually
custom_Hamiltonians
Set 'siesta' to import Hamiltonians from Siesta, 'custom' to use custom defined Hamiltonians.
BdG
Set 1 to use the Bogoliubov de Gennes model, 0 (default) for normal systems.
Class containing physical parameters of a particular lead defined on a square lattice.
Structure param contains data structures describing the physical parameters of the scattering center ...
scatter_param scatter
An instance of the structure scatter_param containing the physical parameters for the scattering regi...
Class containing physical parameters of a scattering center defined on a square lattice.
function structures(name)
A class to create and store Hamiltonian of the scattering region.