diff --git a/src/scheme/FiniteVolumesDiffusion.hpp b/src/scheme/FiniteVolumesDiffusion.hpp
index 1b7e98f415284155a35d0c52d5b1014c24baa3aa..99ab626e36b43270f21591516b8c2f98ce2f5d55 100644
--- a/src/scheme/FiniteVolumesDiffusion.hpp
+++ b/src/scheme/FiniteVolumesDiffusion.hpp
@@ -80,11 +80,11 @@ private:
     const Kokkos::View<const unsigned int**>& cell_nodes = m_connectivity.cellNodes();
     const Kokkos::View<const unsigned short*> cell_nb_nodes
       = m_connectivity.cellNbNodes();
-    const Kokkos::View<const Rd*> xj = m_mesh_data.xj();
+    const Kokkos::View<const double*>& Dj = m_mesh_data.Dj();
 
     Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j) {
 	for (int r=0; r<cell_nb_nodes[j]; ++r) {
-	  m_Fjr(j,r) = ((kj(cell_nodes(j,r)) + kj(cell_nodes(j,r)-1))/(2*(xj(cell_nodes(j,r))-xj(cell_nodes(j,r)-1)))) * (uj(j,r),Cjr(j,r)); //tensorProduct(uj(j,r),Cjr(j,r)) ?
+	  m_Fjr(j,r) = ((kj(cell_nodes(j,r)) + kj(cell_nodes(j,r)-1))/(2*Dj(j))) * (uj(j,r),Cjr(j,r)); //tensorProduct(uj(j,r),Cjr(j,r)) ?
 	}
       });
 
@@ -128,9 +128,7 @@ private:
   // Enchaine les operations pour calculer les flux (Fjr et Gjr) pour
   // pouvoir derouler le schema
   KOKKOS_INLINE_FUNCTION
-  void computeExplicitFluxes(const Kokkos::View<const Rd*>& xj,
-			     const Kokkos::View<const double*>& rhoj,
-			     const Kokkos::View<const Rd*>& uj,
+  void computeExplicitFluxes(const Kokkos::View<const Rd*>& uj,
 			     const Kokkos::View<const Rd**>& Cjr,
 			     const Kokkos::View<const double*>& kj) { 
     Kokkos::View<Rd**> Fjr = m_Fjr; 
@@ -157,19 +155,20 @@ public:
   // Calcule une evaluation du pas de temps verifiant le CFL parabolique
   // Utilise la reduction definie dans la structure ReduceMin. Ici, dx_j=V_j
   KOKKOS_INLINE_FUNCTION
-  double diffusion_dt(const Kokkos::View<const double*>& Vj,
-		      const Kokkos::View<const double*>& rhoj,
+  double diffusion_dt(const Kokkos::View<const double*>& rhoj,
 		      const Kokkos::View<const double*>& kj) const {
     Kokkos::View<double*> dt_j("dt_j", m_mesh.numberOfCells());
-    const Kokkos::View<const Rd*> xj = m_mesh_data.xj();
     const Kokkos::View<const Rd**> Cjr = m_mesh_data.Cjr();
+    const Kokkos::View<const double*>& Dj = m_mesh_data.Dj();
+    const Kokkos::View<const double*>& Vj = m_mesh_data.Vj();
 
     Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j){
        	dt_j[j]
 	  = rhoj(j)*Vj(j)*(2./(kj(j+1) + 2*kj(j) + kj(j-1)))
+	  * std::min(Dj(j+1),Dj(j));
 	  // * std::min(xj(j+1)-xj(j), xj(j)-xj(j-1));
-	  * std::min((xj(j+1),Cjr(j,1)) + (xj(j),Cjr(j,0)),
-		     (xj(j),Cjr(j,1)) + (xj(j-1),Cjr(j,0)) );
+	  // * std::min((Dxj(j+1),Cjr(j,1)) + (xj(j),Cjr(j,0)),
+	  //(xj(j),Cjr(j,1)) + (xj(j-1),Cjr(j,0)) );
       });
 
     double dt = std::numeric_limits<double>::max();