def system_Haldane_PythTB_wcc(pythtb_Haldane): """Create system for Haldane model using PythTB""" # Load system system = wberri.System_PythTB(pythtb_Haldane, berry=True, use_wcc_phase=True)#,periodic=(True,True,False)) return system
def system_Haldane_PythTB_sym(pythtb_Haldane): """Create system for Haldane model using PythTB""" # Load system system = wberri.System_PythTB(pythtb_Haldane, berry=True, use_wcc_phase=False)# ,periodic=(True,True,False)) system.set_symmetry(["C3z"]) return system
def system_Haldane_PythTB(pythtb_Haldane): """Create system for Haldane model using PythTB""" # Load system system = wberri.System_PythTB(pythtb_Haldane, berry=True, use_wcc_phase=False )#,periodic=(True,True,False)) # with the 2D PythTB model, the periodicity is detected automatically return system
haldane.set_hop(t1, 1, 0, [ 1, 0]) haldane.set_hop(t1, 1, 0, [ 0, 1]) # add second neighbour complex hoppings haldane.set_hop(t2 , 0, 0, [ 0, -1]) haldane.set_hop(t2 , 0, 0, [ 1, 0]) haldane.set_hop(t2 , 0, 0, [ -1, 1]) haldane.set_hop(t2 , 1, 1, [ -1, 0]) haldane.set_hop(t2 , 1, 1, [ 1,-1]) haldane.set_hop(t2 , 1, 1, [ 0, 1]) return haldane # Define the model for a fixed set of parameters haldane=HaldanePTB(2,1,1/3,np.pi/10) # Call the interface for TBmodels to define the system class syst=wb.System_PythTB(haldane,getAA=True) Efermi=np.linspace(-4,6,1000) # Define some symmetries syst.set_symmetry(['C3z']) # After defining the symmetries, create the grid class grid=wb.Grid(syst,NK=(200,200,1)) # Define which quantities are going to be integrated q_int=["dos","ahc"] seedname="pythtb_Haldane" num_iter=10 wb.integrate(syst, grid=grid, Efermi=Efermi, smearEf=300, quantities=q_int, numproc=8,
haldane.set_hop(t1, 1, 0, [0, 1]) # add second neighbour complex hoppings haldane.set_hop(t2, 0, 0, [0, -1]) haldane.set_hop(t2, 0, 0, [1, 0]) haldane.set_hop(t2, 0, 0, [-1, 1]) haldane.set_hop(t2, 1, 1, [-1, 0]) haldane.set_hop(t2, 1, 1, [1, -1]) haldane.set_hop(t2, 1, 1, [0, 1]) return haldane # Define the model for a fixed set of parameters haldane = HaldanePTB(2, 1, 1 / 3, np.pi / 10) # Call the interface for TBmodels to define the system class syst = wb.System_PythTB(haldane, berry=True, morb=True) Efermi = np.linspace(-4, 6, 1000) # Define some symmetries syst.set_symmetry(['C3z']) # After defining the symmetries, create the grid class grid = wb.Grid(syst, NK=(200, 200, 1), NKFFT=(20, 20, 1)) # Define which quantities are going to be integrated q_int = ["dos", "ahc", "Morb"] seedname = "pythtb_Haldane" num_iter = 10 wb.integrate(syst, grid=grid, Efermi=Efermi, smearEf=300, quantities=q_int, numproc=8,
my_model=ptb.tb_model(3,3,lat,orb) # set model parameters # lattice parameter implicitly set to a=1 Es= 4.5 # site energy t =-1.4 # hopping parameter # set on-site energy my_model.set_onsite([Es]) # set hoppings along four unique bonds # note that neighboring cell must be specified in lattice coordinates for R in ([1,0,0],[0,1,0],[0,0,1],[1,1,1]): my_model.set_hop(t, 0, 0, R) system=wb.System_PythTB(my_model,berry=True) Efermi=np.linspace(-7,16,1000) # Define the generators of the point group of the crystal (Im-3m) # generators extracted from Bilbao Crystallographic Center # (using same notation as https://www.cryst.ehu.es/cgi-bin/cryst/programs/nph-point_genpos?w2do=gens&num=32&what=) # C2z axis (predefined): ITA200z=SYM.Rotation(2,[0,0,1]) # C2y axis (predefined): ITA20y0=SYM.Rotation(2,[0,1,0]) # Inversion (predefined) ITA3M111=SYM.Rotation(3,[1,1,1])# C3 axis along 111 ITA2xx0=SYM.Rotation(2,[1,1,0])# C2 axis along 110 generators=['C2z','C2y','Inversion',ITA3M111,ITA2xx0] system.set_symmetry(generators) seedname='pythtbLi' q_int=['dos','cumdos','conductivity_ohmic','conductivity_ohmic_fsurf'] num_iter=1 grid=wb.Grid(system,length=200,NKFFT=20)
# make 3D model my_model = ptb.tb_model(3, 3, lat, orb) # set model parameters # lattice parameter implicitly set to a=1 Es = 4.5 # site energy t = -1.4 # hopping parameter # set on-site energy my_model.set_onsite([Es]) # set hoppings along four unique bonds # note that neighboring cell must be specified in lattice coordinates for R in ([1, 0, 0], [0, 1, 0], [0, 0, 1], [1, 1, 1]): my_model.set_hop(t, 0, 0, R) system = wb.System_PythTB(my_model, getAA=True) Efermi = np.linspace(-7, 16, 5000) # Define the generators of the point group of the crystal (Im-3m) # generators extracted from Bilbao Crystallographic Center # (using same notation as https://www.cryst.ehu.es/cgi-bin/cryst/programs/nph-point_genpos?w2do=gens&num=32&what=) # C2z axis (predefined): ITA200z=SYM.Rotation(2,[0,0,1]) # C2y axis (predefined): ITA20y0=SYM.Rotation(2,[0,1,0]) # Inversion (predefined) ITA3M111 = SYM.Rotation(3, [1, 1, 1]) # C3 axis along 111 ITA2xx0 = SYM.Rotation(2, [1, 1, 0]) # C2 axis along 110 generators = ['C2z', 'C2y', 'Inversion', ITA3M111, ITA2xx0] system.set_symmetry(generators) seedname = 'pythtbLi' q_int = ['dos', 'cumdos', 'conductivity_ohmic', 'conductivity_ohmic_fsurf'] num_iter = 30 grid = wb.Grid(system, length=600, NKFFT=40)