-
Notifications
You must be signed in to change notification settings - Fork 7
/
kZB_f.m
70 lines (56 loc) · 1.68 KB
/
kZB_f.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
function[k_list,k]=kZB_f(Nk,a)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%% Brillouin zone vectors %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% L-valley
kL=linspace(-0.5,0,Nk);
k1 = [ kL' kL' kL' ];
%%% X-valley
kx=linspace(0,1,Nk);
k2 = [ kx' 0*kx' 0*kx' ];
%%% X point to U point
%ky=linspace(0,0.25,floor(Nk/2));
%kz=linspace(0,0.25,floor(Nk/2));
%k3 = [ ky'*0+1 ky' kz' ];
ky=linspace(0,0.125,floor(Nk/2));
kz=linspace(0,0.125,floor(Nk/2));
k3 = [ ky'*0+1 ky' kz' ];
%%% U point to Gamma point
kx=linspace(0.875,0,Nk);
ky=linspace(0.875,0,Nk);
k4 = [ kx' ky' kx'*0 ];
%kx=linspace(1,0,Nk);
%ky=linspace(0.125,0,Nk);
%k4 = [ kx' ky' ky' ];
k_list=[ k1 ; k2 ]*2*pi/a;
%k_ZB=[ k1 ; k2 ; k3 ; k4 ]*2*pi/a;
k=sqrt( k_list(:,1).^2 + k_list(:,2).^2 + k_list(:,3).^2 );
k=[ -k(1:Nk) ; k(Nk+1:end) ];
%Nk=50;
%%%% L-valley
%kL=linspace(-0.5,0,Nk);
%k1 = [ kL' kL' kL' ];
%%%% X-valley
%kx=linspace(0,1,Nk);
%k2 = [ kx' 0*kx' 0*kx' ];
%%%% X point to U point
%ky=linspace(0,0.25,floor(Nk/2));
%kz=linspace(0,0.25,floor(Nk/2));
%k3 = [ ky'*0+1 ky' kz' ];
%%%% U point to Gamma point
%kx=linspace(1,0,Nk);
%ky=linspace(0.25,0,Nk);
%k4 = [ kx' ky' ky' ];
%%%% here, it just to checked that it is isotrope... and make the last plot
%kx=linspace(0,1,Nk);
%k5 = [
%kx'*1 kx'*0 kx'*0
%kx'*0 kx'*1 kx'*0
%kx'*0 kx'*0 kx'*1
%];
%
%k_list=[ k1 ; k2 ; k3 ; k4 ; k5]*2*pi/a;
%%k_list=[ k4(1,:)]*2*pi/a;
%%k_list=[k_list(1,1) 0 0];
%%k=sqrt( k_list(:,1).^2 + k_list(:,2).^2 + k_list(:,3).^2 );
end