Disclination zero mode/Skin effect

Disclination zero mode in px+ipy wave SC

Model (px+ipy SC)

Clear[h,x,y,tx,ty,μ,Δ]
h={
{t*Cos[kx]+t*Cos[ky]-μ,Δ[x,y]*(Sin[kx]+I Sin[ky])},
{Δ[x,y]\[Conjugate]*(Sin[kx]-I Sin[ky]),-t*Cos[kx]-t*Cos[ky]+μ}
};
(*C4対称性*)
c4={{E^(I Pi/4),0},{0,E^(-I Pi/4)}};
Simplify[c4.h==(h/.{kx->-ky,ky->kx}).c4]

(*Hopping matrices*)
hop[1,0]=Simplify[Integrate[E^(I kx)*h,{kx,0,2 Pi},{ky,0,2 Pi}]/(2 Pi)^2];
hop[-1,0]=Simplify[Integrate[E^(-I kx)*h,{kx,0,2 Pi},{ky,0,2 Pi}]/(2 Pi)^2];
hop[0,1]=Simplify[Integrate[E^(I ky)*h,{kx,0,2 Pi},{ky,0,2 Pi}]/(2 Pi)^2];
hop[0,-1]=Simplify[Integrate[E^(-I ky)*h,{kx,0,2 Pi},{ky,0,2 Pi}]/(2 Pi)^2];
hop[0,0]=Simplify[Integrate[h,{kx,0,2 Pi},{ky,0,2 Pi}]/(2 Pi)^2];

まずは練習で，渦ゼロ状態の計算
- 渦度をmとする．
- pi-flux defectのオンオフを”on”で指定する．

L=16(*偶数に選ぶ*);
Lx=L;Ly=L;
Clear[n,x,y];
piflux(*pi-flux defectの有無*)="off";
n[x_,y_]:=Lx (y-1)+x(*座標 (x,y) をn ϵ Ζ でラベルする：n=Lx (y-1)+x*);
(*4回回転の中心は，((L+1)/2,(L+1)/2). 4回回転は(x,y)->(-y+L+1,x)*)
m(*渦度*)=1;
Δ[x_,y_]:=δ*E^(m*I Arg[(x-(Lx+1)/2)+I (y-(Ly+1)/2)]);
h=Table[0,{i,Lx Ly},{j,Lx Ly}];
(*OBC*)
Do[
h[[n[x+1,y],n[x,y]]]=hop[1,0];
h[[n[x,y],n[x+1,y]]]=hop[-1,0];
,{x,Lx-1},{y,Ly}];
Do[
h[[n[x,y+1],n[x,y]]]=hop[0,1];
h[[n[x,y],n[x,y+1]]]=hop[0,-1];
If[
piflux=="on",If[y==L/2&&1≤x≤L/2,h[[n[x,y+1],n[x,y]]]=-h[[n[x,y+1],n[x,y]]];h[[n[x,y],n[x,y+1]]]=-h[[n[x,y],n[x,y+1]]]]
];
,{x,Lx},{y,Ly-1}];
Do[
h[[n[x,y],n[x,y]]]=hop[0,0];
,{x,Lx},{y,Ly}];
h=ArrayFlatten[h];
para={t->-1,μ->1,δ->1};
{Eval,Estate}=Eigensystem[N[h/.para]];
Eval[[-10;;]]
(*固有状態の密度プロット*)
Print["渦度=",m,", Pi-flux欠陥: ",If[piflux=="on","あり","なし"]];
Print["絶対値の小さいエネルギー固有値を下から4つプロット:"]
lis=Table[Flatten[Table[{x,y,Norm[{Estate[[-m,2*n[x,y]]],Estate[[-m,2*n[x,y]]]}]},{x,1,Lx},{y,1,Ly}],1],{m,4}];
Table[ListDensityPlot[x],{x,lis}]

Disclination defect (C4回転の中心が単位胞角の場合)
- pi-flux欠陥なし：C4回転で繋ぐ，
- pi-flux欠陥あり：C4*(((-1))^F) = (C4^(-3))回転で繋ぐ，
ことにそれぞれ対応する．

