diff --git a/src/main.cpp b/src/main.cpp index b0adab83ef162b4d70925b1d1b251bd37de76499..1cfa843fe4cc22f753d35a6896bef956f54605e2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -184,8 +184,8 @@ int main(int argc, char *argv[]) double pi = 4.*std::atan(1.); std::ofstream fout("comparaison u"); for (size_t j=0; j<mesh.numberOfCells(); ++j) { - fout << xj[j][0] << ' ' << uj[j][0] << ' ' << std::sin(pi*xj[j][0])*std::exp(-2.*pi*pi*0.2) <<'\n'; //cas k constant - //fout << xj[j][0] << ' ' << uj[j][0] << ' ' << std::sin(pi*xj[j][0])*std::exp(-0.2) <<'\n'; // cas k non constant + //fout << xj[j][0] << ' ' << uj[j][0] << ' ' << std::sin(pi*xj[j][0])*std::exp(-2.*pi*pi*0.2) <<'\n'; //cas k constant + fout << xj[j][0] << ' ' << uj[j][0] << ' ' << std::sin(pi*xj[j][0])*std::exp(-0.2) <<'\n'; // cas k non constant } } diff --git a/src/scheme/FiniteVolumesDiffusion.hpp b/src/scheme/FiniteVolumesDiffusion.hpp index bbb7d59b67bad23972c0fe29d4d5e67a39fb1b26..67774fc988faf886413ae62d3167e74420c987e1 100644 --- a/src/scheme/FiniteVolumesDiffusion.hpp +++ b/src/scheme/FiniteVolumesDiffusion.hpp @@ -96,16 +96,16 @@ private: int cell_here = face_cells(l,j); int local_face_number_in_cell = face_cell_local_face(l,j); sum -= tensorProduct(uj(cell_here, local_face_number_in_cell), Cjr(cell_here, local_face_number_in_cell)); - // sum2 += kj(cell_here); + sum2 += kj(cell_here); } // k = x - //m_Fl(l) = ((sum2*0.5)/Vl(l))*sum; + m_Fl(l) = ((sum2*0.5)/Vl(l))*sum; // k = 2 - m_Fl(l)= (2./Vl(l))*sum; + //m_Fl(l)= (2./Vl(l))*sum; }); @@ -215,15 +215,15 @@ public: minVl = std::min(minVl, Vl(cell_faces(j, ll))); } //k=2 => (kj(j+1) + 2*kj(j) + kj(j-1)) = 8 - dt_j[j]= 0.5*rhoj(j)*Vj(j)*(2./8.)*minVl; + // dt_j[j]= 0.5*rhoj(j)*Vj(j)*(2./8.)*minVl; // k=x - //double sum = 0.; - //for (int m = 0; m < cell_nb_nodes(j); ++m) { - // sum += kj(cell_nodes(j,m)); - //} + double sum = 0.; + for (int m = 0; m < cell_nb_nodes(j); ++m) { + sum += kj(cell_nodes(j,m)); + } - //dt_j[j]= 0.5*rhoj(j)*Vj(j)*(1./(2.*kj(j) + sum))*minVl; + dt_j[j]= 0.5*rhoj(j)*Vj(j)*(1./(2.*kj(j) + sum))*minVl; }); @@ -279,8 +279,8 @@ public: momentum_fluxes += Fl(l)*Cjr(j,R); energy_fluxes += (Gl(l), Cjr(j,R)); } - //uj[j] += std::exp(-t)*(dt*inv_mj[j])*Vj(j)*Sj(j) + (dt*inv_mj[j]) * momentum_fluxes; - uj[j] += (dt*inv_mj[j]) * momentum_fluxes; + uj[j] += std::exp(-t)*(dt*inv_mj[j])*Vj(j)*Sj(j) + (dt*inv_mj[j]) * momentum_fluxes; + //uj[j] += (dt*inv_mj[j]) * momentum_fluxes; Ej[j] += (dt*inv_mj[j]) * energy_fluxes; }); diff --git a/src/scheme/FiniteVolumesEulerUnknowns.hpp b/src/scheme/FiniteVolumesEulerUnknowns.hpp index e420de359d39351942ffab7ec001c84227101d14..1ef763027290bac95df07d4d87f166259aa4188d 100644 --- a/src/scheme/FiniteVolumesEulerUnknowns.hpp +++ b/src/scheme/FiniteVolumesEulerUnknowns.hpp @@ -228,12 +228,12 @@ void initializeSod() }); Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j){ - m_kj[j] = 2; // k constant - //m_kj[j] = xj[j][0]; // k non constant, k = x + //m_kj[j] = 2; // k constant + m_kj[j] = xj[j][0]; // k non constant, k = x }); Kokkos::parallel_for(m_mesh.numberOfCells(), KOKKOS_LAMBDA(const int& j){ - m_Sj[j] = std::sin(pi*xj[j][0])*(xj[j][0]-1.) - std::cos(xj[j][0]*pi); + m_Sj[j] = std::sin(pi*xj[j][0])*(pi*pi*xj[j][0]-1.) - std::cos(xj[j][0]*pi)*pi; }); }