This is an old revision of the document!


OperatorSetTrace

OperatorSetTrace($O$, $t$, {$i_1,...,i_n$}) takes an Operator $O$, an optional real value $t$ for the trace average and an optional list {$i_1,...,i_n$} of included orbitals, and sets the trace of these orbitals to $t$ times the number of orbitals. It furthermore sets any scalar offset of the operator to 0 (or rather will, with the next update). If no list of indices is given the function includes all orbitals up to the number of fermionic states, and if no value $t$ is given the trace is set to 0.

After the operation the operator has the property \begin{equation*} \sum_{j=\{i_1,...,i_n\}} \frac{O_{jj}}{n} = t \hspace{0.3cm} , \end{equation*} where $O_{jj}$ are the prefactors of the diagonal quadratic terms of the operator, \begin{equation*} O = \sum_{i,j} O_{ij} a_i^\dagger a_j^{\phantom{\dagger}} + ... \hspace{0.3cm} . \end{equation*}

Input

  • $O$ : Operator
  • $t$ : New value of the trace average (Default 0)
  • {$i_1,...,i_n$} : List of indices (Default {$0,...,N_{Fermi}-1$})

Output

  • $O^\prime$ : Operator with newly set trace

Example

Input

Example.Quanty
Orbitals = {"1s","2s"}
Indices, NF = CreateAtomicIndicesDict(Orbitals)
e1s = 1
e2s = 2
F0ss = 0.5
O = NewOperator("Number", NF, Indices["1s"], Indices["1s"],{e1s, e1s})
    + NewOperator("Number", NF, Indices["2s"], Indices["2s"],{e2s, e2s})
    + NewOperator("U", NF, Indices["1s_Up"], Indices["1s_Dn"],{F0ss})
    + NewOperator("U", NF, Indices["2s_Up"], Indices["2s_Dn"],{F0ss})  
O.Name = "Operator"
print(O)
 
print("Set Operator trace average to 0")
OperatorSetTrace(O)
print(O)
 
print("Set Operator trace average to 2")
OperatorSetTrace(O,2)
print(O)
 
print("Set trace average of 1s orbitals to -1, and trace average of 2s orbitals to 15")
OperatorSetTrace(O,-1,Indices["1s"])
OperatorSetTrace(O,15,Indices["2s"])
print(O)

Result

Operator: Operator
QComplex         =          0 (Real==0 or Complex==1 or Mixed==2)
MaxLength        =          4 (largest number of product of lader operators)
NFermionic modes =          4 (Number of fermionic modes (site, spin, orbital, ...) in the one particle basis)
NBosonic modes   =          0 (Number of bosonic modes (phonon modes, ...) in the one particle basis)
 
Operator of Length   2
QComplex      =          0 (Real==0 or Complex==1)
N             =          4 (number of operators of length   2)
C  0 A  0 |  1.000000000000000E+00
C  1 A  1 |  1.000000000000000E+00
C  2 A  2 |  2.000000000000000E+00
C  3 A  3 |  2.000000000000000E+00
 
Operator of Length   4
QComplex      =          0 (Real==0 or Complex==1)
N             =          2 (number of operators of length   4)
C  1 C  0 A  1 A  0 | -5.000000000000000E-01
C  3 C  2 A  3 A  2 | -5.000000000000000E-01
 
 
Set Operator trace average to 0
 
Operator: Operator
QComplex         =          0 (Real==0 or Complex==1 or Mixed==2)
MaxLength        =          4 (largest number of product of lader operators)
NFermionic modes =          4 (Number of fermionic modes (site, spin, orbital, ...) in the one particle basis)
NBosonic modes   =          0 (Number of bosonic modes (phonon modes, ...) in the one particle basis)
 
Operator of Length   2
QComplex      =          0 (Real==0 or Complex==1)
N             =          4 (number of operators of length   2)
C  0 A  0 | -5.000000000000000E-01
C  1 A  1 | -5.000000000000000E-01
C  2 A  2 |  5.000000000000000E-01
C  3 A  3 |  5.000000000000000E-01
 
Operator of Length   4
QComplex      =          0 (Real==0 or Complex==1)
N             =          2 (number of operators of length   4)
C  1 C  0 A  1 A  0 | -5.000000000000000E-01
C  3 C  2 A  3 A  2 | -5.000000000000000E-01
 
 
Set Operator trace average to 2
 
Operator: Operator
QComplex         =          0 (Real==0 or Complex==1 or Mixed==2)
MaxLength        =          4 (largest number of product of lader operators)
NFermionic modes =          4 (Number of fermionic modes (site, spin, orbital, ...) in the one particle basis)
NBosonic modes   =          0 (Number of bosonic modes (phonon modes, ...) in the one particle basis)
 
Operator of Length   2
QComplex      =          0 (Real==0 or Complex==1)
N             =          4 (number of operators of length   2)
C  0 A  0 |  1.500000000000000E+00
C  1 A  1 |  1.500000000000000E+00
C  2 A  2 |  2.500000000000000E+00
C  3 A  3 |  2.500000000000000E+00
 
Operator of Length   4
QComplex      =          0 (Real==0 or Complex==1)
N             =          2 (number of operators of length   4)
C  1 C  0 A  1 A  0 | -5.000000000000000E-01
C  3 C  2 A  3 A  2 | -5.000000000000000E-01
 
 
Set trace average of 1s orbitals to -1, and trace average of 2s orbitals to 15
 
Operator: Operator
QComplex         =          0 (Real==0 or Complex==1 or Mixed==2)
MaxLength        =          4 (largest number of product of lader operators)
NFermionic modes =          4 (Number of fermionic modes (site, spin, orbital, ...) in the one particle basis)
NBosonic modes   =          0 (Number of bosonic modes (phonon modes, ...) in the one particle basis)
 
Operator of Length   2
QComplex      =          0 (Real==0 or Complex==1)
N             =          4 (number of operators of length   2)
C  0 A  0 | -1.000000000000000E+00
C  1 A  1 | -1.000000000000000E+00
C  2 A  2 |  1.500000000000000E+01
C  3 A  3 |  1.500000000000000E+01
 
Operator of Length   4
QComplex      =          0 (Real==0 or Complex==1)
N             =          2 (number of operators of length   4)
C  1 C  0 A  1 A  0 | -5.000000000000000E-01
C  3 C  2 A  3 A  2 | -5.000000000000000E-01

Table of contents

Print/export