L=16(*偶数に選ぶ*);
Lx=L;Ly=L;
Clear[n,x,y];
piflux(*pi-flux defectの有無*)="off";
n[x_,y_]:=Lx (x-1)+y(*座標 (x,y) をn ϵ Ζ でラベルする：n=Lx (y-1)+x*);
(*4回回転の中心は，((L+1)/2,(L+1)/2). 4回回転は(x,y)->(-y+L+1,x)*)
m(*渦度*)=0;
Δ[x_,y_]:=δ*E^(m*I Arg[(x-(Lx+1)/2)+I (y-(Ly+1)/2)]);
h=Table[0,{i,Lx Ly},{j,Lx Ly}];
Do[
h[[n[x+1,y],n[x,y]]]=hop[1,0];
h[[n[x,y],n[x+1,y]]]=hop[-1,0];
,{x,1,Lx-1},{y,1,Ly}];
Do[
h[[n[x,y+1],n[x,y]]]=hop[0,1];
h[[n[x,y],n[x,y+1]]]=hop[0,-1];
,{x,1,Lx},{y,1,Ly-1}];
Do[
h[[n[x,y],n[x,y]]]=hop[0,0];
,{x,1,Lx},{y,1,Ly}];
(*不要な要素を消す*)
Do[
h[[n[x+1,y],n[x,y]]]=0*IdentityMatrix[Length[hop[0,0]]];
h[[n[x,y],n[x+1,y]]]=0*IdentityMatrix[Length[hop[0,0]]];
,{x,Lx/2,Lx-1},{y,Ly/2+1,Ly}];
Do[
h[[n[x,y+1],n[x,y]]]=0*IdentityMatrix[Length[hop[0,0]]];
h[[n[x,y],n[x,y+1]]]=0*IdentityMatrix[Length[hop[0,0]]];
,{x,Lx/2+1,Lx},{y,Ly/2,Ly-1}];
Do[
h[[n[x,y],n[x,y]]]=100*IdentityMatrix[Length[hop[0,0]]](*不要な自由度に対して絶対値の大きい固有値を振る*);
,{x,Lx/2+1,Lx},{y,Ly/2+1,Ly}];
(*C4対称性で繋ぐ*)
Do[
y=L/2;
h[[n[L/2,x],n[x,L/2]]]=If[piflux=="on",-1,1]*c4.hop[0,1];
h[[n[x,L/2],n[L/2,x]]]=If[piflux=="on",-1,1]*Inverse[c4].hop[1,0];
,{x,L/2+1,L}];
h=ArrayFlatten[h];
para={t->-1,μ->1,δ->1};
{Eval,Estate}=Eigensystem[N[h/.para]];
Eval[[-10;;]]
(*固有状態の密度プロット*)
Print["渦度=",m,", Pi-flux欠陥: ",If[piflux=="on","あり","なし"]];
Print["絶対値の小さいエネルギー固有値を下から4つプロット:"]
lis=Table[Flatten[Table[{x,y,Norm[{Estate[[-m,2*n[x,y]]],Estate[[-m,2*n[x,y]]]}]},{x,1,Lx},{y,1,Ly}],1],{m,8}];
Table[ListDensityPlot[x],{x,lis}]

Disclination defect (C4回転の中心がサイト中心の場合)
- pi-flux欠陥なし：C4回転で繋ぐ，
- pi-flux欠陥あり：C4*(((-1))^F) = (C4^(-3))回転で繋ぐ，
ことにそれぞれ対応する．

L=10(*サイト数は(2L+1)*(2L+1)*);
Clear[n,x,y];
piflux(*pi-flux defectの有無*)="off";
n[x_,y_]:=(2 L+1) (x+L)+y+L+1(*座標 (x,y) をn=1,...,(2L+1)^2 でラベルする*);
(*4回回転は(x,y)->(-y,x)*)
m(*渦度*)=0;
Δ[x_,y_]:=δ*E^(m*I Arg[x+I y]);
h=Table[0,{i,(2 L+1)^2},{j,(2 L+1)^2}];
Do[
h[[n[x+1,y],n[x,y]]]=hop[1,0];
h[[n[x,y],n[x+1,y]]]=hop[-1,0];
,{x,-L,L-1},{y,-L,L}];
Do[
h[[n[x,y+1],n[x,y]]]=hop[0,1];
h[[n[x,y],n[x,y+1]]]=hop[0,-1];
,{x,-L,L},{y,-L,L-1}];
Do[
h[[n[x,y],n[x,y]]]=hop[0,0];
,{x,-L,L},{y,-L,L}];
(*回位欠陥の構成．まずは不要な要素を消す*)
Do[
h[[n[x+1,y],n[x,y]]]=0*IdentityMatrix[Length[hop[0,0]]];
h[[n[x,y],n[x+1,y]]]=0*IdentityMatrix[Length[hop[0,0]]];
,{x,-1,L-1},{y,1,L}];
Do[
h[[n[x,y+1],n[x,y]]]=0*IdentityMatrix[Length[hop[0,0]]];
h[[n[x,y],n[x,y+1]]]=0*IdentityMatrix[Length[hop[0,0]]];
,{x,0,L},{y,0,L-1}];
Do[
h[[n[x,y],n[x,y]]]=100*IdentityMatrix[Length[hop[0,0]]](*不要な自由度に対して絶対値の大きい固有値を振る*);
,{x,0,L},{y,1,L}];
(*C4対称性で繋ぐ*)
Do[
y=0;
h[[n[-1,x],n[x,0]]]=If[piflux=="on",-1,1]*c4.hop[0,1];
h[[n[x,0],n[-1,x]]]=If[piflux=="on",-1,1]*hop[0,-1].Inverse[c4];
,{x,1,L}];
h=ArrayFlatten[h];
para={t->1,μ->1.2,δ->1};
{Eval,Estate}=Eigensystem[N[h/.para]];
Eval[[-10;;]]
(*固有状態の密度プロット*)
Print["L=",L", 渦度=",m,", Pi-flux欠陥: ",If[piflux=="on","あり","なし"]];
Print["絶対値の小さいエネルギー固有値を下から6つプロット:"]
lis=Table[Flatten[Table[{x,y,Norm[{Estate[[-m,2*n[x,y]]],Estate[[-m,2*n[x,y]]]}]},{x,-L,L},{y,-L,L}],1],{m,6}];
Table[ListDensityPlot[x],{x,lis}]

Disclination defect (C4回転の中心が(1/2,1/2)の場合)
- pi-flux欠陥なし：C4回転で繋ぐ，
- pi-flux欠陥あり：C4*(((-1))^F) = (C4^(-3))回転で繋ぐ，
ことにそれぞれ対応する．

L=8(*サイト数は(2L+1)*(2L+1)*);
Clear[n,x,y];
piflux(*pi-flux defectの有無*)="off";
n[x_,y_]:=(2 L+1) (x+L)+y+L+1(*座標 (x,y) をn=1,...,(2L+1)^2 でラベルする*);
(*4回回転は(x,y)->(-y,x)*)
m(*渦度*)=0;
Δ[x_,y_]:=δ*E^(m*I Arg[x+I y]);
h=Table[0,{i,(2 L+1)^2},{j,(2 L+1)^2}];
Do[
h[[n[x+1,y],n[x,y]]]=hop[1,0];
h[[n[x,y],n[x+1,y]]]=hop[-1,0];
,{x,-L,L-1},{y,-L,L}];
Do[
h[[n[x,y+1],n[x,y]]]=hop[0,1];
h[[n[x,y],n[x,y+1]]]=hop[0,-1];
,{x,-L,L},{y,-L,L-1}];
Do[
h[[n[x,y],n[x,y]]]=hop[0,0];
,{x,-L,L},{y,-L,L}];
(*回位欠陥の構成．まずは不要な要素を消す*)
Do[
h[[n[x+1,y],n[x,y]]]=0*IdentityMatrix[Length[hop[0,0]]];
h[[n[x,y],n[x+1,y]]]=0*IdentityMatrix[Length[hop[0,0]]];
,{x,0,L-1},{y,1,L}];
Do[
h[[n[x,y+1],n[x,y]]]=0*IdentityMatrix[Length[hop[0,0]]];
h[[n[x,y],n[x,y+1]]]=0*IdentityMatrix[Length[hop[0,0]]];
,{x,1,L},{y,0,L-1}];
Do[
h[[n[x,y],n[x,y]]]=100*IdentityMatrix[Length[hop[0,0]]](*不要な自由度に対して絶対値の大きい固有値を振る*);
,{x,1,L},{y,1,L}];
(*C4対称性で繋ぐ*)
Do[
y=0;
h[[n[0,x],n[x,0]]]=If[piflux=="on",-1,1]*c4.hop[0,1];
h[[n[x,0],n[0,x]]]=If[piflux=="on",-1,1]*hop[0,-1].Inverse[c4];
,{x,1,L}];
h=ArrayFlatten[h];
para={t->-1,μ->1,δ->1};
{Eval,Estate}=Eigensystem[N[h/.para]];
Eval[[-10;;]]
(*固有状態の密度プロット*)
Print["L=",L", 渦度=",m,", Pi-flux欠陥: ",If[piflux=="on","あり","なし"]];
Print["絶対値の小さいエネルギー固有値を下から6つプロット:"]
lis=Table[Flatten[Table[{x,y,Norm[{Estate[[-m,2*n[x,y]]],Estate[[-m,2*n[x,y]]]}]},{x,-L,L},{y,-L,L}],1],{m,6}];
Table[ListDensityPlot[x],{x,lis}]