[0.5.0] - 2019-12-18¶
Backwards incompatible changes¶
Major rewriting of the DMRG Engines, see issue #39 and issue #85 for details. The
EngineFracturehave been combined into a single
TwoSiteDMRGEnginewith an The
runfunction works as before. In case you have directly used the
EngineFracture, you should update your code and use the
Array: check whether the both arrays have the same labels in differnt order, and in that case raise a warning that we will transpose in the future.
groundstate()now returns a tuple
(E0, psi0)instead of just
psi0. Moreover, the argument charge_sector was added.
Simplification in the
Lattice: Instead of having separate arguments/attributes/functions for
'nearest_neighbors', 'next_nearest_neighbors', 'next_next_nearest_neighbors'and possibly (Honeycomb) even
'fourth_nearest_neighbors', 'fifth_nearest_neighbors', collect them in a dictionary called pairs. Old call structures still allowed, but deprecated.
Default parameter for DMRG params: increased precision by setting P_tol_min down to the maximum of
1.e-30, lanczos_params['svd_min']**2 * P_tol_to_trunc, lanczos_params['trunc_cut']**2 * P_tol_to_truncby default.
Single-Site DMRG with the
Example function in
examples/c_tebd.pyhow to run TEBD with a model originally having next-nearest neighbors.
increase_L()to allow increasing the unit cell of an MPS.
tenpy.algorithms.exact_diag.ExactDiag.from_H_mpo()wrapper as replacement for
tenpy.networks.mpo.MPO.get_grouped_mpo(). The latter are now deprecated.
Argument max_size to limit the matrix dimension in
tenpy.linalg.sparse.FlatLinearOperator.from_guess_with_pipe()to allow quickly converting matvec functions acting on multi-dimensional arrays to a FlatLinearOperator by combining the legs into a LegPipe.
Allow for arguments
tenpy.linalg.lanczos.lanczos_arpack()as possiple replacement of the self-implemented lanczos function.
tenpy.algorithms.dmrg.full_diag_effH()as another replacement of
The new DMRG parameter
'diag_method'allows to select a method for the diagonalization of the effective Hamiltonian. See
dtype attribute in
tenpy.linalg.charges.LegCharge.get_qindex_of_charges()to allow selecting a block of an Array from the charges.
tenpy.algorithms.mps_common.EffectiveH.to_matrixto allow contracting an EffectiveH to a matrix, as well as metadata
argument only_physical_legs in
expectation_value()did not work for finite systems.
compute_K()repeatedly with default parameters but on states with different chi would use the chi of the very first call for the truncation parameters.
MPOEnvironmentto have MPS/MPO with different length
group_sites()didn’t work correctly in some situations.
matvec_to_array()returned the transposed of A.
tenpy.networks.mps.MPS.from_full()messed up the form of the first array.
issue #95: blowup of errors in DMRG with update_env > 0. Turns out to be a problem in the precision of the truncation error: TruncationError.eps was set to 0 if it would be smaller than machine precision. To fix it, I added