Skip to content

v0.7.0

Latest

Choose a tag to compare

@github-actions github-actions released this 21 Nov 15:08
· 48 commits to master since this release
8e56798

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

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

  • 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.

Merged pull requests:

Closed issues:

  • Renormalize the tensors before SVD for the CTMRG projectors (#137)
  • Use FixedSpaceTruncation before gauge fixing (#157)
  • Performance(?) regressions after update to Zygote.jl v0.7.5 (#166)
  • Bug in add_physical_charge for fermionic operators (#259)
  • [Discussion] Remove support for specifying ComplexSpaces using integers (#265)
  • Convention of XXZ model (#271)
  • Set up a bot to re-generate example docs (#286)
  • Error when implementing the example Fermi Hubbard model (#288)