On Dec 13, 2011, at 5:25 PM, Kuangshing Chen wrote:
I try to implement your solver in my dmft loop and try to compare the result from ALPS. It seems that something still stucks in the code. I have a question for the ALPS DMFT loop:
G0_init --> Solver --> G --> SC --> G0 --> ... (SC means self-consistency loop)
Since G0_init is obtained in the constructor of HybridizationRun, after the Solver you get G. Then inside the SC, you obtain G0 using
G0_{s}(iwn) = 1/(iwn + mu - t^2G_{-s}(iwn)) (defined in SemicircleHilbertTransformer::operator()).
yes.
The question is: Before going to the Solver, you construct F(tau) = -t^2 * G(beta - tau) in the very of beginning.
No. The solver gets G0(omega) in this case, it is read at line 91 in impurity.C. In a next step the hybridization function is constructed (line 96) and Fourier transformed to the time domain (line 99). Finally the minus sign convention is adjusted to what we use in the hybridization expansion code (102, see also your earlier comments)
In the next iteration, where is the relation between the new G0(tau) and the new F(tau)? (At least I do not see this relation except in the constructor of HybridizationRun)
Also, do you still start with the same time segment configuration as the one in the previous iteration?
No we start from scratch, all segments are empty. the code is then thermalized.
Cheers, Emanuel