Processing math: 100%

This is an old revision of the document!


OperatorSetTrace

OperatorSetTrace(O, t, {i1,...,in}) takes an Operator O, an optional real value t for the trace average and an optional list {i1,...,in} 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 j={i1,...,in}Ojjn=t, where Ojj are the prefactors of the diagonal quadratic terms of the operator, O=i,jOijaiaj+....

Input

  • O : Operator
  • t : New value of the trace average (Default 0)
  • {i1,...,in} : List of indices (Default {0,...,NFermi1})

Output

  • O : 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