Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improved Gauging Interface, TNO construction, Bug Fixes, Apply Function for a Vidal ITN #88

Merged
merged 20 commits into from
Jun 16, 2023

Conversation

JoeyT1994
Copy link
Contributor

This PR adds a number of features in ITensorNetworks.

  1. The gauging interface has been expanded significantly (via gauging.jl). Functions are now available for belief propagation gauging a tensornetwork, starting in either symmetric or Vidal form. Functions are available for switching between these two forms, and for measuring the degree of `canonicalness' (i.e how well the itn satisfied certain canonical conditions) of a given itensornetwork (either in Vidal or Symmetric form).
  2. An additional apply(o::ITensor, psi::ITensornetwork, bond_tensors::Datagraph) function has been added to apply.jl which performs a simple update on a tensornetwork in the Vidal gauge. Ideally this will eventually share more code with apply(o::ITensor, psi::ITensornetwork) but for now I have left them more separate.
  3. Functionality has now been added (see tensornetworkoperators.jl) for grouping up the ITensors in a vector{ITensor}object into groups of commuting ITensors (i.e. ones that act on different physical degrees of freedom). This is the workhorse of a get_tnos function which builds a vector of tensornetworkoperators from a vector of ITensors.
  4. A few tweaks have been made in beliefpropagation.jl to improve efficiency and avoid excessive calls to forming the union of two itensornetworks (which can be quite expensive).
  5. Extensive testing has been added for the above, including additions to tests of the apply function

@codecov-commenter
Copy link

codecov-commenter commented May 15, 2023

Codecov Report

Merging #88 (94069c8) into main (472ceb6) will increase coverage by 1.20%.
The diff coverage is 96.38%.

❗ Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.

@@            Coverage Diff             @@
##             main      #88      +/-   ##
==========================================
+ Coverage   78.04%   79.25%   +1.20%     
==========================================
  Files          62       61       -1     
  Lines        3289     3442     +153     
==========================================
+ Hits         2567     2728     +161     
+ Misses        722      714       -8     
Impacted Files Coverage Δ
src/ITensorNetworks.jl 77.77% <ø> (ø)
src/apply.jl 91.21% <91.07%> (-0.46%) ⬇️
src/tensornetworkoperators.jl 91.66% <91.66%> (ø)
src/beliefpropagation.jl 92.75% <96.15%> (+5.48%) ⬆️
src/ITensorsExt/itensorutils.jl 90.90% <100.00%> (+19.48%) ⬆️
src/abstractitensornetwork.jl 81.88% <100.00%> (+0.04%) ⬆️
src/gauging.jl 100.00% <100.00%> (ø)
src/itensornetwork.jl 87.20% <100.00%> (+0.53%) ⬆️

... and 13 files with indirect coverage changes

src/gauging.jl Outdated Show resolved Hide resolved
src/apply.jl Outdated Show resolved Hide resolved
src/apply.jl Outdated Show resolved Hide resolved
src/apply.jl Outdated Show resolved Hide resolved
@JoeyT1994
Copy link
Contributor Author

JoeyT1994 commented Jun 16, 2023

Okay I incorporated the changes you suggested above! Do you know what is going on with the checks? Suddenly, for some reason certain packages aren't compiling? Even though I don't think I have changed the manifest/ dependencies.
In fact, I notice that these also failed in Miles' latest commit #77

@mtfishman
Copy link
Member

Looks like SciML/LinearSolve.jl#330.

@JoeyT1994
Copy link
Contributor Author

I see! That makes sense.

@mtfishman
Copy link
Member

We don't have any control over that issue, so as long as things pass in Julia 1.9 I think it's fine to merge this.

@mtfishman
Copy link
Member

Looks good, thanks! This will be very useful to have, I'm sure we'll find many use cases for it.

@mtfishman mtfishman merged commit 34fd5dc into ITensor:main Jun 16, 2023
@emstoudenmire
Copy link
Contributor

emstoudenmire commented Jun 16, 2023 via email

@JoeyT1994 JoeyT1994 deleted the TNOsImprovedGauging branch June 28, 2023 12:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants