Implement full-infinite projector algorithm#99
Conversation
…ncorporate new projectors algs
|
This should almost be finished. CTMRG is now refactored with both @lkdvos Perhaps you could take a look at the refactoring whenever you have time? Thanks :-) |
lkdvos
left a comment
There was a problem hiding this comment.
Overall, looks good!
I would say that I am a bit torn on using a flavor over a separate struct now, given that we are separating the algorithms in their own files and this results in having to come up with new names for functions that are doing the same thing, albeit via a different implementation. Maybe just something like this:
abstract type CTMRGAlgorithm end
struct SequentialCTMRG
# fields....
end
struct SimultaneousCTMRG
endcould also work, although that is of course the same as the type aliases we had before. I like this slightly better since it doesn't require symbols, which are hard to constrain/remember the exact form of.
The projector code looks good, I think I would separate it into its own file, since it's now a substantial amount of code.
The remark about the race conditions is probably not super urgent, just wanted to at least mention it somewhere because I had noticed it and don't want to forget.
|
So most things should work now. Again, the truncation space coordinates for the projectors really confused the hell out of me but Somehow |
|
It should now differentiate also in the I also updated the gauge-fixing test such that it hopefully is more stable now. |
|
Yes, I'll take a look and then we can merge #97 first! |
|
@pbrehmer Thanks for the great work! I'll adapt my code with the latest changes and open a PR on full update soon. |
This PR will implement the full-infinite projector algorithm which SVDs the full 4x4 CTMRG environment, as suggested in #93.
To do this we will need to break up the
expand/projectors/renormalizepattern we currently use to implement the CTMRG routine.