Skip to content

Releases: QuantumKitHub/MPSKit.jl

v0.13.10

26 Feb 20:16
8480e78

Choose a tag to compare

MPSKit v0.13.10

Diff since v0.13.9

Added

  • expectation_value for local MPO tensors
    (#327)
  • Base.copy for MPS types now performs a deep copy
    (#387)

Changed

  • entropy can now also be called directly on a spectrum (singular value vector)
    (#377)
  • Updated compat bounds to remove broken package versions

Fixed

  • Fixed Adapt extension for GPU support
    (#389)

Full changelog: v0.13.9...v0.13.10

Merged pull requests:

Closed issues:

  • Printing Symmetric Hamiltonians with identity (#358)
  • FiniteMPOHamiltonian constructor fails with storagetype MethodError on Union{BraidingTensor, TensorMap} (#376)
  • Console output of MPOs is not the same as in the documentation (#378)
  • Unpredictable normalization of DMRG ground states (#380)
  • DMRG calculations are staggeringly slower than in previous versions (#381)
  • Copying an MPS currently only makes a shallow copy (#386)

v0.13.9

03 Feb 21:39
b3427bc

Choose a tag to compare

MPSKit v0.13.9

Diff since v0.13.8

This release brings significant improvements to MPSKit.jl, including enhanced compatibility with multifusion categories, refactored algorithms, and numerous bug fixes.
Key improvements include a complete IDMRG refactoring, introduction of new trait systems for geometry and operator types, and enhanced performance with reduced allocations.

Key Features

🎯 New Features

Multifusion Categories

  • Added full compatibility with multifusion categories (#297)

Trait System for Dispatching

  • Introduced GeometryStyle and OperatorStyle traits for better type-based dispatching on finite/infinite geometries and operator types, improving code organization and extensibility (#352, #354)

Examples and Documentation

  • Added comprehensive Bose-Hubbard example demonstrating strongly correlated bosonic systems (#342)
  • Updated WindowMPS example with improved documentation and clearer explanations (#350)

🔧 Infrastructure Improvements

Algorithm Refactoring

  • Complete refactoring of IDMRG to follow the IterativeSolver interface, improving code maintainability and enabling better code sharing between IDMRG and IDMRG2 implementations (#348)
  • Refactored orthogonalization methods: removed _left_orth and _right_orth workarounds in favor of new, cleaner orthogonalization algorithms (#373)

Performance Optimization

  • Optimized changebonds(state, ::RandExpand) algorithm to sample spaces directly instead of performing truncated SVD, improving performance while maintaining mathematical equivalence (#335)
  • Reduced memory allocations while computing Galerkin error, leading to better performance in iterative algorithms (#366)

Dependency Updates & Compatibility

  • Bumped compatibility for TensorKit 0.16 and MatrixAlgebraKit 0.6, ensuring compatibility with the latest versions of core dependencies (#365)
  • Added LocalPreferences.toml file to ensure proper TensorOperations precompilation on testing infrastructure

User Experience

  • Updated show methods to reflect new TensorKit printing conventions, providing clearer and more consistent output formatting (#341)
  • More informative error messages for finite MPS operations, helping users diagnose issues more quickly (#367)
  • Minor documentation and docstring improvements throughout the codebase (#363, #372, #371)

🐛 Bug Fixes

Numerical Stability

  • Fixed dynamic tolerances yielding NaN during initialization due to 1 / sqrt(iter) where iter = 0, improving algorithm stability at the first iteration (#335)
  • Fixed InfiniteMPOHamiltonian environments with low bond dimension and high Krylov dimension to be properly clamped, preventing numerical instabilities (#335)

Correctness Issues

  • Fixed logical operator precedence bug in getproperty function that could lead to incorrect behavior (#346)
  • Fixed domain/codomain mismatch in MPODerivativeOperator, ensuring correct tensor operations (#370)
  • Corrected orthogonalization algorithms to use proper methods, ensuring mathematical correctness (#373)
  • Improved handling of in-place operations to avoid unintended mutation errors (#337)

Minor Fixes

  • Fixed typo in VUMPSSvdCut algorithm name (#361)
  • Fixed typo in time formatting for log messages (#336)

Merged pull requests:

Closed issues:

  • Infinite environments do not converge when supplying product state (#332)
  • similar(InfiniteMPOHamiltonian,::Type) is not an InfiniteMPOHamiltonian (#349)
  • Applying an operator to a WindowMPS (#359)
  • Domain/Codomain of MPODerivativeOperator is broken (#369)

v0.13.8

10 Oct 11:53
db773fd

Choose a tag to compare

MPSKit v0.13.8

Diff since v0.13.7

Update TensorKit.jl compat to 0.15

Merged pull requests:

v0.13.7

03 Oct 12:14
ef1beb4

Choose a tag to compare

MPSKit v0.13.7

Diff since v0.13.6

Merged pull requests:

v0.13.6

30 Sep 11:08
440acdb

Choose a tag to compare

MPSKit v0.13.6

Diff since v0.13.5

This release brings a combination of new features, improvements, fixes, and internal refactoring to MPSKit.jl. Below is a summary of the most important changes since v0.13.5.


🚀 New Features and Improvements

  • Support for Non-Sorted and Overlapping Indices in MPOHamiltonian Constructors
    You can now construct MPOHamiltonian objects using terms with non-sorted and/or overlapping indices, which would previously either error or give wrong results.
    #322

  • Finite temperature utilites
    There is now more extended support for working with finite-temperature systems (Matrix Product Density Operators), in particular for working with tensors with real entries.
    #324

  • Objective Printing for IDMRG
    IDMRG logging previously reported the total energy (over a number of sites that grows with the iterations), which is now changed to report the current local energy density.
    #323

📝 Miscellaneous

  • Documentation and formatting updates for improved maintainability.
  • Improved test coverage

🔗 Contributors

Many thanks to everyone who contributed code, bug reports, and suggestions to this release!


For a full list of merged pull requests and commits in this release, see the GitHub compare view.

Merged pull requests:

v0.13.5

05 Sep 21:14
a34817d

Choose a tag to compare

MPSKit v0.13.5

Diff since v0.13.4

Merged pull requests:

v0.13.4

03 Aug 17:17
7bd5206

Choose a tag to compare

MPSKit v0.13.4

Diff since v0.13.3

Merged pull requests:

  • IDMRG updates (#294) (@lkdvos)
  • fix typo in InfiniteMPO constructor errormessage (#302) (@VictorVanthilt)
  • Runic formatter (#303) (@lkdvos)
  • Fix translation operator in Ising CFT example (#304) (@leburgel)
  • Set up optional color inversion for docs images (#305) (@leburgel)
  • Use DMRG2 SVD alg in finite approximate DMRG2 implementation (#308) (@VictorVanthilt)
  • CompatHelper: bump compat for KrylovKit to 0.10, (keep existing compat) (#309) (@github-actions[bot])
  • [Utility] Be more consistent about what space functions work for what arguments (#310) (@lkdvos)

Closed issues:

  • Wrong correlation length (#299)
  • error in InfiniteMPS with CUDA backend (#301)
  • quantum number conservation in make_time_mpo (#306)
  • MethodError for BraidingTensor in rightenv (#307)

v0.13.3

10 Jun 23:12
7e0ecfe

Choose a tag to compare

MPSKit v0.13.3

Diff since v0.13.2

Merged pull requests:

  • Fix derivatives at the edges of finite operators (#296) (@lkdvos)

Closed issues:

  • Memory usage (VSZ) keeps growing during long runs (#291)
  • In MPSKit v0.13.2, timestep! yields unphysical results, whereas in v0.12.6, it does not (#295)

v0.13.2

21 May 14:02
e5ab7e8

Choose a tag to compare

MPSKit v0.13.2

Diff since v0.13.1

Merged pull requests:

Closed issues:

  • Multiplication of InfiniteMPOHamiltonian with InfiniteMPS (#278)
  • max_virtualspaces throw ArgumentError: Sector has negative dimension (#285)
  • Copying InfiniteMPOs returns FiniteMPOs (#288)

v0.13.1

23 Apr 22:49
5a85d32

Choose a tag to compare

MPSKit v0.13.1

Diff since v0.13.0

Merged pull requests:

  • [Fix] correctly handle eachsite for Multiline objects (#281) (@lkdvos)