IV
Copyright (C) 2016-2017 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
A class to calculate the I-V curve for a two terminal setup, based on the non-equilibrium Greens function technique Eur. Phys. J. B 53, 537-549 (2006)
Usage Examples
- Calculates the differential conductance and the IV curve through a square lattice. Example taken from Eur. Phys. J. B 53, 537-549 (2006).
Class references
Syntax
interface = IV( varargin )
Parameters | |
---|---|
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
|
Attributes
- The chemical potential in the left lead.
- The chemical potential in the right lead.
- An instance of class TwoTerminal or it's subclass.
- Logical value. Set true for using the self-energy construction in the Dyson equation, or false to use the surface Greens functions instead.
- A function handle $$y=f( coordinates)$$ of the potential in the junction in case gfininvfromHamiltonian is true.
- A function handle $$y=f( coordinates)$$ of the contact potential in the interface regions.
- Set true for calculate the Green's function of the scattering region from Hamiltonian, or false (default) to use the Dyson Equation (see RB 93, 224510 (2016) for details).
Methods (public)
Methods (protected)
Methods (private)
IV::IVcalc
Calculates the current-voltage relation as a function of the bias.
Syntax
[current, bias, DifferentialConductance_vec] = object.IVcalc( varargin )
Parameters | |
---|---|
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
|
Return | |
---|---|
current | The calculated current in units of $$e^2U_0/\hbar$$. (with $$U_0$$ standing for the maximal bias in units of eV.) |
bias | The applied bias in units of eV. |
DifferentialConductance_vec | The differential conductance. |
IV::currentcalc
Calculates the current by integrating the differential conductance in a bias window.
Syntax
current = object.currentcalc( differentialConductance, Evec, tuned_contact )
Parameters | |
---|---|
differentialConductance | Array of differential conductances. |
Evec | An array of energy values. |
tuned_contact | String value. Identifies the tuned contact for the calculations. Possible values are: right, left, symmetric. |
Return | |
---|---|
current | An array of the calculated current corresponding to the bias window defined by Evec. |
IV::create_scatter_GreensFunction
Calculates the surface Green operator of the scattering region.
Syntax
object.create_scatter_GreensFunction( varargin )
Parameters | |
---|---|
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
|
IV::setEnergy
Sets the energy to be used in the calculations.
Syntax
object.setEnergy( newE, varargin )
Parameters | |
---|---|
newE | The value of the energy in the same units as the Hamiltonian. |
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
|
IV::DifferentialConductanceT0
Calculates the zero temperature differential conductance for a given energy.
Syntax
ret = object.DifferentialConductanceT0( Energy, cTwoTerminal_loc )
Parameters | |
---|---|
Energy | The value of the energy in the same units as the Hamiltonian. |
cTwoTerminal_loc | An instance of class TwoTerminal or it's subclass storing the Hamiltonians and responsible for evaluating the Dyson equation. |
Returns | |
---|---|
ret | The calculated differential conductance |
IV::CreateEnergyArray
Creates the array of energy values for the integration.
Syntax
Evec = object.CreateEnergyArray( varargin )
Parameters | |
---|---|
Energy | The value of the energy in the same units as the Hamiltonian. |
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
|
Returns | |
---|---|
Evec | The energy points used in the intagration. |
IV::InputParsing
Description
Parses the optional parameters for the class constructor.
Syntax
object.InputParsing(varargin)
Parameters | |
---|---|
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameters are:
|
- Log in to post comments