version 0.0.54
This commit is contained in:
		| @@ -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