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:
|
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:
|
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 )
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 )
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.
|
|