Eötvös Quantum Utilities  v4.9.146
Providing the Horsepowers in the Quantum Realm
List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
CreateLeadHamiltonians Class Reference

Class to create and store Hamiltonian of the translational invariant leads. More...

Inheritance diagram for CreateLeadHamiltonians:
Inheritance graph
[legend]

Public Member Functions

function AddPotential (V)
 Adds on-site potential to the Hamiltonian H0. More...
 
function ApplyOverlapMatrices (E)
 Applies the overlap matrices to the Hamiltonians: K = H-ES. More...
 
function CalcSpektrum (varargin)
 Calculates the band structure of the lead. More...
 
function Clear (MemberName)
 Clears the value of an attribute in the interface. More...
 
function CreateClone (varargin)
 Creates a clone of the present class. More...
 
function CreateHamiltonians (varargin)
 Creates the Hamiltonians H_0 and H_1 of the lead. More...
 
function CreateLeadHamiltonians (Opt, param, varargin)
 Constructor of the class. More...
 
function display (message, nosilent)
 Displays output messages on the screen. More...
 
function getOpt ()
 Retrives the structure containing the calculation parameters. More...
 
function isSuperconducting ()
 Test, whether the lead is in the superconducting phase or not. More...
 
function MomentumDependentHamiltonian (k, q)
 Construct a momentum dependent (Fourier-transformed) Hamiltonian. More...
 
function Read (MemberName)
 Query for the value of an attribute in the interface. More...
 
function Reset ()
 Resets all elements in the object. More...
 
function saveLeads ()
 Save Lead Hamiltonians into a file 'Hamiltoni_Lead_' + num2str(Hanyadik_Lead) + '.mat'. More...
 
function ShiftCoordinates (shift)
 Shifts the coordinates of the sites by an integer multiple of the lattice vector Coordinates.a. More...
 
function ShiftLead (Energy)
 Shifts the on-site energies in the leads by a given energy. More...
 
function Transform2BdG ()
 Transforms the Hamiltonians and the overlap matrices into the BdG model in the Nambu space representation according to New Journal of Physics 9 (2007) 278. More...
 
function Transform2Spin ()
 Transforms the Hamiltonians and the overlap matrices to include electron spin. More...
 
function Write (MemberName, input)
 Sets the value of an attribute in the interface. More...
 

Static Public Member Functions

static function BadInputType (variable, type)
 Throws a "bad input type" warning, with using the default value. More...
 
static function BadInputTypeNoDefault (variable, type)
 Throws a "bad input type" warning without setting it to default. More...
 
static function ExceedIteration ()
 Throws an "iteration exceeded" warning. More...
 

Protected Member Functions

function Initialize ()
 Initializes object properties. More...
 
function InputParsing (varargin)
 Parses the optional parameters for the class constructor. More...
 
function setM ()
 Updates the number of sites in the cross section. More...
 

Protected Attributes

Property coordinates
 An instance of the structure coordinates. More...
 
Property fazis_mtx_H0
 The matrix of the Peierls phases in the unit cell. More...
 
Property fazis_mtx_H1
 The matrix of the Peierls phases in the coupling matrix between the unit cells. More...
 
Property fazis_mtx_H1t
 The matrix of the Peierls phases in the transverse coupling matrix between the unit cells. More...
 
Property GaugeTransformationApplied
 A logical value. True if a gauge transformation was incorporated into the Hamiltonians or false otherwise. More...
 
Property H0
 The Hamiltonian of a unit cell. More...
 
Property H00
 Obsolete. More...
 
Property H1
 The coupling Hamiltonian between the unit cells. More...
 
Property H1_skew_left
 The skew coupling (in the positive direction) between Hamiltonians H0 for transverse calculations. More...
 
Property H1_skew_right
 The skew upward (in the negative direction) coupling between Hamiltonians H0 for transverse calculations. More...
 
Property H1_transverse
 The transverse coupling between the slabs for transverse calculations. More...
 
Property H1adj
 The coupling Hamiltonian between the unit cells in the opposite direction as H1. (For complex energies they differ from each other.) More...
 
