transformQStoIS

◼ transformQStoIS[bzop] transforms basis bzop with well defined charge Q and spin S, to a basis with well defined isospin I and spin S quantum numbers.

◼ The input to transformQStoIS may be obtained using qsbasisvc.

◼ Prior to calling transformQStoIS, Tminus (isospin lowering) operator must be globally defined. Alternatively, the isospin lowering may be provided as in transformQStoIS[bzop, Tminus].

◼ See also:  qsbasisvc, transformbasis, transformQStoPH,  makebasis, bzvc2bzop, bzop2bzvc, isospinminus.

Further examples

Load sneg and declare c to be a Fermionic operator.

<< sneg`sneg`;
snegfermionoperators[c]

One-site basis

ops = {c[1]};
bzop = qsbasisvc[ops];
Tminus = 
      Total[isospinminus /@ ops] // Expand
transformQStoIS[bzop, Tminus] // MatrixForm

Two-site basis

ops = {c[1], c[2]};
bzop = qsbasisvc[ops];
Tminus = Total[isospinminus /@ ops] // Expand
transformQStoIS[bzop, Tminus] // MatrixForm

Three-site basis

ops = {c[1], c[2], c[3]};
bzop = qsbasisvc[ops];
Tminus = Total[isospinminus /@ ops] // Expand
bzis = transformQStoIS[bzop, Tminus];
bzis // MatrixForm

Count the total number of states: ∑ degeneracy × number of states

Map[(2  First[First[#]] + 1) (2  Last[First[#]] + 1) 
            Length[Last[#]] &, bzis] // Total