HomePage
PmWiki
pmwiki.org

This changelog is no longer used, use git log instead.
Changes in trunk/
 2010: The changelog hasn't been updated for a while  see the svn logs for recent changes.
 20081010: Added
f modifier for the NumStates line in the DMRG configuration, to allow changing the MixFactor parameter during the run
 20080905: Added various options to
mplocalcorrelation to allow the calculation of string correlation functions, including ferimionic
 20080428: Tweaked the interface of
mpapplymultiple so that it is useful (and matches mpapplyopt )
 20080428: Added
real and imag options to mpoverlap
 20080225: Added
mpevolvebonds tool for time evolution via SuzukiTrotter and related decompositions.
 20080208: Added
real and imag options to mpexpectation
 20080121: Added
mplocalfourpointex , for calculating general fourpoint correlators
 20071219: Added
dot() function to the expression parser
 20071210: Added tools for manipulating the symmetries and basis states of an MPS;
mpscalebasis , mpshiftbasis , mpreorderbasis , mprenamesymmetry and mpreordersymmetry
 20071109: Optimized returning complex values from mixed C++/fortran calls for 64bit platforms
 20071102: Added
casimir option to mpinfo , to display the expectation values of the casimir invariant operators for each density matrix. (The casimir invariants are the labels of the group representations; for {$U(1)$} the casimir invariant is the particle number (or zspin, etc), for {$SU(2)$} the casimir invariant is {$S^2 = s(s+1)$})
 20071101: Added
2 option to mpinfo , to get the entropy in base 2. Also cleaned up the output so that it doesn't need an awk script to extract the numbers
 20070816: Bug fix in
mprandom , where the wrong command line parameter was used for the output filename when using named options instead of positional options
 20070813: Bug fix where temporary files were not being deleted if the program terminated abnormally. Now, temporary files are immediately unlinked and never appear in a directory listing
 20070802: In
mpgmresinit/resume , used to show the residual norm in the .sweep file, changed now to show the squared residual norm
 20070731: Make
mpstringcorrelation incorporate the 'join' operator also into the first site
 20070731: Added
beta and seed options to mprandom
 20070716: Removed
mpexpectationsq , it is redundant now that operator expressions can be used
 20070716: Added
balanced option to mpadd , which rotates the input wavefunctions so the fidelity is real and positive. This is useful for constructing interpolated initial guess vectors for DMRG, to save having to check that the fidelity is positive
 20070716: Make
mpexpectation and mplocalexpectation use disk rather than RAM for temporary storage, via MP_BINPATH
 20070706: Bug fix in
mpconstruct . Obviously no one had tried running this program for a while...
 20070703: Added a new tool:
mpdensityoverlap calculates {$\mathrm{Tr} \; \rho_1 \rho_2 $} for the left reduced density matrices of two wavefunctions {$\psi_1\rangle$} and {$\psi_2\rangle$} at each partition
 20070701: Implemented removal of small components of MPS operator representations. I think this is safe, but this section of the code has caused problems in the past so be warned. This works by removing matrix elements where the squared modulus of the component added at a particular site is smaller than epsilon. The actual value of epsilon used is read by the environment variable
MP_OPERATOREPSILON . The default value is the machine epsilon. set MP_OPERATOREPSILON=0 to get the behavior prior to 20070701, of never culling such matrix elements. If you ever see a difference in the expectation value of operators obtained with a different MP_OPERATOREPSILON then please report it
 20070625: Added
mptheta2 tool for calculating the angle {$\theta^2$} between input wavefunctions. {$1\theta^2/2 = \cos \theta = \langle A  B \rangle / A \; B$}
 20070624: Updates to
mptrunc and mpapplyopt , more imformative output and the options are more consistent with the other tools. Use m to set the maximum number of states, minstates to set the minimum
 20070620: Make
