Eötvös Quantum Utilities  v4.9.146
Providing the Horsepowers in the Quantum Realm
List of all members | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes
IV Class Reference

A class to calculate the I-V curve for a two terminal setup, based on the non-equilibrium Greens function technique of Eur. More...

Inheritance diagram for IV:
Inheritance graph
[legend]

Public Member Functions

function diagInv (A)
 Calculates the diagonal part of the inverse of a sparse matrix. More...
 
function display (message, nosilent)
 Displays output messages on the screen. More...
 
function eig (A, B)
 Calculates the generalized eigenvalue problem based on the zggev and dggev LAPACK functions. More...
 
function Fermi (E)
 A function of the Fermi-Dirac statistics. More...
 
function getOpt ()
 Retrives the structure containing the calculation parameters. More...
 
function getProgramName ()
 Gets the name of the package. More...
 
function getProgramShortName ()
 Gets the short name of the package. More...
 
function getVersion ()
 Gets the current version of the package. More...
 
function IsDeployedMKL ()
 Checks whether the MKL component is deployed. More...
 
function IV (Opt, varargin)
 Constructor of the class. More...
 
function IVcalc (varargin)
 Calculates the current-voltage relation as a function of the bias. More...
 
function partialInv (A, sizeInv)
 Calculates a partial inverse of a sparse matrix. More...
 
function SetEnergy (newE, varargin)
 Sets the energy for the calculations. More...
 
function setTemperature (T)
 Sets the temperature for the calculations. More...
 
function xmlread (filename)
 Function to load XML files (based on xerces libraries), providing octave compatibility. More...
 
function xmlwrite (filename, DOM)
 Function to export XML files (based on xerces libraries), providing octave compatibility. More...
 

Static Public Member Functions

static function BadInputType (variable, type)
 Throws a "bad input type" warning, with using the default value. More...
 
static function BadInputTypeNoDefault (variable, type)
 Throws a "bad input type" warning without setting it to default. More...
 
static function checkMEXfile (fncname)
 Checks the presence of a given MEX file. More...
 
static function ExceedIteration ()
 Throws an "iteration exceeded" warning. More...
 
static function inv_SVD (A)
 Inverts badly conditioned matrix A with SVD regularization. More...
 
static function isOctave ()
 Checks whether the running environment is matlab or octave. More...
 
static function SimphsonInt (y, h)
 Simphson integral: y is a vector of function values at equal distant points: y_i = f(x_i), x_i-x_{i-1}=h. More...
 

Public Attributes

Property BandWidth
 An instance of structure BandWidth. More...
 
Property gfininvfromHamiltonian
 logical value. Set true for calculate the Greens function of the scattering region from Hamiltonian, or false (default) otherwise. More...
 
Property junction
 An instance of class NTerminal (or its subclass) representing the junction. More...
 
Property scatterPotential
 Function handle pot = f(#coordinates) for the additional potential to be applied in the scattering region. More...
 
Property useSelfEnergy
 logical value. Set true (default) for solve the Dyson equation with the self energies, or false otherwise. More...
 
Property varargin
 cell array of optional parameters. (For details see InputParsing) More...
 

Protected Member Functions

function create_scatter_GreensFunction (varargin)
 Calculates the surface Green operator of the scattering region. More...
 
function CreateEnergyArray (varargin)
 Creates the array of energy values for the integration. More...
 
function currentcalc (differentialConductance, Evec, tuned_contact)
 Calculates the current by integrating the differential conductance in a bias window. More...
 
function DifferentialConductanceT0 (Energy, junction)
 Calculates the zero temperature differential conductance for a given energy. More...
 
function InputParsing (varargin)
 Parses the optional parameters for the class constructor. More...
 

Protected Attributes

Property beta
 $\beta = 1/(k_BT)$ More...
 
Property bias_max
 The maximal bias to be used in the calculations. More...
 
Property DeployedMKL
 True if MKL component is built, false otherwise. More...
 
Property Edb
 The number of the energy points in the attribute Evec. More...
 
Property Evec
 The energy array used in the calculations. More...
 
Property k_B
 Boltzmann constant in eV/K. More...
 
Property MaxSize
 Maximal size of full matrixes to be handled. More...
 
Property mu
 The Chemical potential in the same unit as other energy scales in the Hamiltonians. More...
 
Property Opt
 An instance of structure Opt. More...
 
Property ProgramName
 Name of the package. More...
 
Property ProgramShortName
 Short name of the package. More...
 
Property T
 The temperature in Kelvin. More...
 
Property T_treshold
 treshold temperature (makes difference between T=0 and T>0) More...
 
Property version
 The current version of the package. More...
 

Detailed Description

A class to calculate the I-V curve for a two terminal setup, based on the non-equilibrium Greens function technique of Eur.

Phys. J. B 53, 537-549 (2006)

Available

EQuUs v4.8 or later

Definition at line 26 of file IV.m.

Constructor & Destructor Documentation

◆ IV()

function IV::IV ( Opt  ,
varargin   
)

Constructor of the class.

Parameters
Optan instance of class Opt.
vararginCell array of optional parameters. For details see InputParsing.
Returns
An instance of the class

Member Function Documentation

◆ BadInputType()

static function Messages::BadInputType ( variable  ,
type   
)
staticinherited

Throws a "bad input type" warning, with using the default value.

Parameters
variableA string conatining the name of the variable.
typeA string describing the desired type.

◆ BadInputTypeNoDefault()

static function Messages::BadInputTypeNoDefault ( variable  ,
type   
)
staticinherited

Throws a "bad input type" warning without setting it to default.

Parameters
variableA string conatining the name of the variable.
typeA string describing the desired type.

◆ checkMEXfile()

static function CommonFunctions::checkMEXfile ( fncname  )
staticinherited

Checks the presence of a given MEX file.

Parameters
fncnameThe name of the function.
Returns
Returns true if the MEX file is present, false otherwise.

◆ create_scatter_GreensFunction()

function IV::create_scatter_GreensFunction ( varargin  )
protected

Calculates the surface Green operator of the scattering region.

Parameters
vararginCell array of optional parameters (https://www.mathworks.com/help/matlab/ref/varargin.html):
'gauge_trans'Logical value. Set true (default) to perform gauge transformation on the Green's function and on the Hamiltonians, or false otherwise.
'junction'An instance of class NTerminal or its subclass.
Returns
The inverse of the Green operator.

◆ CreateEnergyArray()

function IV::CreateEnergyArray ( varargin  )
protected

Creates the array of energy values for the integration.

Parameters
vararginCell array of optional parameters (https://www.mathworks.com/help/matlab/ref/varargin.html):
'tuned_contact'String value. Identifies the tuned contact for the calculations. Possible values are: 'right', 'left', 'symmetric'.

◆ currentcalc()

function IV::currentcalc ( differentialConductance  ,
Evec  ,
tuned_contact   
)
protected

Calculates the current by integrating the differential conductance in a bias window.

Parameters
differentialConductanceArray of differential conductance
EvecArray of energy values
tuned_contactString value. Identifies the tuned contact for the calculations. Possible values are: 'right', 'left', 'symmetric'.
Returns
Returns with the calculated current

◆ diagInv()

function CommonFunctions::diagInv ( )
inherited

Calculates the diagonal part of the inverse of a sparse matrix.

If MKL component is advised to build.

Parameters
AA sparse matrix to be inverted
Returns
Returns the diagonal elements of the inverse

◆ DifferentialConductanceT0()

function IV::DifferentialConductanceT0 ( Energy  ,
junction   
)
protected

Calculates the zero temperature differential conductance for a given energy.

Parameters
EnergyThe energy value (use the same units as in the Hamiltonian)
junctionAn instance of class NTerminal or its subclass.
Returns
Returns with the calculated zero temperature differential conductance.

◆ display()

function Messages::display ( message  ,
nosilent   
)
inherited

Displays output messages on the screen.

Parameters
messageString containing the message to be displayed
nosilentSet true to override the silent option given in Opt.Silent.

◆ eig()

function CommonFunctions::eig ( ,
 
)
inherited

Calculates the generalized eigenvalue problem based on the zggev and dggev LAPACK functions.

Parameters
AA square matrix on the left side.
BA square matrix on the right side.
Returns
Returns the calculated generalized eigenvalues and the right and left sided eigenvectors.

◆ ExceedIteration()

static function Messages::ExceedIteration ( )
staticinherited

Throws an "iteration exceeded" warning.

◆ Fermi()

function FermiDirac::Fermi ( )
inherited

A function of the Fermi-Dirac statistics.

Parameters
EThe energy value in eV (scalar or an array of energy values).
Returns
Returns with the occupation number (numbers).

◆ getOpt()

function Messages::getOpt ( )
inherited

Retrives the structure containing the calculation parameters.

Returns
Return an instance of structure Opt.

◆ getProgramName()

function CommonFunctions::getProgramName ( )
inherited

Gets the name of the package.

Returns
Returns the name of the package.

◆ getProgramShortName()

function CommonFunctions::getProgramShortName ( )
inherited

Gets the short name of the package.

Returns
Returns the short name of the package.

◆ getVersion()

function CommonFunctions::getVersion ( )
inherited

Gets the current version of the package.

Returns
Returns the current version of the package.

◆ InputParsing()

function IV::InputParsing ( varargin  )
protected

Parses the optional parameters for the class constructor.

Parameters
vararginCell array of optional parameters (https://www.mathworks.com/help/matlab/ref/varargin.html):
'T'The temperature in Kelvin (scalar or an array)
'scatterPotential'A function handle pot=f( #coordinates ) or pot=f( CreateHamiltonians, Energy) for the potential to be applied in the Hamiltonian (used when FiniteGreensFunctionFromHamiltonian=true).
'gfininvfromHamiltonian'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 (see Phys. Rev. B 90, 125428 (2014) for details).
'useSelfEnergy'Logical value. Set true to use the self energies of the leads in the Dyson equation, or false (default) to use the surface Green function instead.
'junction'An instance of class NTerminal (or its derived class) representing the junction.
'bias_max'The maximal bias to be used in the calculations
'Edb'The number of the energy points in the attribute Evec

◆ inv_SVD()

static function CommonFunctions::inv_SVD ( )
staticinherited

Inverts badly conditioned matrix A with SVD regularization.

Parameters
AA square matrix to be inverted.
Returns
Returns the calculated inverse.

◆ IsDeployedMKL()

function CommonFunctions::IsDeployedMKL ( )
inherited

Checks whether the MKL component is deployed.

Returns
Returns with true if MKL component is deployed, false otherwise.

◆ isOctave()

static function CommonFunctions::isOctave ( )
staticinherited

Checks whether the running environment is matlab or octave.

Returns
Returns true if running environment is octave, false otherwise.

◆ IVcalc()

function IV::IVcalc ( varargin  )

Calculates the current-voltage relation as a function of the bias.

Parameters
vararginCell array of optional parameters (https://www.mathworks.com/help/matlab/ref/varargin.html):
'tuned_contact'String value. Identifies the tuned contact for the calculations. Possible values are: 'right', 'left', 'symmetric'.
Returns
[1] The calculated current array.
[2] The calculated voltage bias array.
[3] The calculated differential conductance.

◆ partialInv()

function CommonFunctions::partialInv ( ,
sizeInv   
)
inherited

Calculates a partial inverse of a sparse matrix.

If MKL component is not developed, the backslash operator is used insted.

Parameters
AA sparse matrix to be inverted
sizeInvThe size of partial inverse to be calculated.
Returns
Returns the calculated partial inverse

◆ SetEnergy()

function UtilsBase::SetEnergy ( newE  ,
varargin   
)
inherited

Sets the energy for the calculations.

Parameters
newEThe value of the energy in the same units as the Hamiltonian.
vararginCell array of optional parameters (https://www.mathworks.com/help/matlab/ref/varargin.html):
'junction'An instance of class NTerminal (or its derived class) representing the junction.

◆ setTemperature()

function FermiDirac::setTemperature ( T  )
inherited

Sets the temperature for the calculations.

Parameters
TThe temperature in Kelvin (scalar or an array)

◆ SimphsonInt()

static function CommonFunctions::SimphsonInt ( ,
 
)
staticinherited

Simphson integral: y is a vector of function values at equal distant points: y_i = f(x_i), x_i-x_{i-1}=h.

Parameters
yFunction values to be integrated
hIncrement between the x_i points.

◆ xmlread()

function CommonFunctions::xmlread ( filename  )
inherited

Function to load XML files (based on xerces libraries), providing octave compatibility.

Parameters
filenameAbsolute path to the file to be opened. (In matlab relative path is sufficient)
Returns
The loaded document object model (see http://www.mathworks.com/help/matlab/ref/xmlread.html#outputarg_DOMnode for details.)

◆ xmlwrite()

function CommonFunctions::xmlwrite ( filename  ,
DOM   
)
inherited

Function to export XML files (based on xerces libraries), providing octave compatibility.

Parameters
filenameAbsolute path to the file to be opened. (In matlab relative path is sufficient)
DOMThe loaded document object model (see http://www.mathworks.com/help/matlab/ref/xmlread.html#outputarg_DOMnode for details.)

Member Data Documentation

◆ BandWidth

Property UtilsBase::BandWidth
inherited

An instance of structure BandWidth.

Definition at line 36 of file UtilsBase.m.

◆ beta

Property FermiDirac::beta
protectedinherited

$\beta = 1/(k_BT)$

Definition at line 38 of file FermiDirac.m.

◆ bias_max

Property IV::bias_max
protected

The maximal bias to be used in the calculations.

Definition at line 37 of file IV.m.

◆ DeployedMKL

Property CommonFunctions::DeployedMKL
protectedinherited

True if MKL component is built, false otherwise.

Definition at line 32 of file CommonFunctions.m.

◆ Edb

Property IV::Edb
protected

The number of the energy points in the attribute Evec.

Definition at line 40 of file IV.m.

◆ Evec

Property IV::Evec
protected

The energy array used in the calculations.

Definition at line 34 of file IV.m.

◆ gfininvfromHamiltonian

Property UtilsBase::gfininvfromHamiltonian
inherited

logical value. Set true for calculate the Greens function of the scattering region from Hamiltonian, or false (default) otherwise.

Definition at line 45 of file UtilsBase.m.

◆ junction

Property UtilsBase::junction
inherited

An instance of class NTerminal (or its subclass) representing the junction.

Definition at line 33 of file UtilsBase.m.

◆ k_B

Property FermiDirac::k_B
protectedinherited

Boltzmann constant in eV/K.

Definition at line 32 of file FermiDirac.m.

◆ MaxSize

Property CommonFunctions::MaxSize
protectedinherited

Maximal size of full matrixes to be handled.

Definition at line 44 of file CommonFunctions.m.

◆ mu

Property FermiDirac::mu
protectedinherited

The Chemical potential in the same unit as other energy scales in the Hamiltonians.

Definition at line 44 of file FermiDirac.m.

◆ Opt

Property Messages::Opt
protectedinherited

An instance of structure Opt.

Definition at line 31 of file Messages.m.

◆ ProgramName

Property CommonFunctions::ProgramName
protectedinherited

Name of the package.

Definition at line 38 of file CommonFunctions.m.

◆ ProgramShortName

Property CommonFunctions::ProgramShortName
protectedinherited

Short name of the package.

Definition at line 41 of file CommonFunctions.m.

◆ scatterPotential

Property UtilsBase::scatterPotential
inherited

Function handle pot = f(#coordinates) for the additional potential to be applied in the scattering region.

Definition at line 42 of file UtilsBase.m.

◆ T

Property FermiDirac::T
protectedinherited

The temperature in Kelvin.

Definition at line 35 of file FermiDirac.m.

◆ T_treshold

Property FermiDirac::T_treshold
protectedinherited

treshold temperature (makes difference between T=0 and T>0)

Definition at line 41 of file FermiDirac.m.

◆ useSelfEnergy

Property UtilsBase::useSelfEnergy
inherited

logical value. Set true (default) for solve the Dyson equation with the self energies, or false otherwise.

Definition at line 39 of file UtilsBase.m.

◆ varargin

Property UtilsBase::varargin
inherited

cell array of optional parameters. (For details see InputParsing)

Definition at line 48 of file UtilsBase.m.

◆ version

Property CommonFunctions::version
protectedinherited

The current version of the package.

Definition at line 35 of file CommonFunctions.m.


The documentation for this class was generated from the following file: