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/.
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.
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 |
- 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.
- InfGreenFunction
- Gamma
- SelfEnergy
- FiniteGreenFunction
- SurfaceGreenFunction
- NormamtxSzamolo
- TrukkosSajatertekek
- ShiftLead
- AddPotential
- Unitary_Transform
- CreateClone
- Reset
- Write
- Read
- Clear
- GinfCalcWithDualModes
- GinfCalcWithLeftModes
- SelfEnergyCalcWithDualModes
- SelfEnergyCalcWithLeftModes
- GsurfSzamoloWithDualModes
- GsurfSzamoloWithLeftModes
- NormamtxSzamoloWithDualModes
- NormamtxSzamoloWithLeftModes
- calcDualModes
- CalcDualModesEigenvec
- CalcDualModesEigenvecWithLeftModes
- Initialize
Lead::InfGreenFunction
Calculates the Greens function of the infinite lead between slabs z1 and z2. The calculated Greens function is stored within the current object.
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
Calculates the effective coupling of the lead to the scattering region according to Eq (3) in Eur. Phys. J. B 53, 537-549 (2006).
ret = object.Gamma(z1,z2, varargin)
Return | |
---|---|
ret | The matrix of the effective coupling. |
Lead::SelfEnergy
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.
ret = object.SelfEnergy()
Return | |
---|---|
ret | Returns with the calculated self energy. |
Lead::FiniteGreenFunction
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.
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
Calculates the surface Green function of a semi-infinite lead. The calculated Green function is stored by the current object.
object.SurfaceGreenFunction(varargin)
Parameters | |
---|---|
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameters are:
|
Lead::NormamtxSzamolo
The normalization matrix to calculate the Green function. The calculated normalization matrix is stored by the current object.
object.NormamtxSzamolo()
Lead::TrukkosSajatertekek
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.
object.TrukkosSajatertekek( E )
Parameters | |
---|---|
E | The energy value used in the calculations. |
Lead::ShiftLead
Shifts the on-site energies in the leads by a given energy. The normalization matrix is set to empty.
object.ShiftLead( E )
Parameters | |
---|---|
Energy | The energy value. |
Lead::AddPotential
Adds on-site potential to the Hamiltonian H0. The normalization matrix is set to empty.
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
Transforms the effective Hamiltonians and the calculated surface Green operator and selfenergy by a unitary transformation
object.Unitary_Transform( Umtx )
Parameters | |
---|---|
Umtx | The unitary matrix to be used in the transformations. |
Lead::CreateClone
Creates a clone of the current object.
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
Resets all attributes in the object.
object.Reset()
Lead::Write
Sets the value of an attribute in the object.
object.Write(MemberName, input)
Parameters | |
---|---|
MemberName | The name of the attribute to be set. |
input | The value to be set. |
Lead::Read
Query for the value of an attribute in the object.
ret = object.Read(MemberName)
Parameters | |
---|---|
MemberName | The name of the attribute. |
Return | |
---|---|
ret | The value of the attribute. |
Lead::Clear
Clears the value of an attribute in the object.
object.Clear(MemberName)
Parameters | |
---|---|
MemberName | The name of the attribute. |
Lead::GinfCalcWithDualModes
Calculates the Green function of the infinite ribbon with dual modes.
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
CCalculates the Green function of the infinite ribbon with with the left-sided modes
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
Calculates the self energy with dual modes according to Eqs (17) and (36) in PRB 78 035407
ret = object.SelfEnergyCalcWithDualModes()
Return | |
---|---|
ret | Returns with the calculated self energy. |
Lead::SelfEnergyCalcWithLeftModes
Calculates the self energy with the left-sided modes according to Eqs (20), (17) and (36) in PRB 78 035407
ret = object.SelfEnergyCalcWithLeftModes()
Return | |
---|---|
ret | Returns with the calculated self energy. |
Lead::GsurfSzamoloWithDualModes
Calculates the surface Green function with dual modes. The calculated Green function is stored by the current object.
object.GsurfSzamoloWithDualModes()
Lead::GsurfSzamoloWithLeftModes
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.
object.GsurfSzamoloWithLeftModes()
Lead::NormamtxSzamoloWithDualModes
Calculates the normalization matrix to calculate the Green function using the dual modes. The calculated normalization matrix is stored by the current object.
object.NormamtxSzamoloWithDualModes()
Lead::NormamtxSzamoloWithLeftModes
Calculates the normalization matrix to calculate the Green function using the left-sided modes. The calculated normalization matrix is stored by the current object.
object.NormamtxSzamoloWithLeftModes()
Lead::calcDualModes
Calculates the dual modes. The dual modes is stored by the current object.
object.calcDualModes()
Lead::CalcDualModesEigenvec
Calculates the dual modes by inverting the right-sided eigenvectors. The dual modes is stored by the current object.
ret = object.CalcDualModesEigenvec( modusmtx )
Parameters | |
---|---|
modusmtx | The right-sided eigenvectors. |
Return | |
---|---|
ret | Returns with the calculated dual modes. |
Lead::CalcDualModesEigenvecWithLeftModes
Calculates the dual modes using the left-sided eigenvectors. The dual modes is stored by the current object.
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
Initializes object attributes.
ret = object.Initialize( modusmtx_left, vcsop )
- Log in to post comments