Skip to content

Conversation

@lkdvos
Copy link
Member

@lkdvos lkdvos commented Nov 16, 2025

PEPSKit v0.7.0

Diff since v0.6.1

We are pleased to announce the release of PEPSKit.jl v0.7.0! This release brings significant new features for time evolution, improved PEPO support, and numerous bug fixes and performance improvements.

Highlights

  • Time Evolution: Real-time and finite-temperature evolution functionality for simple update
  • Enhanced PEPO Support: Extended PEPO operations including correlators and density matrices
  • TensorKit v0.15 Compatibility: Updated compatibility with the latest TensorKit release
  • Code Quality: Migration to Runic formatter for consistent code style

New Features

Time Evolution

  • Real-time and finite-temperature evolution functionality for simple update
  • Unified interface for Trotter-based time evolution algorithms via timestep and time_evolve functions

PEPO Operations

  • Correlator for mixed state InfinitePEPO
  • Simple update for PEPO, including 3-site version
  • Single-layer and double-layer PEPO reduced density matrix
  • spacetype method for InfinitePartitionFunction

Environment Conversion

  • SUWeight to CTMRGEnv conversion (as InfinitePEPS environment)

Symmetry Support

  • Support for SU2Irrep symmetry in j1_j2_model

Breaking Changes

Interface Changes

  • Time Evolution: The old su_iter and simpleupdate functions have been replaced by the unified timestep and time_evolve interface
  • Gradient Algorithm: Default fixed-point gradient algorithm changed from the previous default to :eigsolver
  • Julia Version: Restricted Julia compatibility to <v1.12 due to Zygote incompatibility

Removed Features

  • InfiniteWeightPEPS and mirror_antidiag
  • Support for integer space specifiers in state and environment constructors
  • Redefinition of tensorexpr
  • Support for dual physical spaces for non-bosonic symmetries

Improvements

Algorithm Enhancements

  • BoundaryMPS methods now have their own custom transfer functions, avoiding double conjugation and fixing twist issues for fermions
  • physicalspace and related functions now correctly handle periodic indexing for infinite networks
  • Unit normalization of half and full infinite environments before projector computation, improving gradient accuracy

Code Quality

  • Migration to Runic formatter for consistent code style
  • Updated compatibility with TensorKit v0.15

Bug Fixes

Gradient and Optimization

  • Fixed sporadic test timeouts when running variational optimization after simple update for the Heisenberg model by switching to a GMRES-based gradient solver
  • Fixed maxiter behavior for fallback gradient linear solver
  • Fixed gauge fixing in :fixed mode for non-uniform unit cells from full SVD

Operator Handling

  • Rotation of iPEPO is now done correctly
  • Fixed rotl90, rotr90 and rot180 for LocalOperator
  • Fixed XXZ model convention
  • Fixed add_physical_charge for fermionic operators

Performance

  • Avoided @autoopt for partition function calculations, improving compilation times
  • Multithreaded scheduler now correctly taken into account for the reverse rules

Dependencies

Compatibility

  • Julia: 1.10 - 1.11 (restricted to <v1.12 due to Zygote incompatibility)
  • TensorKit: 0.15+

Acknowledgments

Thank you to all contributors who made this release possible! Special thanks to those who submitted pull requests, reported issues, and participated in discussions.

Documentation

For detailed documentation, please visit:

Links

For any issues or questions, please file an issue on our GitHub repository.

@lkdvos lkdvos added the documentation Improvements or additions to documentation label Nov 16, 2025
@github-actions
Copy link
Contributor

After the build completes, the updated documentation will be available here

@codecov
Copy link

codecov bot commented Nov 16, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Yue-Zhengyuan
Copy link
Member

My part of the changelog (polishing needed):

Added:

  • Real time and finite-temperature evolution functionality of simple update
  • Correlator for mixed state iPEPO
  • SUWeight to CTMRGEnv conversion (as iPEPS environment)

Changed:

  • A unified interface for Trotter-based time evolution algorithms. The old su_iter, simpleupdate functions should be replaced by timestep, time_evolve respectively.

Fixed:

  • Rotation of iPEPO is now done correctly.

Removed:

  • InfiniteWeightPEPS.

@lkdvos lkdvos linked an issue Nov 17, 2025 that may be closed by this pull request
@lkdvos
Copy link
Member Author

lkdvos commented Nov 17, 2025

I'm still regenerating the docs for the linebreak in the examples, but afterwards I think this should be good to go for me.

@lkdvos lkdvos changed the title V0.7 Release v0.7.0 Nov 17, 2025
Copy link
Collaborator

@pbrehmer pbrehmer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Double checked the change log and the new example outputs and everything looks fine, thanks!

Just to make sure though: There was no reason to rerun the 2D/3D partition function and boundary MPS examples, right? Nothing should have changed there.

@leburgel
Copy link
Member

leburgel commented Nov 17, 2025

As a general comment, I really don't like the emojis in the release notes. It's a distracting kind of 'fun' that is really unnecessary to me. But maybe I'm just bitter, so not a blocker at all either :)

There is an actual issue with the changelog in the documentation though. On github itself it renders fine, but in the docs pages the links and targets are really off. Is there a way around the mismatch between Documenter.jl and github markdown flavors for cross referencing and targets?

Other than that this looks perfect.

@lkdvos
Copy link
Member Author

lkdvos commented Nov 17, 2025

I'll let the docs build and double check the changelog, but I think I fixed it now, at least locally it is rendering correctly. Thanks for double checking that!
Will merge and tag after that is done

@lkdvos lkdvos merged commit 501a0ea into master Nov 17, 2025
51 checks passed
@lkdvos lkdvos deleted the v0.7 branch November 17, 2025 19:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Error when implementing the example Fermi Hubbard model

5 participants