Transport_Interface
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 to evaluate the Dyson equation and to calculate the scattering matrix.
Syntax
interface = Transport_Interface(E, Opt, param, varargin)
Parameters |
E
|
The energy to be used in the calculations.
|
Opt
|
Structure containing the computational parameters. See more details about the data structure here.
|
varargin
|
Optional parameters given by a sequence ...'name', value,... . Possible parameter names are:
ForcedDecimation overrides the decimation algorithm given by parameter Opt.Decimation
|
Attributes
Methods
Transport_Interface::SurfaceGreenFunctionCalculator
Create an instance of the interface Surface_Green_function.
Syntax
interface.SurfaceGreenFunctionCalculator(idx, varargin)
Parameters |
idx
|
The ordinal number of the considered lead.
|
varargin
|
Optional parameters given by a sequence ...'name', value,... . Possible parameters are:
createCore Set true for creating the interface Surface_Green_function without any further calculations, or false (default) otherwise.
Just_Create_Hamiltonians Set true for creating Hamiltonians of the lead without any further calculations, or false (default) otherwise.
shiftLead A real number. If given, the on-site potentials of the sites in the lead are shifted by this value.
coordinates_shift An integer. If given, the coordinates of the sites in the lead are shifted by coordinates_shift*lattice vector.
potential A vector of real numbers. If given, the on-site potentials of the sites in the lead are shifted by the corresponding component of this vector.
Surface_tmp An interface Surface_Green_function. If given, the surface Greens function is calculated within this interface.
gauge_field A function handle to perform gauge transformation on the Hamiltonians of the lead.
SelfEnergy Logical value. Set true to calculate the self energies of the leads, or false (default) otherwise.
SurfaceGreensFunction Logical value. Set true (default) to calculate the surface Greens functions of the leads, or false otherwise.
q The tranverse momentum for transverse computations.
|
Transport_Interface::ScatterCalc
Calculates the effective (decimated) Hamiltonian of the scattering region.
Syntax
interface.ScatterCalc()
Transport_Interface::LeadCalc
Invokes the function SurfaceGreenFunctionCalculator for each lead.
Syntax
Surface = interface.LeadCalc(varargin)
Parameters |
varargin
|
Optional parameters given by a sequence ...'name', value,... . Possible parameters are:
shiftLead A real number. If given, the on-site potentials of the sites in the lead are shifted by this value.
coordinates_shift An integer. If given, the coordinates of the sites in the lead are shifted by coordinates_shift*lattice vector.
potential A vector of real numbers. If given, the on-site potentials of the sites in the lead are shifted by the corresponding component of this vector.
gauge_field A function handle to perform gauge transformation on the Hamiltonians of the lead.
createCore Set 1 for creating the interfaces Surface_Green_function without any further calculations, or false (default) otherwise.
SelfEnergy Logical value. Set true to calculate the self energies of the leads, or false (default) otherwise.
SurfaceGreensFunction Logical value. Set true (default) to calculate the surface Greens functions of the leads, or false otherwise.
leads The ordinal number of the leads to be calculated (organized into a list).
q The tranverse momentum for transverse computations.
|
Transport_Interface::LeadSave
Saves the Hamiltonians of each lead.
Syntax
interface.LeadSave()
Transport_Interface::SmatrixCalc
Create an instance of the interface Surface_Green_function.
Syntax
[S,M] = interface.SmatrixCalc(idx, varargin)
Return |
S
|
The scattering matrix.
|
M
|
A vector containing the opened channels in each lead.
|
Transport_Interface::Conduktance
Calculates the conductance matrix from the scattering matrix.
Syntax
C = interface.Conduktance()
Return |
C
|
The conduction matrix.
|
Transport_Interface::DysonEq
Invokes the Dyson equation.
Syntax
Gret = interface.DysonEq(varargin)
Parameters |
varargin
|
Optional parameters given by a sequence ...'name', value,... . Possible parameters are:
CustomDyson A function handle of the Dyson equation to be evaluated. If not given, the function handle given at the previous call is used instead.
|
Return |
G
|
The calculated Greens function.
|
Transport_Interface::Read
Invokes the Dyson equation.
Syntax
ret = interface.Read( MemberName )
Parameters |
MemberName
|
The name of the attribute.
|
Return |
ret
|
The value of the attribute.
|
Transport_Interface::setEnergy
Set the energy to be used in the calculations.
Syntax
interface.setEnergy( Energy )
Parameters |
Energy
|
The energy. (can be a complex number)
|
Transport_Interface::replaceLead
Adds/replaces a lead to/in the system.
Syntax
interface.replaceLead( Surface_tmp, idx )
Parameters |
Surface_tmp
|
An instance of the interface Surface_Green_function.
|
idx
|
The ordinal number of the lead to be added/replaced.
|
Transport_Interface::CreateClone
Creates a clone of the current interface.
Syntax
interface = interface.CreateClone()
|