Property HamiltoniansCreated
 A logical value. True if the Hamiltonians were created, false otherwise. More...
 
Property HamiltoniansDecimated
 A logical value. True if the Hamiltonians were decimated, false otherwise. More...
 
Property Hanyadik_Lead
 The id number of the current lead. More...
 
Property K0
 K0=H0-E*S0, see Eq (4) of PRB 78, 035407. More...
 
Property K1
 K1=H1-E*S1, see Eq (4) of PRB 78, 035407. More...
 
Property K1_transverse
 K1_transverse=H1_transverse-E*S1_transverse. More...
 
Property K1adj
 K1adj=H1adj-E*S1', see Eq (4) of PRB 78, 035407. More...
 
Property kulso_szabfokok
 List of sites in the unit cell that should be kept after decimation. More...
 
Property Lead_Orientation
 The orientation of the lead. Set +1 is the "incoming" direction of the propagating states is defined in the +x or +y direction, and "-1" otherwise. More...
 
Property M
 The number of the sites in the cross section. More...
 
Property MagneticFieldApplied
 A logical value. True if magnetic field was applied in the Hamiltonians, false otherwise. More...
 
Property Opt
 An instance of structure Opt. More...
 
Property OverlapApplied
 A logical value. True if the overlap integrals were applied, false otherwise. More...
 
Property param
 An instance of the structure param. More...
 
Property params
 An instance of the structure lead_param. More...
 
Property q
 The tranverse momentum for transverse computations. More...
 
Property S0
 The overlap integrals of a unit cell. More...
 
Property S1
 The overlap integrals between the unit cells. More...
 
Property S1_transverse
 The overlap integrals between the slabs for transverse calculations. More...
 
Property S1adj
 The adjungate of the overlap integrals between the unit cells. More...
 
