diff --git a/codes/mf.py b/codes/mf.py
index d293463eb001a6e5934882b480a82fc6afe20d3e..4b81464d3b84fee2a048b9fc42a411159c9559dc 100644
--- a/codes/mf.py
+++ b/codes/mf.py
@@ -1,6 +1,7 @@
 import numpy as np
 from codes.tb.tb import addTb
 
+
 def densityMatrixGenerator(hkfunc, E_F):
     """
     Generate a function that returns the density matrix at a given k-point.
@@ -111,21 +112,32 @@ def fermiOnGrid(hkfunc, filling, nK=100, ndim=1):  # need to extend to 2D
         fermi = (vals_flat[ifermi - 1] + vals_flat[ifermi]) / 2
         return fermi
 
+
 def meanFieldFFTkvector(densityMatrixTb, h_int, n=2):
 
     localKey = tuple(np.zeros((n,), dtype=int))
 
     direct = {
-        localKey: np.diag(
-            np.einsum("pp,pn->n", densityMatrixTb[*localKey, :], h_int[localKey])
+        localKey: np.sum(
+            np.array(
+                [
+                    np.diag(
+                        np.einsum("pp,pn->n", densityMatrixTb[localKey], h_int[vec])
+                    )
+                    for vec in frozenset(h_int)
+                ]
+            ),
+            axis=0,
         )
     }
+
     exchange = {
-        vec: -1 * h_int.get(vec, 0) * densityMatrixTb[*vec, :]
+        vec: -1 * h_int.get(vec, 0) * densityMatrixTb[vec]  # / (2 * np.pi)#**2
         for vec in frozenset(h_int)
     }
     return addTb(direct, exchange)
 
+
 def meanField(densityMatrix, int_model, n=2, nK=100):
     """
     Compute the mean-field in k-space.
@@ -162,4 +174,4 @@ def meanField(densityMatrix, int_model, n=2, nK=100):
         vec: -1 * int_model.get(vec, 0) * densityMatrix[vec]  # / (2 * np.pi)#**2
         for vec in frozenset(int_model)
     }
-    return addTb(direct, exchange)
\ No newline at end of file
+    return addTb(direct, exchange)
diff --git a/codes/model.py b/codes/model.py
index 48b92b55bdecf3be746dc2601670ea2512743f9a..de0b5c170b59ea48d0aa1a85578cc9bcd3956e54 100644
--- a/codes/model.py
+++ b/codes/model.py
@@ -1,5 +1,6 @@
+# %%
 from codes.tb.tb import addTb
-from codes.tb.transforms import tb2kfunc, tb2kham, kdens2tbFFT, kfunc2tb
+from codes.tb.transforms import tb2kfunc, tb2kham, kdens2tbFFT, kfunc2tb, ifftn2tb
 from codes.mf import (
     densityMatrixGenerator,
     densityMatrix,
@@ -43,13 +44,6 @@ class Model:
             densityMatrixGenerator(self.hkfunc, self.EF), nSamples=nK, ndim=self._ndim
         )
 
-    # def mfield(self, mf_model):
-    #     self.densityMatrix = self.makeDensityMatrix(mf_model)
-    #     return addTb(
-    #         meanFieldQuad(self.densityMatrix, self.int_model),
-    #         {self._localKey: -self.EF * np.eye(self._size)},
-    #     )
-
     def mfield(self, mf_model, nK=200):
         self.densityMatrix = self.makeDensityMatrix(mf_model, nK=nK)
         return addTb(
@@ -68,8 +62,11 @@ class Model:
 
     def mfieldFFTkvector(self, mf_model, nK=200):
         densityMatrix = self.makeDensityMatrixkvector(mf_model, nK=nK)
-        densityMatrixTb = kdens2tbFFT(densityMatrix, self._ndim)
+        densityMatrixTb = ifftn2tb(kdens2tbFFT(densityMatrix, self._ndim))
         return addTb(
             meanFieldFFTkvector(densityMatrixTb, self.h_int, n=self._ndim),
             {self._localKey: -self.EF * np.eye(self._size)},
         )
+
+
+# %%
diff --git a/codes/tb/transforms.py b/codes/tb/transforms.py
index 9f9f93e30a09d3b7516a682b6f07ebd84dce8436..45c1abc16ed4db323668a934993645f4e9fdfd64 100644
--- a/codes/tb/transforms.py
+++ b/codes/tb/transforms.py
@@ -135,5 +135,6 @@ def kfunc2tb(kfunc, nSamples, ndim=1):
     ifftnArray = ifftn(kfuncOnGrid, axes=np.arange(ndim))
     return ifftn2tb(ifftnArray)
 
+
 def kdens2tbFFT(kdens, ndim=1):
-    return ifftn(kdens, axes=np.arange(ndim))
\ No newline at end of file
+    return ifftn(kdens, axes=np.arange(ndim))