Favago Transport Programming Interface

Introduction

Interfaces

root/

root/utils

Data structures

Examples







Ribbon

  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 perform transport calculations on a finite ribbon.

Syntax

interface = Ribbon(varargin)

Parameters
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
  • width

    Integer. Gives the number of the atomic sites in the cross section of the ribbon.
  • height

    Integer. Gives the height of the ribbon in units of the lattice vector.
  • filenameIn

    Input filename for the xml input structure.
  • filenameOut

    Output filename for the xml input structure.
  • E

    The energy used in the calculations.
  • EF

    The Fermi energy in eV.
  • phi

    A vector of pair potential phases in the left (1st) and right (2nd) superconductor
  • silent

    Set true for suppress the displaying of the output messages.
  • potential

    A function handle of the onsite potential: pot =f( coordinates )
  • transversepotential

    A function handle $$y=f( coordinates)$$ to calculate the transverse potential in the cross section of the ribbon.
  • PNpotential

    The height of the pn potential across the ribbon. (Obsolete)
  • PNeta

    The width of the pn potential step in units of the total width of the ribbon. ($$0 less PNeta less 1$$) (Obsolete)
  • Opt

    An instance of the structure Opt. Do not give if want to parse the xml file.
  • param

    An instance of the structure param. Do not give if want to parse the xml file.
  • q

    The tranverse momentum for transverse computations.
  • tree

    The xml tree of the input file. Do not give if want to parse the xml file.

Attributes

Methods

Ribbon::Transport

Calculates the conductance of a finite ribbon connected to the leads in the "contact/scattering center/contact" arrangement. Use for development purpose only.

Syntax

[Conductivity,aspect_ratio,Conductance,ny,DeltaC,S] = interface.Transport(Energy)

Parameters
Energy The energy to be used in the calculations.
Parameters
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
  • constant_channels

    Logical value. Set true (default) to keep constant the number of the open channels in the leads for each energy value, or false otherwise.
  • ContactPotInterface

    A function handle of the contact potential in the interface regions.
  • FiniteGreensFunctionFromHamiltonian

    Logical value. Set true calculate the surface Greens function of the scattering region from the Hamiltonaian of the scattering region, or false (default) to calculate it by the fast way.
  • decimateDyson

    Logical value. Set true (default) to decimate the sites of the scattering region in the Dyson equation.
  • PotInScatter

    A function handle of the potential in the scattering region (used when FiniteGreensFunctionFromHamiltonian=true).

Return
Conductivity The calculated conductivity ($$Conductivity = Conductance/aspect_ratio$$).
aspect_ratio The aspect_ratio of the scattering region ($$aspect_ratio = width/height$$).
Conductance The calculated conductance in the units of $$2h/e$$.
ny The number of the open channels in the leads.
DeltaC The standard deviation of the calculated transmission probabilities.
S The scattering matrix.






Ribbon::CreateScatter

Creates an instance of the interface CreateHamiltoninans for the scattering region.

Syntax

Surface_tmp = interface.CreateScatter()







Ribbon::ShiftLeads

Shifts the on-site potential in the leads.

Syntax

interface.ShiftLeads( Energy )

Parameters
Energy The energy to shift the on-site potential in the leads.

Return
Surface_tmp An instance of the interface Surface_Green_function describing the unit cell of the scattering region.






Ribbon::setEnergy

Sets the energy to be used in the calculations.

Syntax

interface.setEnergy( Energy )

Parameters
Energy The energy to be used in the calculations.






Ribbon::CustomDysonFunc

Custom Dyson function for connecting the leads to the scattering region in the "contact/scattering center/contact" arrangement.

Syntax

Gret = interface.CustomDysonFunc( varargin )

Parameters
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
  • gfininv

    The inverse of the Greens function of the scattering region. For default the inverse of the attribute G is used.
  • constant_channels

    Logical value. Set true (default) to keep constant the number of the open channels in the leads for each energy value, or false otherwise.
  • onlyGinverz

    Logical value. Set true to calculate only the inverse of the total Greens function, or false (default) to calculate G as well.
  • recalculateSurface

    A vector of the ordinal numbers of the lead surfaces to be recalculated.
  • Surface_sc

    A list of two interfaces Surface_Green_function storing the coupling Hamiltonians between the central ribbon and the interface regions (if there are any). If not given, the attribure Surface_tmp is cloned to serve this role.
  • decimate

    Logical value. Set true (default) to eliminate all inner sites in the Greens function and keep only the surface sites that directly connect to the leads. Set false to omit the decimation procedure.
  • kulso_szabfokok

    The list of sites to be left after the decimation procedure.
  • SelfEnergy

    Logical value. Set true for using the self-energy construction in the Dyson equation, or false to use the surface Greens functions instead.

Return
Gret The calculated Greens function.






Ribbon::CalcFiniteGreensFunction

Calculates the surface Greens function of a finite ribbon. The calculated Greens function is stored in the G attribute.

Syntax

interface.CalcFiniteGreensFunction( varargin )

Parameters
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
  • gauge_trans

    Logical value. Set true to perform gauge transformation on the Green's function and on the Hamiltonians.
  • ContactPotInterface

    A function handle of the contact potential in the interface regions.
  • onlyGinv

    Logical value. Set true to calculate only the inverse of the surface Greens function Ginv, or false (default) to calculate G as well. In the latter case the attribute Ginv is set to empty at the end.






Ribbon::CalcFiniteGreensFunctionFromHamiltonian

Calculates the surface Greens function of a finite ribbon from the whole Hamiltonian. Useful for calculations with transverse momentum, and for systems where the unit cells are not translational invariant. The calculated Greens function is stored in the G attribute.

Syntax

interface.CalcFiniteGreensFunctionFromHamiltonian( varargin )

Parameters
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
  • gauge_trans

    Logical value. Set true to perform gauge transformation on the Green's function and on the Hamiltonians.
  • ContactPotInterface

    A function handle of the contact potential in the interface regions.
  • onlyGinv

    Logical value. Set true to calculate only the inverse of the surface Greens function Ginv, or false (default) to calculate G as well. In the latter case the attribute Ginv is set to empty at the end.
  • PotInScatter

    A fuction handle for the potential to be applied in the Hamiltonian. Does not need to be translational invariant along the unit cells of the scattering center.






Ribbon::CalcSpectralFunction

Calculates the spectral density function.

Syntax

[A,G] = interface.CalcSpectralFunction( varargin )

Parameters
Energy The energy to calculate the spectral density function. For bound states use an energy with a small imaginary part.
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
  • constant_channels

    Logical value. Set true (default) to keep constant the number of the open channels in the leads for each energy value, or false otherwise.
  • ContactPotInterface

    A function handle of the contact potential in the interface regions.
  • FiniteGreensFunctionFromHamiltonian

    Logical value. Set true calculate the surface Greens function of the scattering region from the Hamiltonaian of the scattering region, or false (default) to calculate it by the fast way.
  • decimateDyson

    Logical value. Set true (default) to decimate the sites of the scattering region in the Dyson equation.
  • PotInScatter

    A function handle of the potential in the scattering region (used when FiniteGreensFunctionFromHamiltonian=true).

Return
A The spectral density function.
G The calculated Greens function.






Ribbon::CreateRibbon

Creates an instance of the interface Surface_Green_function describing the unit cell in the ribbon. The created interface is stored in the attribute ws_ribbon.Surface_tmp. On hexagonal lattice the list ws_ribbon.Surface_interface containing of instances of Surface_Green_function is also created. The members of the list are to be used as the interface regions between the leads and the scattering region.

Syntax

interface.CreateRibbon( vavargin )

Parameters
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
  • justHamiltonians

    Logical value. Set true to create the Hamiltonian of the unit cell without performing any further calculations.
  • ContactPotInterface

    A function handle of the contact potential in the interface regions.
  • forcedInterface

    Logical value. Set true to use interface region even when it is not necessary, or false (default) otherwise.






Ribbon::CreateInterface

Creates an instance of the interfaces Surface_Green_function describing an interface region between a given lead and the scattering region. The created interface is stored within the list of ws_ribbon.Surface_interface.

Syntax

interface.CreateInterface( idx, vavargin )

Parameters
idx The ordinal number of the lead.
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
  • ContactPotInterface

    A function handle of the contact potential in the interface regions.






Ribbon::ApplyMagneticField

Applies the magnetic filed in the Hamiltonian of the unit cell.

Syntax

interface.ApplyMagneticField()







Ribbon::DecimateInterface

Decimates the Hamiltonians of the interface regions stored in ws_ribbon.Surface_interface (needed in hexagonal lattice).

Syntax

interface.DecimateInterface( idx )

Parameters
idx The ordinal number of the instance of the interface Surface_Green_function in the list ws_ribbon.Surface_interface.






Ribbon::ShiftCoordinates

Shifts the coordinates of the sites in the ribbon by an integer multiple of the lattice vector. The coordinates of the Leads are automatically adjusted later.

Syntax

interface.ShiftCoordinates( shift )

Parameters
shift An integer.






Ribbon::getCoordinates

Gets the coordinates of the surface points of the finite ribbon.

Syntax

[coordinates, coordinates_interface] = interface.getCoordinates( shift )

Return
coordinates An instance of the structure coordinates containing the coordinates of the surface sites of the finite ribbon.
coordinates_interface A list of two structures coordinates containing the coordinates of the surface sites of the interface regions between the leads and the finite ribbon.






Ribbon::setHandlesForMagneticField

Sets the function handles of the vector potentials and gauge fields for applying the magnetic field in the Hamiltonians.

Syntax

interface.setHandlesForMagneticField( varargin )

Parameters
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
  • scatter

    Function handle of the vector potential to be used in the scattering region.
  • lead

    Function handle of the vector potential to be used in the leads.
  • gauge_field

    Function handle of the gauge transformation.






Ribbon::setInterfaceRegions

Replaces the attribute Surface_interface to a custom value.

Syntax

interface.setInterfaceRegions( Surface_interface )

Parameters
Surface_interface A list of two interfaces Surface_Green_function to be used as interface regions between the leads and scattering region.






Ribbon::AddPNPotential

Adds the p-n potential to the ribbon Hamiltonian.

Syntax

interface.AddPNPotential( Surface_tmp )

Parameters
Surface_tmp An instance of interface Surface_Green_function.







Ribbon::createPNpotential

Creates the p-n potential to be applied in the Hamiltonians.

Syntax

pot = interface.createPNpotential()

Return
pot The vector of the created p-n potential on each site in the cross section.






Ribbon::DecimationFunction

Performs the decimation procedure on the inverse Green's Function.

Syntax

ret = interface.DecimationFunction( kulso_szabfokok, ginv, varargin )

Parameters
kulso-szabfokok The vector of the sites to be kept after the decimation.
ginv The matrix of the inverse Greens function to be decimated.
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
  • coordinates

    An instance of the structure coordinates containing the coordinates of the sites.

Return
ret The matrix of the decimated inverse Greens function.






Ribbon::GetFiniteGreensFunction

Reads out the attributes G and Ginv.

Syntax

[G, Ginv] = interface.GetFiniteGreensFunction()


Return
G The attribute G.
Ginv The attribute Ginv.






Ribbon::CreateClone

Creates a clone of the current interface.

Syntax

interface = interface.CreateClone()


Return
interface An instance of interface Ribbon.






Ribbon::GetWorkspace

Return the handle class ws_ribbon of the workspace of the interface Ribbon. Changes in fields of the workspace are not always safe, since the reinitialization of the interface is not performed.

Syntax

interface.GetWorkspace( )

Return
ret An instance of handle class ws_ribbon.