Favago Transport Programming Interface

Introduction

Interfaces

root/

root/utils

Data structures

Examples







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.

Return
Surface_tmp An instance of the interface Surface_Green_function.






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.

Return
Surface A list of the created Surface_Green_function instances.






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()


Return
interface An instance of interface Transport_Interface.