Table of Contents
This is an old revision of the document!
CalculateSelfEnergy
ResponseFunction.CalculateSelfEnergy($G_0$,$G$) calculates \begin{equation} \Sigma = G_0^{-1} - G^{-1} \end{equation}
Input
-
$G_0$ : ResponseFunction object
-
$G$ : ResponseFunction object
Output
-
$\Sigma$ : ResponseFunction object
Example
### ###
Input
- CalculateSelfEnergy.Quanty
Verbosity(0) -- Hubbard dimer model NF=4 NB=0 IndexADn={0} IndexAUp={1} IndexBDn={2} IndexBUp={3} -- The Hamiltonian is given by a hopping from site A to B that conserves spin -- A Coulomb repulsion if the two electrons are on the same site -- A chemical potential that gives an onsite energy of -U/2 OppNAdn = NewOperator("Number", NF, 0, 0) OppNAup = NewOperator("Number", NF, 1, 1) OppNBdn = NewOperator("Number", NF, 2, 2) OppNBup = NewOperator("Number", NF, 3, 3) OppNA = OppNAup + OppNAdn OppNB = OppNBup + OppNBdn Oppt = NewOperator("Number", NF, {0,1,2,3}, {2,3,0,1}, {1,1,1,1}) OppU = OppNAup * OppNAdn + OppNBup * OppNBdn -- PES and IPES are electron annihilation and creation operators TPes = NewOperator("An", NF, 0) TIPes = NewOperator("Cr", NF, 0) -- the total number of states is 6. Npsi=6; StartRestrictions = {NF, NB, {"1111",2,2}}; U = 1 H0 = Oppt - U/2 * (OppNA + OppNB) -- Define mean-field Hamiltonian H1= U * OppU -- Define interaction Hamiltonian psiList = Eigensystem(H0,StartRestrictions, Npsi) G0PESIPES_Spectra, G0PESIPES_ResponseFunction = CreateSpectra(H0, {TPes, TIPes}, psiList[1], {{"Emin",-1}, {"Emax",9}, {"NE",1000}, {"Gamma",0.25}}) G0 = G0PESIPES_ResponseFunction[2] + ResponseFunction.InvertEnergy(G0PESIPES_ResponseFunction[1]) Eigensystem(H0+H1, psiList[1]) -- Use H0 groundstate as Ansatz for Full Hamiltonian groundstate calculation --For memory efficiency, this way of calling Eigensystem overwrites Ansatz wavefunction with a new one. GPESIPES_Spectra, GPESIPES_ResponseFunction = CreateSpectra(H0+H1, {TPes, TIPes}, psiList[1], {{"Emin",-1}, {"Emax",9}, {"NE",1000}, {"Gamma",0.25}}) G = GPESIPES_ResponseFunction[2] + ResponseFunction.InvertEnergy(GPESIPES_ResponseFunction[1]) Sigma = ResponseFunction.CalculateSelfEnergy(G0,G) print(ResponseFunction.ToTable(Sigma))
Result
{ { 0.5 , 6.9374060711003e-16 , 3.0413812651491 } , { 0.085601012694643 , 0.16439898730536 } , name = Self energy , mu = 0 , type = ListOfPoles }