def system_Haldane_TBmodels_sym(tbmodels_Haldane):
    """Create system for Fe using Tbmodels"""
    # Load system
    system = wberri.System_TBmodels(tbmodels_Haldane, berry=True, use_wcc_phase=True)#,periodic=(True,True,False))
    system.set_symmetry(["C3z"])
    return system
def system_Haldane_TBmodels(tbmodels_Haldane):
    
    # Load system
    system = wberri.System_TBmodels(tbmodels_Haldane, berry=True, use_wcc_phase=False)#,periodic=(True,True,False)) # with the 2D TBmodel, the periodicity is detected automatically

    return system
    haldane.add_hop(t1, 1, 0, [ 1, 0])
    haldane.add_hop(t1, 1, 0, [ 0, 1])
# add second neighbour complex hoppings
    haldane.add_hop(t2 , 0, 0, [ 0, -1])
    haldane.add_hop(t2 , 0, 0, [ 1, 0])
    haldane.add_hop(t2 , 0, 0, [ -1, 1])
    haldane.add_hop(t2 , 1, 1, [ -1, 0])

    haldane.add_hop(t2 , 1, 1, [ 1,-1])
    haldane.add_hop(t2 , 1, 1, [ 0, 1])
    return haldane

# Define the model for a fixed set of parameters
haldane=HaldaneTB(2,1,1/3,np.pi/10)
# Call the interface for TBmodels to define the system class
syst=wb.System_TBmodels(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="tbmodels_Haldane"
num_iter=10
wb.integrate(syst,
            grid=grid,
            Efermi=Efermi,
            smearEf=300, # 10K
            quantities=q_int,
            numproc=8,
    haldane.add_hop(t1, 1, 0, [0, 1])
    # add second neighbour complex hoppings
    haldane.add_hop(t2, 0, 0, [0, -1])
    haldane.add_hop(t2, 0, 0, [1, 0])
    haldane.add_hop(t2, 0, 0, [-1, 1])
    haldane.add_hop(t2, 1, 1, [-1, 0])

    haldane.add_hop(t2, 1, 1, [1, -1])
    haldane.add_hop(t2, 1, 1, [0, 1])
    return haldane


# Define the model for a fixed set of parameters
haldane = HaldaneTB(2, 1, 1 / 3, np.pi / 10)
# Call the interface for TBmodels to define the system class
syst = wb.System_TBmodels(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 = "tbmodels_Haldane"
num_iter = 10
wb.integrate(
    syst,
    grid=grid,
    Efermi=Efermi,
    smearEf=300,  # 10K
    quantities=q_int,
示例#5
0
Es= 4.5    # site energy
t =-1.4    # hopping parameter
r0=np.array([-0.5, 0.5, 0.5])
r1=np.array([ 0.5,-0.5, 0.5])
r2=np.array([ 0.5, 0.5,-0.5])
uc=np.array([r0,r1,r2])# in rows

cc=True
tbmodel = tb.Model(on_site=[Es], dim=3, occ=1, pos=[[0.0,0.0,0.0]],uc=uc,contains_cc=cc)

# 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]):
    tbmodel.add_hop(t, 0, 0, R)

system=wb.System_TBmodels(tbmodel,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='tbmodelsLi'
q_int=['dos','cumdos','conductivity_ohmic','conductivity_ohmic_fsurf']
num_iter=30
grid=wb.Grid(system,length=200,NKFFT=20)
uc = np.array([r0, r1, r2])  # in rows

cc = True
tbmodel = tb.Model(on_site=[Es],
                   dim=3,
                   occ=1,
                   pos=[[0.0, 0.0, 0.0]],
                   uc=uc,
                   contains_cc=cc)

# 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]):
    tbmodel.add_hop(t, 0, 0, R)

system = wb.System_TBmodels(tbmodel, 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 = 'tbmodelsLi'
q_int = ['dos', 'cumdos', 'conductivity_ohmic', 'conductivity_ohmic_fsurf']
num_iter = 30
grid = wb.Grid(system, length=600, NKFFT=40)