Jutho / TensorKit.jl

A Julia package for large-scale tensor computations, with a hint of category theory
MIT License
226 stars 41 forks source link

Support of fermionic systems #96

Open diret47 opened 10 months ago

diret47 commented 10 months ago

Hi, Jutho. Is it possible to compute fermionic PEPS with TensorKit? For example Hubbard model?

Jutho commented 10 months ago

Hi @diret47 . TensorKit.jl supports tensors with fermionic symmetries, such that e.g. the necessary signs are automatically included upon permuting tensor legs.

However, TensorKit is a low-level library and does not contain higher level tensor network algorithms. For this, you should look at for example MPSKit.jl and PEPSKit.jl. Support for fermions in PEPSKit.jl is not yet included, but something we will be actively working on in the near future.

Gertian commented 10 months ago

@diret47, I've recently implemented the contraction of fermionic PEPS in this branch of PEPSKit.jl .

There is currently no support for optimization of states as this would require evaluation of the gradient which is a formidable task... The plan is to bypass this trough automatic differentiation but this first requires some updates within TensorKit.jl and TensorOperations.jl .

diret47 commented 10 months ago

@diret47, I've recently implemented the contraction of fermionic PEPS in this branch of PEPSKit.jl .

There is currently no support for optimization of states as this would require evaluation of the gradient which is a formidable task... The plan is to bypass this trough automatic differentiation but this first requires some updates within TensorKit.jl and TensorOperations.jl .

That's awesome. I suppose we can already contract fPEPS by PEPSKit.jl easily. I hope implementation of AD optimization would be updated soon. I think one can use some SVD fashion optimization as a expedient now.

Gertian commented 10 months ago

@diret47 , what do you mean with SVD fashion optimization ?

diret47 commented 10 months ago

@diret47 , what do you mean with SVD fashion optimization ?

Sorry, I just mean that sth like full update and simple update in iPEPS. I suppose that the optimization like DMRG may also be used in iPEPS, but it's not exact.

Confusio commented 5 months ago

Is there any document on TensorKit that explains the details of treating the fermion signs and swap operations in PEPS?

lkdvos commented 5 months ago

I think the theoretic part is covered best in this paper: https://arxiv.org/abs/2404.14611 The @tensor macro in TensorKit follows that convention, where a twist (fermionic sign) appears for contracting "ket"s with "bra"s, and that paper should then show in what PEPS contractions this should be counteracted with supplementary twists.

I would also recommend to keep an eye on the PEPSKit.jl repo, we are also working on flushing out the details for fermionic symmetries in that library using TensorKit.

I do apologize for the lack of documentation on this topic, this is also something we are still working on.

Gertian commented 2 months ago

@lkdvos , @diret47 this is now implemented in PEPSKit right ?