1 %
Transport through an SSH chain including a topological band inversion - Based on EQuUs v4.7
2 % Copyright (C) 2016 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:
20 if ~exist(
'filenum',
'var')
24 filename = mfilename('fullpath');
25 [~, fncname] = fileparts( filename );
27 outfilename = [fncname,'_',num2str( filenum )];
42 Evec = Emin:(Emax-Emin)/(Edb-1):Emax;
45 nyitott_csatornak = [];
47 inputXML1 = 'Basic_Input_SSH_1.xml';
48 inputXML2 = 'Basic_Input_SSH_2.xml';
64 Conductance = NaN(size(Evec));
65 DeltaC = NaN(size(Evec));
66 nyitott_csatornak = NaN(size(Evec));
75 for idx = 1:length(Evec)
76 [Conductance_tmp, ny_tmp, DeltaC_tmp] = combineribbons.
Transport( Evec(idx) );
77 Conductance(idx) = Conductance_tmp;
78 DeltaC(idx) = DeltaC_tmp;
79 nyitott_csatornak(idx) = ny_tmp(1);
83 save( [outputdir,'/',outfilename], 'EF', 'width', 'nyitott_csatornak', 'DeltaC', 'height', 'Evec', 'Conductance' );
84 disp([ num2str(idx/length(Evec)*100),' % calculated of the conductance.'])
91 %% sets the output directory
93 resultsdir = 'results';
95 outputdir = resultsdir;
102 Ribbons{1} =
Ribbon(
'E', Evec(1),
'EF', EF,
'width', width,
'height', height,
'silent', silent,
'filenameIn', inputXML1,
'filenameOut', fullfile( outputdir, [outfilename,
'_1.xml']) );
103 Ribbons{2} =
Ribbon(
'E', Evec(1),
'EF', EF,
'width', width,
'height', height,
'silent', silent,
'filenameIn', inputXML2,
'filenameOut', fullfile( outputdir, [outfilename,
'_2.xml']) );
118 %x_lim = [min(coordinates.x(:,1)) max(coordinates.x(:,1)) ];
119 %x_lim = [0 rightside];
124 indexek = logical( (abs(DeltaC) <= 0.5) & ~isnan(DeltaC) );
125 x_lim = [0 max(Evec)];
131 Position = [0.08 0.58 0.53 0.3];
132 axes_cond = axes('Parent',figure1, 'Position', Position,...
134 'FontSize', fontsize,...
135 'xlim', x_lim,... 'ylim', y_lim,... 'XTick', XTick,... 'YTick', YTick,...
137 'FontName','Times New Roman');
141 numerics = plot(Evec(indexek), Conductance(indexek), 'Linewidth', 2, 'color', [0 0 0], 'Parent', axes_cond);
142 %plot(Widthvec(indexek), nyitott_csatornak(indexek), 'Linewidth', 1, 'color', [1 0 0], 'Parent', axes_cond);
144 plot(Evec(indexek), DeltaC(indexek), 'Linewidth', 1, 'color', [0 1 0], 'Parent', axes_cond);
146 disp('No DeltaC data present')
153 xlabel('E [eV]','FontSize', fontsize,'FontName','Times New Roman', 'Parent', axes_cond);
156 ylabel('\sigma/\sigma_0','FontSize', fontsize,'FontName','Times New Roman', 'Parent', axes_cond);
160 fig_legend = legend(axes_cond, {
'conductance',
'unitarity error'});%,
'FontSize', fontsize,
'FontName',
'Times New Roman')
161 set(fig_legend,
'FontSize', fontsize,
'FontName',
'Times New Roman',
'Box',
'off',
'Location',
'NorthEast')
164 print(
'-depsc2', [outputdir,
'/',outfilename,
'.eps'])
A class for calculations on a ribbon of finite width for equilibrium calculations mostly in the zero ...
function CalculateTransport()
Calculates the conductance.
function SSH_transport(filenum)
An object for combining multiple ribbon parts of equal width and from the same material in a two term...