diff --git a/src/main.cpp b/src/main.cpp index 6abce8dceb6f9f133deb95d94f0f3d38874b0741..5e6325e1b1024a8bc74c4daca0b4538edbd1da1b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -131,6 +131,7 @@ int main(int argc, char *argv[]) unknowns.initializeSod(); AcousticSolver<MeshDataType> acoustic_solver(mesh_data, unknowns); + FiniteVolumesDiffusion<MeshDataType> finite_volumes_diffusion(mesh_data, unknowns); typedef TinyVector<MeshType::dimension> Rd; @@ -148,17 +149,21 @@ int main(int argc, char *argv[]) Kokkos::View<double*> pj = unknowns.pj(); Kokkos::View<double*> gammaj = unknowns.gammaj(); Kokkos::View<double*> cj = unknowns.cj(); + Kokkos::View<double*> kj = unknowns.kj(); BlockPerfectGas block_eos(rhoj, ej, pj, gammaj, cj); while((t<tmax) and (iteration<itermax)) { - double dt = 0.4*acoustic_solver.acoustic_dt(Vj, cj); + //double dt = 0.4*acoustic_solver.acoustic_dt(Vj, cj); + double dt = 0.4*finite_volumes_diffusion.diffusion_dt(rhoj, kj); + if (t+dt>tmax) { dt=tmax-t; } - acoustic_solver.computeNextStep(t,dt, unknowns); - + //acoustic_solver.computeNextStep(t,dt, unknowns); + finite_volumes_diffusion.computeNextStep(t, dt, unknowns); + block_eos.updatePandCFromRhoE(); t += dt; diff --git a/src/scheme/FiniteVolumesDiffusion.hpp b/src/scheme/FiniteVolumesDiffusion.hpp index 99ab626e36b43270f21591516b8c2f98ce2f5d55..1afd942e198fce7e5be89fab581c68c2f5814903 100644 --- a/src/scheme/FiniteVolumesDiffusion.hpp +++ b/src/scheme/FiniteVolumesDiffusion.hpp @@ -100,7 +100,7 @@ private: Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j) { for (int r=0; r<cell_nb_nodes[j]; ++r) { - m_Gjr(j,r) = 0.5*(uj(cell_nodes(j,r)) + uj(cell_nodes(j,r)-1))*Fjr(j,r); + m_Gjr(j,r) = 0.5*((uj(cell_nodes(j,r)) + uj(cell_nodes(j,r)-1)),Fjr(j,r)); } }); @@ -195,7 +195,7 @@ public: const Kokkos::View<const Rd**> Cjr = m_mesh_data.Cjr(); // Calcule les flux - computeExplicitFluxes(xj, rhoj, uj, Cjr, kj); + computeExplicitFluxes(uj, Cjr, kj); const Kokkos::View<const Rd**> Fjr = m_Fjr; const Kokkos::View<const double**> Gjr = m_Gjr;