Advanced Computing Platform for Theoretical Physics

Commit 7aa1552f authored by Lei Wang's avatar Lei Wang
Browse files

using hotrg for dimer covering

parent 61cd3770
......@@ -8,7 +8,8 @@ import torch
torch.set_num_threads(4)
torch.manual_seed(42)
from trg import levin_nave_trg
from hotrg import hotrg as contraction
#from trg import levin_nave_trg as contraction
if __name__=='__main__':
import time
......@@ -51,8 +52,8 @@ if __name__=='__main__':
T2 = (A.t()@A).view(D, D, D, D, D, D, D, D).permute(0,4, 1,5, 2,6, 3,7).contiguous().view(D**2, D**2, D**2, D**2)
t0=time.time()
lnT, error1 = levin_nave_trg(T1, D**2*d, Dcut, Niter)
lnZ, error2 = levin_nave_trg(T2, D**2, Dcut, Niter)
lnT, error1 = contraction(T1, D**2*d, Dcut, Niter)
lnZ, error2 = contraction(T2, D**2, Dcut, Niter)
loss = (-lnT + lnZ)/2**Niter
print ('contraction done {:.3f}s'.format(time.time()-t0))
print ('residual entropy', -loss.item(), error1.item(), error2.item())
......
......@@ -12,8 +12,7 @@ def gauge(M, Dcut, side):
w, v = torch.symeig(M2, eigenvectors=True)
Dnew = min(D2, Dcut)
truncation = w[-Dnew:].sum() / w.sum()
v = v[:,-Dnew:].view(D2, Dnew)
return v, truncation
return v[:, -Dnew:], truncation
def hotrg(T, D, Dcut, no_iter):
lnZ = 0.0
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment