From 796f700c144b124394c26c8c3575b8a1285c0c8b Mon Sep 17 00:00:00 2001
From: Fanny CHOPOT <fanny.chopot.ocre@cea.fr>
Date: Wed, 23 May 2018 10:44:29 +0200
Subject: [PATCH] ajout second membre pour impulsion et energie dans diffusion
 pour kidder sol de ns

---
 src/main.cpp                              |  4 ++--
 src/mesh/Mesh.hpp                         |  3 +--
 src/scheme/FiniteVolumesDiffusion.hpp     | 10 +++++++++-
 src/scheme/FiniteVolumesEulerUnknowns.hpp |  4 ++--
 4 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/src/main.cpp b/src/main.cpp
index 4fea916dc..b37ac81c4 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -176,7 +176,7 @@ int main(int argc, char *argv[])
       }
       acoustic_solver.computeNextStep(t,dt_euler, unknowns);
       t += dt_euler;
-      /*
+      
       // ETAPE 2 DU SPLITTING - DIFFUSION
       
       double dt_diff = 0.4*finite_volumes_diffusion.diffusion_dt(rhoj, kj);
@@ -196,7 +196,7 @@ int main(int argc, char *argv[])
 	}
 	std::cout << "diff : " << t_diff << std::endl;
       }
-      */
+      
 
       // DIFFUSION PURE
       
diff --git a/src/mesh/Mesh.hpp b/src/mesh/Mesh.hpp
index 88d07408a..d73852a87 100644
--- a/src/mesh/Mesh.hpp
+++ b/src/mesh/Mesh.hpp
@@ -85,8 +85,7 @@ public:
   	}
       });
   }
-
-  */
+*/
 
   ~Mesh()
   {
diff --git a/src/scheme/FiniteVolumesDiffusion.hpp b/src/scheme/FiniteVolumesDiffusion.hpp
index b4a794d0f..9f34d06e6 100644
--- a/src/scheme/FiniteVolumesDiffusion.hpp
+++ b/src/scheme/FiniteVolumesDiffusion.hpp
@@ -278,6 +278,10 @@ public:
     Kokkos::View<double*> kL = unknowns.kL();
     Kokkos::View<double*> kR = unknowns.kR();
 
+    Kokkos::View<const Rd*> xr = m_mesh.xr();
+
+    uR[0] = (-t/((50./9.)-t*t))*xr[m_mesh.numberOfNodes()-1];
+
     const Kokkos::View<const Rd*> xj = m_mesh_data.xj();
     const Kokkos::View<const double*> Vj = m_mesh_data.Vj();
     const Kokkos::View<const Rd**> Cjr = m_mesh_data.Cjr();
@@ -307,8 +311,12 @@ public:
 	}
     
 	uj[j] += (dt*inv_mj[j]) * momentum_fluxes;
+	Ej[j] +=  (dt*inv_mj[j]) * energy_fluxes;
 	//uj[j] += std::exp(-t)*(dt*inv_mj[j])*Vj(j)*Sj(j) + (dt*inv_mj[j]) * momentum_fluxes; // test avec k non constant
-       	Ej[j] +=  (dt*inv_mj[j]) * energy_fluxes;
+
+	// ajout second membre pour kidder (k non constant)
+	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)));
 
       });
 
diff --git a/src/scheme/FiniteVolumesEulerUnknowns.hpp b/src/scheme/FiniteVolumesEulerUnknowns.hpp
index 075fedf94..00c465f1e 100644
--- a/src/scheme/FiniteVolumesEulerUnknowns.hpp
+++ b/src/scheme/FiniteVolumesEulerUnknowns.hpp
@@ -236,14 +236,14 @@ public:
       });
 
     Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j){
-  	m_kj[j] =  1.; 
+  	m_kj[j] =  xj[j][0]; 
       });
 
      // Conditions aux bords de Dirichlet sur u et k
     
     m_uL[0] = zero;
     m_uR[0] = zero;
-    m_kL[0] = 1.;
+    m_kL[0] = 0.;
     m_kR[0] = 1.;
   }
   
-- 
GitLab