-
Notifications
You must be signed in to change notification settings - Fork 18
Description
Several years ago, the idea of fitting long-range interactions with sums of exponentials was discussed on the ITensor forumhttps://itensor.org/support/270/constructing-long-range-hamiltonians-with-mpos. The reason I am opening this issue is that I would like to learn more about the technical details of how this approach is implemented in ITensorMPS. My question may be a bit roundabout to explain, but I’ll try to make it as clear as possible below.
Example
Let me use an example to illustrate my question. If I want to construct the MPO of a simple Hamiltonian
where the coefficients
Direct coding approach
One straightforward way is to explicitly write code such as:
H_m = OpSum()
for i in 1:L
for j in 1:i-1
xi = (i - 1) % L
xj = (j - 1) % L
Vij = lambda^abs(xi-xj)
H_m += Vij, "Sz", i, "Sz", j
end
end
H_MPO_m = MPO(Float64, H_m, sites)
Then, one could combine all
My question
However, according to Pirvu, Murg, Cirac, and Verstraete, New J. Phys. 12, 025012 (2010), the MPO representation of each
- Does the MPO constructor in ITensor automatically produce such a compact form, or will it generate a more redundant representation?
- Is there a specialized function in ITensor (similar to fit_with_sum_of_exp in TeNPy) that can directly construct MPOs with exponentially decaying interactions?
- If not, does one need to manually construct the MPO by explicitly writing out the
$B$ matrices (as shown in the figure I attached below)?
