Skip to content

Error: no suitable C++ overload found in implementation of function lattice.lattice_dyson_g0_wk #847

Answered by the-hampel
Lanlin123 asked this question in Q&A
Discussion options

You must be logged in to vote

Hi Lily,
The problem here is that you used

e_k = H.dispersion(kmesh)

to extract epsilon(k). This function will Fourier transform the hopping Hamiltonian AND diagonalize it and give pack only the eigenalues at each kpt. Hence:

print(e_k.data.shape)
>> (1024, 3)

However, the function to construct the lattice Gf lattice_dyson_g0_wk expects an array at each kpoint of the orbital shape (3x3 here). The correct function to construct e_k is called just fourier:

e_k = H.fourier(kmesh)
print(e_k.data.shape)
>> (1024, 3, 3)

this function does also a FT but skips the diagonalization.

I think the docstring of the lattice_dyson_g0_wk is a bit misleading as it asks for the dispersion. But the wording…

Replies: 1 comment 5 replies

Comment options

You must be logged in to vote
5 replies
@Lanlin123
Comment options

@the-hampel
Comment options

@Lanlin123
Comment options

@the-hampel
Comment options

@Lanlin123
Comment options

Answer selected by Lanlin123
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants