EigenProblemLead

  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 solve the eigenproblem of a translational invariant leads and calculate the group velocities.

Available

EQuUs v4.8 or later

Class references

Syntax

object = EigenProblemLead(Opt, param, varargin)

Parameters
Opt An instance of the structure Opt.
param An instance of structure param containing the physical parameters.
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameters are identical to the optional parameters of class SVDregularizationLead

Attributes

  • retarted

    true for calculating the retarded Green function, or false for the advanced Green function.
  • modusmtx

    The unsorted right-sided eigenstates.
  • modusmtx_left

    The unsorted left-sided eigenstates.
  • expk

    The unsorted wave numbers in form exp(1i*k).
  • csoportseb

    The unsorted group velocities.
  • expk_p

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

    The wave numbers of the eigenstates in form exp(1i*k), that propagates or decays in the negative direction.
  • vcsop_p

    The group velocities of the eigenstates in form exp(1i*k), 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_m

    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_p

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

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

    A structure open_channels containing info on the open channels.
  • degenerate_k_subspaces

    Logical matrix containing the degenerate k subspaces.

Methods (public)

Methods (private)

Methods (protected)

EigenProblemLead::Determine_Open_Channels

Description

Determine the open channels in the lead. The data are stored within the attribute open_channels.

Syntax

ret = object.Determine_Open_Channels()

Return
ret An instance of structure open_channels containing info on the open channels.




EigenProblemLead::szetvalaszto

Description

Sorts the left and right propagating (decaying) modes.

Syntax

ret = object.szetvalaszto(tolerance)

Parameters
tolerance The tolerance to be used during the sort.




EigenProblemLead::Group_Velocity

Description

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

Syntax

object.Group_Velocity()




EigenProblemLead::TrukkosSajatertekek

Description

Calculates the wave numbers corresponding to the propagating states at given energy. The calculated wave numbers are stored within the object. The normalization matrix is set to empty.

Syntax

object.TrukkosSajatertekek( E )

Parameters
E The energy value used in the calculations.




EigenProblemLead::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

    Set true to create empty object without copying the attributes.


Return
ret An instance of interface EigenProblemLead.




EigenProblemLead::Reset

Description

Resets all attributes in the object.

Syntax

object.Reset()




EigenProblemLead::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.




EigenProblemLead::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.




EigenProblemLead::Clear

Description

Clears the value of an attribute in the object.

Syntax

object.Clear(MemberName)

Parameters
MemberName The name of the attribute.




EigenProblemLead::GinfCalcWithDualModes

Description

Calculates the Green function of the infinite ribbon with dual modes.

Syntax

ret = object.GinfCalcWithDualModes(z1,z2, z1points, z2points)

Parameters
z1 The index of the first slab.
z2 The index of the second slab.
z1points Site indexes in the slab at z1.
z2points Site indexes in the slab at z2.


Return
ret A matrix of the calculated Greens function.




EigenProblemLead::GinfCalcWithLeftModes

Description

CCalculates the Green function of the infinite ribbon with with the left-sided modes

Syntax

ret = object.GinfCalcWithLeftModes(z1,z2, z1points, z2points)

Parameters
z1 The index of the first slab.
z2 The index of the second slab.
z1points Site indexes in the slab at z1.
z2points Site indexes in the slab at z2.


Return
ret A matrix of the calculated Greens function.




EigenProblemLead::SelfEnergyCalcWithDualModes

Description

Calculates the self energy with dual modes according to Eqs (17) and (36) in PRB 78 035407

Syntax

ret = object.SelfEnergyCalcWithDualModes()


Return
ret Returns with the calculated self energy.




EigenProblemLead::SelfEnergyCalcWithLeftModes

Description

Calculates the self energy with the left-sided modes according to Eqs (20), (17) and (36) in PRB 78 035407

Syntax

ret = object.SelfEnergyCalcWithLeftModes()


Return
ret Returns with the calculated self energy.




EigenProblemLead::GsurfSzamoloWithDualModes

Description

Calculates the surface Green function with dual modes. The calculated Green function is stored by the current object.

Syntax

object.GsurfSzamoloWithDualModes()




EigenProblemLead::GsurfSzamoloWithLeftModes

Description

Calculates the surface Green function with the left-sided modes according to Eq (33) in PRB 78, 035407 (2008). The calculated Green function is stored by the current object.

Syntax

object.GsurfSzamoloWithLeftModes()




EigenProblemLead::NormamtxSzamoloWithDualModes

Description

Calculates the normalization matrix to calculate the Green function using the dual modes. The calculated normalization matrix is stored by the current object.

Syntax

object.NormamtxSzamoloWithDualModes()




EigenProblemLead::NormamtxSzamoloWithLeftModes

Description

Calculates the normalization matrix to calculate the Green function using the left-sided modes. The calculated normalization matrix is stored by the current object.

Syntax

object.NormamtxSzamoloWithLeftModes()




EigenProblemLead::Unitary_Transform

Description

Transforms the effective Hamiltonians by a unitary transformation.

Syntax

object.Unitary_Transform( Umtx )

Parameters
Umtx The unitary matrix to be used in the transformations.




EigenProblemLead::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.




EigenProblemLead::calcDualModes

Description

Calculates the dual modes. The dual modes is stored by the current object.

Syntax

object.calcDualModes()




EigenProblemLead::CalcDualModesEigenvec

Description

Calculates the dual modes by inverting the right-sided eigenvectors. The dual modes is stored by the current object.

Syntax

ret = object.CalcDualModesEigenvec( modusmtx )


Parameters
modusmtx The right-sided eigenvectors.


Return
ret Returns with the calculated dual modes.




EigenProblemLead::CalcDualModesEigenvec

Description

Calculates the dual modes by inverting the right-sided eigenvectors. The dual modes is stored by the current object.

Syntax

ret = object.CalcDualModesEigenvec( modusmtx_left )


Parameters
modusmtx_left The right-sided eigenvectors.
vcsop The group velocities.


Return
ret Returns with the calculated dual modes.




EigenProblemLead::Determine_Degenerate_k_subspaces

Description

Determine the degenerate k subspaces for which the current operator needs to be diagonalized.

Syntax

object.Determine_Degenerate_k_subspaces()




EigenProblemLead::NormalizeModes

Description

Normalizes the wave functions with the overlap integrals (Eq (9) in PRB 78 035407

Syntax

object.NormalizeModes()




EigenProblemLead::Initialize

Description

Initializes object properties.

Syntax

object.Initialize()