2 % Copyright (C) 2017 Tajkov Zoltan, 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 %> @addtogroup lattices Lattices
20 %> @brief Class to create the Hamiltonian of one unit cell on a BiTeI lattice. (
for details see http:
22 %> @brief Class to create the Hamiltonian of one unit cell on a BiTeI lattice. (
for details see http:
24 %> EQuUs v4.9 or later
29 methods (Static =
true)
30 %% BiTeILattice_Lead_Hamiltonians
31 %> @brief Creates
Hamiltonians H_0 and H_1
for BiTeI lattice structure
32 %> @image html BiTeI.jpg
33 %> @image latex BiTeI.jpg
34 %> @
param lead_param An instance of structure #
Lattice_BiTeI (or its subclass) containing the physical parameters.
35 %> @
param M Number of
sites in the cross section of the lead.
36 %> @
return [1] The Hamiltonian of one slab in the ribbon.
37 %> @
return [2] The coupling between the slabs.
38 %> @
return [3] The transverse coupling between the slabs
for transverse calculations.
39 %> @
return [4] A structure
Coordinates containing the coordinates of the
sites.
40 function [H0, H1, H1_transverse, coordinates] = BiTeILattice_Lead_Hamiltonians(lead_param, M )
41 %Ez a függvény arra lesz hivatott, hogy a BiTeI-gr-BiTeI rendszerben egy
42 %ribbon Hamilton mátrixait megcsinálja a transzport nyelvezetén keresztül.
43 %A mátrixoknak összesen (t1,t2,mz1,mz2,m,eps) hat paramétere van, amelyeket
44 %be kell épÃteni. A függvény le fogja gyártani a megfelelÅ vastagságú
45 %hexagonális ribbon koordinátáit és mátrixait.
47 % check the structure containing the physical parameters
48 supClasses = superclasses(lead_param);
49 if sum( strcmp( supClasses,
'Lattice_BiTeI' ) ) == 0
50 error([
'EQuUs:Lattices:',
class(obj),
':BiTeILattice_Lead_Hamiltonians'],
'Invalid type of the input parameter');
54 save(
'BiTeILattice_Lead_Hamiltonians.mat')
55 error(['EQuUs:Lattices:', class(obj), ':BiTeILattice_Lead_Hamiltonians'], 'M should be .....')
58 H1_transverse = []; %Ez majd egyszer le lesz programozva
59 eps=lead_param.epsilon; %Beolvassuk a paramétereket.
60 t1=lead_param.vargamma1; %Beolvassuk a paramétereket.
61 t2=lead_param.vargamma2;
62 mz1=lead_param.SOintrinsic;
63 mz2=lead_param.vargamma3;
64 m=lead_param.SO_rashba_intrinsic;
67 %Most megcsináljuk az alap épÃtÅköveket, mint például a nulla mátrix, a
69 N=zeros(2); %nulla mátrix
77 %Most a Hamilton operátor alap épÃtÅkövei jönnek
78 % U=[eps*S0,N,N,N,t2*S0+1i*mz1*S3,t3*S0-1i*mz1*S3; ...
79 % N,eps*S0,N,t2*S0+1i*mz1*S3,t3*S0-1i*mz1*S3,N; ...
80 % N,N,eps*S0,t3*S0-1i*mz1*S3,N,t2*S0+1i*mz1*S3; ...
81 % N,t2*S0-1i*mz1*S3,t3*S0+1i*mz1*S3,eps*S0,N,N; ...
82 % t2*S0-1i*mz1*S3,t3*S0+1i*mz1*S3,N,N,eps*S0,N; ...
83 % t3*S0+1i*mz1*S3,N,t2*S0-1i*mz1*S3,N,N,eps*S0];
84 % Um=[N,N,N,N,sxp,-1i*m*S1; ...
85 % N,N,N,1i*m*S1,-sxm,N; ...
86 % N,N,N,-sxp,N,sxm; ...
87 % N,-1i*m*S1,sxp,N,N,N; ...
88 % -sxp,sxm,N,N,N,N; ...
89 % 1i*m*S1,N,-sxm,N,N,N];
90 % %H0-kat a T1 mátrixok épÃtik fel!!!
91 % T2=[N,N,N,N,N,N; ...
92 % -1i*mz2*S3,N,1i*mz2*S3,N,N,t1*S0; ...
94 % N,N,N,N,N,1i*mz2*S3; ...
95 % N,N,N,N,N,-1i*mz2*S3; ...
99 % T1= [N,1i*mz2*S3,-1i*mz2*S3,t1*S0,N,N; ...
103 % N,N,N,1i*mz2*S3,N,N; ...
104 % N,N,N,-1i*mz2*S3,N,N];
108 % T12 =[N,N,-1i*mz2*S3,N,N,N; ...
109 % N,N,1i*mz2*S3,N,N,N; ...
112 % N,N,t1*S0,1i*mz2*S3,N,-1i*mz2*S3; ...
116 %Most újra kell kezdeni, remélhetÅleg az új rendszer már jobban fog
117 %viselkedni. ElsÅként megint az elemi épÃtÅköveket kell megalkotni,
118 %ezek már 24x24-es mátrixok lesznek. Akkor most álljanak itt az új
119 %mátrixok. Azért a kötések megmaradtak csak át kell Åket cimkézni.
120 %Ezért most kimentem az adott kötéseket, majd ezek lesznek az elemi
123 %Valami baj van az inplane SOC-cal. Szerintem az, hogy nem megfelelÅen
124 %lettek elforgatva. Ezt most végig kell bogarászni... Egyesével...
125 r=sqrt(3)/2; %mint root, csak a rövidÃtések kedvéért.
126 sxp = 1i*m*(S1*1/2+r*S2);
127 sxm = -1i*m*(-S1*r+S2*1/2);
129 b25=t3*S0-1i*mz1*S3 + 1i*m*(-S1*r+S2*1/2);%sxm;
131 b23=-1i*mz2*S3-1i*mz2*S3;
132 b24=t2*S0+1i*mz1*S3+1i*m*S1;
135 b52=t3*S0+1i*mz1*S3+sxm;
136 b51=t2*S0-1i*mz1*S3-sxp;
139 b56=-1i*mz2*S3-1i*mz2*S3;
142 b15=t2*S0+1i*mz1*S3+sxp;
144 b13=-1i*mz2*S3-1i*mz2*S3;
145 b16=t3*S0-1i*mz1*S3-1i*m*S1;
147 b45=-1i*mz2*S3;%b54'; %EZT MEG KELL BESZÃLNI. VAN, VAGY NINCS???
148 b41=t1*S0;%b14'; %EZT MEG KELL BESZÃLNI. VAN, VAGY NINCS???
149 b43=t3*S0+1i*mz1*S3+sxp;
151 b42=t2*S0-1i*mz1*S3-1i*m*S1;
153 b34=t3*S0-1i*mz1*S3-sxp;
154 b36=t2*S0+1i*mz1*S3+sxm;
155 b32=1i*mz2*S3+1i*mz2*S3;%b23'; %-b23;%EZT MEG KELL BESZÃLNI. VAN, VAGY NINCS???
156 b31=1i*mz2*S3+1i*mz2*S3;%b13'; %-b13;%EZT MEG KELL BESZÃLNI. VAN, VAGY NINCS???
157 b35=t1*S0;%b53'; %-b13;%EZT MEG KELL BESZÃLNI. VAN, VAGY NINCS???
160 b65=1i*mz2*S3+1i*mz2*S3;%b56'; %-b13;%EZT MEG KELL BESZÃLNI. VAN, VAGY NINCS???
161 b61=t3*S0+1i*mz1*S3+1i*m*S1;
162 b62=t1*S0;%b26'; %-b13;%EZT MEG KELL BESZÃLNI. VAN, VAGY NINCS???
163 b63=t2*S0-1i*mz1*S3-sxm;
166 %U Ãrja le az egy elemi cellában lévÅ atomokat.
168 U=[N,b25,b21,N,N,N,N,b23,N,N,N,N; ...
169 b52,N,b51,b54,N,N,b54,b53,b56,N,N,N; ...
170 b12,b15,N,b14,b13,N,N,b13,N,b12,N,N; ...
171 N,b45,b41,N,b43,b46,N,N,b46,b42,b45,N; ...
172 N,N,b31,b34,N,b36,N,N,N,b32,N,b31; ...
173 N,N,N,b64,b63,N,N,N,N,N,b65,b61; ...
174 N,b45,N,N,N,N,N,b43,b46,N,N,N; ...
175 b32,b35,b31,N,N,N,b34,N,b36,b32,N,N; ...
176 N,b65,N,b64,N,N,b64,b63,N,b62,b65,N; ...
177 N,N,b21,b24,b23,N,N,b23,b26,N,b25,b21; ...
178 N,N,N,b54,N,b56,N,N,b56,b52,N,b51; ...
179 N,N,N,N,b13,b16,N,N,N,b12,b15,N];
182 U=U+eps*eye(24); %on-site energiákat külön adjuk hozzá
185 Tx=[N,N,N,N,N,N,N,N,N,N,N,N; ...
186 N,N,N,N,N,N,N,N,N,N,N,N; ...
187 N,N,N,N,N,N,N,N,N,N,N,N; ...
188 N,N,N,N,N,N,N,N,N,N,N,N; ...
189 N,N,N,N,N,N,N,N,N,N,N,N; ...
190 N,N,N,N,N,N,N,N,N,N,N,N; ...
191 b42,b45,N,N,N,N,N,N,N,N,N,N; ...
192 b32,N,b31,N,N,N,N,N,N,N,N,N; ...
193 N,b65,b61,b64,N,N,N,N,N,N,N,N; ...
194 N,N,b21,N,b23,N,N,N,N,N,N,N; ...
195 N,N,N,b54,b53,b56,N,N,N,N,N,N; ...
196 N,N,N,N,b13,N,N,N,N,N,N,N];
198 Ty=[N,N,N,N,N,N,N,N,N,N,N,N; ...
199 N,N,N,N,N,N,N,N,N,N,N,N; ...
200 N,N,N,N,N,N,N,N,N,N,N,N; ...
201 N,N,N,N,N,N,N,N,N,N,N,N; ...
202 b31,N,N,N,N,N,N,N,N,N,N,N; ...
203 b62,b65,N,N,N,N,b64,N,N,N,N,N; ...
204 N,N,N,N,N,N,N,N,N,N,N,N; ...
205 N,N,N,N,N,N,N,N,N,N,N,N; ...
206 N,N,N,N,N,N,N,N,N,N,N,N; ...
207 N,N,N,N,N,N,N,N,N,N,N,N; ...
208 N,N,N,N,N,N,b54,N,N,N,N,N; ...
209 b12,N,N,N,N,N,b14,b13,N,N,N,N];
212 Txyfel=[N,N,N,N,N,N,N,N,N,N,N,N; ...
213 N,N,N,N,N,N,N,N,N,N,N,N; ...
214 N,N,N,N,N,N,N,N,N,N,N,N; ...
215 N,N,N,N,N,N,N,N,N,N,N,N; ...
216 N,N,N,N,N,N,N,N,N,N,N,N; ...
217 N,N,N,N,N,N,N,N,N,N,N,N; ...
218 N,N,N,N,N,N,N,N,N,N,N,N; ...
219 N,N,N,N,N,N,N,N,N,N,N,N; ...
220 N,N,N,N,N,N,N,N,N,N,N,N; ...
221 N,N,N,N,N,N,N,N,N,N,N,N; ...
222 N,N,N,N,N,N,N,N,N,N,N,N; ...
223 b12,N,N,N,N,N,N,N,N,N,N,N];
226 Txyle=[N,N,N,N,N,N,N,N,N,N,N,N; ...
227 N,N,N,N,N,N,N,N,N,N,N,N; ...
228 N,N,N,N,N,N,N,N,N,N,N,N; ...
229 N,N,N,N,N,N,N,N,N,N,N,N; ...
230 N,N,N,N,N,N,N,N,N,N,N,N; ...
231 N,N,N,N,N,b46,N,N,N,N,N,N; ...
232 N,N,N,N,N,N,N,N,N,N,N,N; ...
233 N,N,N,N,N,N,N,N,N,N,N,N; ...
234 N,N,N,N,N,N,N,N,N,N,N,N; ...
235 N,N,N,N,N,N,N,N,N,N,N,N; ...
236 N,N,N,N,N,N,N,N,N,N,N,N; ...
237 N,N,N,N,N,N,N,N,N,N,N,N];
239 %Próbáljuk meg elÅrÅl felépÃteni? ValószÃnűleg egyszerűbb lenne...
241 %H0-t a Ty fogja felépÃteni.
244 for l = [1:M/6] %k sor l oszlop
246 H0((k-1)*24+1:k*24,(k-1)*24+1:k*24)=U;
248 H0((k-1)*24+1:k*24,(l-1)*24+1:l*24)=Ty';
250 H0((k-1)*24+1:k*24,(l-1)*24+1:l*24)=Ty;
257 for l = [1:M/6] %k sor l oszlop
259 H1((k-1)*24+1:k*24,(k-1)*24+1:k*24)=Tx;
261 H1((k-1)*24+1:k*24,(l-1)*24+1:l*24)=Txyle;
263 H1((k-1)*24+1:k*24,(l-1)*24+1:l*24)=Txyfel;
271 %Kellenek a koordináták is. Ez most egyszerűbb lesz. Kellenek elÅször
272 %elemi rácsvektorok, amelyek irányában transzlációincarianca van:
273 %Ha egy sÃkot akarunk csinálni, ahhoz 2 vektor kell, általában csak x
274 %irányban van eltolásinvariancia, most úgy teszünk, mintha y-ban is
275 %lenne. Legyen 1 a c-c kötéstávolság. Ennek egységében dolgozunk.
279 %MOst akkor ide érkeznek a koordináták. Kellenek elÅször az elemi cella
280 %atomjai, azokat fogjuk tologatni az ay-nal.
285 c4=[1/2,4/2*sqrt(3)];
287 c6=[1/2,6/2*sqrt(3)];
292 c10=[3/2,4/2*sqrt(3)];
294 c12=[3/2,6/2*sqrt(3)];
297 %Åk voltak az legkisebb épÃtÅkÅ elemi atomjai. MOst ezeket el kell tologatni ay-al!!
302 X(1+(k-1)*24)=c1(1)+(k-1)*ay(1);
303 X(2+(k-1)*24)=c2(1)+(k-1)*ay(1);
304 X(3+(k-1)*24)=c3(1)+(k-1)*ay(1);
305 X(4+(k-1)*24)=c4(1)+(k-1)*ay(1);
306 X(5+(k-1)*24)=c5(1)+(k-1)*ay(1);
307 X(6+(k-1)*24)=c6(1)+(k-1)*ay(1);
308 X(7+(k-1)*24)=c7(1)+(k-1)*ay(1);
309 X(8+(k-1)*24)=c8(1)+(k-1)*ay(1);
310 X(9+(k-1)*24)=c9(1)+(k-1)*ay(1);
311 X(10+(k-1)*24)=c10(1)+(k-1)*ay(1);
312 X(11+(k-1)*24)=c11(1)+(k-1)*ay(1);
313 X(12+(k-1)*24)=c12(1)+(k-1)*ay(1);
314 X(13+(k-1)*24)=c1(1)+(k-1)*ay(1);
315 X(14+(k-1)*24)=c2(1)+(k-1)*ay(1);
316 X(15+(k-1)*24)=c3(1)+(k-1)*ay(1);
317 X(16+(k-1)*24)=c4(1)+(k-1)*ay(1);
318 X(17+(k-1)*24)=c5(1)+(k-1)*ay(1);
319 X(18+(k-1)*24)=c6(1)+(k-1)*ay(1);
320 X(19+(k-1)*24)=c7(1)+(k-1)*ay(1);
321 X(20+(k-1)*24)=c8(1)+(k-1)*ay(1);
322 X(21+(k-1)*24)=c9(1)+(k-1)*ay(1);
323 X(22+(k-1)*24)=c10(1)+(k-1)*ay(1);
324 X(23+(k-1)*24)=c11(1)+(k-1)*ay(1);
325 X(24+(k-1)*24)=c12(1)+(k-1)*ay(1);
327 Y(1+(k-1)*24)=c1(2)+(k-1)*ay(2);
328 Y(2+(k-1)*24)=c2(2)+(k-1)*ay(2);
329 Y(3+(k-1)*24)=c3(2)+(k-1)*ay(2);
330 Y(4+(k-1)*24)=c4(2)+(k-1)*ay(2);
331 Y(5+(k-1)*24)=c5(2)+(k-1)*ay(2);
332 Y(6+(k-1)*24)=c6(2)+(k-1)*ay(2);
333 Y(7+(k-1)*24)=c7(2)+(k-1)*ay(2);
334 Y(8+(k-1)*24)=c8(2)+(k-1)*ay(2);
335 Y(9+(k-1)*24)=c9(2)+(k-1)*ay(2);
336 Y(10+(k-1)*24)=c10(2)+(k-1)*ay(2);
337 Y(11+(k-1)*24)=c11(2)+(k-1)*ay(2);
338 Y(12+(k-1)*24)=c12(2)+(k-1)*ay(2);
339 Y(13+(k-1)*24)=c1(2)+(k-1)*ay(2);
340 Y(14+(k-1)*24)=c2(2)+(k-1)*ay(2);
341 Y(15+(k-1)*24)=c3(2)+(k-1)*ay(2);
342 Y(16+(k-1)*24)=c4(2)+(k-1)*ay(2);
343 Y(17+(k-1)*24)=c5(2)+(k-1)*ay(2);
344 Y(18+(k-1)*24)=c6(2)+(k-1)*ay(2);
345 Y(19+(k-1)*24)=c7(2)+(k-1)*ay(2);
346 Y(20+(k-1)*24)=c8(2)+(k-1)*ay(2);
347 Y(21+(k-1)*24)=c9(2)+(k-1)*ay(2);
348 Y(22+(k-1)*24)=c10(2)+(k-1)*ay(2);
349 Y(23+(k-1)*24)=c11(2)+(k-1)*ay(2);
350 Y(24+(k-1)*24)=c12(2)+(k-1)*ay(2);
353 %plot(X,Y,'.'), axis equal
360 % H0 = sparse(1:dim/2-1, 2:dim/2, ggamma, dim, dim) + sparse(2:dim/2, 1:dim/2-1, ggamma, dim, dim) + ...
361 % sparse(dim/2+1:dim-1, dim/2+2:dim, ggamma, dim, dim) + sparse(dim/2+2:dim, dim/2+1:dim-1, ggamma, dim, dim) + ...
362 % sparse(1:dim/2, dim/2+1:dim, ggamma*0.1, dim, dim) + sparse(dim/2+1:dim, 1:dim/2, ggamma*0.1, dim, dim);
364 % H1 = sparse(dim/2, 1, ggamma, dim, dim) + sparse(dim, dim/2+1, ggamma, dim, dim);
365 % coordinates.x = zeros(dim,1);
366 % coordinates.y = zeros(dim,1);
369 % obj.params.vargamma = 2.97;
370 % [obj.H0,obj.H1,obj.H1_transverse,obj.coordinates] = createH.Graphene_Lead_Hamiltonians(obj.params, obj.M, 'Z', 'q', obj.q);
371 % obj.H0 = [obj.H0, obj.H1; obj.H1', obj.H0];
372 % obj.H1 = [zeros(size(obj.H1,1), size(obj.H1,2)*2); [obj.H1, zeros(size(obj.H1,1), size(obj.H1,2))]];
373 % obj.H1adj = obj.H1';
374 % obj.M = size(obj.H0,1);
375 % obj.kulso_szabfokok = [];
376 % obj.coordinates.x = zeros(size(obj.H0,1),1);
377 % obj.coordinates.y = zeros(size(obj.H0,1),1);
function Transport(Energy, B)
Calculates the conductance at a given energy value.
Class to create the Hamiltonian of one unit cell on a BiTeI lattice.
function Hamiltonians(varargin)
Function to create the custom Hamiltonians for the 1D chain.
Structure param contains data structures describing the physical parameters of the scattering center ...
Structure sites contains data to identify the individual sites in a matrix.
Class containing physical parameters of the BiTeI lattice.
A class to create the Hamiltonian of one unit cell in a translational invariant lead made of hexagona...
Structure containing the coordinates and other quantum number identifiers of the sites in the Hamilto...
function structures(name)