Releases: QuantumKitHub/MPSKit.jl
v0.13.10
MPSKit v0.13.10
Added
expectation_valuefor local MPO tensors
(#327)Base.copyfor MPS types now performs a deep copy
(#387)
Changed
entropycan now also be called directly on a spectrum (singular value vector)
(#377)- Updated compat bounds to remove broken package versions
Fixed
- Fixed
Adaptextension for GPU support
(#389)
Full changelog: v0.13.9...v0.13.10
Merged pull requests:
- Expectation values of local MPO tensors (#327) (@borisdevos)
- Refactor entropy function to also use spectrum directly (#377) (@AFeuerpfeil)
- Bump v0.13.10 (#379) (@lkdvos)
- Modernize test workflow (#382) (@lkdvos)
- Bump actions/checkout from 4 to 6 (#383) (@dependabot[bot])
- Adapt extension (#384) (@lkdvos)
- Deep copying MPS with copy (#387) (@20akshay00)
- Skeletal tests for CuArray-backed MPSKit (#388) (@kshyatt)
- Fix Adapt extension (#389) (@lkdvos)
- Update pipeline.yml (#390) (@kshyatt)
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
MPSKit v0.13.9
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
GeometryStyleandOperatorStyletraits 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
IterativeSolverinterface, improving code maintainability and enabling better code sharing between IDMRG and IDMRG2 implementations (#348) - Refactored orthogonalization methods: removed
_left_orthand_right_orthworkarounds 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.tomlfile to ensure properTensorOperationsprecompilation on testing infrastructure
User Experience
- Updated
showmethods 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
NaNduring initialization due to1 / sqrt(iter)whereiter = 0, improving algorithm stability at the first iteration (#335) - Fixed
InfiniteMPOHamiltonianenvironments with low bond dimension and high Krylov dimension to be properly clamped, preventing numerical instabilities (#335)
Correctness Issues
- Fixed logical operator precedence bug in
getpropertyfunction 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
VUMPSSvdCutalgorithm name (#361) - Fixed typo in time formatting for log messages (#336)
Merged pull requests:
- Compatibility with multifusion categories (#297) (@borisdevos)
- Various small fixes and improvements to
RandExpand(#335) (@lkdvos) - Fix typo in time formatting for logs (#336) (@leburgel)
- Don't assume
transposemakes a copy (#337) (@lkdvos) - [Feature] Update show methods to reflect new TensorKit printing (#341) (@lkdvos)
- Add Bose-Hubbard example (#342) (@20akshay00)
- Update list of works that use MPSKit (#344) (@lkdvos)
- Fix getproperty function in iterativesolvers.jl (#346) (@AFeuerpfeil)
- add Base.isfinite to mps types (#347) (@AFeuerpfeil)
- Refactor of
IDMRGwithIterativeSolver(#348) (@AFeuerpfeil) - Update WindowMPS example (#350) (@VicVanderLinden)
- Add
OperatorStyleandGeometryStyle(#352) (@AFeuerpfeil) - Define
GeometryStyleandOperatorStylefor multiple arguments (#354) (@AFeuerpfeil) - Bump actions/checkout from 5 to 6 (#357) (@dependabot[bot])
- Fix typo in VUMPSSvdCut (#361) (@benjamints)
- Add more links to algo section and some language cleanup (#363) (@kshyatt)
- Bump compat for TensorKit 0.16 and MatrixAlgebraKit 0.6 (#365) (@lkdvos)
- Reduce allocation when computing Galerkin error (#366) (@20akshay00)
- More informative errors for finite mps (#367) (@borisdevos)
- Fix domain/codomain of MPODerivativeOperator (#370) (@20akshay00)
entanglement_spectrumdocstring (#371) (@borisdevos)- Minor docs and docstring changes (#372) (@borisdevos)
- Use correct orth algorithms in
makefullrank(#373) (@lkdvos) - v0.13.9 (#374) (@lkdvos)
Closed issues:
v0.13.8
MPSKit v0.13.8
Update TensorKit.jl compat to 0.15
Merged pull requests:
v0.13.7
v0.13.6
MPSKit v0.13.6
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
MPOHamiltonianConstructors
You can now constructMPOHamiltonianobjects 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
MPSKit v0.13.5
Merged pull requests:
- [Feature] FiniteMPOHamiltonian compression (#312) (@lkdvos)
- Try to fix README badges (#313) (@kshyatt)
- Bump actions/checkout from 4 to 5 (#314) (@dependabot[bot])
- Update TensorOperations docs link (#316) (@lkdvos)
- Refactor quasiparticle regularization (#318) (@lkdvos)
- Update TensorKit links (#321) (@lkdvos)
v0.13.4
MPSKit v0.13.4
Merged pull requests:
- IDMRG updates (#294) (@lkdvos)
- fix typo in
InfiniteMPOconstructor 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
approximateDMRG2 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:
v0.13.3
v0.13.2
MPSKit v0.13.2
Merged pull requests:
- Bump julia-actions/julia-format from 3 to 4 (#282) (@dependabot[bot])
- Make
changebondstruncation use relative truncation schemes (#283) (@lkdvos) - Fix
O_xzxin operators manual (#284) (@Yue-Zhengyuan) - Fix_notebook.jl (#286) (@dartsushi)
- Add utility functions for physical and virtual space retrieval (#287) (@lkdvos)
- Fix MPO copy issue of #288 (#289) (@VictorVanthilt)
- Fix scaling dimensions in Ising CFT example (#290) (@dartsushi)
- fix
brailleand add small test (#293) (@VictorVanthilt)
Closed issues:
v0.13.1
MPSKit v0.13.1
Merged pull requests: