Hamiltoniano para semimetales de Weyl tipo I –Minimal Models
#

El objetivo general de este notebook es explorar el Hamiltoniano presentado en el artículo [1]

Los conceptos a introducir serán:

  • Hamiltoniano para un semimetal del Weyl

  • Relación de dispersión generada por este tipo de materiales

A diferencia del hamiltoniano explorado anteriormente, este econtiene un parametro \(\gamma\), que permite estudiar la transición de fase de un semimetal de Weyl tipo I a uno tipo II. Adicionalmente, este notebook se enfocara sólo en la fase correspondiente al semimemtal de Weyl tipo I (\(\gamma\) = 0).


Fuente: T. M. McCormick, I. Kimchi, and N. Trivedi. Minimal Models for Topological Weyl Semimetals.Phys. Rev. B, 95(7):075133, Feb 2017

Multiprocesing#

Hide code cell source
import multiprocessing as mp
import plotly.graph_objects as go
Hide code cell source
%pylab inline
%matplotlib inline
%pylab is deprecated, use %matplotlib inline and import the required libraries.
Populating the interactive namespace from numpy and matplotlib
Hide code cell source
def EigenV(k):
    k_x,k_y,k_z=k
    E=eigvalsh(HWeyl(k_x,k_y,k_z))
    return E
Hide code cell source
res=pi/101 #resolucion

k_xb,k_yb,k_zb=arange(-pi,pi,res),arange(-pi,pi,res),arange(-pi,pi,res)

a  = 1
k_0= pi/2
   #Weyl positions
tx = 1.0/2      
t  = 1.0/2
m  = 2*t
γ  = 0
def HWeyl(k_x,k_y,k_z):   
    HW = array([[γ*(cos(k_x)-cos(k_0))-2*t*sin(k_z),   -(m*(2-cos(k_y)-cos(k_z))+2*tx*(cos(k_x)-cos(k_0)))+2J*t*sin(k_y)],
                [ -(m*(2-cos(k_y)-cos(k_z))+2*tx*(cos(k_x)-cos(k_0)))-2J*t*sin(k_y), γ*(cos(k_x)-cos(k_0))+2*t*sin(k_z)]])
    return HW
Hide code cell source
a_d= len(k_xb) #dimension del arreglo
KX,KZ = meshgrid(k_xb,k_zb)
KX    = KX.reshape((a_d*a_d,))
KZ    = KZ.reshape((a_d*a_d,))

k     = column_stack((KX,zeros_like(KX),KZ))
Hide code cell source
%%time 

Ek = map(EigenV,k) #función  y los valores que toma
Ek = array(list(Ek))
print(Ek)
[[-1.          1.        ]
 [-1.00048372  1.00048372]
 [-1.0019344   1.0019344 ]
 ...
 [-1.00434856  1.00434856]
 [-1.00193347  1.00193347]
 [-1.00048348  1.00048348]]
CPU times: user 2.7 s, sys: 9.1 ms, total: 2.71 s
Wall time: 2.71 s
Hide code cell source
Enm = Ek.T[0].reshape((a_d,a_d)).T#primer T para +/- segundo para X->Z
Enp = Ek.T[1].reshape((a_d,a_d)).T


KX,KZ = meshgrid(k_xb,k_zb)
Hide code cell source
DATA = [ go.Surface( z=Enm, x=(KX),y=(KZ),opacity=0.9,  colorbar_x=0.75,colorscale='deep'),
        go.Surface( z=Enp,x=KX,y=KZ,opacity=0.6, colorbar_x=0.9)]
Hide code cell source
fig = go.Figure( data=DATA )

fig.update_layout( autosize=False,
                   width = 800, height = 500,
                   margin= dict(l=65, r=50, b=65, t=90),
                   scene = dict(xaxis_title="kx", 
                                yaxis_title="ky", 
                                zaxis_title="E [t]", 
                                xaxis = dict(showbackground=False), 
                                yaxis = dict(showbackground=False),
                                zaxis = dict(showbackground=False)))

En esta figura se presenta una realcion de dispersion propia de un semimetal de Weyl tipo I. Dicha relación se caracteriza porque la banda de conducción y valencia son simetricas al plano \(K_x, K_y\)

Semimetal de Weyl Tipo I