Conversation
|
I can think of at least one thing that can be improved. For Hamiltonians including NNN terms, in the current construction of gate MPOs, it is assumed that there are NNN terms on all NNN bonds in the unit cell. But they don't need to be; examples are the Shastry-Sutherland lattice and the mapping from the Kagome lattice (#299). For these cases, the current design is effectively introducing some trivial NNN gates that need to be handled with the MPO approach. A more universal way to Trotterize the Hamiltonian may be as follows. Iterate through all terms in the Hamiltonian
This will correspond to a strict first-order Trotter decomposition. On the other hand, if we organize terms into several groups and exponentiate the sum of each group, this can reduce the number of truncations in one cycle of update (though theoretically, the Trotter error may not reduce in this way). The problem is how to group terms can be very model-specific. The current way to group terms (in the function Similarly, even for NN Hamiltonians, I'm also grouping the one-site terms together with NN gates. For models I'm currently interested in, they either contain only NN terms, or have NNN terms for all NNN bonds. So I lacked the incentive to implement a more universal Trotterization algorithm. @lkdvos Do you think it is better to aim for the general case? With all the changes that have been made, it is not difficult to do the generalization. |
|
Another somewhat related question is whether we want to restrict terms in |
This PR rewrites the 3-site simple update so that it can actually accept gate MPOs acting on an arbitrary open path along the nearest neighbor bonds. Closed paths (such as one acting on the four sites on an elementary plaquette) are not supported yet, since that requires PBC-MPS treatments.
I also introduced a wrapper struct
TrotterGates, which stores the Trotter 1-site gates, 2-site gates, and MPOs as a vector of pairssites => gate, wheresitesrecords the path on whichgate.I also make some improvements on how the gates and NNN 3-site MPOs are constructed from the Hamiltonian, so Hamiltonians with 1-site terms can also be used for simple update (previously I restricted them to only contain 2-site terms).
Another minor improvement is on the SU gauging by applying trivial gates. Now the trivial gate is never explicitly constructed and applied.