Ribbon
Copyright (C) 2009-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/.
An object for transport calculations on a two terminal setup made of two-dimensional lattices.
- The minimal conductivity of a single layer graphene ribbon as a function of the aspect ratio.
- Calculates the spectral density as a function of the transverse momentum quantum number in a ballistic superconductor-graphene-superconductor junction.
- Calculates the conductance as a function of the energy for a given magnetic field. The magnetic field is applied perpendicularly to the scattering region, while the magnetic field in the leads is zero.
- Energy dependent conductivity through a wide (4 micron) graphene ribbon calculated by the adatpiveQ interface.
- Calculates the transport through a graphene ribbon in a perpendicular magnetic field.
object = Ribbon(varargin)
Parameters | |
---|---|
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameters are the following:
|
Surface_tmp
An instance of "Surface_Greens_Function" object describing the unit cell of the scattering region.transversepotential
A function handle $$pot = f( coordinates )$$ or $$pot=f( Lead, Energy)$$ of the transverse potential applied in the lead. (coordinates is an instance of structure coordinates, and Lead is an instance of class CreateLeadHamiltonians or its derived class. Energy is the current energy value.).width
The width of the scattering region (number of the atomic sites in the cross section).height
The height (length) of the scattering region (number of unit cells).shift
The shift of the coordinates of the sites (two component vector).rCC
Atomic distance between the sites.
- Transport
- getCoordinates
- ShiftCoordinates
- CreateScatter
- setEnergy
- CustomDysonFunc
- GetFiniteGreensFunction
- CalcFiniteGreensFunction
- CalcFiniteGreensFunctionFromHamiltonian
- CreateRibbon
- CreateInterface
- CreateClone
- SyncParam
- setFermiEnergy
- createSurface_sc
- ApplyTransversePotential
- CreateHandles
- calculate_lead_attach_points
- createShape
Ribbon::Transport
Calculates the transport through the two terminal setup. Use for development pupose only.
[Conductivity,aspect_ratio,Conductance,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 | |
---|---|
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::getCoordinates
Gets the coordinates of the surface 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. |
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.
object.ShiftCoordinates( shift )
Parameters | |
---|---|
shift | An integer. |
Ribbon::CreateScatter
Creates an instance of the class CreateHamiltonians for the scattering region. The created object is stored by th attribute CreateH.
object.CreateScatter()
Return | |
---|---|
Surface_tmp | An instance of "Surface_Greens_Function" object describing the unit cell of the scattering region. |
Ribbon::setEnergy
Sets the energy to be used in the calculations.
object.setEnergy( Energy )
Parameters | |
---|---|
Energy | Energy The value of the energy in the same units as the Hamiltonian. |
Ribbon::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 Greens function. |
Ribbon::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:
|
Ribbon::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:
|
Ribbon::CreateRibbon
Creates an instance of the class Surface_Green_function describing the unit cell in the ribbon. The created interface is stored in the attribute Surface_tmp. On hexagonal lattice the cell array Surface_interface containing of instances of Surface_Green_function is also created. The members of the cell array are to be used as the interface regions between the leads and the scattering region.
object.CreateRibbon( vavargin )
Parameters | |
---|---|
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
|
Ribbon::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. |
varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameter names are the following:
|
Ribbon::CreateClone
Creates a clone of the current object.
object = object.CreateClone()
Return | |
---|---|
object | The created clone of the present object. |
Ribbon::SyncParam
Synchronizes the param structrure with the parameter values of the basic interfaces.
object.SyncParam()
Ribbon::setFermiEnergy
Sets the Fermi energy on the atomic sites for the calculations (use the same units as the elements of the Hamiltonian).
object.setFermiEnergy()
Ribbon::createSurface_sc
Creates the copuling Hamiltonians between the scattering and interface region.
Surface_sc = object.createSurface_sc()
Return | |
---|---|
Surface_sc | An instance of class Surface_Green_function containing the coupling Hamiltonians. |
Ribbon::createSurface_sc
Creates the copuling Hamiltonians between the scattering and interface region.
Surface_sc = object.createSurface_sc( idx )
Parameters | |
---|---|
idx | The identification number of the interface region. (Integer value.) |
Return | |
---|---|
Surface_sc | An instance of class Surface_Green_function containing the coupling Hamiltonians. |
Ribbon::ApplyTransversePotential
Apply the tranvesre potential in the Hamiltonians.
object.ApplyTransversePotential( Surface_tmp )
Return | |
---|---|
Surface_tmp | An instance of class CreateLeadHamiltonians (or its subclass) containing the Hamiltonians. |
Ribbon::CreateHandles
Initializes the attributes of the class.
object.CreateHandles()
Ribbon::calculate_lead_attach_points
Determines the lead attach points
object.calculate_lead_attach_points()
Ribbon::createShape
Creates the geometry data of the ribbon shaped scattering region.
object.createShape()
Ribbon::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