Transport Interface

  Copyright (C) 2009-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

A class to evaluate the Dyson equation and to calculate the scattering matrix.

References

Syntax

object = Transport_Interface(E, Opt, param, varargin)

Parameters
E The energy to be used in the calculations.
Opt An instance of structure Opt.
param An instance of structure param.
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameter names are:

Attributes (protected)

  • G

    The calculated Green's function.
  • Smatrix

    The calculated scattering matrix.
  • nyitott_csatornak

    Array of the numbers of the open channels in the leads --- OBSOLETE.
  • open_channels

    A list of structures open_channels describing the open channels in the leads.
  • Conductance_Matrix

    The matrix of the calculated conductance between the leads.
  • Dysonfunc

    A function handle of the Dyson equation.
  • CreateH

    An instance of class CreateHamiltonians.
  • PeierlsTransform

    An instance of class Peierls.
  • Leads

    A list of Lead instances describing the leads.
  • E

    The energy to be used in the calculations.
  • param

    An instance of the structure param

Methods (public)

Methods (private)

Transport_Interface::ScatterCalc

Description

Calculates the effective (decimated) Hamiltonian of the scattering region. (Obsolete)

Syntax

object.ScatterCalc()




Transport_Interface::LeadCalc

Description

Invokes the function SurfaceGreenFunctionCalculator for each lead.

Syntax

Surface = object.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.
  • transversepotential

    A function handle $$pot = f(coordinates)$$, or $$pot=f( Lead, Energy)$$ of the transverse potential applied in the lead. (coordinates is an instance of structure coordinates, and Lead is an instance of class CreateLeadHamiltonians or its derived class. Energy is the current energy value.)
  • gauge_field

    A function handle to perform gauge transformation on the Hamiltonians of the lead.
  • createCore

    Set 1 for creating the classes 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

    An array of ordinal numbers of the leads to be calculated.
  • leadmodel

    A function handle $$Surface_tmp=f( idx, E, varargin )$$ of the alternative lead model with equivalent inputs and return values as SurfaceGreenFunctionCalculator and with E standing for the energy.
  • CustomHamiltonian

    An instance of class Custom_Hamiltonians or its derived class
  • Just_Create_Hamiltonians

    Logical value. Set true if only the creation of the Hamiltonians is desired, false (default) otherwise.
  • q

    The tranverse momentum for transverse computations.

Return
Surface A list of the created Surface_Green_function instances.



Transport_Interface::DysonEq

Description

Invokes the function handle of the Dyson equation.

Syntax

Gret = object.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 by the present class is used instead.

Return
Gret The calculated Green's operator. The calculated Green's operator is also stored within the class in attribute G



Transport_Interface::Conduktance2

Description

Calculates the conductance using Eq (19) in PRB 73 085414

Syntax

C = object.Conduktance2()

Return
C The conductance.



Transport_Interface::Conduktance

Description

Calculates the conductance matrix from the scattering matrix.

Syntax

C = object.Conduktance()

Return
C The conductance matrix.



Transport_Interface::SmatrixCalc

Description

Calculates the scattering matrix.

Syntax

[S,M] = object.SmatrixCalc()

Return
S The scattering matrix.
M A vector containing the open channels in each lead.



Transport_Interface::SurfaceGreenFunctionCalculator

Description

Create an instance of the class Surface_Green_function and calculates the surface Green's function or the self energy.

Syntax

object.SurfaceGreenFunctionCalculator(idx, varargin)

Parameters
idx The ordinal number of the considered lead in the attribute Surface
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.
  • transversepotential

    A function handle $$pot = f(coordinates)$$, or $$pot=f( Lead, Energy)$$ of the transverse potential applied in the lead. (coordinates is an instance of structure coordinates, and Lead is an instance of class CreateLeadHamiltonians or its derived class. Energy is the current energy value.)
  • Surface_tmp

    An instance of class Surface_Green_function. If given, the surface Greens function is calculated within this object.
  • 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.
  • leadmodel

    A function handle $$Surface_tmp=f( idx, E, varargin )$$ of the alternative lead model with equivalent inputs and return values as SurfaceGreenFunctionCalculator and with E standing for the energy.
  • CustomHamiltonian

    An instance of class Custom_Hamiltonians
  • q

    The tranverse momentum quantum number for transverse computations.

Return
Surface_tmp An instance of the class Surface_Green_function.



Transport_Interface::setEnergy

Description

Set the energy to be used in the calculations.

Syntax

object.setEnergy( Energy )

Parameters
Energy The energy. (can be a complex number)



Transport_Interface::Read

Description

Query for the value of an attribute in the interface.

Syntax

ret = object.Read( MemberName )

Parameters
MemberName The name of the attribute.

Return
ret The value of the attribute.



Transport_Interface::replaceLead

Description

Adds/replaces a lead to/in the system.

Syntax

object.replaceLead( Surface_tmp, idx )

Parameters
Surface_tmp An instance of the class Surface_Green_function.
idx The Identification number of the lead to be added/replaced.



Transport_Interface::LeadSave

Description

Saves the Hamiltonians of each lead.

Syntax

object.LeadSave()




Transport_Interface::CreateClone

Description

Creates a clone of the current object.

Syntax

object = object.CreateClone()


Return
object A cloned instance of the present class.



Transport_Interface::GetM

Description

Gets the width of the leads

Syntax

M = object.GetM()


Return
M Returns with an array of the lead widths.



Transport_Interface::GetM

Description

Gets the width of the leads

Syntax

M = object.GetM()


Return
M Returns with an array of the lead widths.



Transport_Interface::Get_Neff

Description

Gets the size of the effective Hamiltonians of the leads

Syntax

Neffs = object.Get_Neff()


Return
Neffs An array of size of the effective Hamiltonians of the leads



Transport_Interface::setLeadParams

Description

Sets the lead_param structrure in a given lead

Syntax

object.setLeadParams( params, leadnum)


Parameters
params An instance of structure lead_param.
leadnum Id number of the lead to be adjusted.



Transport_Interface::setScatterParams

Description

Sets the lead_param structrure in a given lead

Syntax

object.setScatterParams( params)


Parameters
params An instance of structure scatter_param.



Transport_Interface::InputParsing

Description

Parses the optional parameters for the class constructor.

Syntax

object.InputParsing(varargin)

Parameters
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameters are: