예제 #1
0
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()
예제 #2
0
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