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
- true for calculating the retarded Green function, or false for the advanced Green function.
- The unsorted right-sided eigenstates.
- The unsorted left-sided eigenstates.
- The unsorted wave numbers in form exp(1i*k).
- The unsorted group velocities.
- The wave numbers of the eigenstates, that propagates or decays in the positive direction.
- The wave numbers of the eigenstates in form exp(1i*k), that propagates or decays in the negative direction.
- The group velocities of the eigenstates in form exp(1i*k), that propagates or decays in the positive direction.
- The group velocities of the eigenstates, that propagates or decays in the negative direction.
- The right sided wave functions of the eigenstates, that propagates or decays in the positive direction.
- The left-sided wave numbers of the eigenstates, that propagates or decays in the positive direction.
- The dual basis of the right-sided wave functions of the eigenstates, that propagates or decays in the positive direction.
- The right-sided wave functions of the eigenstates, that propagates or decays in the negative direction.
- The left-sided wave functions of the eigenstates, that propagates or decays in the negative direction.
- The dual basis of the right-sided wave functions of the eigenstates, that propagates or decays in the positive direction.
- A real number corresponding to the tolerance used to sort the left and right moving (decaying) modes.
- A structure open_channels containing info on the open channels.
- Logical matrix containing the degenerate k subspaces.
Methods (public)
- Determine_Open_Channels
- szetvalaszto
- Group_Velocity
- TrukkosSajatertekek
- CreateClone
- Unitary_Transform
- CreateClone
- Reset
- Write
- Read
- Clear
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:
|
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()
- Log in to post comments