Appendix A Documentation for ALPS v2.0 TEBD Code This appendix contains the documentation for the TEBD code included in the v2.0 release of the ALPS code, see Chap.10. At the time of the writing of this thesis, this information was hosted on the ALPS wiki at http://alps.comp-phys.org. Section A.1 is documentation about the code in general, the background of the TEBD algorithm, and explanations of the parameters used as input to the code. The original website for this section is http://alps.comp-phys.org/mediawiki/index.php/Documentation:TEBD. Sections A.2 and A.3 are tutorials on using the ALPS routines. The original websites are http://alps.comp-phys.org/mediawiki/index.php/ALPS_2_Tutorials:TEBD-01 _bhquenchandhttp://alps.comp-phys.org/mediawiki/index.php/ALPS_2_Tutorials: TEBD-02_kink,respectively. A.1 Documentation:TEBD A.1.1 Time-EvolvingBlockDecimation Thetime-evolvingblockdecimation(TEBD)algorithmisamethodforsimulating the time evolution of one-dimensional quantum lattice systems governed by a Hamiltonian with at most nearest-neighbor interactions. It is closely related to the densitymatrixrenormalizationgroup(DMRG)methodinthatbothmethodsoperate on a class of states known as matrix product states (MPSs). In addition to real time evolution, imaginary time evolution can also be used to find ground states. Essentially,TEBDconsistsoftwoparts:acanonicalMPSrepresentationofamany- bodystate,andaprotocolforfindingtheMPSclosesttoastatewhichisactedupon byatwo-siteoperator. ©SpringerInternationalPublishingSwitzerland2015 291 M.L.Wall,QuantumMany-BodyPhysicsofUltracoldMoleculesinOptical Lattices,SpringerTheses,DOI10.1007/978-3-319-14252-4 292 A DocumentationforALPSv2.0TEBDCode The particular implementation of TEBD used in ALPS simulates a series of global parameter quenches of the form g.t/ D g.t / C ..t (cid:2) t /=(cid:2)/p.g.t / (cid:2) i i f g.t //. The timescale (cid:2), power p, initial and final values g.t / and g.t /, and i f i Hamiltonian parameters g of each quench are all amenable to specification by the user.Additionally,becausetheTEBDmethodproduceswavefunctions,awiderange ofobservablesareavailable,includingentropies,correlationfunctions,andoverlaps betweenthestateatdifferenttimes. A.1.2 References Vidal,G.:Efficientclassicalsimulationofslightlyentangledquantumcomputations. Phys.Rev.Lett.91,147902(2003) Vidal, G.: Efficient simulation of one-dimensional quantum many-body systems. Phys.Rev.Lett.93,040502(2004) Daley,A.J.,Kollath,C.,Schollwöck,U.,Vidal,G.:Time-dependentdensity-matrix renormalization-groupusingadaptiveeffectiveHilbertspaces. J.Stat.Mech.2004, P04005(2004) A.1.3 TEBD-Specific Parameters CHI_LIMIT The maximum bond dimension of the MPS allowed during real time propagation. Thedefaultvalueis50. TRUNC_LIMIT The maximum truncation error allowed for a specific two-site evolution. If the bond dimension corresponding to this truncation is greater than CHI_LIMIT, then CHI_LIMITischoseninstead.Thedefaultvalueis10(cid:2)12. TAUS Theelementsofthisvectorarethetimescales(cid:2) oftheglobalquenches. GS TheelementsofthisvectoraretheHamiltonianparametersgoftheglobalquenches, given as character variables. Note that the elements of this vector may themselves be vectors, which corresponds to quenching several parameters at the same time. If this is so, the corresponding elements of POWS, GIS, and GFS must also be vectorsofthesamelength.NotethatTAUS,NUMSTEPS,andSTEPSFORSTORE A DocumentationforALPSv2.0TEBDCode 293 will not be vectors, as the timescale, number of time steps, and number of steps betweenoutputsarethesameforeachparameterbeingquenched. POWS Theelementsofthisvectorarethepowerspoftheglobalquenches. GIS The elements of this vector are the initial values of the Hamiltonian parameters g oftheglobalquenches. GFS TheelementsofthisvectorarethefinalvaluesoftheHamiltonianparametersg of theglobalquenches. CONSERVED_QUANTUMNUMBERS Quantumnumbersconservedbythemodelofinterest.Forspinmodels“Sz”canbe conserved,andforparticlemodels“N”canbeconserved. NUMSTEPS The elements of this vector are the number of time-steps of the global quenches. Thisimplicitlydefinesthetimestepsdtofthequenches. STEPSFORSTORE The elements of this vector are the number of time-steps between the calculation andoutputofobservables. INITIAL_STATE The state used at t D 0, before real time propagation begins. Currently, only two valuesaresupported:“kink,”whichproducesaspecificinitialstatetobediscussed furtherintutorial2a,and“ground,”whichcalculatesthegroundstateofaspecified initialhamiltonian viaimaginary timepropagation. Thedefaultvalue is“ground”. Seethetutorialsforexamples. ITP_CHIS The elements of this vector are the maximum bond dimensions used in iterations of imaginary time propagation to find the group state. It is only referenced if INITIAL_STATEis“ground.” ITP_DTS Theelements ofthisvector arethetimestepsusediniterationsofimaginarytime propagation to find the group state. It is only referenced if INITIAL_STATE is “ground.” 294 A DocumentationforALPSv2.0TEBDCode ITP_CONVS The elements of this vector are the convergence parameters used in iterations of imaginary time propagation to find the group state. An iteration of imaginary time propagation exits if the maximal difference between singular values at some time interval is less than the convergence parameter. It is only referenced ifINITIAL_STATEis“ground.” SIMID An optional integer input which differentiates a series of simulations and can simplifyplottingcommands. NUM_THREADS ThenumberofOpenMPthreadsused. VERBOSE If set to “true,” then the code willoutput, time values, truncation errors,and other runningmessages.Thedefaultvalueis“false.” A.2 Tutorials:TEBD-01 bhquench A.2.1 The HardcoreBosonModel Inthisfirsttutorialweinvestigatethebehaviorofthehardcorebosonmodel LX(cid:2)1 LX(cid:2)1 H D(cid:2)t .bi(cid:3)biC1Cbibi(cid:3)C1/CV niniC1 (A.1) iD1 iD1 astheparameterV ischangedintime.ItiswellknownthatforlargeV=t theground state of the hardcore boson model at half filling is a charge-density wave (CDW) insulatorwhileforsmallV=t thegroundstateisasuperfluid(SF).Itisinterestingto considerwhathappenstothesystemifwebegininonephaseandthendynamically change, or “quench,” one of the Hamiltonian parameters t or V such that we are in the other phase. As a simple first foray into the rich physics of quenches, we willconsiderquenchingfromonephasetotheotherandthenbackintotheoriginal phase. A particularly stringent criterion for adiabaticity of such a quench is how closethefinalstateistotheinitialstate,i.e. L.tI(cid:4)/(cid:3)jh .t/j .0/ij2 (A.2) whichwecalltheLoschmidtEcho.Notethatthet inthisexpressionisthetimeand notthehoppingparametert.Theparameter(cid:4) ismeanttoconveythatthisquantity ingeneraldependsonthemannerinwhichthesystemisquenched. A DocumentationforALPSv2.0TEBDCode 295 The general structure of a quench in the ALPS TEBD routines is given by the parameterization g.t/Dg.t /C..t (cid:2)t /=(cid:2)/p.g.t /(cid:2)g.t //; (A.3) i i f i where g is some Hamiltonian parameter. In the present case we will take g to be the interaction parameter V. We will begin our system in the CDW regime with V=t D 10,quenchtotheSFregimewhereV=t D 0,andthenquenchbacktothe CDWregimewithV=t D10.Inthethreepartsofthistutorialwewillinvestigate(a) theeffectsofthetimescale(cid:2) ontheLoschmidtechoduringalinearquench,(b)the effectsof“holding”thesystemintheSFphaseforatime(cid:2) beforereturningto hold theCDWphase,and(c)theeffectsofchangingthepowerpofthequenchfunction. A.2.2 Linear Quench First, we will investigate the effects of the quench rate (cid:2) on the adiabaticity of a linearquenchfromtheCDWtotheSFphaseandback. A.2.2.1 PreparingandRunningtheSimulationUsingPython TosetupandrunthesimulationinPythonweusethescripttutorial1a.py.Thefirst partsofthisscriptimporttherequiredmodulesandthenpreparetheinputfilesasa listofPythondictionaries: import pyalps import matplotlib . pyplot as plt import pyalps . plot parms=[] count=0 for A in [5.0 , 10.0, 15.0, 25.0, 50.0]: count+=1 parms.append({ ’L’ : 10, ’MODEL’ : ’ hardcore boson’ , ’CONSERVED_QUANTUMNUMBERS’ : ’N’ , ’N’ : 5, ’t ’ : 1.0, ’V’ : 10.0, ’ITP_CHIS’ : [20, 30, 35], ’ITP_DTS’ : [0.05 , 0.05 ,0.025] , 296 A DocumentationforALPSv2.0TEBDCode ’ITP_CONVS’ : [1E(cid:2)8, 1E(cid:2)8, 1E(cid:2)9], ’INITIAL_STATE’ : ’ground’ , ’CHI_LIMIT’ : 40, ’TRUNC_LIMIT’ : 1E(cid:2)12, ’NUM_THREADS’ : 1, ’TAUS’ : [A, A] , ’POWS’ : [1.0 , 1.0] , ’GS’ : [ ’V’ , ’V’] , ’GIS’ : [10.0 , 0.0] , ’GFS’ : [0.0 , 10.0] , ’NUMSTEPS’ : [500, 500], ’STEPSFORSTORE’ : [5, 3], ’SIMID’ : count }) Let’s go through the TEBD-specific parameters in more detail (see the TEBD documentation, Sect.A.1, for a list of all such parameters). The parameter INITIAL_STATE is set to ground, which means that we begin from the ground state of our Hamiltonian with user-specified parameters. The parameters t and V specify that the initial Hamiltonian parameters t D 1 and V D 10 are used to find the ground state. In order to find the ground state, TEBD performs evolution in imaginary time. We refer to this step as ITP, and so all parameters containing ITP deal with the ground state properties. The vectors ITP_CHIS, ITP_DTS, and ITP_CONVSaretheentanglementcutoffparameters,timesteps,andconvergence criteriaforsuccessiveapplicationsofimaginarytimepropagation.Theseconstitute the main convergence parameters for TEBD, and convergence should always be carefully checked in each parameter. For now, don’t worry too much about theiractualvalues,we’llseehowerrorsarecontrolledinthenextsetoftutorials. Now we turn to the real-time propagation parameters. We wish to perform a series of two quenches. First we want to quench the parameter V linearly in time from its initial value 10 to 0. Comparing with the general form of a quench g.t/Dg.t /C..t(cid:2)t /=(cid:2)/p.g.t /(cid:2)g.t //weseethatthiscorrespondstog DV, i i f i g.t / D 10, g.t / D 0, p D 1, and (cid:2) is the free parameter whose effects are to i f beinvestigated. Lookingattheparameter list,weseethatthefirstelements ofthe vectorsGS,GIS,GFS,andPOWScorrespondtog,g.t /,g.t /,andp,respectively. i f The first element of the vector TAUS is looped over using the variable A, which meansthatwewillperformaseriesofsimulationswith(cid:2) D 5,10,15,25,and50. The second quench is essentially the reverse of the first, with g D V, g.t / D 0, i g.t /D10,p D1,and(cid:2) thesameasthefirst.Comparingwiththeparameterslist, f weseethatthiscorrespondstothesecondelementsofthevectorsGS,GIS,etc.as above. Timeevolutionissimulatedbybreakingthefullpropagatorapproximatelyinto aseriesofoperationswhichactonlyontwoneighboringsitesatatime.Theerror in using this approximate propagator is second order in the “infinitesimal” time- step dt. TEBD gives a protocol for updating the canonical form of our state after A DocumentationforALPSv2.0TEBDCode 297 suchatwo-siteoperationhasbeenapplied.Theerrorinthisprocedureiscontrolled by CHI_LIMIT, which is directly related to the amount of spatial entanglement, and TRUNC_LIMIT, which is akin to the TRUNCATION_ERROR in the DMRG routines. The parameter vector NUMSTEPS specifies how many time-steps are takeninperformingeachquench,whichtogetherwith(cid:2) implicitlydefinesthetime- stepdt.TheoverallerrorisanontrivialfunctionofCHI_LIMIT,TRUNC_LIMIT, and NUMSTEPS which will be investigated in the next set of tutorials, so we won’t worry about the choice of these much for now. Finally, STEPSFORSTORE determines how many time steps are taken before observables are computed and storedandSIMIDisanintegerdifferentiatingthesimulationswithdifferent(cid:2). Wenowmoveontotheactualcomputation.Thelines: baseName=’tutorial_1a ’ #write output files nmlnameList=pyalps . writeTEBDfiles(parms , baseName) #run the application res=pyalps .runTEBD(nmlnameList) preparetheinputfilesfortheTEBDroutinesandrunthesimulationsfortherange of(cid:2) specifiedintheparameters.WenowloadtheLoschmidtEchoandinteraction parameterU asfunctionsoftimevia: #Load the loschmidt echo and V LEdata=pyalps . load . loadTimeEvolution(pyalps . getResult Files ( prefix=’tutorial_1a ’) , measurements= [ ’Loschmidt Echo’ , ’V’]) Finally,weplotthecollecteddatausing: LE=pyalps . collectXY(LEdata , x=’Time’ , y=’Loschmidt Echo’ ,foreach=[’SIMID’]) for q in LE: q. props[ ’label ’]=r ’$\ tau=$’+str (q. props[ ’TAUS’ ][0]) plt . figure () pyalps . plot . plot (LE) plt . xlabel( ’Time $t$ ’) plt . ylabel( ’Loschmidt Echo $|< \ psi (0) |\ psi(t) > |^2$’ ) plt . title ( ’Loschmidt Echo vs. Time’) plt . legend(loc=’lower right ’) Ufig=pyalps . collectXY(LEdata , x=’Time’ , y=’V’ ,foreach =[’SIMID’]) for q in Ufig: q. props[ ’label ’]=r ’$\ tau=$’+str (q. props[ ’TAUS’ ][0]) 298 A DocumentationforALPSv2.0TEBDCode plt . figure () pyalps . plot . plot (Ufig) plt . xlabel( ’Time $t$ ’) plt . ylabel( ’V’) plt . title ( ’Interaction parameter $V$ vs. Time’) plt . legend(loc=’lower right ’) plt .show() A.2.2.2 PreparingandRunningtheSimulationUsingVistrails TorunthesimulationinVistrailsopenthefiletutorial1a.vtandlookattheworkflow labeled“tutorial1a.”Clickon“Execute”topreparetheinputfile,runthesimulation andcreatetheoutputfigure. A.2.2.3 Questions • Howdoesthebehavioroftheoverlapchangeasthequenchratedecreases? • Roughly how slowly do you have to perform the quench in order for it to be adiabatic? • Isiteasierorharderforalargersystemtobeadiabatic?Why? • Are these properties changed depending on whether the intermediate phase is gapped or not? One can test this by changing from the hardcore boson model to the (softcore) boson Hubbard model, and then quenching from the Mott- Insulating (MI) phase at large U=t and unit filling to the CDW phase with large V. As you quench from the Mott insulating to the CDW phase and back, howdifficultisittobeadiabatic? A.2.3 LinearQuenchwith Hold Inthissectionwewillinvestigatetheeffectsof“holding”thesystemintheSFphase foratime(cid:2) beforequenchingbacktotheCDWphase. hold A.2.3.1 PreparingandRunningtheSimulationUsingPython TosetupandrunthesimulationinPythonweusethescripttutorial1b.py.Thefirst partsofthisscriptimporttherequiredmodulesandthenpreparetheinputfilesasa listofPythondictionaries: A DocumentationforALPSv2.0TEBDCode 299 import pyalps import matplotlib.pyplot as plt import pyalps.plot #prepare the input parameters parms=[] count=0 for A in [5.0, 10.0, 15.0, 25.0, 50.0]: count+=1 parms.append({ ’L’ : 10, ’MODEL’ : ’hardcore boson’, ’CONSERVED_QUANTUMNUMBERS’ : ’N’, ’N’ : 5, ’t’ : 1.0, ’V’ : 10.0, ’ITP_CHIS’ : [20, 30, 35], ’ITP_DTS’ : [0.05, 0.05,0.025], ’ITP_CONVS’ : [1E(cid:2)8, 1E(cid:2)8, 1E(cid:2)9], ’INITIAL_STATE’ : ’ground’, ’CHI_LIMIT’ : 80, ’TRUNC_LIMIT’ : 1E(cid:2)12, ’NUM_THREADS’ : 1, ’TAUS’ : [10.0, A, 10.0], ’POWS’ : [1.0, 0.0,1.0], ’GS’ : [’V’, ’V’, ’V’], ’GIS’ : [10.0,0.0, 0.0], ’GFS’ : [0.0, 0.0, 10.0], ’NUMSTEPS’ : [500, int(A/0.05) , 500], ’STEPSFORSTORE’ : [5,5, 3], ’SIMID’ : count }) NotethatinthiscasewehavethreequenchesasGS,GIS,etc.areallvectorsof lengththree.ThesecondquenchkeepstheHamiltonianparametersfixedatt D 1, V D 0 for a time (cid:2) before quenching back. We write the input files, run the hold simulations,getoutputs,andplotasabove: baseName=’tutorial_1b ’ #write output files nmlnameList=pyalps . writeTEBDfiles(parms , baseName) #run the application res=pyalps .runTEBD(nmlnameList) #Load the loschmidt echo and U LEdata=pyalps . load . loadTimeEvolution(pyalps . getResultFiles ( prefix=’tutorial_1b ’) , measurements =[’Loschmidt Echo’ , ’V’]) 300 A DocumentationforALPSv2.0TEBDCode LE=pyalps . collectXY(LEdata , x=’Time’ , y=’Loschmidt Echo’ ,foreach=[’SIMID’]) for q in LE: q. props[ ’label ’]=r ’$\tau_{\mathrm{hold}}=$’+str (q. props[ ’TAUS’][1]) plt . figure () pyalps . plot . plot (LE) plt . xlabel( ’Time $t$ ’) plt . ylabel( ’Loschmidt Echo $|< \ psi (0) |\ psi(t) > |^2$’ ) plt . title ( ’Loschmidt Echo vs. Time’) plt . legend(loc=’lower right ’) Ufig=pyalps . collectXY(LEdata , x=’Time’ , y=’V’ ,foreach =[’SIMID’]) for q in Ufig: q. props[ ’label ’]=r ’$\tau_{\mathrm{hold}}=$’+str (q. props[ ’TAUS’][1]) plt . figure () pyalps . plot . plot (Ufig) plt . xlabel( ’Time $t$ ’) plt . ylabel( ’V’) plt . title ( ’Interaction parameter $V$ vs. Time’) plt . legend () plt .show() A.2.3.2 PreparingandRunningtheSimulationUsingVistrails TorunthesimulationinVistrailsopenthefiletutorial1b.vtandlookattheworkflow labeled“tutorial1b.”Clickon“Execute”topreparetheinputfile,runthesimulation andcreatetheoutputfigure. A.2.3.3 Questions • Howdoesthebehavioroftheoverlapchangeastheholdtimeincreases? • Isthisbehaviormonotonicintheholdtime?Whyorwhynot? A.2.4 NonlinearQuenches In this section we will investigate the effects of varying the power of the quench awayfrombeinglinear.
Description: