|
57 | 57 | "\n", |
58 | 58 | "Afterwards we can calculate the double occupancy $\\langle n_{\\uparrow}n_{\\downarrow}\\rangle = \\frac{U_{\\mathrm{sp}}}{4U} n^2$ and then perform a similar root finding for $U_{\\mathrm{ch}}$ from the function \n", |
59 | 59 | "\n", |
60 | | - "$$ g(U_{\\mathrm{ch}}) = 2 \\frac{T}{N_{\\boldsymbol{k}}} \\sum_{\\nu^\\mathrm{B},\\boldsymbol{q}} \\chi_{\\mathrm{ch}}(U_{\\mathrm{ch}}) - n - 2\\langle n_{\\uparrow}n_{\\downarrow}\\rangle^2 + n^2\\;. $$\n", |
| 60 | + "$$ g(U_{\\mathrm{ch}}) = 2 \\frac{T}{N_{\\boldsymbol{k}}} \\sum_{\\nu^\\mathrm{B},\\boldsymbol{q}} \\chi_{\\mathrm{ch}}(U_{\\mathrm{ch}}) - n - 2\\langle n_{\\uparrow}n_{\\downarrow}\\rangle + n^2\\;. $$\n", |
61 | 61 | "\n", |
62 | 62 | "In TPSC, a self-energy $\\Sigma$ can be derived that is calculated from the interaction {cite:p}`Moukouri2000`\n", |
63 | 63 | "\n", |
|
218 | 218 | "\n", |
219 | 219 | "\n", |
220 | 220 | " def k_to_r(self,obj_k):\n", |
221 | | - " \"\"\" Fourier transform from k-space to real space \"\"\"\n", |
| 221 | + " \"\"\" Fourier transform from k-space to real space, A(r) = sum_k exp(-ik.r) A(k), without a factor 1/nk \"\"\"\n", |
222 | 222 | " obj_k = obj_k.reshape(-1, self.nk1, self.nk2)\n", |
223 | 223 | " obj_r = np.fft.fftn(obj_k,axes=(1,2))\n", |
224 | 224 | " obj_r = obj_r.reshape(-1, self.nk)\n", |
225 | 225 | " return obj_r\n", |
226 | 226 | "\n", |
227 | 227 | " def r_to_k(self,obj_r):\n", |
228 | | - " \"\"\" Fourier transform from real space to k-space \"\"\"\n", |
| 228 | + " \"\"\" Fourier transform from real space to k-space, A(k) = (1/nk^2) sum_r exp(ik.r) A(r) (1/nk from ifftn and 1/nk here),\n", |
| 229 | + " so that the product of two k_to_r arrays A(r)B(r) gives the convolution (1/nk) sum_q A(q)B(k-q) \"\"\"\n", |
229 | 230 | " obj_r = obj_r.reshape(-1, self.nk1, self.nk2)\n", |
230 | 231 | " obj_k = np.fft.ifftn(obj_r,axes=(1,2))/self.nk\n", |
231 | 232 | " obj_k = obj_k.reshape(-1, self.nk)\n", |
|
380 | 381 | " U_b = 100\n", |
381 | 382 | "\n", |
382 | 383 | " chi_trace = self.chi_qtrace_calc\n", |
383 | | - " sfc_eq = lambda U_ch : 2*chi_trace(-U_ch) - self.n + (1 - 2*self.docc)*self.n**2\n", |
| 384 | + " sfc_eq = lambda U_ch : 2*chi_trace(-U_ch) - self.n - 2*self.docc + self.n**2\n", |
384 | 385 | "\n", |
385 | 386 | " self.U_ch = sc.optimize.brentq(sfc_eq, U_a, U_b, rtol = self.U_sfc_tol)\n", |
386 | 387 | "\n", |
|
0 commit comments