TRIQS / solid_dmft

solid_dmft is a versatile python wrapper to perform DFT+DMFT calculations utilizing the TRIQS software library.
https://triqs.github.io/solid_dmft/
Other
32 stars 19 forks source link

problem with plotting the spectral function #50

Open Chen-Ziyan opened 1 year ago

Chen-Ziyan commented 1 year ago

Hello, I am a beginner user of solid_dmft. I encountered some issues while following the tutorial. In the section "5. Plotting the spectral function," I was able to easily construct the spectral function using the svo_example.h5 file provided by you.

However, when I tried to reconstruct the spectral function using the svo.h5 file from the first tutorial "1. OS with QE/W90 and cthyb: SrVO3 MIT," my computer gave me the following message: 669e513c979d0a6e66262d81a42229e

The tool used for the analytic continuation of the self-energy is path_to_solid_dmft\solid_dmft-3.1.x\python\solid_dmft\postprocessing\maxent_sigma.py.

Could you please provide some guidance ?Thank you.

the-hampel commented 1 year ago

Hi @Chen-Ziyan, ah we might want to change the tutorial input file here. The error is an assertion to make sure that the calculation of the spectral function can be performed here. Short answer: to fix this you have to recreate the h5 input file by running Quantum Espresso including creating the three t2g Wannier functions with wannier90 and then when running the converter change the parameter bloch_basis to False:

from triqs_dft_tools.converters.wannier90 import Wannier90Converter
Converter = Wannier90Converter(seedname='seedname', bloch_basis=**False**, rot_mat_type='hloc_diag')
Converter.convert_dft_input()

The h5 input file will lead to exactly the same results in this case of a minimal low energy model.

Long answer: when creating the h5 archive you have a choice to make whether you want to store the Wannier Hamiltonian as is, or as projectors + KS eigenvalues. See section Band Mode in https://triqs.github.io/dft_tools/unstable/guide/conv_W90.html . This is important when performing CSC calculations and / or when you have disentanglement of bands. However, to recalculate the spectral function on arbitrary k points we have to have the full w90 Hamiltonian as input (get k via Fourier trafo) plus no disentanglement. However, in bloch mode you have non trivial projectors at each k from DFT on your orbitals, which does not allow us to recompute the Wannier Hamiltonian at any k point. In this tutorial there is no disentanglement, but the bloch mode of the converter was True. Since, the plotting routine has no way to check if there has been disentanglement present it stops.