Density

  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

A class to calculate the onsite density useful for self-consistent calculations.

Usage Examples

Class references

Syntax

object = Density( varargin )

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

    An instance of an object NTerminal or its subclass describing the junction.
  • T

    The absolute temperature in Kelvins.
  • useSelfEnergy

    Logical value. Set true (default) to solve the Dyson equation with the self energies of the leads, or false to use the surface Green operators.
  • scatterPotential

    A function handle $$y=f( coordinates )$$ (or $$y=f( CreateH, E )$$ ) of the potential across the junction in case gfininvfromHamiltonian is true.
  • gfininvfromHamiltonian

    Set true to calculte the Green's function of the scattering region from the Hamiltonian, or false (default) to use the fast method instead (see PRB 93, 224510 (2016) for details).

Attributes

  • junction

    An instance of class TwoTerminal or its subclass representing the junction.
  • useSelfEenrgy

    Logical value. Set true for using the self-energy construction in the Dyson equation, or false to use the surface Greens functions instead.
  • BandWidth

    An instance of the structure BandWidth storing the integration limits.
  • scatterPotential

    A function handle $$y=f( coordinates )$$ (or $$y=f( CreateH, E )$$ ) of the potential across the junction in case gfininvfromHamiltonian is true.
  • varargin

    list of optional parameters (see http://www.mathworks.com/help/matlab/ref/varargin.html for details).

Methods (public)

Methods (protected)

Density::DensityCalc

Calculates the onsite desnity using the method in Nanotechnology 25 (2014), 465201

Syntax

[density, junction_sites] = object.DensityCalc( varargin )

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

    The number of the energy points over the contour integral.
  • DeltaPhi

    A parameter to control the incident angle of the integration contour near the real axis. (Default value is $$\Delta\Phi=0.5\pi$$.
  • Evec

    The complex energy points in case of custom integration path.
  • Emin

    The lover bound of the energy contour.
  • JustScatter

    logical value. True if only an isolated scattering center should be considered in the self-consistent calculations, false otherwise.

Return
density An array of the calculated density.
junction_sites structure describing the geometry of the sites.



Density::DensityCalcSmall

Calculates the onsite desnity using the method in Nanotechnology 25 (2014), 465201. This method is usable for small isolated scattering centers for which an exact diagonalization can be performed.

Syntax

[density, junction_sites] = object.DensityCalcSmall( num_occupied_states )

Parameters
num_occupied_states Number of occupied states.

Return
density An array of the calculated density.
junction_sites structure describing the geometry of the sites.



Density::getBandWidth

Determines the band width in the leads and in the scattering region. The results are stored in the attribute BandWidth.

Syntax

ret = object.getBandWidth()

Return
ret An instance of the structure BandWidth.



Density::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:
  • junction

    An instance of an object NTerminal or its subclass describing the junction.
  • T

    The absolute temperature in Kelvins.
  • useSelfEnergy

    Logical value. Set true (default) to solve the Dyson equation with the self energies of the leads, or false to use the surface Green operators.
  • scatterPotential

    A function handle $$y=f( coordinates )$$ (or $$y=f( CreateH, E )$$ ) of the potential across the junction in case gfininvfromHamiltonian is true.
  • gfininvfromHamiltonian

    Set true to calculte the Green's function of the scattering region from the Hamiltonian, or false (default) to use the fast method instead (see PRB 93, 224510 (2016) for details).