[v1.0.4] - 2024-10-02

Release Notes

We have changed the license from GPL v3 to the less restrictive Apache v2 license, see issue #462 for details.

Several new features, changes and bugfixes, as listed in detail below.

Changelog

Added

Changed

  • The following functions, which are used both by QRBasedTEBDEngine and by the new QRBasedVariationalApplyMPO have been moved from tenpy.algorithms.tebd to tenpy.linalg.truncation, have been changed substantially in parameters, behavior and return values; The old _qr_based_decomposition, which is renamed to tenpy.algorithms.truncation.decompose_theta_qr_based(), as well as the private helper functions _qr_tebd_cbe_Y0 and _eig_based_svd.

  • Handle SIGINT signal during simulation runs to continue until next algorithm checkpoint, save and then exit “gracefully” by raising KeyboardInterrupt. See handle_abort_signal().

  • Go back to original directory after finishing a simulation (end of context manager) such that relative ‘directory’ options work as expected when repeatedly running simulations

  • move tenpy.algorithms.truncation module to tenpy.linalg.truncation.

Fixed

  • MPO methods dagger(), is_hermitian(), and __add__() now respect the :~tenpy.networks.mpo.MPO.explicit_plus_hc flag.

  • The classmethod from_infiniteT_canonical() can now deal with two independent charges in the charge_sector, i.e. as in the SpinHalfFermionSite.

  • When saving simulation results, convert list from update_stats and sweep_stats into numpy arrays. This can significantly reduce saving time and the size of the resulting hdf5 file - we have seen the size go down from 30MB to 700kB, when no psi and environment were saved!

  • TwoSiteTDVP wasn’t using the start_trunc_err option.

  • Fix issue #459 that TDVP and VUMPS shouldn’t have both lanczos_params and lanczos_options. Deprecated the name lanczos_options (which was the one actually used) for more consistency with other algorithm engines.