mpevolvekrylovsimple respect MP_BINPATH environment variable
 20070619: Changed the ordering of the basis states in the {$U(1)$} Hubbard model. This is for consistency with
mpwignereckart , so that the {$SU(2)$} wavefunctions can be projected down to {$U(1)$} and work with {$U(1)$} lattice files. Unfortunately, this makes the new lattice files incompatible with old wavefunctions
 20070615: Added
mpwignereckart , to project wavefunctions from nonAbelian symmetries onto the zaxis.
 20070612: Added
conj() and adjoint() functions for MPOperator types as well as to the expression parser. Adjoint(x) is equivalent to the operator Hermitian conjugate. The usual subtleties apply for {$SU(2)$}. **Not well tested yet
 20070609: Bug fix where the DMRG program would hang sometimes (caused by a division by zero leading to LAPACK trying to diagonalizing a matrix of NaN, which seems to loop indefinitely instead of doing something sensible)
 20070606: Bug fix where it was not possible to create files larger than 2GB on 32bit machines. This should be fixed, but it is not confirmed yet that it works
 20070525: New script to automate calculation of spectral functions, from Sebastian Smerat. See
scripts/spectral/ . Don't ask me how to use it ;)
 20070523: Added
mpload0.7.3 tool, which converts wavefunctions from the version 0.7.3 format to the trunk format
 20070515: Added commutator brackets to the operator parser. This is good for calculating linear response: {$\frac{dA}{dt} = i[H,A]$} translates to
mpexpectation psi lattice:"1.0i*[H,A]"
 20070512: New tool:
mpapplymultiple works in a similar way to mpapplyopt , but you can specify multiple righthandsides, which are summed. An example of use is to calculate the residual vector from a GMRES calculation, {$r\rangle = b\rangle  Ax\rangle$}
 20070512: Bug fix in storing the wavefunctions: it was intended that all of the wavefunction would be stored on disk, except for the current center matrix, but a small bug prevented that
 20070510: Bug fix in calculating the residual norm in GMRES, where the calculation of the <lvAcv> contribution was inaccurate. This fixes the longstanding problem where sometimes a 'nan' would appear for the residual norm. The inaccuracy is only serious when the residual norm is large, once the correction vector has converged the calculation is accurate. Also, the residual norm is now normalized by the length of the lanczos vector, so it accurately represents the angle between lv> and Acv>
 20070509: Faster method for calculating the fidelity in the DMRG, so we now calculate it every sweep
 20070508: Added some new statistics to the
.sweep file produced by DMRG, these are the `truncated energy` (the sum over a sweep of the differences in energy before and after the truncation), and the standard error in the energy over the sweep. The truncated energy is an approximation of how far the state is above the exact groundstate, it seems to be accurate within a factor 2 or so. The standard error gives an indication of how positiondependent the energy is. Both these quantities depend strongly on the truncation scheme (will be close to zero for a singlesite algorithm with no mixing, for example).
 20070508: DMRG: only calculate {$(HE)^2$} if the sweep was converged.
 20070506: Changed the normalization of the mixing terms in the density matrix, seems to converge better now
 20070506:
mpapply now uses the usual operator expression syntax, rather than having separate parameters for the lattice file and operator
 20070505: New operator parser based on boost::spirit library. See OperatorExpressions for details
 20070503: Added 'r' and 'b' options to the
NumStates configure line for DMRG and GMRES. 'r' sets a maximum desired truncation error per site for that sweep, 'b' only works in GMRES and changes the broadening for that sweep. Example: NumStates = 10 20 40 60 80 0r1e10ws means do 5 sweeps keeping 10,20,40,60 then 80 states, then on the 6th sweep, use a maximum truncation error per site of {$10^{10}$}, wait for convergence and save the wavefunction. The number of states is still required, and acts as the maximum number of states to keep: using 0 means 'no limit'
 20070428: Added
