Closed karlabaumann closed 3 years ago
Hi @karlabaumann,
I indeed observed that the trace of rho can deviate a bit from 1 in a few calculations. In principle this should not happen, unless your QMC sampling has problems. The probability of all impurity states is normed to 1, as it should in a proper density matrix. I usually only get a warning:
Warning :: Trace of the density matrix is 0.9999999999999 instead of 1
Hence, the deviation that I see is very very small. I think it makes sense that cthyb stops if the deviation gets too large (check https://github.com/TRIQS/cthyb/blob/95d4a58c034e50a87bda0b421b335de0065f32e9/c%2B%2B/triqs_cthyb/measures/density_matrix.cpp#L66 for more information on the exact threshold). I am not 100% sure where this deviations are stemming from, but here some ideas for where to start:
measure_density_matrix = False
? Good sign?Maybe @krivenko has some further ideas, as he implemented the routine into the solver if I remember correctly.
Hi Alexander Hampel,
many many thanks for your detailed and fast reply!
I checked all the points on your list and luckily I could fix the issue. I had now one converged run with the PBE functional at beta=50. Indeed it was, as you suggested, related to the tail fit. So I still get a warning but the code doesn't stop. And also I checked the output files before and the error was growing.
These points on the list, did not apply to my problem:
This point I didn't check so far:
measure_density_matrix = False
? Good sign?
"but with adjusting the tail fit I managed to get the issue under control.
Many many thanks again!!!
Best regards,
Karla Baumnn
Le 2021-04-06 15:40, Alexander Hampel a écrit :
Hi @karlabaumann,
I indeed observed that the trace of rho can deviate a bit from 1 in a few calculations. In principle this should not happen, unless your QMC sampling has problems. The probability of all impurity states is normed to 1, as it should in a proper density matrix. I usually only get a warning:
Warning :: Trace of the density matrix is 0.9999999999999 instead of 1
Hence, the deviation that I see is very very small. I think it makes sense that cthyb stops if the deviation gets too large (check https://github.com/TRIQS/cthyb/blob/95d4a58c034e50a87bda0b421b335de0065f32e9/c%2B%2B/triqs_cthyb/measures/density_matrix.cpp#L66 for more information on the exact threshold). I am not 100% sure where this deviations are stemming from, but here some ideas for where to start:
- Can you check if you see such warning already earlier in your error output and see if it grows?
- In general does the iteration run smoothly with
measure_density_matrix = False
? Good sign?- Can you also check if your calculations at these specific temperatures have small off-diagonal terms in your local Hamiltonian, that cthyb reports just before solving.
- Is there a warning that that the tail-fit fails just before solving the impurity problem? Maybe cthyb has problems for some of the temperatures to properly extract the hybridization from G0_iw (make sure that there are always enough Matsubara frequencies so that G0_iw decays properly to a constant value at large omega_n for all beta).
- carefully check that your wannier90 input hamiltonian is real, if there are small complex parts cthyb maybe does not properly detect them and has problems with dealing with them
Maybe @krivenko has some further ideas, as he implemented the routine into the solver if I remember correctly.
Hi Karla,
okay sounds good. If I understand you correctly you changed the tail fitting for the solver output right (the fitting that one specifies in the solve params)? This probably means, that after a few iterations the G0_iw that you give to the solver as input becomes ill-conditioned in some way, when using bad fitting parameters. Better keep an eye on that problem, and check also for convergence of the QMC sampling.
I will close the issue for now. Just open a new one and refer to this one, if the problem reappears.
Best, Alex
Dear all,
I have an issue, where I couldn't find any helpful hint or solution so far. I am using Triqs dft tools for the material FeSe (5-orbital Kanamori interaction). We obtained the DFT input with Wannier90 using two different functionals PBE and HSE. With HSE ( I have no problems at any temperature from beta=50-150 and different interactions the code works well and converges nicely). However when I use the DFT output computed using PBE I get this error message in a beta range from 50 to 80 but not at beta 100 and 150. I tried many things to fix it, but this error always occurs and I don't understand it properly. The error occurs at a seemingly random iteration for example at iteration 5 or 3 or 2 or 7 and the value of the trace of density matrix changes also. The error I obtain is:
S.solve(h_int=h_int, p) File "/obs/kbaumann/triqs_install/lib/python3.9/site-packages/triqs_cthyb/solver.py", line 140, in solve solve_status = SolverCore.solve(self, params_kw) RuntimeError: .. Error occurred at Tue Mar 30 19:29:37 2021
.. Error .. calling C++ overload .. solve() -> void .. in implementation of method SolverCore.solve .. C++ error was : .. Triqs runtime error at /obs/kbaumann/triqs_install/cthyb.src/c++/triqs_cthyb/measures/density_matrix.cpp : 66
Trace of the density matrix is 1.00018 instead of 1 .. Error occurred on node 0
I would be grateful for any hint how to fix it. Maybe it is an obvious issue, but I don't understand it.
Best regards,
Karla Baumann