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