maxM = 200 if icase == 0: ################################ # 0. Initialize an MPS(N,Sz) ################################ dmrg = mpo_dmrg_class.mpo_dmrg() dmrg.occun = mol.orboccun dmrg.path = mol.path dmrg.nsite = mol.sbas / 2 dmrg.sbas = mol.sbas dmrg.isym = 2 dmrg.build() dmrg.comm = mol.comm dmrg.qsectors = {str([mol.nelec, sz]): 1} sc = mpo_dmrg_schedule.schedule() sc.fixed(maxM=100, maxiter=0) sc.prt() dmrg.ifIO = True dmrg.partition() dmrg.loadInts(mol) dmrg.dumpMPO() dmrg.default(sc) dmrg.checkMPS() #------------------------------------------------------- flmps0 = dmrg.flmps flmps1 = h5py.File(dmrg.path + '/lmpsQt', 'w') qtensor_api.fmpsQt(flmps0, flmps1, 'L') flmps0.close()
from zmpo_dmrg.source import mpo_dmrg_class from zmpo_dmrg.source import mpo_dmrg_schedule sz = 1.0 dmrg = mpo_dmrg_class.mpo_dmrg() dmrg.nsite = mol.sbas / 2 dmrg.nhops = mol.sbas dmrg.isym = 2 dmrg.build() dmrg.comm = mol.comm dmrg.qsectors = {str([mol.nelec, sz]): 1} Dmax = 10 dmrg.Dmax = Dmax #dmrg.test(mol) sc = mpo_dmrg_schedule.schedule(maxM=Dmax, tol=1.e-7) #sc.startM = 1000 sc.maxiter = 3 sc.mixed() dmrg.ifplot = False dmrg.partition() dmrg.default(mol, sc) dmrg.checkMPS(mol) exit() #lmps = [dmrg.lmps,dmrg.qnuml] #dmrg2 = mpo_dmrg_class.mpo_dmrg() #dmrg2.nsite = mol.sbas/2 #dmrg2.isym = 2 #dmrg2.build() #dmrg2.comm = mol.comm
conf = [1,1]+[1,0,]*8+[0,0] ################################ # 0. Initialize an MPS(N,Sz) ################################ dmrg = mpo_dmrg_class.mpo_dmrg() dmrg.occun = numpy.array(conf) dmrg.const = mol.ecor dmrg.path = mol.path dmrg.nsite = mol.sbas/2 dmrg.sbas = mol.sbas dmrg.isym = 2 dmrg.build() dmrg.comm = mol.comm dmrg.qsectors = {str([nelec,sz]):1} sc = mpo_dmrg_schedule.schedule() sc.fixed(maxM=1,maxiter=0) sc.prt() dmrg.partition() dmrg.loadInts(mol) dmrg.dumpMPO() dmrg.default(sc) #------------------------------------------------------- if rank == 0: flmps0 = dmrg.flmps flmps1 = h5py.File(dmrg.path+'/lmpsQt','w') qtensor_api.fmpsQt(flmps0,flmps1,'L') flmps0.close() flmps1.close() shutil.copy(dmrg.path+'/lmpsQt','./lmpsQ0')
############################# # 0. Initialize an MPS(N,Sz) ############################# dmrg = mpo_dmrg_class.mpo_dmrg() dmrg.occun = mol.orboccun dmrg.comm = mol.comm dmrg.path = mol.path dmrg.nsite = mol.sbas / 2 dmrg.sbas = mol.sbas dmrg.isym = 2 dmrg.build() dmrg.qsectors = {str([mol.nelec, sz]): 1} Dmax = 10 thresh = 1.e-10 sc = mpo_dmrg_schedule.schedule() sc.fixed(maxM=Dmax, maxiter=0) sc.prt() dmrg.ifplot = False dmrg.ifIO = True dmrg.partition() dmrg.loadInts(mol) dmrg.default(sc) dmrg.checkMPS() #------------------------------------------------------- # The last site only carries information from one state flmps0 = h5py.File(dmrg.path + '/lmps', 'r') flmps1 = h5py.File(dmrg.path + '/lmpsQt', 'w') qtensor_api.fmpsQt(flmps0, flmps1, 'L') flmps0.close()