From 66360fb6161171a9f345746d81aa807c6471e6b3 Mon Sep 17 00:00:00 2001
From: Fanny CHOPOT <fanny.chopot.ocre@cea.fr>
Date: Tue, 22 May 2018 08:59:11 +0200
Subject: [PATCH] correction boucle temps, diff = euler

---
 src/main.cpp                              | 16 +++++++++++++---
 src/scheme/FiniteVolumesEulerUnknowns.hpp |  6 +++---
 2 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/src/main.cpp b/src/main.cpp
index d53f39766..810579823 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -159,6 +159,12 @@ int main(int argc, char *argv[])
     std::cout << "* " << rang::style::underline << "Resultat conservativite rho E temps = 0" << rang::style::reset
 	      << ":  " << rang::fgB::green << c << rang::fg::reset << " \n";
 
+    double c1 = 0.;
+    c1 = finite_volumes_diffusion.conservatif_mvt(unknowns);
+
+    std::cout << "* " << rang::style::underline << "Resultat conservativite rho u temps = 0" << rang::style::reset
+	      << ":  " << rang::fgB::green << c1 << rang::fg::reset << " \n";
+
     while((t<tmax) and (iteration<itermax)) {
      
       // ETAPE 1 DU SPLITTING - EULER
@@ -179,14 +185,18 @@ int main(int argc, char *argv[])
 	dt_diff = dt_euler;
 	finite_volumes_diffusion.computeNextStep(t, dt_diff, unknowns);
       } else {
-	double t_diff = t;
-	while (t + dt_euler > t_diff) {
+	double t_diff = t-dt_euler;
+	while (t > t_diff) {
 	  finite_volumes_diffusion.computeNextStep(t_diff, dt_diff, unknowns);
 	  dt_diff = 0.4*finite_volumes_diffusion.diffusion_dt(rhoj, kj);
+	  if (t_diff+dt_diff > t) {
+	    dt_diff = t-t_diff;
+	  }
 	  t_diff += dt_diff;
 	}
+	std::cout << "diff : " << t_diff << std::endl;
       }
-      
+  
 
       // DIFFUSION PURE
       
diff --git a/src/scheme/FiniteVolumesEulerUnknowns.hpp b/src/scheme/FiniteVolumesEulerUnknowns.hpp
index 01fc74992..cb0504f5d 100644
--- a/src/scheme/FiniteVolumesEulerUnknowns.hpp
+++ b/src/scheme/FiniteVolumesEulerUnknowns.hpp
@@ -232,15 +232,15 @@ public:
       });
 
     Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j){
-  	m_kj[j] =  0.00001*0.5; 
+  	m_kj[j] =  1.; 
       });
 
      // Conditions aux bords de Dirichlet sur u et k
     
     m_uL[0] = zero;
     m_uR[0] = zero;
-    m_kL[0] = 0.00001*0.5;
-    m_kR[0] = 0.00001*0.5;
+    m_kL[0] = 1.;
+    m_kR[0] = 1.;
   }
   
   
-- 
GitLab