diff --git a/src/scheme/AcousticSolver.hpp b/src/scheme/AcousticSolver.hpp index 3d2f79fe7391b8792b38f0a1fef7e77f52d611d4..03488f21cbee37aa818dd8cec40bafbe84220443 100644 --- a/src/scheme/AcousticSolver.hpp +++ b/src/scheme/AcousticSolver.hpp @@ -308,8 +308,16 @@ public: KOKKOS_INLINE_FUNCTION double acoustic_dt(const Kokkos::View<const double*>& Vj, const Kokkos::View<const double*>& cj) const { + const Kokkos::View<const double**> ljr = m_mesh_data.ljr(); + const Kokkos::View<const unsigned short*>& cell_nb_nodes + = m_connectivity.cellNbNodes(); + Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j){ - m_Vj_over_cj[j] = Vj[j]/cj[j]; + double S = 0; + for (int r=0; r<cell_nb_nodes(j); ++r) { + S += ljr(j,r); + } + m_Vj_over_cj[j] = 2*Vj[j]/(S*cj[j]); }); double dt = std::numeric_limits<double>::max();