Dear developers
@AntimoMarrazzo brought my attention to this package. From a quick look I am trying to understand what you are trying to do here
|
print('Reading Hamiltonian at Gamma point in Wannier gauge..') |
|
grid = Grid(model, NK=model.NKFFT_recommended) |
|
dK = 1. / grid.div |
|
data = Data_K_R(model, dK, grid) |
|
|
|
Ham_W_R = model.Ham_R.copy() |
|
Ham_W_k = data.fft_R_to_k(Ham_W_R, hermitean=True) |
|
ham = Ham_W_k[0,:,:] |
I guess, you what to get the Gamma-point only, right? Then, computing a grid of size NK=model.NKFFT_recommended
is an overhead. instead you may use NK=[1,1,1], dK=[0,0,0]
Why are you using dK = 1. / grid.div
? Well, in this case grid.div should be [1,1,1], and dK is defined modulo 1, so it is equivalent to [0,0,0], so in the end your implementation should work. but it looks unnecessary sophisticated.
Am I understanding correctly, or do you have smth different in mind?