|
|
|
|
@@ -16,6 +16,10 @@ def calculate_conductance(fermi_energy, h00, h01, length=100):
|
|
|
|
|
else:
|
|
|
|
|
green_nn_n = guan.green_function_nn_n(fermi_energy, h00, h01, green_nn_n, broadening=0, self_energy=right_self_energy)
|
|
|
|
|
green_0n_n = guan.green_function_in_n(green_0n_n, h01, green_nn_n)
|
|
|
|
|
dim = np.array(h00).shape[0]
|
|
|
|
|
if dim == 1:
|
|
|
|
|
conductance = np.dot(np.dot(np.dot(gamma_left, green_0n_n), gamma_right), green_0n_n.transpose().conj())
|
|
|
|
|
else:
|
|
|
|
|
conductance = np.trace(np.dot(np.dot(np.dot(gamma_left, green_0n_n), gamma_right), green_0n_n.transpose().conj()))
|
|
|
|
|
return conductance
|
|
|
|
|
|
|
|
|
|
@@ -53,6 +57,9 @@ def calculate_conductance_with_barrier(fermi_energy, h00, h01, length=100, barri
|
|
|
|
|
else:
|
|
|
|
|
green_nn_n = guan.green_function_nn_n(fermi_energy, h00, h01, green_nn_n, broadening=0, self_energy=right_self_energy)
|
|
|
|
|
green_0n_n = guan.green_function_in_n(green_0n_n, h01, green_nn_n)
|
|
|
|
|
if dim == 1:
|
|
|
|
|
conductance = np.dot(np.dot(np.dot(gamma_left, green_0n_n), gamma_right), green_0n_n.transpose().conj())
|
|
|
|
|
else:
|
|
|
|
|
conductance = np.trace(np.dot(np.dot(np.dot(gamma_left, green_0n_n), gamma_right), green_0n_n.transpose().conj()))
|
|
|
|
|
return conductance
|
|
|
|
|
|
|
|
|
|
@@ -79,6 +86,9 @@ def calculate_conductance_with_disorder(fermi_energy, h00, h01, disorder_intensi
|
|
|
|
|
else:
|
|
|
|
|
green_nn_n = guan.green_function_nn_n(fermi_energy, h00, h01, green_nn_n, broadening=0, self_energy=right_self_energy)
|
|
|
|
|
green_0n_n = guan.green_function_in_n(green_0n_n, h01, green_nn_n)
|
|
|
|
|
if dim == 1:
|
|
|
|
|
conductance = np.dot(np.dot(np.dot(gamma_left, green_0n_n), gamma_right), green_0n_n.transpose().conj())
|
|
|
|
|
else:
|
|
|
|
|
conductance = np.trace(np.dot(np.dot(np.dot(gamma_left, green_0n_n), gamma_right), green_0n_n.transpose().conj()))
|
|
|
|
|
conductance_averaged += conductance
|
|
|
|
|
conductance_averaged = conductance_averaged/calculation_times
|
|
|
|
|
@@ -104,6 +114,9 @@ def calculate_conductance_with_disorder_array(fermi_energy, h00, h01, disorder_a
|
|
|
|
|
else:
|
|
|
|
|
green_nn_n = guan.green_function_nn_n(fermi_energy, h00, h01, green_nn_n, broadening=0, self_energy=right_self_energy)
|
|
|
|
|
green_0n_n = guan.green_function_in_n(green_0n_n, h01, green_nn_n)
|
|
|
|
|
if dim == 1:
|
|
|
|
|
conductance = np.dot(np.dot(np.dot(gamma_left, green_0n_n), gamma_right), green_0n_n.transpose().conj())
|
|
|
|
|
else:
|
|
|
|
|
conductance = np.trace(np.dot(np.dot(np.dot(gamma_left, green_0n_n), gamma_right), green_0n_n.transpose().conj()))
|
|
|
|
|
return conductance
|
|
|
|
|
|
|
|
|
|
@@ -127,6 +140,9 @@ def calculate_conductance_with_slice_disorder(fermi_energy, h00, h01, disorder_i
|
|
|
|
|
else:
|
|
|
|
|
green_nn_n = guan.green_function_nn_n(fermi_energy, h00, h01, green_nn_n, broadening=0, self_energy=right_self_energy)
|
|
|
|
|
green_0n_n = guan.green_function_in_n(green_0n_n, h01, green_nn_n)
|
|
|
|
|
if dim == 1:
|
|
|
|
|
conductance = np.dot(np.dot(np.dot(gamma_left, green_0n_n), gamma_right), green_0n_n.transpose().conj())
|
|
|
|
|
else:
|
|
|
|
|
conductance = np.trace(np.dot(np.dot(np.dot(gamma_left, green_0n_n), gamma_right), green_0n_n.transpose().conj()))
|
|
|
|
|
return conductance
|
|
|
|
|
|
|
|
|
|
@@ -151,6 +167,9 @@ def calculate_conductance_with_disorder_inside_unit_cell_which_keeps_translation
|
|
|
|
|
else:
|
|
|
|
|
green_nn_n = guan.green_function_nn_n(fermi_energy, h00, h01, green_nn_n, broadening=0, self_energy=right_self_energy)
|
|
|
|
|
green_0n_n = guan.green_function_in_n(green_0n_n, h01, green_nn_n)
|
|
|
|
|
if dim == 1:
|
|
|
|
|
conductance = np.dot(np.dot(np.dot(gamma_left, green_0n_n), gamma_right), green_0n_n.transpose().conj())
|
|
|
|
|
else:
|
|
|
|
|
conductance = np.trace(np.dot(np.dot(np.dot(gamma_left, green_0n_n), gamma_right), green_0n_n.transpose().conj()))
|
|
|
|
|
return conductance
|
|
|
|
|
|
|
|
|
|
@@ -175,6 +194,9 @@ def calculate_conductance_with_random_vacancy(fermi_energy, h00, h01, vacancy_co
|
|
|
|
|
else:
|
|
|
|
|
green_nn_n = guan.green_function_nn_n(fermi_energy, h00, h01, green_nn_n, broadening=0, self_energy=right_self_energy)
|
|
|
|
|
green_0n_n = guan.green_function_in_n(green_0n_n, h01, green_nn_n)
|
|
|
|
|
if dim == 1:
|
|
|
|
|
conductance = np.dot(np.dot(np.dot(gamma_left, green_0n_n), gamma_right), green_0n_n.transpose().conj())
|
|
|
|
|
else:
|
|
|
|
|
conductance = np.trace(np.dot(np.dot(np.dot(gamma_left, green_0n_n), gamma_right), green_0n_n.transpose().conj()))
|
|
|
|
|
return conductance
|
|
|
|
|
|
|
|
|
|
|