Replies: 7 comments 10 replies
-
I would work on improving various things around the CTMRG part of PEPSKit. Here's a preliminary list of things which I think are realistic for a first release:
Let me know what you think and if you have any input on this. I'm not quite sure yet how to split this up nicely into different PRs. I will probably start working on the differentiation and gauge fixing first, while hopefully not breaking the Heisenberg example. |
Beta Was this translation helpful? Give feedback.
-
Some additional thoughts:
|
Beta Was this translation helpful? Give feedback.
-
Looks great to me!
In particular for many of these things, it would indeed be super nice if we can leverage multiple dispatch to re-use large parts of the code. Nevertheless, I would think that the different leg cases is something that can very easily be added in a future version, so focusing on a single case might not be a bad idea. I quite like the idea of having 2-dimensional partition functions in there asap to make testing a whole lot easier. |
Beta Was this translation helpful? Give feedback.
-
Maybe also a worthy addition:
|
Beta Was this translation helpful? Give feedback.
-
While I was looking through the code yesterday and doing some refactoring, some questions came to my mind:
|
Beta Was this translation helpful? Give feedback.
-
I'm a bit on the fence for diffset. It might introduce subtle bugs, as
setindex! modifies memory in-place, but @diffset will map this to something
that does not. It's really there to be able to write "envs[i] = tensor"
without zygote imploding.
I've now been working with python's ad infrastructure and it's both way
simpler (essentially trackedarrays) and far far superior. I also don't
think it would be that difficult to write a simple trackedtensormap type,
and in the long run it really might be worth the added effort.
As far as bundling environments with their state goes - the idea was also
that environments are always calculated for a particular state, so why not
store a pointer to that state? It should have no cost (a single pointer)
and it's now easy to avoid bugs where you forgot to update the
environments.
…On Sun, 18 Feb 2024, 14:07 Paul Brehmer, ***@***.***> wrote:
-
That does make a lot of sense and seems very useful. I also
encountered similar cases previously, where I ran into trouble with
updating environment tensors during AD (in order to update the environment
during optimization to reuse previous ones). I was just a bit confused
since, IIRC, you implemented this behavior in TensorOperations already but
this is only relevant for tensor contractions, I guess.
-
Alright, then I will stick to normal arrays for now and just use _prev
and _next. Maybe switching to PeriodicArray at a later stage (when the
AD rules are figured out) does not seem to hard to do :-)
-
The idea of an environment manager is very cool and I also find it
natural somehow. Is there maybe a computationally cheap physical check to
see whether an environment matches with a given state? (As opposed to just
comparing pointers.) But I do see that this would entail a big refactoring
effort! So maybe it's best to roll with separate physical state and
CTMRGEnv structs for now and possibly add an EnvironmentManager
afterwards.
—
Reply to this email directly, view it on GitHub
<#12 (reply in thread)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAJKVCRJJYK5QIVD7L7MPVTYUH4HZAVCNFSM6AAAAABDIHV7WWVHI2DSMVQWIX3LMV43SRDJONRXK43TNFXW4Q3PNVWWK3TUHM4DKMBXGE2DK>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Regarding the rrule for Maybe once we have it here, it should be manageable to transfer it to KrylovKit with a little bit of help :) So should I first open a PR here in PEPSKit? |
Beta Was this translation helpful? Give feedback.
-
This contains discussions about working towards a first release of PEPSKit:
Currently, the list of features that we would like to have included consists of:
v0.1.0 included
General improvements:
CTM improvements:
AD improvements:
svdsolve
Future versions
Beta Was this translation helpful? Give feedback.
All reactions