Cytnx icon indicating copy to clipboard operation
Cytnx copied to clipboard

Symmetry tag for local symmetry

Open chiamin opened this issue 2 years ago • 1 comments

This is for simplifying the code for a system with many local symmetries. I would like a feature that a symmetry can have a "tag"; the symmetries with different tags are referred to as different symmetries. A tensor can have bonds that have different symmetries, for example, one bond can have a U(1)_a and the other can have U(1)_b. When adding quantum numbers from two symmetries, the quantum number of the missing symmetry is set to a default value (0 in most of the cases). In this way, one can define local symmetries "locally" in each bond by giving different tags for different local symmetries.

chiamin avatar Nov 17 '23 04:11 chiamin

Now I think this is essential in dealing with local symmetries, because it not only simplifies the coding but also speeds up the program because you don't need to compare all the symmetries but just check if they exist in most of the cases. The number of local symmetries typically grows with system size and when it becomes large the comparisons of all the quantum numbers can be expansive.

Regarding this idea, another possibility is adding a feature "local" to a general symmetry. If the symmetry is local, it can have a default value which will be used when the symmetry does not exist in some bonds.

chiamin avatar Dec 03 '23 00:12 chiamin