TwoTerminal
Copyright (C) 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/.
A class for transport calculations on a two terminal setup.
EQuUs v4.8 or later
object = TwoTerminal(varargin)
Parameters | |
---|---|
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameters are the following:
|
- An instance of the structure param.
- The calculated Green operator of the scattering region
- The inverse of the Green operator G
- An instance of class CreateHamiltonians for storing and manipulate the created Hamiltonian.
- An instance of class Transport Interface for evaluating the Dyson equation.
- An array of Surface Green Function objects to describe the interface region between the leads and the scattering region.
- An instance of class Peierls to describe the peirls substitution in the scattering region.
- An instance of class Peierls to describe the peirls substitution in the leads.
- function handle $$ret=f(x,y)$$ for the scalar field to transform the vector potential in the scattering region.
- 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.
- The input filename containing the computational parameters.
- The output filename to export the computational parameters.
- The absolute path to the working directoy.
- An instance of class Custom_Hamiltonians for load the Hamiltonians from external source.
- Logical value. If true, no output messages are print
- Two component array of pair potential phases in the left (1) and right (2) superconductor.
- The energy value used in the calculations. (in the same units as the Hamiltonian)
- The Fermi energy (in the same units as the Hamiltonian)
- The energy value used in the calculations.
- The transverse momentum quantum number.
- Planck contant in SI units.
- The charge of the electron in SI units
- Transport
- CalcSpectralFunction
- getCoordinates
- CreateScatter
- setEnergy
- CustomDysonFunc
- DecimationFunction
- GetFiniteGreensFunction
- CalcFiniteGreensFunction
- CalcFiniteGreensFunctionFromHamiltonian
- setInterfaceRegions
- CreateInterface
- DecimateInterface
- setHandlesForMagneticField
- SyncParam
- setParam
- ApplyPotentialInScatter
- CreateClone
TwoTerminal::Transport
Calculates the transport through the two terminal setup. Use for development pupose only.
[Conductance_matrix,ny,DeltaC,S] = object.Transport(Energy)
Parameters | |
---|---|
Energy | The energy to be used in the calculations. |
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
|
Return | |
---|---|
Conductance_matrix | The calculated conductance matrix in the units of $$2h/e$$. |
ny | Array of the open channel in the leads. |
DeltaC | The standard deviation of the calculated transmission probabilities. |
S | The scattering matrix. |
TwoTerminal::CalcSpectralFunction
Calculates the spectral density function and the Green operator.
[A,G] = object.CalcSpectralFunction( Energy, varargin )
Parameters | |
---|---|
Energy | The energy value. 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. |
TwoTerminal::getCoordinates
Gets the coordinates of the sites in the scattering reigon.
[coordinates, coordinates_interface] = object.getCoordinates( shift )
Return | |
---|---|
coordinates | An instance of the structure coordinates containing the coordinates of the scattering center. |
coordinates_interface | A list of two structures coordinates containing the coordinates of the surface sites of the interface regions between the leads and the scattering center. |
TwoTerminal::CreateScatter
Creates an instance of the class CreateHamiltonians for the scattering region. The created object is stored by th attribute CreateH.
object.CreateScatter()
TwoTerminal::setEnergy
Sets the energy to be used in the calculations.
object.setEnergy( Energy )
Parameters | |
---|---|
Energy | The value of the energy in the same units as the Hamiltonian. |
TwoTerminal::CustomDysonFunc
Custom Dyson function for connecting the leads to the scattering region in the general two terminal setup.
[Gret, Ginverz] = object.CustomDysonFunc( varargin )
Parameters | |
---|---|
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
|
Return | |
---|---|
Gret | The calculated Greens function. |
Ginverz | The inverse of the Green operator. |
TwoTerminal::DecimationFunction
Performs the decimation procedure on the inverse Green operator.
ret = object.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 Green operator to be decimated. |
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
|
Return | |
---|---|
ret | The matrix of the decimated inverse Greens operator. |
TwoTerminal::GetFiniteGreensFunction
Query for the attributes G and Ginv.
[G, Ginv] = object.GetFiniteGreensFunction()
Return | |
---|---|
G | The attribute G. |
Ginv | The attribute Ginv. |
TwoTerminal::CalcFiniteGreensFunction
Calculates the surface Green operator of the scattering center. The calculated Green operator is stored in the G attribute.
object.CalcFiniteGreensFunction( varargin )
Parameters | |
---|---|
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
|
TwoTerminal::CalcFiniteGreensFunctionFromHamiltonian
Calculates the surface Greens function of the scattering region from the whole Hamiltonian. Useful for calculations with transverse momentum, and for systems where the unit cells are not translational invariant. The calculated Green operator is stored in the G attribute.
object.CalcFiniteGreensFunctionFromHamiltonian( varargin )
Parameters | |
---|---|
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
|
TwoTerminal::setInterfaceRegions
Replaces the attribute Surface_interface with the given value.
object.setInterfaceRegions( Surface_interface )
Parameters | |
---|---|
Surface_interface | A two component array of classes Surface_Green_function to be used as interface regions between the leads and scattering region. |
TwoTerminal::CreateInterface
Creates an instance of class Surface_Green_function describing an interface region between a given lead and the scattering region. The created interface is stored within the attribute Surface_interface.
object.CreateInterface( idx )
Parameters | |
---|---|
idx | The identification number of the lead. |
TwoTerminal::setHandlesForMagneticField
Sets the function handles of the vector potentials and gauge fields for applying the magnetic field in the Hamiltonians.
object.setHandlesForMagneticField( varargin )
Parameters | |
---|---|
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
|
TwoTerminal::SyncParam
Synchronizes the param structrure with the parameter values of the basic interfaces.
object.SyncParam()
TwoTerminal::setParam
Synchronizes the param structrure with the included basic interfaces.
object = object.setParam( param )
Parameters | |
---|---|
param | An instance of structure param. |
Return | |
---|---|
object | The created clone of the present object. |
TwoTerminal::CreateClone
Creates a clone of the current object.
object = object.CreateClone()
Return | |
---|---|
object | The created clone of the present object. |
TwoTerminal::ApplyPotentialInScatter
Applies the potential in the scattering region
object.ApplyPotentialInScatter( CreateH, potInScatter )
Parameters | |
---|---|
CreateH | An instance of class CreateHamiltonians containing the Hamiltonian of the scattering center. |
potInScatter | A function handle $$pot=f( coordinates )$$ or $$pot=f( CreateH, Energy)$$ for the potential to be applied in the Hamiltonian. Does not need to be translational invariant along the unit cells of the scattering center. |
TwoTerminal::CreateHandles
Initializes the attributes of the class.
object.CreateHandles()
TwoTerminal::setParameters
Sets some special computing parameters.
object.setParameters()
TwoTerminal::CreateTwoTerminalHamiltonians
Loads the Hamiltonians from the appropriate DFT interface or from files.
object.CreateTwoTerminalHamiltonians()
TwoTerminal::InputParsing
Parses the optional parameters for the class constructor.
object.InputParsing(varargin)
Parameters | |
---|---|
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameters are:
|
- Log in to post comments