version 0.0.54
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
[metadata]
|
||||
# replace with your username:
|
||||
name = guan
|
||||
version = 0.0.53
|
||||
version = 0.0.54
|
||||
author = guanjihuan
|
||||
author_email = guanjihuan@163.com
|
||||
description = An open source python package
|
||||
|
@@ -941,7 +941,7 @@ def calculate_conductance_with_scattering_length_array(fermi_energy, h00, h01, l
|
||||
|
||||
## multi-terminal transmission
|
||||
|
||||
def calculate_six_terminal_transmission_matrix(fermi_energy, h00_for_lead_4, h01_for_lead_4, h00_for_lead_2, h01_for_lead_2, center_hamiltonian, width=10, length=50, internal_degree=1, moving_step_of_leads=10):
|
||||
def get_gamma_array_and_green_for_six_terminal_transmission(fermi_energy, h00_for_lead_4, h01_for_lead_4, h00_for_lead_2, h01_for_lead_2, center_hamiltonian, width=10, length=50, internal_degree=1, moving_step_of_leads=10):
|
||||
# ---------------- Geometry ----------------
|
||||
# lead2 lead3
|
||||
# lead1(L) lead4(R)
|
||||
@@ -987,6 +987,10 @@ def calculate_six_terminal_transmission_matrix(fermi_energy, h00_for_lead_4, h01
|
||||
gamma_array = [gamma1, gamma2, gamma3, gamma4, gamma5, gamma6]
|
||||
# Green function
|
||||
green = np.linalg.inv(fermi_energy*np.eye(internal_degree*width*length)-center_hamiltonian-self_energy1-self_energy2-self_energy3-self_energy4-self_energy5-self_energy6)
|
||||
return gamma_array, green
|
||||
|
||||
def calculate_six_terminal_transmission_matrix(fermi_energy, h00_for_lead_4, h01_for_lead_4, h00_for_lead_2, h01_for_lead_2, center_hamiltonian, width=10, length=50, internal_degree=1, moving_step_of_leads=10):
|
||||
gamma_array, green = guan.get_gamma_array_and_green_for_six_terminal_transmission(fermi_energy, h00_for_lead_4, h01_for_lead_4, h00_for_lead_2, h01_for_lead_2, center_hamiltonian, width, length, internal_degree, moving_step_of_leads)
|
||||
# Transmission
|
||||
transmission_matrix = np.zeros((6, 6), dtype=complex)
|
||||
channel_lead_4 = guan.calculate_conductance(fermi_energy, h00_for_lead_4, h01_for_lead_4, length=3)
|
||||
@@ -1007,6 +1011,16 @@ def calculate_six_terminal_transmission_matrix(fermi_energy, h00_for_lead_4, h01
|
||||
transmission_matrix = np.real(transmission_matrix)
|
||||
return transmission_matrix
|
||||
|
||||
def calculate_six_terminal_transmissions_from_lead_1(fermi_energy, h00_for_lead_4, h01_for_lead_4, h00_for_lead_2, h01_for_lead_2, center_hamiltonian, width=10, length=50, internal_degree=1, moving_step_of_leads=10):
|
||||
gamma_array, green = guan.get_gamma_array_and_green_for_six_terminal_transmission(fermi_energy, h00_for_lead_4, h01_for_lead_4, h00_for_lead_2, h01_for_lead_2, center_hamiltonian, width, length, internal_degree, moving_step_of_leads)
|
||||
# Transmission
|
||||
transmission_12 = np.real(np.trace(np.dot(np.dot(np.dot(gamma_array[0], green), gamma_array[1]), green.transpose().conj())))
|
||||
transmission_13 = np.real(np.trace(np.dot(np.dot(np.dot(gamma_array[0], green), gamma_array[2]), green.transpose().conj())))
|
||||
transmission_14 = np.real(np.trace(np.dot(np.dot(np.dot(gamma_array[0], green), gamma_array[3]), green.transpose().conj())))
|
||||
transmission_15 = np.real(np.trace(np.dot(np.dot(np.dot(gamma_array[0], green), gamma_array[4]), green.transpose().conj())))
|
||||
transmission_16 = np.real(np.trace(np.dot(np.dot(np.dot(gamma_array[0], green), gamma_array[5]), green.transpose().conj())))
|
||||
return transmission_12, transmission_13, transmission_14, transmission_15, transmission_16
|
||||
|
||||
## scattering matrix
|
||||
|
||||
def if_active_channel(k_of_channel):
|
||||
|
Reference in New Issue
Block a user