Property varargin
 list of optional parameters (see http://www.mathworks.com/help/matlab/ref/varargin.html for details) More...
 

Detailed Description

Class to create and store Hamiltonian of the translational invariant leads.

The notations and the structure of the Hamiltonian is defined accroding to the following image:

Lead_Hamiltonian.jpg

Available

EQuUs v4.8 or later

Definition at line 29 of file CreateLeadHamiltonians.m.

Constructor & Destructor Documentation

◆ CreateLeadHamiltonians()

function CreateLeadHamiltonians::CreateLeadHamiltonians ( Opt  ,
param  ,
varargin   
)

Constructor of the class.

Parameters
OptAn instance of the structure Opt.
paramAn instance of structure param.
vararginCell array of optional parameters. See InputParsing for details.
Returns
An instance of the class

Member Function Documentation

◆ AddPotential()

function CreateLeadHamiltonians::AddPotential ( )

Adds on-site potential to the Hamiltonian H0.

Parameters
VThe potential calculated on the sites.

◆ ApplyOverlapMatrices()

function CreateLeadHamiltonians::ApplyOverlapMatrices ( )

Applies the overlap matrices to the Hamiltonians: K = H-ES.

Parameters
EThe energy value.

◆ BadInputType()

static function Messages::BadInputType ( variable  ,
type   
)
staticinherited

Throws a "bad input type" warning, with using the default value.

Parameters
variableA string conatining the name of the variable.
typeA string describing the desired type.

◆ BadInputTypeNoDefault()

static function Messages::BadInputTypeNoDefault ( variable  ,
type   
)
staticinherited

Throws a "bad input type" warning without setting it to default.

Parameters
variableA string conatining the name of the variable.
typeA string describing the desired type.

◆ CalcSpektrum()

function CreateLeadHamiltonians::CalcSpektrum ( varargin  )

Calculates the band structure of the lead.

Parameters
vararginCell array of optional parameters:
'toPlot'Set 1 in order to plot the calculated spectrum, 0 (default) otherwise
'ka_min'The lower bound of the wave numbers. (Default is -pi.)
'ka_max'The upper bound of the wave numbers. (Default is pi.)
'ka_num'The number of wave number points involved in the calculations. (Default is 300.)
'ka_vec'One dimensional array of the k-pints. (Overrides previous attributes related to the k-vector array.)
'center'The calculated energy eigenvalues are centered around this value. (Default is 0.001.)
'db'The number of the calculated eigenvalues.
'offset'Offset value to shift the spectrum along the energy axis.
'calcWaveFnc'Logical value. Set true to calculate also the wave functions, or false (default) otherwise.
Returns
[1] ka_num x 2 array of the calculated spactrum. In the first column are the k-points, whil ein the second columns are the calculated energy points.
[2] The calculated wave functions stored in a structure WaveFnc.

◆ Clear()

function CreateLeadHamiltonians::Clear ( MemberName  )

Clears the value of an attribute in the interface.

Parameters
MemberNameThe name of the attribute to be cleared.

◆ CreateClone()

function CreateLeadHamiltonians::CreateClone ( varargin  )

Creates a clone of the present class.

Returns
Returns with the cloned object.
Parameters
vararginCell array of optional parameters (https://www.mathworks.com/help/matlab/ref/varargin.html):
'empty'Set true to create an empty clone, or false (default) to clone all atributes.

◆ CreateHamiltonians()

function CreateLeadHamiltonians::CreateHamiltonians ( varargin  )

Creates the Hamiltonians H_0 and H_1 of the lead.

The created Hamiltonians are stored by within the object.

Parameters
vararginCell array of optional parameters (https://www.mathworks.com/help/matlab/ref/varargin.html):
'toSave'Logical value. If true, the created Hamiltonians are saved into a file 'Hamiltoni_Lead_' + num2str(Hanyadik_Lead) + '.mat'.
'CustomHamiltonian'An instance of class Custom_Hamiltonians describing external source of Hamiltonians.

◆ display()

function Messages::display ( message  ,
nosilent   
)
inherited

Displays output messages on the screen.

Parameters
messageString containing the message to be displayed
nosilentSet true to override the silent option given in Opt.Silent.

◆ ExceedIteration()

static function Messages::ExceedIteration ( )
staticinherited

Throws an "iteration exceeded" warning.

◆ getOpt()

function Messages::getOpt ( )
inherited

Retrives the structure containing the calculation parameters.

Returns
Return an instance of structure Opt.

◆ Initialize()

function CreateLeadHamiltonians::Initialize ( )
protected

Initializes object properties.

◆ InputParsing()

function CreateLeadHamiltonians::InputParsing ( varargin  )
protected

Parses the optional parameters for the class constructor.

Parameters
vararginCell array of optional parameters (https://www.mathworks.com/help/matlab/ref/varargin.html):
'Hanyadik_Lead'The ID number of the current lead. Set to empty (default) for using parameters of the scatter region.
'Lead_Orientation'Orientation of the lead. Set +1 (default) is the "incoming" direction of the propagating states is defined in the +x or +y direction, and "-1" otherwise.
'q'The transverse momentum. Set to empty (default) for computations without transverse momentums.

◆ isSuperconducting()

function CreateLeadHamiltonians::isSuperconducting ( )

Test, whether the lead is in the superconducting phase or not.

Returns
True if the lead is superconducting, false otherwise.

◆ MomentumDependentHamiltonian()

function CreateLeadHamiltonians::MomentumDependentHamiltonian ( ,
q   
)

Construct a momentum dependent (Fourier-transformed) Hamiltonian.

Parameters
kThe longitudinal momentum times the lattice constant.
qThe transverse momentum times the lattice constant.
Returns
Return with the momentum dependent Hamiltonian.

◆ Read()

function CreateLeadHamiltonians::Read ( MemberName  )

Query for the value of an attribute in the interface.

Parameters
MemberNameThe name of the attribute to be set.
Returns
Returns with the value of the attribute.

◆ Reset()

function CreateLeadHamiltonians::Reset ( )

Resets all elements in the object.

◆ saveLeads()

function CreateLeadHamiltonians::saveLeads ( )

Save Lead Hamiltonians into a file 'Hamiltoni_Lead_' + num2str(Hanyadik_Lead) + '.mat'.

◆ setM()

function CreateLeadHamiltonians::setM ( )
protected

Updates the number of sites in the cross section.

◆ ShiftCoordinates()

function CreateLeadHamiltonians::ShiftCoordinates ( shift  )

Shifts the coordinates of the sites by an integer multiple of the lattice vector Coordinates.a.

Parameters
shiftInteger by which the coordinates are shifted.

◆ ShiftLead()

function CreateLeadHamiltonians::ShiftLead ( Energy  )

Shifts the on-site energies in the leads by a given energy.

Parameters
EnergyThe enrgy value.

◆ Transform2BdG()

function CreateLeadHamiltonians::Transform2BdG ( )

Transforms the Hamiltonians and the overlap matrices into the BdG model in the Nambu space representation according to New Journal of Physics 9 (2007) 278.

It is assumed, that the Hamiltonian is already transfromed to the grand canonical operator: $ \hat{H} \rightarrow \hat{H} - E_F\hat{N}$

◆ Transform2Spin()

function CreateLeadHamiltonians::Transform2Spin ( )

Transforms the Hamiltonians and the overlap matrices to include electron spin.

◆ Write()

function CreateLeadHamiltonians::Write ( MemberName  ,
input   
)

Sets the value of an attribute in the interface.

Parameters
MemberNameThe name of the attribute to be set.
inputThe value to be set.

Member Data Documentation

◆ coordinates

Property CreateLeadHamiltonians::coordinates
protected

An instance of the structure coordinates.

Definition at line 58 of file CreateLeadHamiltonians.m.

◆ fazis_mtx_H0

Property CreateLeadHamiltonians::fazis_mtx_H0
protected

The matrix of the Peierls phases in the unit cell.

Definition at line 106 of file CreateLeadHamiltonians.m.

◆ fazis_mtx_H1

Property CreateLeadHamiltonians::fazis_mtx_H1
protected

The matrix of the Peierls phases in the coupling matrix between the unit cells.

Definition at line 109 of file CreateLeadHamiltonians.m.

◆ fazis_mtx_H1t

Property CreateLeadHamiltonians::fazis_mtx_H1t
protected

The matrix of the Peierls phases in the transverse coupling matrix between the unit cells.

Definition at line 112 of file CreateLeadHamiltonians.m.

◆ GaugeTransformationApplied

Property CreateLeadHamiltonians::GaugeTransformationApplied
protected

A logical value. True if a gauge transformation was incorporated into the Hamiltonians or false otherwise.

Definition at line 127 of file CreateLeadHamiltonians.m.

◆ H0

Property CreateLeadHamiltonians::H0
protected

The Hamiltonian of a unit cell.

Definition at line 73 of file CreateLeadHamiltonians.m.

◆ H00

Property CreateLeadHamiltonians::H00
protected

Obsolete.

Definition at line 82 of file CreateLeadHamiltonians.m.

◆ H1

Property CreateLeadHamiltonians::H1
protected

The coupling Hamiltonian between the unit cells.

Definition at line 76 of file CreateLeadHamiltonians.m.

◆ H1_skew_left

Property CreateLeadHamiltonians::H1_skew_left
protected

The skew coupling (in the positive direction) between Hamiltonians H0 for transverse calculations.

Definition at line 91 of file CreateLeadHamiltonians.m.

◆ H1_skew_right

Property CreateLeadHamiltonians::H1_skew_right
protected

The skew upward (in the negative direction) coupling between Hamiltonians H0 for transverse calculations.

Definition at line 88 of file CreateLeadHamiltonians.m.

◆ H1_transverse

Property CreateLeadHamiltonians::H1_transverse
protected

The transverse coupling between the slabs for transverse calculations.

Definition at line 85 of file CreateLeadHamiltonians.m.

◆ H1adj

Property CreateLeadHamiltonians::H1adj
protected

The coupling Hamiltonian between the unit cells in the opposite direction as H1. (For complex energies they differ from each other.)

Definition at line 79 of file CreateLeadHamiltonians.m.

◆ HamiltoniansCreated

Property CreateLeadHamiltonians::HamiltoniansCreated
protected

A logical value. True if the Hamiltonians were created, false otherwise.

Definition at line 115 of file CreateLeadHamiltonians.m.

◆ HamiltoniansDecimated

Property CreateLeadHamiltonians::HamiltoniansDecimated
protected

A logical value. True if the Hamiltonians were decimated, false otherwise.

Definition at line 118 of file CreateLeadHamiltonians.m.

◆ Hanyadik_Lead

Property CreateLeadHamiltonians::Hanyadik_Lead
protected

The id number of the current lead.

Definition at line 43 of file CreateLeadHamiltonians.m.

◆ K0

Property CreateLeadHamiltonians::K0
protected

K0=H0-E*S0, see Eq (4) of PRB 78, 035407.

Definition at line 61 of file CreateLeadHamiltonians.m.

◆ K1

Property CreateLeadHamiltonians::K1
protected

K1=H1-E*S1, see Eq (4) of PRB 78, 035407.

Definition at line 64 of file CreateLeadHamiltonians.m.

◆ K1_transverse

Property CreateLeadHamiltonians::K1_transverse
protected

K1_transverse=H1_transverse-E*S1_transverse.

Definition at line 70 of file CreateLeadHamiltonians.m.

◆ K1adj

Property CreateLeadHamiltonians::K1adj
protected

K1adj=H1adj-E*S1', see Eq (4) of PRB 78, 035407.

Definition at line 67 of file CreateLeadHamiltonians.m.

◆ kulso_szabfokok

Property CreateLeadHamiltonians::kulso_szabfokok
protected

List of sites in the unit cell that should be kept after decimation.

Definition at line 55 of file CreateLeadHamiltonians.m.

◆ Lead_Orientation

Property CreateLeadHamiltonians::Lead_Orientation
protected

The orientation of the lead. Set +1 is the "incoming" direction of the propagating states is defined in the +x or +y direction, and "-1" otherwise.

Definition at line 40 of file CreateLeadHamiltonians.m.

◆ M

Property CreateLeadHamiltonians::M
protected

The number of the sites in the cross section.

Definition at line 46 of file CreateLeadHamiltonians.m.

◆ MagneticFieldApplied

Property CreateLeadHamiltonians::MagneticFieldApplied
protected

A logical value. True if magnetic field was applied in the Hamiltonians, false otherwise.

Definition at line 124 of file CreateLeadHamiltonians.m.

◆ Opt

Property Messages::Opt
protectedinherited

An instance of structure Opt.

Definition at line 31 of file Messages.m.

◆ OverlapApplied

Property CreateLeadHamiltonians::OverlapApplied
protected

A logical value. True if the overlap integrals were applied, false otherwise.

Definition at line 121 of file CreateLeadHamiltonians.m.

◆ param

Property CreateLeadHamiltonians::param
protected

An instance of the structure param.

Definition at line 37 of file CreateLeadHamiltonians.m.

◆ params

Property CreateLeadHamiltonians::params
protected

An instance of the structure lead_param.

Definition at line 49 of file CreateLeadHamiltonians.m.

◆ q

Property CreateLeadHamiltonians::q
protected

The tranverse momentum for transverse computations.

Definition at line 52 of file CreateLeadHamiltonians.m.

◆ S0

Property CreateLeadHamiltonians::S0
protected

The overlap integrals of a unit cell.

Definition at line 94 of file CreateLeadHamiltonians.m.

◆ S1

Property CreateLeadHamiltonians::S1
protected

The overlap integrals between the unit cells.

Definition at line 97 of file CreateLeadHamiltonians.m.

◆ S1_transverse

Property CreateLeadHamiltonians::S1_transverse
protected

The overlap integrals between the slabs for transverse calculations.

Definition at line 103 of file CreateLeadHamiltonians.m.

◆ S1adj

Property CreateLeadHamiltonians::S1adj
protected

The adjungate of the overlap integrals between the unit cells.

Definition at line 100 of file CreateLeadHamiltonians.m.

◆ varargin

Property CreateLeadHamiltonians::varargin
protected

list of optional parameters (see http://www.mathworks.com/help/matlab/ref/varargin.html for details)

Definition at line 130 of file CreateLeadHamiltonians.m.


The documentation for this class was generated from the following file: