Favago Transport Programming Interface

Introduction

Interfaces

root/

root/utils

Data structures

Examples







Surface_Green_function

  Copyright (C) 2009-2015 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

Returns an interface providing methods to calculate the

  • Greens function of an infinite ribbon.
  • the surface Greens function of a semi-infinite ribbon.
  • the surface Greens function of a finite piece of the lead.
  • the surface Greens function of a complex structure generated from infinite ribbon using the Dyson equation.
  • the self-energy of the semi-infinite ribbon.

Syntax

interface = Surface_Green_function(Opt, param, varargin)

Parameters
Opt An instance of the structure Opt.
param Structure containing the physical parameters of the ribbon. The required fields are specified here.
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameters are:
  • 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.
  • Hanyadik_Lead

    The id number of the current lead. Set to empty (default) for using parameters of the scatter region.
  • Way2Hamiltonian

    Obsolete parameter
  • q

    The transverse momentum. Set to empty (default) for computations without transverse momentums.

Attributes

  • 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.
  • Way2Hamiltonian

    Obsolete.
  • GinfSzamolo

    Function handle to calculate the infinite Greens function.
  • End_Type

    'A' for zigzag edged ribbon (Armchair end), or 'Z' for ribbon with armchair type edges (Zigzag end).
  • Atom_Type

    The type of the first site at the (1,1) position of the H_0 Hamiltonian (values are 'A' or 'B').
  • M

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

    An instance of the structure lead_param
  • retarted

    true for calculating the retarded Greens function, or false for the .
  • q

    The tranverse momentum 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

    An auxiliary matrix used in the decimation procedure. [H00,H1;H1adj,H0] is being decimated.
  • H1_transverse

    The transverse coupling 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_H1

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

    The unsorted right-sided eigenstates.
  • modusmtx_left

    The unsorted left-sided eigenstates.
  • k

    The unsorted wave numbers.
  • csoportseb

    The unsorted group velocities.
  • k_p

    The wave numbers of the eigenstates, that propagates or decays in the positive direction.
  • k_m

    The wave numbers of the eigenstates, that propagates or decays in the negative direction.
  • vcsop_p

    The group velocities of the eigenstates, that propagates or decays in the positive direction.
  • vcsop_m

    The group velocities of the eigenstates, that propagates or decays in the negative direction.
  • modusmtx_p

    The right sided wave functions of the eigenstates, that propagates or decays in the positive direction.
  • modusmtx_p_left

    The left-sided wave numbers of the eigenstates, that propagates or decays in the positive direction.
  • d_modusmtx_p

    The dual basis of the right-sided wave functions of the eigenstates, that propagates or decays in the positive direction.
  • modusmtx_m

    The right-sided wave functions of the eigenstates, that propagates or decays in the negative direction.
  • modusmtx_m_left

    The left-sided wave functions of the eigenstates, that propagates or decays in the negative direction.
  • d_modusmtx_m

    The dual basis of the right-sided wave functions of the eigenstates, that propagates or decays in the positive direction.
  • Normamtx

    The normalization matrix in the Greens function.
  • invNormamtx

    The inverse of the normalization matrix.
  • gsurf

    The matrix of the surface Greens function of the semi-infinite ribbon.
  • gsurfinv

    The inverse of the Greens function.
  • ginf

    The matrix of the Greens function of the infinite ribbon.
  • gfin

    The matrix of the surface Greens function of a finite ribbon.
  • Opt

    An instance of the structure Opt
  • param

    An instance of the structure param
  • gfininv

    The inverse of the surface Greens function of a finite ribbon.
  • Sigma

    The self-energy of the semi-infinite ribbon.
  • sort_tolerance

    A real number corresponding to the tolerance used to sort the left and right moving (decaying) modes.
  • HamiltoniansCreated

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

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

    A logical value. True if the vector potential was incorporated into the Hamiltonians or false otherwise.
  • GaugeTransformationApplied

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

    An instance of the interface CommonFunctions.

Methods

Surface_Green_function::InfGreenFunction

Description


Calculates the Greens function of the infinite lead between slabs z1 and z2. The calculated self-energy can be accessed by the method MemberRead.

Syntax

ret = interface.InfGreenFunction(z1,z2, varargin)

Parameters
z1 The ordinal number of the first slab.
z2 The ordinal number of the second slab.
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameters are:
  • z1points

    list of sites in the slab z1 to include in the calculations. By default each site in the given slab is included.
  • z2points

    list of sites in the slab z2 to include in the calculations. By default each site in the given slab is included.

Return
ret A matrix of the calculated Greens function. (The Greens function is also stored within the current interface.)



Surface_Green_function::FiniteGreenFunction

Description


Calculates the Greens function of a finite piece of the lead between slabs z1 and z2. The calculated self-energy can be accessed by the method MemberRead.

Syntax

ret = interface.FiniteGreenFunction(z1,z2, varargin)

Parameters
z1 The ordinal number of the first slab.
z2 The ordinal number of the second slab.
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameters are the following:
  • onlygfininv

    Logical value. Set true to calculate only the inverse of the surface Greens function gfininv, or false (default) to calculate gfin as well. In the latter case the attribute gfininv is set to empty at the end.

Return
ret A matrix of the calculated Greens function. (The Greens function is also stored within the current interface.)



Surface_Green_function::SurfaceGreenFunction

Description


Calculates the surface Greens function of a semi-infinite lead. The calculated Greens function is stored by the current interface.

Syntax

interface.SurfaceGreenFunction()




Surface_Green_function::SelfEnergy

Calculates the self-energy of the semi-infinite lead. The calculated self-energy can be accessed by the method MemberRead.

Syntax

interface.SelfEnergy()




Surface_Green_function::Group_Velocity

Description


Calculates the group velocities corresponding to the propagating states. The calculated group velocities are stored within the interface.

Syntax

interface.Group_Velocity(varargin)

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

    set 1 for calculations including the overlap integrals. By default the overlap integrals are omitted in the calculations.



Surface_Green_function::TrickyEigenvalues

Description


Calculates the wave numbers corresponding to the propagating states at a given energy. The calculated wave numbers are stored by within the interface.

Syntax

interface.TrickyEigenvalues(E)

Parameters
E the energy to be used in the calculations.



Surface_Green_function::CreateHamiltonians

Description


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

Syntax

interface.CreateHamiltonians( varargin)

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

    set 1 in order to save the created Hamiltonians into a file 'Hamiltoni_Lead_' + num2str(Hanyadik_Lead) + '.mat'.



Surface_Green_function::CalcSpektrum

Description


Calculates the band structure of the lead.

Syntax

spectrum = interface.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.

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



Surface_Green_function::saveLeads

Description


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

Syntax

interface.saveLeads()




Surface_Green_function::ShiftCoordinates

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

Syntax

interface.ShiftCoordinates( shift )

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



Surface_Green_function::SurfaceGreen_simple

Description


Calculates the surface Greens function of a semi-infinite lead by an analytical formula valid for square lattice without magnetic field. The calculated Greens function is stored by the current interface.

Syntax

interface.SurfaceGreen_simple( E )

Parameters
E The energy to be used in the calculations.



Surface_Green_function::ShiftLead

Description


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

Syntax

interface.SurfaceGreen_simple( E )

Parameters
Energy The energy to be used in the calculations.



Surface_Green_function::AddPotential

Description


Adds on-site potential to the Hamiltonian H-0.

Syntax

interface.AddPotential( V )

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



Surface_Green_function::isSuperconducting

Description


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

Syntax

ret = interface.isSuperconducting()

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



Surface_Green_function::CreateClone

Description


Creates a clone of the current interface.

Syntax

Surface_tmp = interface.CreateClone()

Return
Surface_tmp An instance of interface Surface_Green_function.



Surface_Green_function::Reset

Description


Resets all attributes in the interface.

Syntax

interface.Reset()




Surface_Green_function::MemberWrite

Sets the value of an attribute in the interface.

Syntax

interface.MemberWrite(MemberName, input)

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






Surface_Green_function::MemberRead

Description


Reads the value of an attribute in the interface.

Syntax

ret = interface.MemberRead(MemberName)

Parameters
MemberName The name of the attribute.

Return
ret The value of the attribute.






Surface_Green_function::MemberClear

Description


Clears the value of an attribute in the interface.

Syntax

interface.MemberClear(MemberName)

Parameters
MemberName The name of the attribute.