CreateLeadHamiltonians

  Copyright (C) 2016 Peter Rakyta, Ph.D.
  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
  You should have received a copy of the GNU General Public License
  along with this program.  If not, see http://www.gnu.org/licenses/.

Description

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

Available

EQuUs v4.8 or later

Class references

Syntax

interface = CreateLeadHamiltonians(Opt, param, varargin)

Parameters
Opt An instance of the structure Opt.
param An instance of structure param.
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameters are:
  • 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.

Attributes (protected)

  • param

    An instance of structure param.
  • 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.
  • Hanyadik_Lead

    The id number of the current lead.
  • End_Type

    The type of the end of the ribbon in case of hexagonal lattice ('A' for armchair or 'Z' for zigzag type end)
  • M

    The number of the sites in the cross section.
  • params

    An instance of the structure lead_param.
  • q

    The tranverse momentum quantum number for transverse computations.
  • kulso_szabfokok

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

    An instance of the structure coordinates.
  • H0

    The Hamiltonian of a unit cell.
  • H1

    The coupling Hamiltonian between the unit cells.
  • H1adj

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

    Obsolete
  • H1_transverse

    The transverse coupling between the slabs for transverse calculations.
  • S0

    The overlap integrals of a unit cell.
  • S1

    The overlap integrals between the unit cells.
  • S1_transverse

    The overlap integrals between the slabs for transverse calculations.
  • fazis_mtx_H0

    The matrix of the Peierls phases in the unit cell.
  • fazis_mtx_H1

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

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

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

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

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

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

    list of optional parameters (see here for details).

Methods (public)

Methods (protected)

Methods (private)

CreateLeadHamiltonians::ApplyOverlapMatrices

Description

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

Syntax

object.ApplyOverlapMatrices( E )

Parameters
E The energy value.




CreateLeadHamiltonians::CreateHamiltonians

Description

Creates the Hamiltonians H_0 and H_1 of the lead. The created Hamiltonians are stored by within the object.

Syntax

object.CreateHamiltonians( varargin )

Parameters
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameters are:
  • toSave

    Logical value. If true, the created Hamiltonians are saved into a file 'Hamiltoni_Lead_' + num2str(Hanyadik_Lead) + '.mat'.
  • CustomHamiltonian

    An instance of the interface Custom_Hamiltonians.




CreateLeadHamiltonians::Transform2BdG

Description

Transforms the Hamiltonians and the overlap matrices into the BdG model.

Syntax

object.Transform2BdG()




CreateLeadHamiltonians::CreateHamiltonians

Description

Creates the Hamiltonians H_0 and H_1 of the lead. The created Hamiltonians are stored by within the object.

Syntax

object.CreateHamiltonians( varargin )

Parameters
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameters are:
  • toSave

    Logical value. If true, the created Hamiltonians are saved into a file 'Hamiltoni_Lead_' + num2str(Hanyadik_Lead) + '.mat'.
  • CustomHamiltonian

    An instance of the interface Custom_Hamiltonians.




CreateLeadHamiltonians::CalcSpektrum

Description

Calculates the band structure of the lead.

Syntax

spectrum = object.CalcSpektrum( varargin )

Parameters
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameters are:
  • toPlot

    set 1 in order to plot the calculated spectrum, 0 (default) otherwise
  • ka_min

    is the lower bound of the wave numbers. (Default is $$-\pi$$.)
  • ka_max

    is the upper bound of the wave numbers. (Default is $$\pi$$.)
  • ka_num

    is the number of wave number points involved in the calculations. (Default is 300.)
  • 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.


Return
spectrum A matrix containing the calculated spectrum with the wave numbers in the first and with the energy eigenvalues in the second column.




CreateLeadHamiltonians::saveLeads

Description

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

Syntax

object.saveLeads()




CreateLeadHamiltonians::ShiftCoordinates

Description

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

Syntax

object.ShiftCoordinates( shift )

Parameters
shift An integer to multiply the lattice vector in order to shift the coordinates.




CreateLeadHamiltonians::ShiftLead

Description

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

Syntax

object.ShiftLead( E )

Parameters
Energy The energy value.




CreateLeadHamiltonians::AddPotential

Description

Adds on-site potential to the Hamiltonian H0.

Syntax

object.AddPotential( V )

Parameters
V A vector containing the on-site potentials to be added to H0. Must be of the same length as the diagonal of H0.




CreateLeadHamiltonians::isSuperconducting

Description


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

Syntax

ret = object.isSuperconducting()

Return
ret true if the lead is in the superconducting phase, 0 otherwise.




CreateLeadHamiltonians::CreateClone

Description

Creates a clone of the current object.

Syntax

Surface_tmp = object.CreateClone( varargin )

Parameters
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameters are:
  • empty

    Logical value. Set true for creating an empty class, or false (default) otherwise.


Return
ret An instance of interface CreateLeadHamiltonians.




CreateLeadHamiltonians::Reset

Description

Resets all attributes in the object.

Syntax

object.Reset()




CreateLeadHamiltonians::Write

Description

Sets the value of an attribute in the object.

Syntax

object.Write(MemberName, input)

Parameters
MemberName The name of the attribute to be set.
input The value to be set.




CreateLeadHamiltonians::Read

Description

Query for the value of an attribute in the object.

Syntax

ret = object.Read(MemberName)

Parameters
MemberName The name of the attribute.


Return
ret The value of the attribute.




CreateLeadHamiltonians::Clear

Description

Clears the value of an attribute in the object.

Syntax

object.Clear(MemberName)

Parameters
MemberName The name of the attribute.




CreateLeadHamiltonians::setM

Description

Updates the number of sites in the cross section.

Syntax

object.setM()




CreateLeadHamiltonians::Initialize

Description

Initializes object properties

Syntax

object.Initialize()




CreateLeadHamiltonians::InputParsing

Description

Parses the optional parameters for the class constructor.

Syntax

object.InputParsing(varargin)

Parameters
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameters are:
  • 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.