Yeah. That sounds like a really good deal. But I got a better one. How about... I give you the finger... and you give me my phone call?
Itools /
Mp-idmrg5
Generic command-line options: Matrix Product Toolkit version HEAD-0.7.4.0 (subversion tree rev 1120M) Compiled on Dec 7 2010 at 07:42:04 Copyright (c) Ian McCulloch 1999-2010 All Rights Reserved For license conditions email ianmcc@physics.uq.edu.au usage: mp-idmrg [options] Allowed options: --help show this help message -H [ --Hamiltonian ] arg model Hamiltonian. Valid choices: itf, itf-z2, xxx-su2, xxx-u1, xxx, tj-zigzag-u1su2, tj-zigzag-u1, sf-zigzag-u1, klm-u1su2, klm-u1, bh, bh2, bh-u1, bh2-u1, kagome-su2 -w [ --wavefunction ] arg wavefunction to apply DMRG (required) -2 [ --two-site ] Modify two sites at once (default) -1 [ --one-site ] Modify one site at a time -m [ --max-states ] arg Maximum number of states to keep [default 100000] --min-states arg Minimum number of states to keep [default 1] -r [ --trunc ] arg Truncation error cutoff [default 0] -d [ --eigen-cutoff ] arg Cutoff threshold for density matrix eigenvalues [default -1] -f [ --mix-factor ] arg Mixing coefficient for the density matrix [default 0] --evolve arg Instead of Lanczos, do imaginary time evolution with this timestep -a [ --random ] Create a new wavefunction starting from a random state -e [ --exactdiag ] Start from an effective exact diagonalization of the unit cell -u [ --unitcell ] arg Only if --create is specified, the size of the unit cell -q [ --target ] arg the target quantum number per unit cell --boundary arg use this boundary quantum number for initializing the unit cell (useful for integer spin chains) -b [ --bootstrap ] boostrap iterations by starting from a single unit cell, instead of obtaining the fixed point Hamiltonian ('bootstrap' is necessary if the wavefunction is not orthonormal) -s [ --steps ] arg Number of DMRG steps to perform [default 10] --no-orthogonalize Don't orthogonalize the wavefunction before saving --maxiter arg Maximum number of Lanczos iterations per step (Krylov subspace size) [default 20] --miniter arg Minimum number of Lanczos iterations per step [default 4] --maxtol arg Maximum tolerance of the eigensolver [default 0.00040000000000000002] --fidelityscale arg The tolerance of the eigensolver is min(maxtol, fidelityscale * sqrt(fidelity)) [default 0.10000000000000001] --initialfidelity arg Initial value for the fidelity to set the eigensolver tolerance, for the first iteration [default 9.9999999999999995e-08] --spin arg spin (for xxx,xxz,xyz hamiltonians) [default 0.5] --J arg nearest-neighbor exchange J (for xxx,itf, etc) [default 1] --Jperp arg perpendicular exchange exchange J (for xxx-ladder) [default 0] --periodic periodic in the perendicular direction (for xxx-ladder) --J2 arg next-nearest-neighbor exchange J2 (for xxx) [default 0] --D arg single-ion anisotropy (for xxx-u1 and xxx) [default 0] --V arg nearest-neighbor coulomb (for bhj-u1) [default 0] --U arg coulomb repulsion [default 0] --B arg magnetic field (for xxx) [default 0] --Jz arg Jz coupling (for Kondo) [default 1] --Jleg arg Jleg coupling (for Kagome strop) [default 1] --Jcross arg Jcross coupling (for Kagome strip) [default 1] --mu arg Chemical potential (bose-hubbard) [default 0] --kagome-cell arg Unit cell for kagome with plaquette (for Kagome strip with field, kagome-field-su2) [default 24] --nlegs arg Number of legs (for triangular ladder) [default 1] --tprime arg next-nearest-neighbor hopping t' (for tj-zigzag, sf-zigzag) [default 1] --nmax arg Maximum number of particles (for bose-hubbard model) [default 3] --delta arg Zigzag ladder potential imbalance (for tj-zigzag, sf-zigzag) [default 0] --theta arg theta (for biquadratic xxx) [default 0] --Beta arg Beta (for biquadratic xxx) [default 0] --lambda arg transverse field strength (for itf hamiltonian) [default 1] --seed arg random seed -v [ --verbose ] increase verbosity The The Example:mp-idmrg5 -H xxx-su2 --spin 1 --theta 0.25 -w psi -b -e -u 1 --boundary 1 -q 0 -m 50 -s 50 This will start a calculation for the bilinear-biquadratic spin-1 chain (XXX model with spin-1 and SU(2) symmetry), at the point theta=0.25*pi, which corresponds to the exactly-solvable SU(3) Uimin-Lai-Sutherland point. We have specified that the unit cell will be one site ( Note that the exact groundstate energy per site of this model is (2 - ln 3 - pi / (3 sqrt(3))) / sqrt(2) = 0.209860753107 Another use for the For a continuing calculation, omit the For an SU(2) symmetry, the target quantum number per unit cell must be zero. It is not possible to do ferri- or ferromagnetic SU(2) states with this code. This limitation does not apply to abelian quantum numbers. The The In summary, typical usage of idmrg for starting a calculation from scratch (create/overwrite the wavefunction file), here for an XX spin chain with U(1) symmetry mp-idmrg5 -H xxx-u1 -m 30 -s 20 -b -e -u 6 -q 1 -w psi This will result in a wavefunction The It is possible to interrupt the Model-specific parametersA Hamiltonian may use additional parameters to specify the spin, coupling coefficients etc. To see exactly what these do, look at the code. Some examples: --spin arg spin (for xxx,xxz,xyz hamiltonians) [default 0.5] --J arg nearest-neighbor exchange J (for xxx,itf, etc) [default 1] --J2 arg next-nearest-neighbor exchange J2 (for xxx) [default 0] --D arg single-ion anisotropy (for xxx-u1 and xxx) [default 0] --U arg coulomb repulsion [default 0] --B arg magnetic field (for xxx) [default 0] --Jz arg Jz coupling (for Kondo) [default 0] --Jleg arg Jleg coupling (for Kagome strop) [default 1] --Jcross arg Jcross coupling (for Kagome strip) [default 1] --nlegs arg Number of legs (for triangular ladder) [default 1] --tprime arg next-nearest-neighbor hopping t' (for tj-zigzag, sf-zigzag) [default 1] --nmax arg Maximum number of particles (for bose-hubbard model) [default 3] --delta arg Zigzag ladder potential imbalance (for tj-zigzag, sf-zigzag) [default 0] --theta arg theta (for biquadratic xxx) [default 0] --Beta arg Beta (for biquadratic xxx) [default 0] --lambda arg transverse field strength (for itf hamiltonian) [default 1] Make sure that you understand the convention that the code uses for each coupling coefficient! If in doubt, look at the code. In some cases, the code may use an unusual or awkward convention. In that case, feel free to change it, but you should add a note both to the help message for the Other parametersThere are a couple of other generic parameters to The tolerance of the eigensolver is determined by the fidelity of the wavefunction over the previous few iterations. Define f^2 = 1 - |<psi|\psi_old>| to be the 'fidelity loss' at the previous iteration. Then choose the desired residual length as r = f \times f_scale, where f_scale} is the OutputThe idmrg program writes out one line per step to standard output: X Energy= States= TruncError= Entropy= Fidelity= Iter= Tol= The first character is one of L,R,A,B. L and R are the left- and right-moving sweeps through the unit cell. A and B are the turning points where the infinite scheme is applied. Energy per unit cell, number of states kept, truncation error, von Neumann entropy (base e), fidelity squared, number of Lanczos iterations performed, and final tolerance of the eigensolver. If the eigensolver didn't converge to the desired tolerance (ie, after maxtol iterations), then the Tol value is the negative of the final tolerance. |