QSpace - An open-source tensor library for Abelian and non-Abelian symmetries
Andreas Weichselbaum
Abstract
This is the documentation for the tensor library QSpace (v4.0) that provides a toolbox to exploit `quantum symmetry spaces’ in tensor network states in the quantum many-body context. QSpace permits arbitrary combinations of symmetries including the Abelian symmetries \mathbb{Z}_n <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" display="inline"> <mml:msub> <mml:mstyle mathvariant="double-struck"> <mml:mi>ℤ</mml:mi> </mml:mstyle> <mml:mi>n</mml:mi> </mml:msub> </mml:math> and U(1) <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" display="inline"> <mml:mrow> <mml:mi>U</mml:mi> <mml:mo stretchy="false" form="prefix">(</mml:mo> <mml:mn>1</mml:mn> <mml:mo stretchy="false" form="postfix">)</mml:mo> </mml:mrow> </mml:math> , as well as all non-Abelian symmetries represented by the simple classical Lie algebras: A_n <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" display="inline"> <mml:msub> <mml:mi>A</mml:mi> <mml:mi>n</mml:mi> </mml:msub> </mml:math> , B_n <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" display="inline"> <mml:msub> <mml:mi>B</mml:mi> <mml:mi>n</mml:mi> </mml:msub> </mml:math> , C_n <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" display="inline"> <mml:msub> <mml:mi>C</mml:mi> <mml:mi>n</mml:mi> </mml:msub> </mml:math> , and D_n <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" display="inline"> <mml:msub> <mml:mi>D</mml:mi> <mml:mi>n</mml:mi> </mml:msub> </mml:math> , or respectively, the special unitary group SU( n <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" display="inline"> <mml:mi>n</mml:mi> </mml:math> ), the odd orthogonal group SO( 2n+1 <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" display="inline"> <mml:mrow> <mml:mn>2</mml:mn> <mml:mi>n</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> </mml:mrow> </mml:math> ), the symplectic group Sp( 2n <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" display="inline"> <mml:mrow> <mml:mn>2</mml:mn> <mml:mi>n</mml:mi> </mml:mrow> </mml:math> ), and the even orthogonal group SO( 2n <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" display="inline"> <mml:mrow> <mml:mn>2</mml:mn> <mml:mi>n</mml:mi> </mml:mrow> </mml:math> ). The code (C++ embedded via the MEX interface into Matlab) is available open-source as of QSpace v4.0 on bitbucket (https://bitbucket.org/qspace4u) under the Apache 2.0 license. QSpace is designed as a bottom-up approach for non-Abelian symmetries. It starts from the defining representation and the respective Lie algebra. By explicitly computing and tabulating generalized Clebsch-Gordan coefficient tensors, QSpace is versatile in its operations across all symmetries. At the level of an application, much of the symmetry-related details are hidden within the QSpace C++ core libraries. Hence when developing tensor network algorithms with QSpace, these can be coded (nearly) as if there are no symmetries at all, despite being able to fully exploit general non-Abelian symmetries.