diff --git a/src/main.cpp b/src/main.cpp
index 6abce8dceb6f9f133deb95d94f0f3d38874b0741..5e6325e1b1024a8bc74c4daca0b4538edbd1da1b 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -131,6 +131,7 @@ int main(int argc, char *argv[])
     unknowns.initializeSod();
 
     AcousticSolver<MeshDataType> acoustic_solver(mesh_data, unknowns);
+    FiniteVolumesDiffusion<MeshDataType> finite_volumes_diffusion(mesh_data, unknowns);
 
     typedef TinyVector<MeshType::dimension> Rd;
 
@@ -148,17 +149,21 @@ int main(int argc, char *argv[])
     Kokkos::View<double*> pj = unknowns.pj();
     Kokkos::View<double*> gammaj = unknowns.gammaj();
     Kokkos::View<double*> cj = unknowns.cj();
+    Kokkos::View<double*> kj = unknowns.kj();
 
     BlockPerfectGas block_eos(rhoj, ej, pj, gammaj, cj);
 
     while((t<tmax) and (iteration<itermax)) {
-      double dt = 0.4*acoustic_solver.acoustic_dt(Vj, cj);
+      //double dt = 0.4*acoustic_solver.acoustic_dt(Vj, cj);
+      double dt = 0.4*finite_volumes_diffusion.diffusion_dt(rhoj, kj);
+
       if (t+dt>tmax) {
 	dt=tmax-t;
       }
 
-      acoustic_solver.computeNextStep(t,dt, unknowns);
-
+      //acoustic_solver.computeNextStep(t,dt, unknowns);
+      finite_volumes_diffusion.computeNextStep(t, dt, unknowns);
+      
       block_eos.updatePandCFromRhoE();    
     
       t += dt;
diff --git a/src/scheme/FiniteVolumesDiffusion.hpp b/src/scheme/FiniteVolumesDiffusion.hpp
index 99ab626e36b43270f21591516b8c2f98ce2f5d55..1afd942e198fce7e5be89fab581c68c2f5814903 100644
--- a/src/scheme/FiniteVolumesDiffusion.hpp
+++ b/src/scheme/FiniteVolumesDiffusion.hpp
@@ -100,7 +100,7 @@ private:
 
     Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j) {
 	for (int r=0; r<cell_nb_nodes[j]; ++r) {
-	  m_Gjr(j,r) = 0.5*(uj(cell_nodes(j,r)) + uj(cell_nodes(j,r)-1))*Fjr(j,r);
+	  m_Gjr(j,r) = 0.5*((uj(cell_nodes(j,r)) + uj(cell_nodes(j,r)-1)),Fjr(j,r));
 	}
       });
 
@@ -195,7 +195,7 @@ public:
     const Kokkos::View<const Rd**> Cjr = m_mesh_data.Cjr();
 
     // Calcule les flux
-    computeExplicitFluxes(xj, rhoj, uj, Cjr, kj);
+    computeExplicitFluxes(uj, Cjr, kj);
 
     const Kokkos::View<const Rd**> Fjr = m_Fjr;
     const Kokkos::View<const double**> Gjr = m_Gjr;