mpcanonical , for producing the wavefunction corresponding to the {$T = \infty$} density matrix of a finite temperature lattice. For this to work, the sites must appear in pairs of (real,ancilla) where the maximally entangled state is {$\vert1_r\rangle \otimes \vert 1_a\rangle + \vert2_r\rangle \otimes \vert 2_a\rangle + \ldots$}
 20070422: Added
mplocalfourpoint , for the fast calculation of four point correlation functions, in the style of mplocalcorrelation
 20070422: Added
mpchiralcorrelatorsu2 , which is a version of mplocalexpectation for quickly calculating the chiral correlator {$\mathbf{S}(i)\times\mathbf{S}(i+1) \; \cdot \; \mathbf{S}(j) \times \mathbf{S}(j+1)$} using {$SU(2)$} symmetry
 20070416:
mpopinfo is functional again. The output might not be very readable
 20070416: Bug fix where the result of some MPS operator operation is zero, caused a segfault
 20070408: Bug fix in splitoperator.h that caused checkpoint files to be unreadable
 20070407:
mprandom : fix bug that resulted in the order of lattice sites being reversed
 20070407:
mpinfo : added localbasis option to show the local basis at each site of a wavefunction
 20070407:
mptrunc is functional again, now includes control over the number of states and truncation error
 20070407: Added
mpexpectationsq tool, to calculate the expectation value of the square of an operator
 20070401: Enhanced
mpadd so that it can calculate the sum of an arbitrary list of wavefunctions, and also allow control over the truncation error and/or number of states.
 20070401: Changed the convention for specifying the number of states and the truncation error. The new convention is to have default
truncation error of 0. Thus, to set m directly, we need to specify maxstates (abbrev. x ), rather than minstates (abbrev. m ). Note that if we really want to enforce a fixed number of states, you should either set minstates explicitly, or set trunc to a negative number. Unless this is done, singular values that are close to zero will not be kept. UPDATE: I'm still undecided about this.
Changes in 0.7.3 branch
 20070502: Backported
mplocalexpectation from the trunk
 20070221:
mpevolvekrylov : Added options minkrylov , maxkrylov and maxsweeps
 20070220:
mpmakek : Added unitsize option, to allow setting the size of the unit cell to get the correct lattice size for the Fourier transform
 20070220: Fix to operator normalization, that corrects a serious bug in
mpmakek and possibly other programs
 20070124: Fix in
mpapplyopt to allow nonscalar operators.
Changes in version 0.7.3.2 (20061116)
 20061116: Fixed the bugs introduced in version 0.7.3.1.
 20061117: Fixed another bug caused by 0.7.3.1.
Changes in version 0.7.3.1 (20061109)
 20061109: Small optimization to reduce the size of lattice file, especially for larger systems
 20061109: Temporarily removed the
Bond(i) operators from hubbardu1su2 and hubbardu1u1 . Define INCLUDE_BOND to get them back
Changes in version 0.7.3.0 (20061019)
 20061010: Added
mpdefrag tool. This defragments wavefunction files, reducing their size in some situations (mpapply seems to be a bad offender here).
 20061010: All of the tools now support the
MP_PAGESIZE and MP_CACHESIZE environment variables, for controlling the behavior of the output binary files. Default MP_PAGEIZE is 65536, make it smaller to reduce fragmentation of the wavefunction files, make it bigger to get faster disk I/O. This number must be a multiple of the operating system memory page size (usually 4096). Default MP_CACHESIZE is 655360. Increase this if you have some spare RAM to get less paging out to disk. A reasonable value would be 100M or bigger.
 20061009:
mptridiag and mptrispectral now support having a left hand side wavefunction different from the right (needed for multiband spectral functions)
 20061009:
mpstringcorrelation now allows the left or right operators to be the identity (I )
 20061009: Added 'join' parameter for
mpstringcorrelation . This used to be hardcoded to mSz {$=(1)^{S_z}$}
 20061009: start of this changelog. For anything older, see the Subversion logs.
