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/.
Class to regulerize the H1 problem of the leads by SVD decompozition..
EQuUs v4.8 or later
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 |
- Logical value: true if the Hamiltonians were SVD transformed, false otherwise
- U matrix from the SVD decompozition, see Eq (41) of PRB >b>78, 035407
- V matrix from the SVD decompozition, see Eq (41) of PRB 78, 035407
- SVD tolerance to identify singular values.
- An instance of class SVDregularizationLead. Somethimes it is needed to perform another SVD cycle to regularize the H1 matrix.
- Effective number of sites after the elimination of the singular values.
- SVDdecompozition
- is_SVD_needed
- Calc_Effective_Hamiltonians
- Get_Effective_Hamiltonians
- Get_Effective_Overlaps
- SVD_transform
- Decimate_Hamiltonians
- Unitary_Transform
- Get_Neff
- Get_V
- CreateClone
- Reset
- Write
- Read
- Clear
SVDregularizationLead::SVDdecompozition
Calculates the SVD decomposition of the matrix H1.
object.SVDdecompozition()
SVDregularizationLead::is_SVD_needed
Decides whether SVD regularization is needed or not.
ret = object.is_SVD_needed()
Return | |
---|---|
ret | Returns with true if SVD regularization is needed, false otherwise |
SVDregularizationLead::Calc_Effective_Hamiltonians
Calculates the effective Hamiltonians according to Eq (48) of of PRB 78, 035407
object.Calc_Effective_Hamiltonians( E )
Parameters | |
---|---|
E | The energy value in K=H-ES |
SVDregularizationLead::Get_Effective_Hamiltonians
Gets the effective Hamiltonians of the lead.
[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
Gets the effective Hamiltonians S0_eff, S1_eff, S1adj_eff according to Eq (48) of of PRB 78, 035407
[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
Regularize the Hamiltonians of the lead by SVD regularization.
object.SVD_transform( )
SVDregularizationLead::Decimate_Hamiltonians
Decimates the Hamiltonians (if the singular sites are predefined).
object.Decimate_Hamiltonians( )
SVDregularizationLead::Unitary_Transform
Transforms the effective Hamiltonians by a unitary transformation.
object.Unitary_Transform( Umtx )
Parameters | |
---|---|
Umtx | The unitary matrix to be used in the transformations. |
SVDregularizationLead::Get_Neff
Gets the effective number of sites after the elimination of the singular values.
Neff = object.Get_Neff( )
Return | |
---|---|
Neff | Returns with the effective number of sites |
SVDregularizationLead::CreateClone
Creates a clone of the present class.
ret = object.CreateClone( )
Return | varargin |
Optional parameters given by a sequence ...'name', value,... . Possible parameters are the following:
|
---|
SVDregularizationLead::Reset
Resets all attributes in the class.
object.Reset()
SVDregularizationLead::Write
Sets the value of an attribute in the class.
object.Write(MemberName, input)
Parameters | |
---|---|
MemberName | The name of the attribute to be set. |
input | The value to be set. |
SVDregularizationLead::Read
Query for the value of an attribute in the class.
ret = object.Read(MemberName)
Parameters | |
---|---|
MemberName | The name of the attribute. |
Return | |
---|---|
ret | The value of the attribute. |
SVDregularizationLead::Clear
Clears the value of an attribute in the class.
object.Clear(MemberName)
Parameters | |
---|---|
MemberName | The name of the attribute. |
- Log in to post comments