from mpi4py import MPI from zmpo_dmrg.source.qtensor import qtensor_api from zmpo_dmrg.source.samps import mpo_dmrg_conversion, block_itrf sval = 0.5 sz = 0.5 ifQt = False fname = 'lmpsQs' #s' #0' flmpsQ = h5py.File(fname, 'r') flmps0 = h5py.File(fname + '_NQt0', 'w') flmps1 = h5py.File(fname + '_NQt1', 'w') qtensor_api.fmpsQtReverse(flmpsQ, flmps0, 'L') # Conversion t0 = time.time() mpo_dmrg_conversion.sweep_projection(flmps0,flmps1,ifQt,sval,thresh=1.e-8,\ ifcompress=True,\ ifBlockSingletEmbedding=True,\ ifBlockSymScreen=True,\ ifpermute=True) path = './lmps_compact' block_itrf.compact_rotL(flmps1, path) t1 = time.time() print 'dt=', (t1 - t0) flmpsQ.close() flmps0.close() flmps1.close()
ifs2proj = True #False flmps0 = h5py.File('./lmps0', 'r') nsite = flmps0['nsite'].value print "Input qsym=", flmps0['qnum' + str(nsite)].value print flmps0['qnum' + str(nsite)].value flmps1 = h5py.File('./lmps1T', 'w') # Conversion t0 = time.time() mpo_dmrg_conversion.sweep_projection(flmps0,flmps1,ifQt,sval,thresh=1.e-5,\ ifcompress=True,ifBlockSingletEmbedding=True,\ ifBlockSymScreen=True,ifpermute=True) path = './lmps_compactT' block_itrf.compact_rotL(flmps1, path, ifaux=False) flmps1.close() exit() # *** Without singlet embedding: # # finalize left_sweep ... # ibond/dim(NS)/dim(NSM)= 0 1 1 # ibond/dim(NS)/dim(NSM)= 1 3 4 # ibond/dim(NS)/dim(NSM)= 2 8 14 # ibond/dim(NS)/dim(NSM)= 3 13 27 # ibond/dim(NS)/dim(NSM)= 4 14 32 # ibond/dim(NS)/dim(NSM)= 5 16 39 # ibond/dim(NS)/dim(NSM)= 6 20 51 # ibond/dim(NS)/dim(NSM)= 7 16 42 # ibond/dim(NS)/dim(NSM)= 8 18 49