Eötvös Quantum Utilities  v4.9.146
Providing the Horsepowers in the Quantum Realm
zgetPartialInv_test.m
Go to the documentation of this file.
1 %======================================================================
2 % Test function for the MEX file zgetPartialInv.
3 % Copyright (C) 2009-2015 Peter Rakyta, Ph.D.
4 %
5 % This program is free software: you can redistribute it and/or modify
6 % it under the terms of the GNU General Public License as published by
7 % the Free Software Foundation, either version 3 of the License, or
8 % (at your option) any later version.
9 %
10 % This program is distributed in the hope that it will be useful,
11 % but WITHOUT ANY WARRANTY; without even the implied warranty of
12 % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 % GNU General Public License for more details.
14 %
15 % You should have received a copy of the GNU General Public License
16 % along with this program. If not, see http://www.gnu.org/licenses/.
17 function zgetPartialInv_test()
18 
19 
20  filename = mfilename('fullpath');
21  [directory, fncname] = fileparts( filename );
22  fncname = fncname(1:end-length('_test'));
23  filename = fullfile( directory, [fncname, '.', mexext] );
24 
25 
26 %% creating the test Hamiltonian
27 Opt = structures('Opt');
28 param = structures('param');
30 param.scatter.shape = structures('shape');
31 
32 param.scatter.epsilon = 0.5;
33 param.scatter.vargamma = -2;
34 Opt.Lattice_Type = 'Square';
35 param.scatter.shape.width = 100;
36 param.scatter.shape.height = 40;
37 
38 CreateH = CreateHamiltonians( Opt, param );
39 CreateH.CreateScatterH();
40 
41 Hscatter = CreateH.Read('Hscatter');
42 CreateH.Clear('Hscatter');
43 
44 display('***************************************************************************')
45 display(['The size of the test matrix is :', num2str(size(Hscatter,1)), 'x', num2str(size(Hscatter,1))])
46 
47 %% Calculeting the surface Green function
48 
49 % reordering the matrix coupling the surface sites to the right-lower corner of the matrix
50 M = CreateH.Read('M');
51 surface_sites = false(size(Hscatter,1),1);
52 surface_sites(1:M) = true;
53 surface_sites(end-M+1:end) = true;
54 
55 Hscatter = [ Hscatter(~surface_sites, ~surface_sites), Hscatter(~surface_sites, surface_sites);
56  Hscatter(surface_sites, ~surface_sites), Hscatter(surface_sites, surface_sites) ];
57 
58 % adding Complex Eenrgy
59 Hscatter = speye(size(Hscatter))*0.5*1i - Hscatter;
60 
61 % Test using the mdivide method
62 display(' ')
63 display('Calculating the surface Green function with the mldivide operator:')
64 tic
65 evec = sparse( size(Hscatter,1)-2*M+1:size(Hscatter,1), 1:2*M, 1, size(Hscatter,1), 2*M);
66 G = Hscatter\evec;
67 G = G(end-2*M+1:end, :);
68 toc
69 
70 
71 % Test using the partialInv method
72 display(' ')
73 display('Calculating the surface Green function with the zgetPartialInv utility:')
74  try
75  tic
76  GpartialInv = zgetPartialInv( Hscatter, 2*M );
77  toc
78  catch err
79  warning([fncname, ' failed to run. Deleting the compiled MEX file.']);
80  delete(filename);
81  disp( err.identifier )
82  disp( err.message )
83  pause(3)
84  return
85  end
86 
87  error_num = norm( G-GpartialInv);
88  if error_num < 1e-11
89  display('***************************************************************************')
90  disp(['Test of ', fncname, ' passed.'])
91  else
92  warning(['Test of ', fncname, ' failed with an error ', num2str(error_num), '. Deleting the compiled MEX file.'])
93  delete(filename);
94  return
95  end
96 
97 
98 end
Lattice_Type
String describing the preprogrammed lattice type. See the documentation of lattice types for details.
Definition: structures.m:80
function test(arg1, arg2)
Brief description of the function.
Structure Opt contains the basic computational parameters used in EQuUs.
Definition: structures.m:60
function zgetPartialInv_test()
function()
Structure param contains data structures describing the physical parameters of the scattering center ...
Definition: structures.m:45
scatter_param scatter
An instance of the structure scatter_param containing the physical parameters for the scattering regi...
Definition: structures.m:47
Structure sites contains data to identify the individual sites in a matrix.
Definition: structures.m:187
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.