====== PartialMeanFieldOperator ====== ### PartialMeanFieldOperator(//op//,//rho//,//indices//) returns a copy of //op// where any 2-particle terms acting on //indices// are replaced by Hartree-Fock mean-field theory, using the density //rho// (compare //[[documentation:language_reference:functions:MeanFieldOperator|MeanFieldOperator()]]//). If the option AddDFTSelfInteraction is set to true the electron-self interaction is added on top to simulate the behaviour encountered in DFT. ### ===== Input ===== * //op// : An operator. * //rho// : A density matrix. * //indices// : A list of indices. * Possible options are: * AddDFTSelfInteraction : bool defining if the electron self-interaction is to be included (Standard false). ===== Output ===== * //PMFop// : A copy of //op//, where any 2-particle interaction acting on //indices// is replaced by mean-field theory. ===== Example ===== ==== Input ==== NF = 4 rho = {{0.8,0.3,0,0},{0.3,0.7,0,0},{0,0,0.4,0.5*I},{0,0,-0.5*I,0.2}} print("Rho:") print(rho) op1 = NewOperator("Number",NF,{1},{1},{0.1+I}) + NewOperator("U",NF,{0},{1},{5}) + 3 op2 = NewOperator("Number",NF,{1},{1},{0.00001 + I}) + NewOperator("Number",NF,{2},{2},{1}) + NewOperator("U",NF,{0},{1},{0},{1},{2},{3},{2},{3},{3}) + NewOperator("U",NF,{0},{1},{5}) print("\n\n\n") print("op1:") print(op1) print("PartialMeanFieldOperator(op1, rho, {0,1})") print(PartialMeanFieldOperator(op1, rho, {0,1})) print("\n\n\n") print("op2:") print(op2) print("PartialMeanFieldOperator(op2, rho, {0,1})") print(PartialMeanFieldOperator(op2, rho, {0,1})) print("PartialMeanFieldOperator(op2, rho, {0,1}, {{\"AddDFTSelfInteraction\",true}})") print(PartialMeanFieldOperator(op2, rho, {0,1}, {{"AddDFTSelfInteraction",true}})) print("PartialMeanFieldOperator(op2, rho, {2})") print(PartialMeanFieldOperator(op2, rho, {2})) ==== Result ==== Rho: { { 0.8 , 0.3 , 0 , 0 } , { 0.3 , 0.7 , 0 , 0 } , { 0 , 0 , 0.4 , (0 + 0.5 I) } , { 0 , 0 , (-0 - 0.5 I) , 0.2 } } op1: Operator: CrAn QComplex = 2 (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 0 QComplex = 0 (Real==0 or Complex==1) N = 1 (number of operators of length 0) | 3.000000000000000E+00 Operator of Length 2 QComplex = 1 (Real==0 or Complex==1) N = 1 (number of operators of length 2) C 1 A 1 | 1.000000000000000E-01 1.000000000000000E+00 Operator of Length 4 QComplex = 0 (Real==0 or Complex==1) N = 1 (number of operators of length 4) C 1 C 0 A 1 A 0 | -5.000000000000000E+00 PartialMeanFieldOperator(op1, rho, {0,1}) Operator: QComplex = 2 (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 0 QComplex = 0 (Real==0 or Complex==1) N = 1 (number of operators of length 0) | 8.150000000000000E+00 Operator of Length 2 QComplex = 1 (Real==0 or Complex==1) N = 4 (number of operators of length 2) C 1 A 1 | -3.900000000000000E+00 1.000000000000000E+00 C 1 A 0 | 1.500000000000000E+00 0.000000000000000E+00 C 0 A 1 | 1.500000000000000E+00 0.000000000000000E+00 C 0 A 0 | -3.500000000000000E+00 -0.000000000000000E+00 op2: Operator: CrAn QComplex = 2 (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 = 1 (Real==0 or Complex==1) N = 2 (number of operators of length 2) C 1 A 1 | 1.000000000000000E-05 1.000000000000000E+00 C 2 A 2 | 1.000000000000000E+00 0.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 3 A 2 | -3.000000000000000E+00 C 1 C 0 A 1 A 0 | -5.000000000000000E+00 PartialMeanFieldOperator(op2, rho, {0,1}) Operator: QComplex = 2 (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 0 QComplex = 0 (Real==0 or Complex==1) N = 1 (number of operators of length 0) | 5.150000000000000E+00 Operator of Length 2 QComplex = 1 (Real==0 or Complex==1) N = 5 (number of operators of length 2) C 1 A 1 | -3.999990000000000E+00 1.000000000000000E+00 C 2 A 2 | 1.000000000000000E+00 0.000000000000000E+00 C 1 A 0 | 1.500000000000000E+00 0.000000000000000E+00 C 0 A 1 | 1.500000000000000E+00 0.000000000000000E+00 C 0 A 0 | -3.500000000000000E+00 -0.000000000000000E+00 PartialMeanFieldOperator(op2, rho, {0,1}, {{"AddDFTSelfInteraction",true}}) Operator: QComplex = 2 (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 0 QComplex = 0 (Real==0 or Complex==1) N = 1 (number of operators of length 0) | 5.150000000000000E+00 Operator of Length 2 QComplex = 1 (Real==0 or Complex==1) N = 6 (number of operators of length 2) C 1 A 1 | -3.416656666666666E+00 1.000000000000000E+00 C 2 A 2 | 1.333333333333333E+00 0.000000000000000E+00 C 1 A 0 | 1.500000000000000E+00 0.000000000000000E+00 C 0 A 1 | 1.500000000000000E+00 0.000000000000000E+00 C 0 A 0 | -2.833333333333333E+00 -0.000000000000000E+00 C 3 A 3 | 1.666666666666667E-01 0.000000000000000E+00 PartialMeanFieldOperator(op2, rho, {2}) Operator: QComplex = 2 (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 0 QComplex = 0 (Real==0 or Complex==1) N = 1 (number of operators of length 0) | -0.000000000000000E+00 Operator of Length 2 QComplex = 1 (Real==0 or Complex==1) N = 2 (number of operators of length 2) C 1 A 1 | 1.000000000000000E-05 1.000000000000000E+00 C 2 A 2 | 1.000000000000000E+00 0.000000000000000E+00 Operator of Length 4 QComplex = 0 (Real==0 or Complex==1) N = 1 (number of operators of length 4) C 1 C 0 A 1 A 0 | -5.000000000000000E+00 ===== Table of contents ===== {{indexmenu>.#1}}