diff --git a/src/main.cpp b/src/main.cpp
index b6c3216bc619e736d9bf51be36e1622f211655b3..babd25dcb30af0137ea287c5ebff1f37e20f0511 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -196,7 +196,7 @@ int main(int argc, char *argv[])
      const Kokkos::View<const Rd*> xj   = mesh_data.xj();
      const Kokkos::View<const Rd*> uj = unknowns.uj();
      double pi = 4.*std::atan(1.);
-     std::ofstream fout("comparaison_u_k_non_cst_maill_non_unif_640");
+     std::ofstream fout("comparaison_u_k_non_cst_maill_non_unif_320");
      for (size_t j=0; j<mesh.numberOfCells(); ++j) {
        //fout << xj[j][0] << ' ' << uj[j][0] <<  ' ' << std::sin(pi*xj[j][0])*std::exp(-2.*pi*pi*0.2) <<'\n'; //cas k constant
        fout << xj[j][0] << ' ' << uj[j][0] <<  ' ' << std::sin(pi*xj[j][0])*std::exp(-0.2) <<'\n'; // cas k non constant
diff --git a/src/mesh/Mesh.hpp b/src/mesh/Mesh.hpp
index a1d12a0abb659c57d663e023b0ffddc530551a2e..f28169f8377aa39f97f4e5ba6a4eb41edcc5be1a 100644
--- a/src/mesh/Mesh.hpp
+++ b/src/mesh/Mesh.hpp
@@ -62,36 +62,42 @@ public:
 
   // pas non constant
 
-  //Mesh(const Connectivity& connectivity)
-  //  : m_connectivity(connectivity),
-  //   m_xr("xr", connectivity.numberOfNodes())
-  //{
-  // const double delta_x = 1./connectivity.numberOfCells();
-  // Kokkos::parallel_for(connectivity.numberOfNodes(), KOKKOS_LAMBDA(const int& r){
-  //	if (r%2 == 0) {
-  //	  m_xr[r][0] = r*delta_x;
-  //	}
-  //	else {
-  //	  m_xr[r][0] = (r*2+1)*0.5*delta_x;
-  //	}
-  //  });
-  //}
-
-  // pas non constant avec fonction x^2
-
-   Mesh(const Connectivity& connectivity)
-     : m_connectivity(connectivity),
-       m_xr("xr", connectivity.numberOfNodes())
+  Mesh(const Connectivity& connectivity)
+    : m_connectivity(connectivity),
+      m_xr("xr", connectivity.numberOfNodes())
   {
     const double delta_x = 1./connectivity.numberOfCells();
     Kokkos::parallel_for(connectivity.numberOfNodes(), KOKKOS_LAMBDA(const int& r){
-   	m_xr[r][0] = r*delta_x;
-      });
-    Kokkos::parallel_for(connectivity.numberOfNodes(), KOKKOS_LAMBDA(const int& r){
-  	m_xr[r][0] = m_xr[r][0]*m_xr[r][0];
+  	if (r%4 == 1) {
+  	  m_xr[r][0] = (r*2+1)*0.5*delta_x;
+  	}
+  	else {
+	  if (r%4==3) {
+	    m_xr[r][0] = ((r*3-1)/3.)*delta_x;
+	  }
+	  else 
+	    {
+	      m_xr[r][0] = r*delta_x;
+	    }
+	}
       });
   }
 
+  // pas non constant avec fonction x^2 (mauvais choix pas, hyper lent)
+
+  // Mesh(const Connectivity& connectivity)
+  //  : m_connectivity(connectivity),
+  //    m_xr("xr", connectivity.numberOfNodes())
+  //{
+  // const double delta_x = 1./connectivity.numberOfCells();
+  // Kokkos::parallel_for(connectivity.numberOfNodes(), KOKKOS_LAMBDA(const int& r){
+  //	m_xr[r][0] = r*delta_x;
+  //   });
+  // Kokkos::parallel_for(connectivity.numberOfNodes(), KOKKOS_LAMBDA(const int& r){
+  //	m_xr[r][0] = m_xr[r][0]*m_xr[r][0];
+  //   });
+  //}
+
   ~Mesh()
   {
     ;