Favago Transport Programming Interface

Introduction

Interfaces

root/

root/utils

Data structures

Examples







Peierls

  Copyright (C) 2009-2015 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

Returns an interface to perform the Peierls and the gauge transformations on the Greens functions and on the Hamiltonians.

Syntax

object = Peierls(Opt, varargin)

Parameters
Opt Structure containing the computational parameters. The required fields of the structure are:
  • BdG

    Set true for Bogoliubov de Gennes Hamiltonian.>
  • my_own_potential

    Set 0 to load the magnetic field from B_input.mat, or 1 to load the vector potential from Vector_Potetntial.mat (Obsolete).
  • Linear_Regression_in_B

    Set true for homogeneous magnetic field, false otherwise.
  • Lattice_Type

    set 'H' for hexagonal lattice, 'S' for square lattice, 'Silicene' for silicene lattice.
  • type_of_scanning

    if set to 1, the Peierls phases are loaded from the interface Surface_Green_function or CreateHamiltoninans.
See more details about the data structure Opt here.
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameters are the following:
  • parameter

    scalar parameter to scale the strength of the magnetic field if Scanning.type_of_scanning=1
  • Vectorpotential

    function handle of the vector potential $$ [Ax,Ay] = A(x,y) $$
  • gauge

    set 'Landaux' or 'Landauy' to use the in-built vector potentials.
  • eta

    scalar value encoding the strength of the magnetic field if parameter 'gauge' is set (and 'Vectorpotential' is not set).

Attributes

  • parameter

    The Peierls phases in the Hamiltonian can be multiplied by this parameter.
  • gauge

    The name of the built-in gauge ('LandauX', 'LandauY').
  • eta

    The strength of the magnetic field for the built-in vector potentials.
  • Vectorpotential

    The function handle of the vector potential.
  • Ax

    Obsolete.
  • Ay

    Obsolete.
  • B_input

    Obsolete
  • Opt

    An instance of the structure Opt

Methods

Peierls::PeierlsTransformLeads

Description

Algorithm to perform the Peierls transformation in the leads.

Syntax

object.PeierlsTransformLeads( Surface_tmp, varargin )

Parameters
Surface_tmp An instance of a Surface_Green_function interface.
varargin Optional parameters given by a sequence ...'name', value,... . Currently no optional parameters are supported.






Peierls::PeierlsTransform

Description

Algorithm to perform Peierls transformation in Hamiltonian stored in the Way2Hamiltonian object.

Syntax

object.PeierlsTransform( Way2Hamiltonian )

Parameters
Way2Hamiltonian An instance of the interface CreateHamiltoninans.






Peierls::gaugeTransformation

Description

Algorithm to perform the gauge transformation on a Greens function and/or on a Hamiltonian.

Syntax

object.gaugeTransformation( mtx, coordinates, gauge_field )

Parameters
mtx The matrix of the Greens function or Hamiltonian to be gauge-transformed.
coordinates A structure coordinatescontaining the coordinates of the sites.
gauge_field A function handle of the scalar gauge field $$ e/hbar*A_new = e/hbar*A_old + grad( gauge_field ) $$.






Peierls::gaugeTransformationOnLead

Description

Algorithm to perform the gauge transformation on the Hamiltonians of a lead.

Syntax

object.gaugeTransformationOnLead( Surface_tmp, gauge_field )

Parameters
Surface_tmp An instance of the interface Surface_Green_function.
gauge_field For details see gaugeTransformation.






Peierls::setVectorPotential

Description

Sets the function handle of the vector potential.

Syntax

object.setVectorPotential( vectorpot )

Parameters
vectorpot The function handle of the vector potential $$ [Ax,Ay] = A(x,y) $$.






Peierls::CreateClone

Creates a clone of the current interface.

Syntax

interface = interface.CreateClone()


Return
interface An instance of interface Peierls.