Lead
Copyright (C) 2009-2017 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 providing methods to calculate the retarded, advanced, lesser and greater
- Green operator of an infinite ribbon.
- surface Greens operator of a semi-infinite ribbon.
- surface Greens operator of a finite piece of the lead.
- and the self-energy of the semi-infinite ribbon.
Class references
Syntax
object = Lead(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 EigenProblemLead |
Attributes
- Function handle to calculate the self energy.
- Function handle to calculate the infinite Greens function.
- The normalization matrix in the Greens function.
- The inverse of the normalization matrix.
- The matrix of the surface Green function of the semi-infinite ribbon.
- The inverse of the surface Green function.
- The matrix of the Green function of the infinite ribbon.
- The matrix of the surface Green function of a finite ribbon.
- The inverse of the surface Green function of a finite ribbon.
- The self-energy of the semi-infinite ribbon.
Methods (public)
- InfGreenFunction
- Gamma
- SelfEnergy
- FiniteGreenFunction
- SurfaceGreenFunction
- NormamtxSzamolo
- TrukkosSajatertekek
- ShiftLead
- AddPotential
- Unitary_Transform
- CreateClone
- Reset
- Write
- Read
- Clear
Methods (protected)
- GinfCalcWithDualModes
- GinfCalcWithLeftModes
- SelfEnergyCalcWithDualModes
- SelfEnergyCalcWithLeftModes
- GsurfSzamoloWithDualModes
- GsurfSzamoloWithLeftModes
- NormamtxSzamoloWithDualModes
- NormamtxSzamoloWithLeftModes
- calcDualModes
- CalcDualModesEigenvec
- CalcDualModesEigenvecWithLeftModes
- Initialize
Lead::InfGreenFunction
Description
Calculates the Greens function of the infinite lead between slabs z1 and z2. The calculated Greens function is stored within the current object.
Syntax
ret = object.InfGreenFunction(z1,z2, varargin)
Parameters | |
---|---|
z1 | The index of the first slab. |
z2 | The index of the second slab. |
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameters are:
|
Return | |
---|---|
ret | A matrix of the calculated Greens function. (The Greens function is also stored within the current object.) |
Lead::Gamma
Description
Calculates the effective coupling of the lead to the scattering region according to Eq (3) in Eur. Phys. J. B 53, 537-549 (2006).
Syntax
ret = object.Gamma(z1,z2, varargin)
Return | |
---|---|
ret | The matrix of the effective coupling. |
Lead::SelfEnergy
Description
Calculates the self energy of the semi-infinite lead according to Eq (36) of Ref PRB 78, 035407 (2008). The calculated self energy is stored within the current object.
Syntax
ret = object.SelfEnergy()
Return | |
---|---|
ret | Returns with the calculated self energy. |
Lead::FiniteGreenFunction
Description
Calculates the Green function of a finite piece of the lead between slabs z1 and z2. The calculated Greens function is stored by the current object.
Syntax
ret = object.FiniteGreenFunction(z1,z2, varargin)
Parameters | |
---|---|
z1 | The index of the first slab. |
z2 | The index of the second slab. |
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameters are:
|
Return | |
---|---|
ret | A matrix of the calculated Green function. (The Green function is also stored within the current object.) |
Lead::SurfaceGreenFunction
Description
Calculates the surface Green function of a semi-infinite lead. The calculated Green function is stored by the current object.
Syntax
object.SurfaceGreenFunction(varargin)
Parameters | |
---|---|
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameters are:
|
Lead::NormamtxSzamolo
Description
The normalization matrix to calculate the Green function. The calculated normalization matrix is stored by the current object.
Syntax
object.NormamtxSzamolo()
Lead::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. |
Lead::ShiftLead
Description
Shifts the on-site energies in the leads by a given energy. The normalization matrix is set to empty.
Syntax
object.ShiftLead( E )
Parameters | |
---|---|
Energy | The energy value. |
Lead::AddPotential
Description
Adds on-site potential to the Hamiltonian H0. The normalization matrix is set to empty.
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. |
Lead::Unitary_Transform
Description
Transforms the effective Hamiltonians and the calculated surface Green operator and selfenergy by a unitary transformation
Syntax
object.Unitary_Transform( Umtx )
Parameters | |
---|---|
Umtx | The unitary matrix to be used in the transformations. |
Lead::CreateClone
Description
Creates a clone of the current object.
Syntax
ret = object.CreateClone()
Parameters | |
---|---|
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameters are the following:
empty Logical value. Set true to create a clone without copying the attributes. |
Return | |
---|---|
ret | An instance of interface Surface_Green_function. |
Lead::Reset
Description
Resets all attributes in the object.
Syntax
object.Reset()
Lead::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. |
Lead::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. |
Lead::Clear
Description
Clears the value of an attribute in the object.
Syntax
object.Clear(MemberName)
Parameters | |
---|---|
MemberName | The name of the attribute. |
Lead::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. |
Lead::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. |
Lead::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. |
Lead::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. |
Lead::GsurfSzamoloWithDualModes
Description
Calculates the surface Green function with dual modes. The calculated Green function is stored by the current object.
Syntax
object.GsurfSzamoloWithDualModes()
Lead::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()
Lead::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()
Lead::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()
Lead::calcDualModes
Description
Calculates the dual modes. The dual modes is stored by the current object.
Syntax
object.calcDualModes()
Lead::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. |
Lead::CalcDualModesEigenvecWithLeftModes
Description
Calculates the dual modes using the left-sided eigenvectors. The dual modes is stored by the current object.
Syntax
ret = object.CalcDualModesEigenvecWithLeftModes( modusmtx_left, vcsop )
Parameters | |
---|---|
modusmtx_left | The right-sided eigenvectors. |
vcsop | The group velocities. |
Return | |
---|---|
ret | Returns with the calculated dual modes. |
Lead::Initialize
Description
Initializes object attributes.
Syntax
ret = object.Initialize( modusmtx_left, vcsop )
- Log in to post comments