def solve1_update(J,nsite,override=True,C2parity=None,h=0.): '''Get and store the eigen vectors and eigen values for ground state.''' model=IsingModel(J=J,h=h,nsite=nsite) spaceconfig=SpinSpaceConfig([2,1]) H_serial=model.H_serial expander=RGHGen(spaceconfig=spaceconfig,H=H_serial,evolutor_type='null') t0=time.time() H=get_H(expander) Emin,EV=eigsh(H,k=2,which='SA') t1=time.time() print 'The Ground State Energy for %s: %s, Elapse %s.'%(model,Emin,t1-t0) print 'FIN - CORE:%s'%RANK for i in xrange(2): suffix='%s_%s.dat'%(model.get_str(),i) filename_mps='data/mps_'+suffix filename_eng='data/eng_'+suffix mps=state2MPS(EV[:,i],sitedim=2,l=0) mps.save(filename_mps) savetxt(filename_eng,Emin)
def solve1(J,target_block,nsite,override=True,C2parity=None,h=0.): '''Get and store the eigen vectors and eigen values for ground state.''' model=IsingModel(J=J,h=h,nsite=nsite) suffix='%s_%s.dat'%(model.get_str(),target_block) filename_mps='data/mps_'+suffix filename_eng='data/eng_'+suffix if not override and os.path.isfile(filename_mps): Ei=loadtxt(filename_eng)[0] return Ei,MPS.load(filename_mps) spaceconfig=SpinSpaceConfig([2,1]) H_serial=model.H_serial expander=RGHGen(spaceconfig=spaceconfig,H=H_serial,evolutor_type='masked') t0=time.time() dmrgegn=DMRGEngine(hgen=expander,tol=1e-7,reflect=False,eigen_solver='JD') #we can not use reflect here, because SOC do not meet reflection condition! dmrgegn.use_U1_symmetry(model.qnumber,target_block=target_block) Emin,mps=dmrgegn.run_finite(endpoint=(5,'<-',0),maxN=[10,25,50,70,70,70,70],tol=1e-8) t1=time.time() print 'The Ground State Energy for %s: %s, Elapse %s.'%(model,Emin,t1-t0) print 'FIN - CORE:%s'%RANK mps.save(filename_mps) savetxt(filename_eng,Emin) return Emin,mps