version-0.0.7
This commit is contained in:
parent
6e498186c4
commit
7d699063ae
@ -64,6 +64,9 @@ eigenvalue_array = guan.calculate_eigenvalue_with_two_parameters(x, y, hamiltoni
|
|||||||
# calculate wave functions
|
# calculate wave functions
|
||||||
eigenvector = guan.calculate_eigenvector(hamiltonian)
|
eigenvector = guan.calculate_eigenvector(hamiltonian)
|
||||||
|
|
||||||
|
# find vector with the same gauge
|
||||||
|
vector_target = find_vector_with_the_same_gauge_with_binary_search(vector_target, vector_ref, show_error=1, show_times=0, show_phase=0, n_test=10001, precision=1e-6)
|
||||||
|
|
||||||
# calculate Green functions
|
# calculate Green functions
|
||||||
green = guan.green_function(fermi_energy, hamiltonian, broadening, self_energy=0)
|
green = guan.green_function(fermi_energy, hamiltonian, broadening, self_energy=0)
|
||||||
green_nn_n = guan.green_function_nn_n(fermi_energy, h00, h01, green_nn_n_minus, broadening, self_energy=0)
|
green_nn_n = guan.green_function_nn_n(fermi_energy, h00, h01, green_nn_n_minus, broadening, self_energy=0)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
[metadata]
|
[metadata]
|
||||||
# replace with your username:
|
# replace with your username:
|
||||||
name = guan
|
name = guan
|
||||||
version = 0.0.6
|
version = 0.0.7
|
||||||
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
|
||||||
|
@ -8,6 +8,7 @@ from .Hamiltonian_of_finite_size import *
|
|||||||
from .Hamiltonian_of_models_in_the_reciprocal_space import *
|
from .Hamiltonian_of_models_in_the_reciprocal_space import *
|
||||||
from .calculate_band_structures import *
|
from .calculate_band_structures import *
|
||||||
from .calculate_wave_functions import *
|
from .calculate_wave_functions import *
|
||||||
|
from .find_vector_with_the_same_gauge import *
|
||||||
from .calculate_Green_functions import *
|
from .calculate_Green_functions import *
|
||||||
from .calculate_density_of_states import *
|
from .calculate_density_of_states import *
|
||||||
from .calculate_conductance import *
|
from .calculate_conductance import *
|
||||||
|
41
PyPI/src/guan/find_vector_with_the_same_gauge.py
Normal file
41
PyPI/src/guan/find_vector_with_the_same_gauge.py
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# find vector with the same gauge
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
import cmath
|
||||||
|
from math import *
|
||||||
|
|
||||||
|
def find_vector_with_the_same_gauge_with_binary_search(vector_target, vector_ref, show_error=1, show_times=0, show_phase=0, n_test=10001, precision=1e-6):
|
||||||
|
phase_1_pre = 0
|
||||||
|
phase_2_pre = pi
|
||||||
|
for i0 in range(n_test):
|
||||||
|
test_1 = np.sum(np.abs(vector_target*cmath.exp(1j*phase_1_pre) - vector_ref))
|
||||||
|
test_2 = np.sum(np.abs(vector_target*cmath.exp(1j*phase_2_pre) - vector_ref))
|
||||||
|
if test_1 < precision:
|
||||||
|
phase = phase_1_pre
|
||||||
|
if show_times==1:
|
||||||
|
print('Binary search times=', i0)
|
||||||
|
break
|
||||||
|
if i0 == n_test-1:
|
||||||
|
phase = phase_1_pre
|
||||||
|
if show_error==1:
|
||||||
|
print('Gauge not found with binary search times=', i0)
|
||||||
|
if test_1 < test_2:
|
||||||
|
if i0 == 0:
|
||||||
|
phase_1 = phase_1_pre-(phase_2_pre-phase_1_pre)/2
|
||||||
|
phase_2 = phase_1_pre+(phase_2_pre-phase_1_pre)/2
|
||||||
|
else:
|
||||||
|
phase_1 = phase_1_pre
|
||||||
|
phase_2 = phase_1_pre+(phase_2_pre-phase_1_pre)/2
|
||||||
|
else:
|
||||||
|
if i0 == 0:
|
||||||
|
phase_1 = phase_2_pre-(phase_2_pre-phase_1_pre)/2
|
||||||
|
phase_2 = phase_2_pre+(phase_2_pre-phase_1_pre)/2
|
||||||
|
else:
|
||||||
|
phase_1 = phase_2_pre-(phase_2_pre-phase_1_pre)/2
|
||||||
|
phase_2 = phase_2_pre
|
||||||
|
phase_1_pre = phase_1
|
||||||
|
phase_2_pre = phase_2
|
||||||
|
vector_target = vector_target*cmath.exp(1j*phase)
|
||||||
|
if show_phase==1:
|
||||||
|
print('Phase=', phase)
|
||||||
|
return vector_target
|
@ -1,4 +1,4 @@
|
|||||||
# tutorial (NOT for all functions)
|
# tutorial (not for all functions)
|
||||||
|
|
||||||
import guan
|
import guan
|
||||||
import functools
|
import functools
|
||||||
|
Loading…
x
Reference in New Issue
Block a user