Skip to content

Releases: QuantumKitHub/TNRKit.jl

v0.6.0

22 Apr 18:41
e3d0a6c

Choose a tag to compare

TNRKit v0.6.0

Diff since v0.5.1

TNRKit 0.6.0 (since v0.5.0)

⚠️ Breaking changes (exported API interface changes)

  1. cft_data removed from exports; replaced by CFTData

    • Before (exported): cft_data(...) methods returned arrays/dictionaries of conformal data.
    • Now (exported): CFTData(...) constructors return a CFTData struct with:
      • central_charge
      • scaling_dimensions
  2. central_charge exported interface removed

    • Before: central_charge(scheme::TNRScheme, n::Number) and central_charge(scheme::BTRG, n::Number).
    • Now: these exported method definitions are removed.
  3. finalize_central_charge! exported interface removed

    • Before: finalize_central_charge!(scheme::TNRScheme).
    • Now: exported name remains, but method definition is removed.
  4. finalize_cftdata! behavior/interface changed

    • Before: finalize_cftdata!(scheme::LoopTNR) returned cft_data(...).
    • Now: generalized to finalize_cftdata!(scheme::TNRScheme) and returns CFTData(...) (plus SLoopTNR specialization).

Added

  • CTM_honeycomb exported and implemented. (#163)
  • Classical clock model with Dq symmetry (classical_clock) added. (#167)
  • CFTData exported as new conformal-data interface. (#171)
  • CFT_Finalizer exported. (#171)

Changed

  • Improved algorithm for U1 implementation of phi4_complex. (#164)
  • File/module reorganization (“Rearrange files”). (#170)
  • Added/expanded CFT documentation page (docs/src/cft.md). (#171)

Fixed

  • Fix and tests for Sublattice CTM. (#159)
  • Loop entropy reduction test and related robustness updates. (#160)
  • Bug fix for impure tensors in complex phi4, with added impurity tests for real/complex phi4. (#168)
  • Miscellaneous small fixes. (#169)

Documentation

  • Added approximation notes in phi4 docstrings. (#165)
  • Minor docstring typo fix in phi4_real. (#166)

Merged pull requests:

v0.5.1

06 Apr 14:29
cf31286

Choose a tag to compare

TNRKit v0.5.1

Diff since v0.5.0

Merged pull requests:

Closed issues:

  • The maximal available symmetry of classical q-state potts model is not Z_q but S_q (#161)

v0.5.0

20 Mar 11:23

Choose a tag to compare

TNRKit v0.5.0

Diff since v0.4.0

TNRKit v0.5.0 adds new features and significantly unifies the model interface.

Breaking Changes

Unified Model Interface (#149)

All models that previously had a separate functionname_symmetric variant for symmetry-enhanced tensors
have been unified into a single function that takes the symmetry type as the first positional argument.
The default behavior of each function now returns a tensor with the maximum available symmetry.

Old (v0.4.0) New (v0.5.0)
classical_ising(β) classical_ising(Trivial, β)
classical_ising_symmetric(β) classical_ising(β) or classical_ising(Z2Irrep, β)
classical_ising_3D(β) classical_ising_3D(Trivial, β)
classical_ising_symmetric_3D(β) classical_ising_3D(β) or classical_ising_3D(Z2Irrep, β)
classical_ising_triangular(β) classical_ising_triangular(Trivial, β)
classical_ising_triangular_symmetric(β) classical_ising_triangular(β) or classical_ising_triangular(Z2Irrep, β)
classical_potts(q, β) classical_potts(Trivial, q, β)
classical_potts_symmetric(q, β) classical_potts(q, β) or classical_potts(ZNIrrep{q}, q, β)
classical_clock(q, β) classical_clock(Trivial, q, β)
classical_clock_symmetric(q, β) classical_clock(q, β) or classical_clock(ZNIrrep{q}, q, β)
classical_XY_U1_symmetric(β, n) classical_XY(β, n) or classical_XY(U1Irrep, β, n)
classical_XY_O2_symmetric(β, n) classical_XY(CU1Irrep, β, n)
phi4_real(K, μ0, λ) phi4_real(Trivial, K, μ0, λ)
phi4_real_symmetric(K, μ0, λ) phi4_real(K, μ0, λ) or phi4_real(Z2Irrep, K, μ0, λ)
phi4_complex(K, μ0, λ) phi4_complex(Trivial, K, μ0, λ)
phi4_complex_symmetric(K, μ0, λ) phi4_complex(K, μ0, λ) or phi4_complex(U1Irrep, K, μ0, λ)

The following exported names have been removed:

  • classical_ising_symmetric
  • classical_ising_symmetric_3D
  • classical_ising_triangular_symmetric
  • classical_potts_symmetric
  • classical_clock_symmetric
  • classical_XY_U1_symmetric
  • classical_XY_O2_symmetric
  • phi4_real_symmetric
  • phi4_complex_symmetric

All model functions now also accept a T::Type{<:Number} keyword argument to control the element type of the output tensor.

LoopTNR run! Interface (#144)

The six-argument run! call for LoopTNR that took separate truncation and stopping criterion arguments for the entanglement optimization has been replaced by the LoopParameters struct, which bundles all loop-optimization parameters:

# Old (v0.4.0)
run!(scheme, trscheme, truncentanglement, criterion, entanglement_criterion, loop_criterion)

# New (v0.5.0)
run!(scheme, trscheme, criterion, LoopParameters())

The simplified two-argument form run!(scheme, trscheme, criterion) still works and uses LoopParameters() defaults internally.

New Methods

Correlation Functions

  • CorrelationHOTRG: Computes two-point correlation functions using HOTRG. Calculates correlators between two impurities at a horizontal distance of 2ⁿ sites (#139).

Honeycomb Lattice CTM

  • c3vCTM_honeycomb: C3v-symmetric Corner Transfer Matrix for honeycomb lattices (#141).

New Models

Honeycomb Lattice Ising Model (#141)

  • classical_ising_honeycomb: Ising model on the honeycomb lattice
  • New constants: ising_βc_honeycomb and f_onsager_honeycomb

XY Model

  • classical_XY: Unified XY model function (replaces classical_XY_U1_symmetric and classical_XY_O2_symmetric)
  • New constant: XY_βc

Added Functionality

Nuclear Norm Regularized LoopTNR (#144)

  • LoopParameters: New exported struct to configure loop optimization, including support for the nuclear norm regularization (NNR-TNR).
  • VN_entropy: Calculate the von Neumann entropy of a transfer matrix.
  • loop_entropy: Calculate the loop entropy of a LoopTNR scheme.

Bugfixes

  • Fix wrong twist factors and switch from svd_trunc to eigh_trunc for projectors in 3D HOTRG (#145).
  • Fix broken onesite CTM implementation (#155).
  • Fix incorrect symmetric complex φ⁴ tensor construction, now accessible via phi4_complex(U1Irrep, ...) (#142).
  • Remove incorrect mentions of external field h from complex φ⁴ docstrings and ensure all tensors use ComplexF64 (#147).

Merged pull requests:

Merged pull requests:

Closed issues:

  • Hi Yue, thanks for this! I want to refactor the whole way we are calculating cft data to unify it and make it easier for the user to understand. Right now the cft methods are often type unstable, or return Dict{Any, Any} by design and this really should not be the case. (#153)

v0.4.0

12 Feb 14:37
7285438

Choose a tag to compare

TNRKit v0.4.0

Diff since v0.3.0

TNRKit v0.4.0 adds a bunch of new features!

One of the main changes in this version is the update to TensorKit v0.16.
This brings a couple of internal and interface changes.

The projectors in HOTRG are now finally calculated with a truncated hermitian eigenvalue decomposition (eigh_trunc).
The TensorKit.TruncationSchemes like truncdim and truncbelow are now MatrixAlgebraKit.TruncationStrategys like truncrank and trunctol.

New Methods

2D Triangular CTM Methods

  • c6vCTM_triangular: C6v symmetric Corner Transfer Matrix for triangular lattices (#109)
  • CTM_triangular: Corner Transfer Matrix for triangular lattices (#128)

New Models

XY Models (#130)

  • classical_XY_U1_symmetric: XY model with U(1) symmetry
  • classical_XY_O2_symmetric: XY model with O(2) symmetry

Triangular Lattice Models

  • classical_ising_triangular: Ising model on triangular lattice
  • classical_ising_triangular_symmetric: Symmetric Ising model on triangular lattice with ℤ₂ grading
  • New constants: ising_βc_triangular and f_onsager_triangular

φ⁴ theory models (#134)

Real φ⁴:

  • phi4_real: Partition function tensor
  • phi4_real_symmetric: Partition function with explicit ℤ₂ symmetry
    Corresponding impurity tensors have also been added.

Complex φ⁴:

  • phi4_complex: Partition function tensor
  • phi4_complex_symmetric: Partition function with explicit U(1) symmetry
    Corresponding impurity tensors have also been added.

Clock Model (#129)

  • classical_clock_symmetric: Clock model with explicit ℤq symmetry on each space

Added Functionality

CFT Analysis (#123)

  • ground_state_degeneracy: Calculate GSD from fixed-point tensors using Shannon entropy
  • gu_wen_ratio: Calculate Gu-Wen ratios (X1 and X2) related to GSD and scaling dimensions
  • New finalizers: GSDegeneracy_Finalizer and guwenratio_Finalizer

API Changes

  • Breaking: Renamed cft_data! to cft_data (no longer mutates scheme)
  • TensorKit v0.16.2 is now required, users should now use it's TruncationStrategy interface for truncation.

Bugfixes

  • Fixed arrow direction checks in LoopTNR implementation (#127)

Merged pull requests:

Closed issues:

  • Two site update in Loop TNR (#101)
  • Possibility of implementing symmetry provided by TensorKit.jl (#117)
  • Arrows in loop-TNR (#121)
  • Using Linsolve instead of Gradient descent in SloopTNR. (#132)

v0.3.0

24 Nov 13:20

Choose a tag to compare

TNRKit v0.3.0

Diff since v0.2.2

  • The run! function has been made type stable.
  • To do this the way finalizers are handled has changed, see the docs section on finalizers for more details.

Breaking changes

  • Finalization is now handled through passing a Finalizer to the run! function instead of adding a finalize! function to the TNRScheme struct.

Merged pull requests:

v0.2.2

24 Oct 10:20

Choose a tag to compare

TNRKit v0.2.2

Diff since v0.2.1

Merged pull requests:

Closed issues:

  • Initialize loop-TNR with 2x2 unit cell (#103)

v0.2.1

17 Oct 12:05

Choose a tag to compare

TNRKit v0.2.1

Diff since v0.2.0

Merged pull requests:

v0.2.0

07 Oct 13:32

Choose a tag to compare

TNRKit v0.2.0

Diff since v0.1.4

Breaking changes

  • Added 3D HOTRG
  • Fixed left and right unitaries in 2D and 3D HOTRG
  • Added CTM and sublattice CTM

Merged pull requests:

Closed issues:

  • Free energy of classical Ising model with Trivial symmetry (#82)
  • LoopTNR stops suddenly (#94)

v0.1.4

18 Aug 19:18

Choose a tag to compare

TNRKit v0.1.4

Diff since v0.1.3

Merged pull requests:

v0.1.3

13 Aug 08:36
79ac253

Choose a tag to compare

TNRKit v0.1.3

Diff since v0.1.2

Merged pull requests: