diff --git a/src/mesh/Mesh.hpp b/src/mesh/Mesh.hpp
index ef3176a0371c4a39d7f0fdecc936bace02a6222d..667f1877db466a9d581834099739504c9d78429b 100644
--- a/src/mesh/Mesh.hpp
+++ b/src/mesh/Mesh.hpp
@@ -80,8 +80,8 @@ public:
       m_x0("x0", 1),
       m_xmax("xmax", 1)
   {
-    double a = 0.1;
-    double b = 1.;
+    double a = 0.;
+    double b = 10.;
     m_x0[0][0] = a;
     m_xmax[0][0] = b;
     const double delta_x = (b-a)/connectivity.numberOfCells();
diff --git a/src/scheme/FiniteVolumesDiffusion.hpp b/src/scheme/FiniteVolumesDiffusion.hpp
index 8d4c27674d7bb4bf53baf76ec0a9b0b91c5c39f9..44e1b5d5d96a9fe6cf7b4ced24b517dc4cad31f3 100644
--- a/src/scheme/FiniteVolumesDiffusion.hpp
+++ b/src/scheme/FiniteVolumesDiffusion.hpp
@@ -95,6 +95,8 @@ private:
     const Kokkos::View<const double*>& Vl = m_mesh_data.Vl();
     const Kokkos::View<const double*>& Vj = m_mesh_data.Vj();
     const Kokkos::View<const Rd*> xr = m_mesh.xr();
+    const Kokkos::View<const Rd*> x0 = m_mesh.x0();
+    const Kokkos::View<const Rd*> xmax = m_mesh.xmax();
 
     Kokkos::parallel_for(m_mesh.numberOfFaces(), KOKKOS_LAMBDA(const int& l) {
         Rdd sum = zero;
@@ -129,8 +131,12 @@ private:
     //m_Fl(m_mesh.numberOfFaces()-1,0) = -(t/((50./9.)-t*t))*0.5;
 
     // k = x
-    m_Fl(0,0) = -(t/((50./9.)-t*t))*xr[0][0];
-    m_Fl(m_mesh.numberOfFaces()-1,0) = -(t/((50./9.)-t*t))*xr[m_mesh.numberOfFaces()-1][0];
+    //m_Fl(0,0) = -(t/((50./9.)-t*t))*xr[0][0];
+    //m_Fl(m_mesh.numberOfFaces()-1,0) = -(t/((50./9.)-t*t))*xr[m_mesh.numberOfFaces()-1][0];
+
+    double h = std::sqrt(1. - (t*t)/(50./9.));
+    m_Fl(0,0) = -(t/((50./9.)-t*t))*h*x0[0][0];
+    m_Fl(m_mesh.numberOfFaces()-1,0) = -(t/((50./9.)-t*t))*h*xmax[0][0];
     
     return m_Fl ;
   }
@@ -154,6 +160,8 @@ private:
     const Kokkos::View<const double*>& Vj = m_mesh_data.Vj();
 
     const Kokkos::View<const Rd*> xr = m_mesh.xr();
+    const Kokkos::View<const Rd*> x0 = m_mesh.x0();
+    const Kokkos::View<const Rd*> xmax = m_mesh.xmax();
 
     Kokkos::parallel_for(m_mesh.numberOfFaces(), KOKKOS_LAMBDA(const int& l) {
         Rd sum = zero;
@@ -171,8 +179,12 @@ private:
     // m_Gl(0) = Fl(0)*uL(0);
     //m_Gl(m_mesh.numberOfFaces()-1) = Fl(m_mesh.numberOfFaces()-1)*uR(0);
 
-    m_Gl(0) = -(t/((50./9.)-t*t))*Fl(0,0)*xr(0);
-    m_Gl(m_mesh.numberOfFaces()-1) = -(t/((50./9.)-t*t))*Fl(m_mesh.numberOfFaces()-1,0)*xr(m_mesh.numberOfFaces()-1);
+    //m_Gl(0) = -(t/((50./9.)-t*t))*Fl(0,0)*xr(0);
+    //m_Gl(m_mesh.numberOfFaces()-1) = -(t/((50./9.)-t*t))*Fl(m_mesh.numberOfFaces()-1,0)*xr(m_mesh.numberOfFaces()-1);
+
+    double h = std::sqrt(1. - (t*t)/(50./9.));
+    m_Gl(0) = -(t/((50./9.)-t*t))*h*Fl(0,0)*x0(0);
+    m_Gl(m_mesh.numberOfFaces()-1) = -(t/((50./9.)-t*t))*h*Fl(m_mesh.numberOfFaces()-1,0)*xmax(0);
     
     return m_Gl ;
 
diff --git a/src/scheme/FiniteVolumesEulerUnknowns.hpp b/src/scheme/FiniteVolumesEulerUnknowns.hpp
index a59021ecb3155e0ec5c9e2264a0a987dd7a61bfb..99a8f11386b5bbd813a6fe62df9fc6d2ff117e52 100644
--- a/src/scheme/FiniteVolumesEulerUnknowns.hpp
+++ b/src/scheme/FiniteVolumesEulerUnknowns.hpp
@@ -191,7 +191,8 @@ public:
     const Kokkos::View<const Rd*> xj = m_mesh_data.xj();
 
     Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j){
-  	/*if (xj[j][0]<0.5) {
+  	/*
+	  if (xj[j][0]<0.5) {
   	  m_rhoj[j]=1;
   	} else {
   	  m_rhoj[j]=0.125;