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