2 % Copyright (C) 2009-2015 Peter Rakyta, Ph.D.
4 % This program is free software: you can redistribute it and/or modify
5 % it under the terms of the GNU General Public License as published by
6 % the Free Software Foundation, either version 3 of the License, or
7 % (at your option) any later version.
9 % This program is distributed in the hope that it will be useful,
10 % but WITHOUT ANY WARRANTY; without even the implied warranty of
11 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 % GNU General Public License
for more details.
14 % You should have received a copy of the GNU General Public License
15 % along with
this program. If not, see http:
17 %> @brief Test
function for the MEX file dgetDiagInv.
21 filename = mfilename(
'fullpath');
22 [directory, fncname] = fileparts( filename );
23 fncname = fncname(1:end-length(
'_test'));
24 filename = fullfile( directory, [fncname,
'.', mexext] );
27 %% creating the
test Hamiltonian
40 CreateH.CreateScatterH();
42 Hscatter = CreateH.Read(
'Hscatter');
43 CreateH.Clear(
'Hscatter');
45 display(
'***************************************************************************')
46 display(['The size of the
test matrix is :', num2str(size(Hscatter,1)), 'x', num2str(size(Hscatter,1))])
48 %% Calculeting the surface Green
function 50 % reordering the matrix coupling the surface
sites to the right-lower corner of the matrix
51 M = CreateH.Read('M');
52 surface_sites = false(size(Hscatter,1),1);
53 surface_sites(1:M) = true;
54 surface_sites(end-M+1:end) = true;
56 Hscatter = [ Hscatter(~surface_sites, ~surface_sites), Hscatter(~surface_sites, surface_sites);
57 Hscatter(surface_sites, ~surface_sites), Hscatter(surface_sites, surface_sites) ];
59 % adding Complex Eenrgy
60 sizeH = size(Hscatter, 1);
61 Hscatter = sparse(1:sizeH, 1:sizeH, 0.23, sizeH, sizeH) - Hscatter;
63 % Test using the mdivide method
65 display('Calculating the diagonal element of the inverse with the MATLAB utility:')
67 diagG = diag(inv(Hscatter));
71 % Test using the partialInv method
73 display('Calculating the diagonal element of the inverse with the dgetDiagInv utility:')
76 GDiagInv = dgetDiagInv( Hscatter );
79 warning([fncname, ' failed to run. Deleting the compiled MEX file.']);
81 disp( err.identifier )
87 error_num = norm( diagG-GDiagInv);
89 display('***************************************************************************')
90 disp(['Test of ', fncname, ' passed.'])
92 warning(['Test of ', fncname, ' failed with an error ', num2str(error_num), '. Deleting the compiled MEX file.'])
Lattice_Type
String describing the preprogrammed lattice type. See the documentation of lattice types for details.
function test(arg1, arg2)
Brief description of the function.
Structure Opt contains the basic computational parameters used in EQuUs.
function Transport(Energy, B)
Calculates the conductance at a given energy value.
Structure param contains data structures describing the physical parameters of the scattering center ...
scatter_param scatter
An instance of the structure scatter_param containing the physical parameters for the scattering regi...
function dgetDiagInv_test()
Test function for the MEX file dgetDiagInv.
Structure sites contains data to identify the individual sites in a matrix.
Class containing physical parameters of a scattering center defined on a square lattice.
function structures(name)
A class to create and store Hamiltonian of the scattering region.