Alphaharrius / Zipper.jl

Implementation of Zipper Entanglement Renormalization on Julia platform.
GNU General Public License v3.0
1 stars 0 forks source link

Symmetry representation in the form of `CrystalFockMap` cannot symmetrize a `CrystalFockMap` correctly. #4

Closed Alphaharrius closed 8 months ago

Alphaharrius commented 8 months ago

The symmetry representation generated from AffineTransform * CrystalFock has been enhanced to support multithreading capabilities of using CrystalFockMap. Yet it yields incorrect result when performing operations like S*C*S' where S is the symmetry representation; C is the target CrystalFockMap to be symmetrized, the same operation performed under FockMap(S)*FockMap(C)*FockMap(S)' yields correct result. Hence we believe that the problem is with either the *(::CrystalFockMap, ::CrystalFockMap), the generation method of the symmetry representation, or adjoint(::CrystalFockMap). Yet given that the * and adjoint is used in other areas and yield correct results, the generation method of the symmetry representation might be the source of error.

Alphaharrius commented 8 months ago

The problem lies with the method +(::CrystalFockMap, ::CrystalFockMap) since FockMap(C) + FockMap(SCS') yields the correct result.

Alphaharrius commented 8 months ago

The problem is related to the unmatched (k, k) and its associated block in CrystalFockMap.blocks generated from *(::AffineTransform, ::CrystalFock).