CombineRibbons

  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/.

Description

An object for combining multiple ribbon parts of equal width and from the same material in a two terminal setup.

Usage Examples

  • SSH Josephson

    Calculates the DC Josephson current through an SSH chain including a topological band inversion.
  • SSH Transport

    Calculates transport through an SSH chain including a topological band inversion.

Class references

Syntax

object = CombineRibbons(varargin)

Parameters
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameters are the following:

Attributes (public)

  • Ribbons

    Cell array of classes Ribbon.
  • Surface_interfaces

    Cell array of classes Surface_Greens_Function describing the coupling between the ribbon parts.

Attributes (private)

  • coordinates

    An instance of structure coordinates containing the surface points of the scattering center.

Methods (public)

Methods (protected)

Methods (private)

CombineRibbons::Transport

Calculates the transport through the two terminal setup. Use for development pupose only.

Syntax

[Conductance,ny,DeltaC,S] = object.Transport(Energy)

Parameters
Energy The energy to be used in the calculations.

Return
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.



CombineRibbons::getCoordinates

Gets the coordinates of the surface sites of the scattering reigon.

Syntax

[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.



CombineRibbons::setEnergy

Sets the energy to be used in the calculations.

Syntax

object.setEnergy( Energy )

Parameters
Energy Energy The value of the energy in the same units as the Hamiltonian.



CombineRibbons::CalcFiniteGreensFunction

Calculates the surface Green operator of the scattering center. The calculated Green operator is stored in the G attribute.

Syntax

object.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 operator and on the Hamiltonians.
  • E

    The energy value to be used in the calculations. (Use the same units as the elements of the Hamiltonians)
  • ContactPotInterface

    A function handle $$pot=f( coordinates )$$ 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 function handle $$pot=f( coordinates )$$ or $$pot=f( coordinates, param)$$ for the potential to be applied in the Hamiltonian.



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

Syntax

object.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.
  • E

    The energy value to be used in the calculations. (Use the same units as the elements of the Hamiltonians)
  • ContactPotInterface

    A function handle $$pot=f( coordinates )$$ 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 function handle $$pot=f( coordinates )$$ or $$pot=f( coordinates, param)$$ for the potential to be applied in the Hamiltonian.



CombineRibbons::setHandlesForMagneticField

Sets the function handles of the vector potentials and gauge fields for applying the magnetic field in the Hamiltonians.

Syntax

object.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.



CombineRibbons::CreateClone

Creates a clone of the current object.

Syntax

object = object.CreateClone()


Return
object The created clone of the present object.



CombineRibbons::getTotalHeight

Gets the total height of the ribbon structure.

Syntax

ret = ret = object.getTotalHeight()


Return
ret Returns with the total height (length) of the scattering region in units of the lattice vector.



CombineRibbons::addRibbon

Adds a Ribbon part to the system.

Syntax

ret = object.addRibbon( ribbon2add, varargin )


Parameters
ribbon2add An instance of the class Ribbon.
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameters are:
  • shiftcoordinates

    Logical value. Set true (default) to adjust the coordinates of the added ribbon part, or false otherwise.



CombineRibbons::getHeights

Gets the total height of the ribbon structure.

Syntax

ret = ret = object.getHeights()


Return
ret An array containing the heights (lengths) of the ribbon parts.



CombineRibbons::attachRibbon

Attach the next ribbon to the ribbon sequence for the calculation of the surface Greens function.

Syntax

object.attachRibbon( ribbon_tmp, varargin )


Parameters
ribbon_tmp An instance of the class Ribbon.
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameters are:
  • onlyGinv

    Logical value. Set true to calculate only the inverse of the total Green operator, or false (default) to calculate G as well.
  • decimate

    Logical value. Set true (default) to decimate the sites of the scattering region between the ribbon parts.
  • 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.
  • PotInScatter

    A function handle $$pot=f( coordinates )$$ or $$pot=f( coordinates, param)$$ for the potential to be applied in the Hamiltonian. Does not need to be translational invariant along the unit cells of the scattering center.



CombineRibbons::createInterfaceRegions

Creates instances of class Surface_Green_function describing an interface region between the leads and the ribbon parts. The created interface is stored within the attribute Surface_interfaces.

Syntax

ret = object.createInterfaceRegions()




CombineRibbons::checkwidth

Checks the width of the added ribbon.

Syntax

ret = object.checkwidth( ribbon_tmp, varargin )


Parameters
ribbon_tmp An instance of the class Ribbon.

Parameters
ret Returns with true if the width of the added ribbon is consitent with the previous ones, or false otherwise.



CombineRibbons::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: