bzvc2bzop

◼ bzvc2bzop[bzvc] transforms basis  bzvc in occupation number representation to a basis in creation operator representation.
◼ bzop2bzvc[bzop] transforms basis  bzop in creation operator representation to a basis in occupation number representation.

◼ Some operations on basis states can be more easily performed in one representation than the other. In particular, most operations can be performed more efficiently in the occupation number representation, but for some high-level symbolic transformations the creation operator representation is more convenient. Functions bzvc2bzop and bzop2bzvc allow to easily switch between the two.

◼ See also: qsbasis, qszbasis, qszbasisvc, transformQStoIS, transformbasis, transformQStoPH, transformtoLR, makematricesbzop, makematricesbzvc, makebasis

Further examples

Load sneg and declare c to be a Fermionic operator.

<< sneg`sneg`;
snegfermionoperators[c]

Check for equality: (Q, (Subscript[S, z])) basis

qszbasisvc[{c[1]}] == 
      bzop2bzvc[qszbasis[{c[1]}]]
qszbasis[{c[1]}] == 
      bzvc2bzop[qszbasisvc[{c[1]}]]

    
qszbasisvc[{c[1], c[2]}] == 
      bzop2bzvc[qszbasis[{c[1], c[2]}]]
qszbasis[{c[1], c[2]}] == 
      bzvc2bzop[qszbasisvc[{c[1], c[2]}]]

    
qszbasisvc[{c[1], c[2], c[3]}] == 
      bzop2bzvc[qszbasis[{c[1], c[2], c[3]}]]
qszbasis[{c[1], c[2], c[3]}] == 
      bzvc2bzop[qszbasisvc[{c[1], c[2], c[3]}]]

Check for equality: (Q,S) basis

ident[x_] := bzvc2bzop[bzop2bzvc[x]];
(ident[#] == #) &  @ 
      qsbasis[{c[1]}]
(ident[#] == #) &  @ 
      qsbasis[{c[1], c[2]}]
(ident[#] == #) &  @ 
      qsbasis[{c[1], c[2], c[3]}]
(ident[#] == #) &  @ 
      qsbasis[{c[1], c[2], c[3], c[4]}]

One way

bz = qszbasisvc[{c[1], c[2]}]; 
    bz // MatrixForm
bzvc2bzop[bz] // MatrixForm

And another

bz = qsbasis[{c[1], c[2]}]; bz // MatrixForm
bzop2bzvc[bz] // MatrixForm