From 50a96b5330f8f2ee3f042c6d541251cd7bb517d9 Mon Sep 17 00:00:00 2001
From: Fanny CHOPOT <fanny.chopot.ocre@cea.fr>
Date: Thu, 28 Jun 2018 13:14:31 +0200
Subject: [PATCH] modif : tout le calcul se fait avec le pas de temps de la
 diffusion (sous cycle)

---
 src/main.cpp                              |  4 +++-
 src/scheme/AcousticSolver.hpp             |  4 ++--
 src/scheme/FiniteVolumesDiffusion.hpp     | 12 ++++++------
 src/scheme/FiniteVolumesEulerUnknowns.hpp |  8 ++++----
 4 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/src/main.cpp b/src/main.cpp
index 9ca54fe27..6a13f8525 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -270,7 +270,7 @@ int main(int argc, char *argv[])
       if (t+dt_euler > tmax) {
 	dt_euler = tmax-t;
       }
-      acoustic_solver.computeNextStep(t,dt_euler, unknowns);
+      //acoustic_solver.computeNextStep(t,dt_euler, unknowns);
       t += dt_euler;
       
       // ETAPE 2 DU SPLITTING - DIFFUSION
@@ -280,6 +280,7 @@ int main(int argc, char *argv[])
       
       if (dt_euler <= dt_diff) {
 	dt_diff = dt_euler;
+	acoustic_solver.computeNextStep(t_diff,dt_diff, unknowns);
 	finite_volumes_diffusion.computeNextStep(t_diff, dt_diff, unknowns);
       } else {
 	while (t > t_diff) {
@@ -287,6 +288,7 @@ int main(int argc, char *argv[])
 	  if (t_diff+dt_diff > t) {
 	    dt_diff = t-t_diff;
 	  }
+	  acoustic_solver.computeNextStep(t_diff,dt_diff, unknowns);
 	  finite_volumes_diffusion.computeNextStep(t_diff, dt_diff, unknowns);
 	  t_diff += dt_diff;
 	}
diff --git a/src/scheme/AcousticSolver.hpp b/src/scheme/AcousticSolver.hpp
index 98762c84a..4370758c2 100644
--- a/src/scheme/AcousticSolver.hpp
+++ b/src/scheme/AcousticSolver.hpp
@@ -407,11 +407,11 @@ public:
       });
 
     // Mise a jour de nu
-    /*
+    
     Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j) {
 	nuj(j) = 0.5*(1.+xj[j][0]);
       });
-    */
+    
   }
 };
 
diff --git a/src/scheme/FiniteVolumesDiffusion.hpp b/src/scheme/FiniteVolumesDiffusion.hpp
index 56e63b96e..27fa0515f 100644
--- a/src/scheme/FiniteVolumesDiffusion.hpp
+++ b/src/scheme/FiniteVolumesDiffusion.hpp
@@ -249,12 +249,12 @@ private:
     double h = std::sqrt(1. - (t*t)/(50./9.));
 
     // nu = (1+x)*0.5
-    //m_Bl(0) = ((1.+h*x0[0][0])*3.*h*x0[0][0])/(100.*h*h*h*h);
-    //m_Bl(m_mesh.numberOfFaces()-1) = ((1.+h*xmax[0][0])*3.*h*xmax[0][0])/(100.*h*h*h*h);
+    m_Bl(0) = ((1.+h*x0[0][0])*3.*h*x0[0][0])/(100.*h*h*h*h);
+    m_Bl(m_mesh.numberOfFaces()-1) = ((1.+h*xmax[0][0])*3.*h*xmax[0][0])/(100.*h*h*h*h);
 
     // nu = 0.2
-    m_Bl(0) = (0.2*3.*h*x0[0][0])/(50.*h*h*h*h);
-    m_Bl(m_mesh.numberOfFaces()-1) = (0.2*3.*h*xmax[0][0])/(50.*h*h*h*h);
+    //m_Bl(0) = (0.2*3.*h*x0[0][0])/(50.*h*h*h*h);
+    //m_Bl(m_mesh.numberOfFaces()-1) = (0.2*3.*h*xmax[0][0])/(50.*h*h*h*h);
     
     return m_Bl ;
 
@@ -475,8 +475,8 @@ public:
 
 	// ajout second membre pour kidder (k = x)
 	uj[j][0] += (dt*inv_mj[j])*Vj(j)*(t/((50./9.)-t*t)); 
-	Ej[j] -= (dt*inv_mj[j])*Vj(j)*((2.*xj[j][0]*t*t)/(((50./9.)-t*t)*((50./9.)-t*t))+(0.2*3.)/(50.*h*h*h*h));
-	//Ej[j] -= (dt*inv_mj[j])*Vj(j)*((2.*xj[j][0]*t*t)/(((50./9.)-t*t)*((50./9.)-t*t))+(6*xj[j][0]+3.)/(100*(1-t*t/(50/9))*(1-t*t/(50/9))));
+	//Ej[j] -= (dt*inv_mj[j])*Vj(j)*((2.*xj[j][0]*t*t)/(((50./9.)-t*t)*((50./9.)-t*t))+(0.2*3.)/(50.*h*h*h*h));
+	Ej[j] -= (dt*inv_mj[j])*Vj(j)*((2.*xj[j][0]*t*t)/(((50./9.)-t*t)*((50./9.)-t*t))+(6*xj[j][0]+3.)/(100*(1-t*t/(50/9))*(1-t*t/(50/9))));
       });
 
     // Calcul de e par la formule e = E-0.5 u^2 
diff --git a/src/scheme/FiniteVolumesEulerUnknowns.hpp b/src/scheme/FiniteVolumesEulerUnknowns.hpp
index 66775dd20..0c8b9c01c 100644
--- a/src/scheme/FiniteVolumesEulerUnknowns.hpp
+++ b/src/scheme/FiniteVolumesEulerUnknowns.hpp
@@ -396,8 +396,8 @@ public:
 	m_S0(j) = m_entropy(j);
       });
     Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j){
-	//m_nuj(j) = 0.5*(1.+xj[j][0]); 
-	m_nuj(j) = 0.2;
+	m_nuj(j) = 0.5*(1.+xj[j][0]); 
+	//m_nuj(j) = 0.2;
       });
 
     Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j){
@@ -408,8 +408,8 @@ public:
     
     m_TL[0] = 1.;
     m_TR[0] = 103./100.;
-    m_nuL[0] = 0.2;
-    m_nuR[0] = 0.2;
+    m_nuL[0] = 0.5;
+    m_nuR[0] = 1.;
    
   }
   
-- 
GitLab