update
This commit is contained in:
parent
17acf01a9b
commit
2e52d2deec
@ -73,7 +73,7 @@ def surface_green_function_of_lead(fermi_energy, h00, h01):
|
|||||||
|
|
||||||
def self_energy_of_lead(fermi_energy, h00, h01):
|
def self_energy_of_lead(fermi_energy, h00, h01):
|
||||||
h01 = np.array(h01)
|
h01 = np.array(h01)
|
||||||
right_lead_surface, left_lead_surface = surface_green_function_of_lead(fermi_energy, h00, h01)
|
right_lead_surface, left_lead_surface = guan.surface_green_function_of_lead(fermi_energy, h00, h01)
|
||||||
right_self_energy = np.dot(np.dot(h01, right_lead_surface), h01.transpose().conj())
|
right_self_energy = np.dot(np.dot(h01, right_lead_surface), h01.transpose().conj())
|
||||||
left_self_energy = np.dot(np.dot(h01.transpose().conj(), left_lead_surface), h01)
|
left_self_energy = np.dot(np.dot(h01.transpose().conj(), left_lead_surface), h01)
|
||||||
gamma_right = (right_self_energy - right_self_energy.transpose().conj())*1j
|
gamma_right = (right_self_energy - right_self_energy.transpose().conj())*1j
|
||||||
@ -83,7 +83,7 @@ def self_energy_of_lead(fermi_energy, h00, h01):
|
|||||||
def self_energy_of_lead_with_h_LC_and_h_CR(fermi_energy, h00, h01, h_LC, h_CR):
|
def self_energy_of_lead_with_h_LC_and_h_CR(fermi_energy, h00, h01, h_LC, h_CR):
|
||||||
h_LC = np.array(h_LC)
|
h_LC = np.array(h_LC)
|
||||||
h_CR = np.array(h_CR)
|
h_CR = np.array(h_CR)
|
||||||
right_lead_surface, left_lead_surface = surface_green_function_of_lead(fermi_energy, h00, h01)
|
right_lead_surface, left_lead_surface = guan.surface_green_function_of_lead(fermi_energy, h00, h01)
|
||||||
right_self_energy = np.dot(np.dot(h_CR, right_lead_surface), h_CR.transpose().conj())
|
right_self_energy = np.dot(np.dot(h_CR, right_lead_surface), h_CR.transpose().conj())
|
||||||
left_self_energy = np.dot(np.dot(h_LC.transpose().conj(), left_lead_surface), h_LC)
|
left_self_energy = np.dot(np.dot(h_LC.transpose().conj(), left_lead_surface), h_LC)
|
||||||
gamma_right = (right_self_energy - right_self_energy.transpose().conj())*1j
|
gamma_right = (right_self_energy - right_self_energy.transpose().conj())*1j
|
||||||
@ -92,14 +92,14 @@ def self_energy_of_lead_with_h_LC_and_h_CR(fermi_energy, h00, h01, h_LC, h_CR):
|
|||||||
|
|
||||||
def self_energy_of_lead_with_h_lead_to_center(fermi_energy, h00, h01, h_lead_to_center):
|
def self_energy_of_lead_with_h_lead_to_center(fermi_energy, h00, h01, h_lead_to_center):
|
||||||
h_lead_to_center = np.array(h_lead_to_center)
|
h_lead_to_center = np.array(h_lead_to_center)
|
||||||
right_lead_surface, left_lead_surface = surface_green_function_of_lead(fermi_energy, h00, h01)
|
right_lead_surface, left_lead_surface = guan.surface_green_function_of_lead(fermi_energy, h00, h01)
|
||||||
self_energy = np.dot(np.dot(h_lead_to_center.transpose().conj(), right_lead_surface), h_lead_to_center)
|
self_energy = np.dot(np.dot(h_lead_to_center.transpose().conj(), right_lead_surface), h_lead_to_center)
|
||||||
gamma = (self_energy - self_energy.transpose().conj())*1j
|
gamma = (self_energy - self_energy.transpose().conj())*1j
|
||||||
return self_energy, gamma
|
return self_energy, gamma
|
||||||
|
|
||||||
def green_function_with_leads(fermi_energy, h00, h01, h_LC, h_CR, center_hamiltonian):
|
def green_function_with_leads(fermi_energy, h00, h01, h_LC, h_CR, center_hamiltonian):
|
||||||
dim = np.array(center_hamiltonian).shape[0]
|
dim = np.array(center_hamiltonian).shape[0]
|
||||||
right_self_energy, left_self_energy, gamma_right, gamma_left = self_energy_of_lead_with_h_LC_and_h_CR(fermi_energy, h00, h01, h_LC, h_CR)
|
right_self_energy, left_self_energy, gamma_right, gamma_left = guan.self_energy_of_lead_with_h_LC_and_h_CR(fermi_energy, h00, h01, h_LC, h_CR)
|
||||||
green = np.linalg.inv(fermi_energy*np.identity(dim)-center_hamiltonian-left_self_energy-right_self_energy)
|
green = np.linalg.inv(fermi_energy*np.identity(dim)-center_hamiltonian-left_self_energy-right_self_energy)
|
||||||
return green, gamma_right, gamma_left
|
return green, gamma_right, gamma_left
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user