0.0.107 period
This commit is contained in:
parent
35f2d18463
commit
cf5a6f1031
@ -103,7 +103,7 @@ hamiltonian = guan.hamiltonian_of_simple_chain(k)
|
|||||||
|
|
||||||
hamiltonian = guan.hamiltonian_of_square_lattice(k1, k2)
|
hamiltonian = guan.hamiltonian_of_square_lattice(k1, k2)
|
||||||
|
|
||||||
hamiltonian = guan.hamiltonian_of_square_lattice_in_quasi_one_dimension(k, N=10)
|
hamiltonian = guan.hamiltonian_of_square_lattice_in_quasi_one_dimension(k, N=10, period=0)
|
||||||
|
|
||||||
hamiltonian = guan.hamiltonian_of_cubic_lattice(k1, k2, k3)
|
hamiltonian = guan.hamiltonian_of_cubic_lattice(k1, k2, k3)
|
||||||
|
|
||||||
@ -111,11 +111,11 @@ hamiltonian = guan.hamiltonian_of_ssh_model(k, v=0.6, w=1)
|
|||||||
|
|
||||||
hamiltonian = guan.hamiltonian_of_graphene(k1, k2, M=0, t=1, a=1/math.sqrt(3))
|
hamiltonian = guan.hamiltonian_of_graphene(k1, k2, M=0, t=1, a=1/math.sqrt(3))
|
||||||
|
|
||||||
hamiltonian = guan.hamiltonian_of_graphene_with_zigzag_in_quasi_one_dimension(k, N=10, M=0, t=1)
|
hamiltonian = guan.hamiltonian_of_graphene_with_zigzag_in_quasi_one_dimension(k, N=10, M=0, t=1, period=0)
|
||||||
|
|
||||||
hamiltonian = guan.hamiltonian_of_haldane_model(k1, k2, M=2/3, t1=1, t2=1/3, phi=math.pi/4, a=1/math.sqrt(3))
|
hamiltonian = guan.hamiltonian_of_haldane_model(k1, k2, M=2/3, t1=1, t2=1/3, phi=math.pi/4, a=1/math.sqrt(3))
|
||||||
|
|
||||||
hamiltonian = guan.hamiltonian_of_haldane_model_in_quasi_one_dimension(k, N=10, M=2/3, t1=1, t2=1/3, phi=math.pi/4)
|
hamiltonian = guan.hamiltonian_of_haldane_model_in_quasi_one_dimension(k, N=10, M=2/3, t1=1, t2=1/3, phi=math.pi/4, period=0)
|
||||||
|
|
||||||
hamiltonian = guan.hamiltonian_of_one_QAH_model(k1, k2, t1=1, t2=1, t3=0.5, m=-1)
|
hamiltonian = guan.hamiltonian_of_one_QAH_model(k1, k2, t1=1, t2=1, t3=0.5, m=-1)
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[metadata]
|
[metadata]
|
||||||
# replace with your username:
|
# replace with your username:
|
||||||
name = guan
|
name = guan
|
||||||
version = 0.0.106
|
version = 0.0.107
|
||||||
author = guanjihuan
|
author = guanjihuan
|
||||||
author_email = guanjihuan@163.com
|
author_email = guanjihuan@163.com
|
||||||
description = An open source python package
|
description = An open source python package
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
# With this package, you can calculate band structures, density of states, quantum transport and topological invariant of tight-binding models by invoking the functions you need. Other frequently used functions are also integrated in this package, such as file reading/writing, figure plotting, data processing.
|
# With this package, you can calculate band structures, density of states, quantum transport and topological invariant of tight-binding models by invoking the functions you need. Other frequently used functions are also integrated in this package, such as file reading/writing, figure plotting, data processing.
|
||||||
|
|
||||||
# The current version is guan-0.0.106, updated on July 12, 2022.
|
# The current version is guan-0.0.107, updated on July 13, 2022.
|
||||||
|
|
||||||
# Installation: pip install --upgrade guan
|
# Installation: pip install --upgrade guan
|
||||||
|
|
||||||
@ -442,12 +442,15 @@ def hamiltonian_of_square_lattice(k1, k2):
|
|||||||
hamiltonian = guan.two_dimensional_fourier_transform_for_square_lattice(k1, k2, unit_cell=0, hopping_1=1, hopping_2=1)
|
hamiltonian = guan.two_dimensional_fourier_transform_for_square_lattice(k1, k2, unit_cell=0, hopping_1=1, hopping_2=1)
|
||||||
return hamiltonian
|
return hamiltonian
|
||||||
|
|
||||||
def hamiltonian_of_square_lattice_in_quasi_one_dimension(k, N=10):
|
def hamiltonian_of_square_lattice_in_quasi_one_dimension(k, N=10, period=0):
|
||||||
h00 = np.zeros((N, N), dtype=complex) # hopping in a unit cell
|
h00 = np.zeros((N, N), dtype=complex) # hopping in a unit cell
|
||||||
h01 = np.zeros((N, N), dtype=complex) # hopping between unit cells
|
h01 = np.zeros((N, N), dtype=complex) # hopping between unit cells
|
||||||
for i in range(N-1):
|
for i in range(N-1):
|
||||||
h00[i, i+1] = 1
|
h00[i, i+1] = 1
|
||||||
h00[i+1, i] = 1
|
h00[i+1, i] = 1
|
||||||
|
if period == 1:
|
||||||
|
h00[N-1, 0] = 1
|
||||||
|
h00[0, N-1] = 1
|
||||||
for i in range(N):
|
for i in range(N):
|
||||||
h01[i, i] = 1
|
h01[i, i] = 1
|
||||||
hamiltonian = guan.one_dimensional_fourier_transform(k, unit_cell=h00, hopping=h01)
|
hamiltonian = guan.one_dimensional_fourier_transform(k, unit_cell=h00, hopping=h01)
|
||||||
@ -473,7 +476,7 @@ def hamiltonian_of_graphene(k1, k2, M=0, t=1, a=1/math.sqrt(3)):
|
|||||||
hamiltonian = h0 + h1
|
hamiltonian = h0 + h1
|
||||||
return hamiltonian
|
return hamiltonian
|
||||||
|
|
||||||
def hamiltonian_of_graphene_with_zigzag_in_quasi_one_dimension(k, N=10, M=0, t=1):
|
def hamiltonian_of_graphene_with_zigzag_in_quasi_one_dimension(k, N=10, M=0, t=1, period=0):
|
||||||
h00 = np.zeros((4*N, 4*N), dtype=complex) # hopping in a unit cell
|
h00 = np.zeros((4*N, 4*N), dtype=complex) # hopping in a unit cell
|
||||||
h01 = np.zeros((4*N, 4*N), dtype=complex) # hopping between unit cells
|
h01 = np.zeros((4*N, 4*N), dtype=complex) # hopping between unit cells
|
||||||
for i in range(N):
|
for i in range(N):
|
||||||
@ -490,6 +493,9 @@ def hamiltonian_of_graphene_with_zigzag_in_quasi_one_dimension(k, N=10, M=0, t=1
|
|||||||
for i in range(N-1):
|
for i in range(N-1):
|
||||||
h00[i*4+3, (i+1)*4+0] = t
|
h00[i*4+3, (i+1)*4+0] = t
|
||||||
h00[(i+1)*4+0, i*4+3] = t
|
h00[(i+1)*4+0, i*4+3] = t
|
||||||
|
if period == 1:
|
||||||
|
h00[(N-1)*4+3, 0] = t
|
||||||
|
h00[0, (N-1)*4+3] = t
|
||||||
for i in range(N):
|
for i in range(N):
|
||||||
h01[i*4+1, i*4+0] = t
|
h01[i*4+1, i*4+0] = t
|
||||||
h01[i*4+2, i*4+3] = t
|
h01[i*4+2, i*4+3] = t
|
||||||
@ -509,7 +515,7 @@ def hamiltonian_of_haldane_model(k1, k2, M=2/3, t1=1, t2=1/3, phi=math.pi/4, a=1
|
|||||||
hamiltonian = h0 + h1 + h2 + h2.transpose().conj()
|
hamiltonian = h0 + h1 + h2 + h2.transpose().conj()
|
||||||
return hamiltonian
|
return hamiltonian
|
||||||
|
|
||||||
def hamiltonian_of_haldane_model_in_quasi_one_dimension(k, N=10, M=2/3, t1=1, t2=1/3, phi=math.pi/4):
|
def hamiltonian_of_haldane_model_in_quasi_one_dimension(k, N=10, M=2/3, t1=1, t2=1/3, phi=math.pi/4, period=0):
|
||||||
h00 = np.zeros((4*N, 4*N), dtype=complex) # hopping in a unit cell
|
h00 = np.zeros((4*N, 4*N), dtype=complex) # hopping in a unit cell
|
||||||
h01 = np.zeros((4*N, 4*N), dtype=complex) # hopping between unit cells
|
h01 = np.zeros((4*N, 4*N), dtype=complex) # hopping between unit cells
|
||||||
for i in range(N):
|
for i in range(N):
|
||||||
@ -534,6 +540,13 @@ def hamiltonian_of_haldane_model_in_quasi_one_dimension(k, N=10, M=2/3, t1=1, t2
|
|||||||
h00[(i+1)*4+0, i*4+2] = h00[i*4+2, (i+1)*4+0].conj()
|
h00[(i+1)*4+0, i*4+2] = h00[i*4+2, (i+1)*4+0].conj()
|
||||||
h00[i*4+3, (i+1)*4+1] = t2*cmath.exp(1j*phi)
|
h00[i*4+3, (i+1)*4+1] = t2*cmath.exp(1j*phi)
|
||||||
h00[(i+1)*4+1, i*4+3] = h00[i*4+3, (i+1)*4+1].conj()
|
h00[(i+1)*4+1, i*4+3] = h00[i*4+3, (i+1)*4+1].conj()
|
||||||
|
if period == 1:
|
||||||
|
h00[(N-1)*4+3, 0] = t1
|
||||||
|
h00[0, (N-1)*4+3] = t1
|
||||||
|
h00[(N-1)*4+2, 0] = t2*cmath.exp(1j*phi)
|
||||||
|
h00[0, (N-1)*4+2] = h00[(N-1)*4+2, 0].conj()
|
||||||
|
h00[(N-1)*4+3, 1] = t2*cmath.exp(1j*phi)
|
||||||
|
h00[1, (N-1)*4+3] = h00[(N-1)*4+3, 1].conj()
|
||||||
for i in range(N):
|
for i in range(N):
|
||||||
h01[i*4+1, i*4+0] = t1
|
h01[i*4+1, i*4+0] = t1
|
||||||
h01[i*4+2, i*4+3] = t1
|
h01[i*4+2, i*4+3] = t1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user