def get_energy(a, returnmz=False): global env a = get_symm_tensor(a) A = peps.make_double_layer(a) tester = ctm.CTMRGGenericTester(test_fct(a, A), 1e-9) env = ctm.ctmrg_1x1_hermitian(A, chi, env, tester) E = tester.get_value() if returnmz: e = env.get_site_environment() Z = peps.make_double_layer(a, o=gates.sigmaz) mz = e.contract(Z) / e.contract(A) return E, mz return E
def get_energy(a, returnmz=False): global env a = get_symm_tensor(a) A = peps.make_double_layer(a) f = test_fct(a, A) tester = ctm.CTMRGGenericTester(f, 1e-12) #env = ctm.ctmrg([A], lut, chi, env, tester) #env = ctm.ctmrg_1x1_rotsymm(A, chi, env, tester) env = ctm.ctmrg_1x1_hermitian(A, chi, env, tester) #env2 = ctm.CTMEnvironment(lut, env.c, env.c, env.c, env.c, env.t1, env.t2, env.t1, env.t2) #tester = ctm.CTMRGGenericTester(f, 1e-8) #env2 = ctm.ctmrg([A], lut, chi, env2, tester) E = tester.get_value() if returnmz: e = env.get_site_environment() Z = peps.make_double_layer(a, o=gates.sigmaz) mz = e.contract(Z) / e.contract(A) return E, mz return E