SVDregularizationLead

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

Class to regulerize the H1 problem of the leads by SVD decompozition..

Available

EQuUs v4.8 or later

Class references

Syntax

object = SVDregularizationLead(Opt, param, varargin)

Parameters
Opt An instance of the structure Opt.
param An instance of structure param containing the physical parameters.
varargin Optional parameters given by a sequence ...'name', value,... . Possible parameters are identical to the optional parameters of class CreateLeadHamiltonians

Attributes

  • is_SVD_transformed

    Logical value: true if the Hamiltonians were SVD transformed, false otherwise
  • U

    U matrix from the SVD decompozition, see Eq (41) of PRB >b>78, 035407
  • V

    V matrix from the SVD decompozition, see Eq (41) of PRB 78, 035407
  • tolerance

    SVD tolerance to identify singular values.
  • next_SVD_cycle

    An instance of class SVDregularizationLead. Somethimes it is needed to perform another SVD cycle to regularize the H1 matrix.
  • Neff

    Effective number of sites after the elimination of the singular values.

Methods (public)

SVDregularizationLead::SVDdecompozition

Description

Calculates the SVD decomposition of the matrix H1.

Syntax

object.SVDdecompozition()




SVDregularizationLead::is_SVD_needed

Description

Decides whether SVD regularization is needed or not.

Syntax

ret = object.is_SVD_needed()

Return
ret Returns with true if SVD regularization is needed, false otherwise




SVDregularizationLead::Calc_Effective_Hamiltonians

Description

Calculates the effective Hamiltonians according to Eq (48) of of PRB 78, 035407

Syntax

object.Calc_Effective_Hamiltonians( E )

Parameters
E The energy value in K=H-ES




SVDregularizationLead::Get_Effective_Hamiltonians

Description

Gets the effective Hamiltonians of the lead.

Syntax

[K0_eff, K1_eff, K1adj_eff] = object.Get_Effective_Hamiltonians( )

Return
K0_eff The effective Hamiltonian of the unit cell
K1_eff The effective coupling between the unit cells
K1adj_eff The adjungate of the effective coupling between the unit cells




SVDregularizationLead:: Get_Effective_Overlaps

Description

Gets the effective Hamiltonians S0_eff, S1_eff, S1adj_eff according to Eq (48) of of PRB 78, 035407

Syntax

[S0_eff, S1_eff, S1adj_eff] = object. Get_Effective_Overlaps( )

Return
S0_eff The effective overlap matrix of the unit cell
S1_eff The overlap matrix for the coupling between the unit cells
S1adj_eff The adjungate of the overlap matrix for the coupling between the unit cells




SVDregularizationLead::SVD_transform

Description

Regularize the Hamiltonians of the lead by SVD regularization.

Syntax

object.SVD_transform( )




SVDregularizationLead::Decimate_Hamiltonians

Description

Decimates the Hamiltonians (if the singular sites are predefined).

Syntax

object.Decimate_Hamiltonians( )




SVDregularizationLead::Unitary_Transform

Description

Transforms the effective Hamiltonians by a unitary transformation.

Syntax

object.Unitary_Transform( Umtx )

Parameters
Umtx The unitary matrix to be used in the transformations.




SVDregularizationLead::Get_Neff

Description

Gets the effective number of sites after the elimination of the singular values.

Syntax

Neff = object.Get_Neff( )

Return
Neff Returns with the effective number of sites




SVDregularizationLead::CreateClone

Description

Creates a clone of the present class.

Syntax

ret = object.CreateClone( )

Return varargin Optional parameters given by a sequence ...'name', value,... . Possible parameters are the following:
Return
ret An instance of class SVDregularizationLead



SVDregularizationLead::Reset

Description

Resets all attributes in the class.

Syntax

object.Reset()




SVDregularizationLead::Write

Description

Sets the value of an attribute in the class.

Syntax

object.Write(MemberName, input)

Parameters
MemberName The name of the attribute to be set.
input The value to be set.



SVDregularizationLead::Read

Description

Query for the value of an attribute in the class.

Syntax

ret = object.Read(MemberName)

Parameters
MemberName The name of the attribute.

Return
ret The value of the attribute.



SVDregularizationLead::Clear

Description

Clears the value of an attribute in the class.

Syntax

object.Clear(MemberName)

Parameters
MemberName The name of the attribute.